usability improvements to scrollbar, sorry had no time to include all of Stefanos drawing code yet, other visual improvements

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13535 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Stephan Aßmus
2005-07-07 14:33:19 +00:00
parent a5ca645e49
commit 7dc436d8dd
5 changed files with 848 additions and 778 deletions
+17 -13
View File
@@ -43,9 +43,6 @@
//---------------------------------------------------------------- //----------------------------------------------------------------
//----- BScrollBar class ----------------------------------------- //----- BScrollBar class -----------------------------------------
class BScrollArrowButton;
class BScrollBarPrivateData;
class BScrollBar : public BView { class BScrollBar : public BView {
public: public:
@@ -104,29 +101,36 @@ virtual status_t Perform(perform_code d, void *arg);
private: private:
class Private; class Private;
friend class BScrollArrowButton;
friend class Private; friend class Private;
friend status_t control_scrollbar(scroll_bar_info *info, BScrollBar *bar); // for use within the preflet friend status_t control_scrollbar(scroll_bar_info *info, BScrollBar *bar); // for use within the preflet
virtual void _ReservedScrollBar1(); virtual void _ReservedScrollBar1();
virtual void _ReservedScrollBar2(); virtual void _ReservedScrollBar2();
virtual void _ReservedScrollBar3(); virtual void _ReservedScrollBar3();
virtual void _ReservedScrollBar4(); virtual void _ReservedScrollBar4();
BScrollBar &operator=(const BScrollBar &); BScrollBar &operator=(const BScrollBar &);
void DoScroll(float delta);
void InitObject(float min, float max, orientation o, BView *t); bool _DoubleArrows() const;
void _UpdateThumbFrame();
float _ValueFor(BPoint where) const;
int32 _ButtonFor(BPoint where) const;
BRect _ButtonRectFor(int32 button) const;
void _UpdateTargetValue(BPoint where);
void _UpdateArrowButtons();
void _DrawArrowButton(int32 direction,
BRect frame, bool down);
void DrawButtons(BRect updateRect);
/* void DrawButtons(BRect updateRect);
void DrawArrow(BPoint pos, int32 which, bool pressed = false); void DrawArrow(BPoint pos, int32 which, bool pressed = false);
void DrawButton(BRect frame, int32 arrowType, bool pressed = false); void DrawButton(BRect frame, int32 arrowType, bool pressed = false);
bool DoubleArrows() const;
BRect BarFrame() const; BRect BarFrame() const;
BRect KnobFrame() const; BRect KnobFrame() const;
float ValueToPosition(float val) const; float ValueToPosition(float val) const;
float PositionToValue(float pos) const; float PositionToValue(float pos) const;*/
float fMin; float fMin;
float fMax; float fMax;
@@ -136,9 +140,9 @@ virtual void _ReservedScrollBar4();
float fProportion; float fProportion;
BView* fTarget; BView* fTarget;
orientation fOrientation; orientation fOrientation;
char *fTargetName; char* fTargetName;
Private *fPrivateData; Private* fPrivateData;
uint32 _reserved[3]; uint32 _reserved[3];
}; };
+14 -3
View File
@@ -620,12 +620,15 @@ BAlert::InitIcon()
// After a bit of a search, I found the icons in app_server. =P // After a bit of a search, I found the icons in app_server. =P
BBitmap* icon = NULL; BBitmap* icon = NULL;
BPath path; BPath path;
if (find_directory(B_BEOS_SERVERS_DIRECTORY, &path) == B_OK) { status_t status = find_directory(B_BEOS_SERVERS_DIRECTORY, &path);
if (status >= B_OK) {
path.Append("app_server"); path.Append("app_server");
BFile file; BFile file;
if (file.SetTo(path.Path(), B_READ_ONLY) == B_OK) { status = file.SetTo(path.Path(), B_READ_ONLY);
if (status >= B_OK) {
BResources resources; BResources resources;
if (resources.SetTo(&file) == B_OK) { status = resources.SetTo(&file);
if (status >= B_OK) {
// Which icon are we trying to load? // Which icon are we trying to load?
const char* iconName = ""; // Don't want any seg faults const char* iconName = ""; // Don't want any seg faults
switch (fMsgType) { switch (fMsgType) {
@@ -657,9 +660,17 @@ BAlert::InitIcon()
// Now build the bitmap // Now build the bitmap
icon = new BBitmap(BRect(0, 0, 31, 31), 0, B_CMAP8); icon = new BBitmap(BRect(0, 0, 31, 31), 0, B_CMAP8);
icon->SetBits(rawIcon, size, 0, B_CMAP8); icon->SetBits(rawIcon, size, 0, B_CMAP8);
} else {
fprintf(stderr, "BAlert::InitIcon() - Icon resource not found\n");
} }
} else {
fprintf(stderr, "BAlert::InitIcon() - BResources init failed: %s\n", strerror(status));
} }
} else {
fprintf(stderr, "BAlert::InitIcon() - BFile init failed: %s\n", strerror(status));
} }
} else {
fprintf(stderr, "BAlert::InitIcon() - find_directory failed: %s\n", strerror(status));
} }
if (!icon) { if (!icon) {
+4
View File
@@ -613,6 +613,8 @@ BMenuItem::Select(bool on)
void void
BMenuItem::DrawMarkSymbol() BMenuItem::DrawMarkSymbol()
{ {
fSuper->SetDrawingMode(B_OP_OVER);
fSuper->SetHighColor(tint_color(ui_color(B_MENU_BACKGROUND_COLOR), fSuper->SetHighColor(tint_color(ui_color(B_MENU_BACKGROUND_COLOR),
B_DARKEN_1_TINT)); B_DARKEN_1_TINT));
fSuper->StrokeLine(BPoint(fBounds.left + 6.0f, fBounds.bottom - 3.0f), fSuper->StrokeLine(BPoint(fBounds.left + 6.0f, fBounds.bottom - 3.0f),
@@ -631,6 +633,8 @@ BMenuItem::DrawMarkSymbol()
BPoint(fBounds.left + 3.0f, fBounds.bottom - 9.0f)); BPoint(fBounds.left + 3.0f, fBounds.bottom - 9.0f));
fSuper->StrokeLine(BPoint(fBounds.left + 4.0f, fBounds.bottom - 4.0f), fSuper->StrokeLine(BPoint(fBounds.left + 4.0f, fBounds.bottom - 4.0f),
BPoint(fBounds.left + 2.0f, fBounds.bottom - 9.0f)); BPoint(fBounds.left + 2.0f, fBounds.bottom - 9.0f));
fSuper->SetDrawingMode(B_OP_COPY);
} }
File diff suppressed because it is too large Load Diff
+10
View File
@@ -1832,6 +1832,16 @@ BWindow::ResizeBy(float dx, float dy)
fLink->Attach<float>(dy); fLink->Attach<float>(dy);
fLink->Flush(); fLink->Flush();
/* int32 code;
if (fLink->FlushWithReply(code) == B_OK
&& code == SERVER_TRUE) {
fLink->Read<float>(&dx);
fLink->Read<float>(&dy);
fFrame.SetRightBottom(fFrame.LeftTop() + BPoint(dx, dy));
top_view->ResizeTo(dx, dy);
}*/
fFrame.SetRightBottom(fFrame.RightBottom() + BPoint(dx, dy)); fFrame.SetRightBottom(fFrame.RightBottom() + BPoint(dx, dy));
top_view->ResizeBy(dx, dy); top_view->ResizeBy(dx, dy);
} }