diff --git a/headers/os/interface/ScrollBar.h b/headers/os/interface/ScrollBar.h index 2549122ba4..c70acbe88f 100644 --- a/headers/os/interface/ScrollBar.h +++ b/headers/os/interface/ScrollBar.h @@ -19,13 +19,6 @@ #define DISABLES_ON_WINDOW_DEACTIVATION 1 -enum { - B_KNOB_STYLE_NONE = 0, - B_KNOB_STYLE_DOTS, - B_KNOB_STYLE_LINES -}; - - class BScrollBar : public BView { public: BScrollBar(BRect frame, const char* name, diff --git a/src/kits/interface/ScrollBar.cpp b/src/kits/interface/ScrollBar.cpp index 48cd1da978..540d8405c4 100644 --- a/src/kits/interface/ScrollBar.cpp +++ b/src/kits/interface/ScrollBar.cpp @@ -1153,69 +1153,6 @@ BScrollBar::Draw(BRect updateRect) FillRect(rect); } } - - if (fPrivateData->fScrollBarInfo.knob == B_KNOB_STYLE_NONE) - return; - - // draw the scrollbar thumb knobs - bool square = fPrivateData->fScrollBarInfo.knob == B_KNOB_STYLE_DOTS; - int32 knobWidth = 0; - int32 knobHeight = 0; - - if (square) { - knobWidth = 2; - knobHeight = 2; - } else { - knobWidth = 1; - knobHeight = 3; - } - - int32 flags = 0; - if (!enabled) - flags |= BControlLook::B_DISABLED; - - float hmiddle = rect.Width() / 2; - float vmiddle = rect.Height() / 2; - - BRect middleKnob = BRect( - rect.left + hmiddle - - (fOrientation == B_HORIZONTAL ? knobWidth : knobHeight), - rect.top + vmiddle - - (fOrientation == B_HORIZONTAL ? knobHeight : knobWidth), - rect.left + hmiddle - + (fOrientation == B_HORIZONTAL ? knobWidth : knobHeight), - rect.top + vmiddle - + (fOrientation == B_HORIZONTAL ? knobHeight : knobWidth)); - - if (fOrientation == B_HORIZONTAL) { - BRect leftKnob = middleKnob.OffsetByCopy(knobWidth * -4, 0); - if (leftKnob.left > rect.left + knobWidth) { - be_control_look->DrawButtonBackground(this, leftKnob, updateRect, - normal, flags, BControlLook::B_ALL_BORDERS, fOrientation); - } - - BRect rightKnob = middleKnob.OffsetByCopy(knobWidth * 4, 0); - if (rightKnob.right < rect.right - knobWidth) { - be_control_look->DrawButtonBackground(this, rightKnob, updateRect, - normal, flags, BControlLook::B_ALL_BORDERS, fOrientation); - } - } else { - BRect topKnob = middleKnob.OffsetByCopy(0, knobWidth * -4); - if (topKnob.top > rect.top + knobHeight) { - be_control_look->DrawButtonBackground(this, topKnob, updateRect, - normal, flags, BControlLook::B_ALL_BORDERS, fOrientation); - } - - BRect bottomKnob = middleKnob.OffsetByCopy(0, knobWidth * 4); - if (bottomKnob.bottom < rect.bottom - knobHeight) { - be_control_look->DrawButtonBackground(this, bottomKnob, updateRect, - normal, flags, BControlLook::B_ALL_BORDERS, fOrientation); - } - } - - // draw middle knob last because it modifies middleKnob - be_control_look->DrawButtonBackground(this, middleKnob, updateRect, - normal, flags, BControlLook::B_ALL_BORDERS, fOrientation); } diff --git a/src/preferences/appearance/FakeScrollBar.cpp b/src/preferences/appearance/FakeScrollBar.cpp index aa8ee8b7fa..fdbd1d1f16 100644 --- a/src/preferences/appearance/FakeScrollBar.cpp +++ b/src/preferences/appearance/FakeScrollBar.cpp @@ -29,12 +29,11 @@ typedef enum { FakeScrollBar::FakeScrollBar(bool drawArrows, bool doubleArrows, - int32 knobStyle, BMessage* message) + BMessage* message) : BControl("FakeScrollBar", NULL, message, B_WILL_DRAW | B_NAVIGABLE), fDrawArrows(drawArrows), - fDoubleArrows(doubleArrows), - fKnobStyle(knobStyle) + fDoubleArrows(doubleArrows) { SetExplicitMinSize(BSize(160, 20)); SetExplicitMaxSize(BSize(B_SIZE_UNLIMITED, 20)); @@ -142,42 +141,6 @@ FakeScrollBar::Draw(BRect updateRect) // fill the clickable surface of the thumb be_control_look->DrawButtonBackground(this, bgRect, updateRect, normal, 0, BControlLook::B_ALL_BORDERS, B_HORIZONTAL); - - if (fKnobStyle == B_KNOB_STYLE_NONE) - return; - - // draw the scrollbar thumb knobs - bool square = fKnobStyle == B_KNOB_STYLE_DOTS; - int32 knobWidth = 0; - int32 knobHeight = 0; - - if (square) { - knobWidth = 2; - knobHeight = 2; - } else { - knobWidth = 1; - knobHeight = 3; - } - - float hmiddle = bgRect.Width() / 2; - float vmiddle = bgRect.Height() / 2; - - BRect middleKnob = BRect(bgRect.left + hmiddle - knobWidth, - bgRect.top + vmiddle - knobHeight, - bgRect.left + hmiddle + knobWidth, - bgRect.top + vmiddle + knobHeight); - - BRect leftKnob = middleKnob.OffsetByCopy(knobWidth * -4, 0); - be_control_look->DrawButtonBackground(this, leftKnob, updateRect, - normal, 0, BControlLook::B_ALL_BORDERS, B_HORIZONTAL); - - BRect rightKnob = middleKnob.OffsetByCopy(knobWidth * 4, 0); - be_control_look->DrawButtonBackground(this, rightKnob, updateRect, - normal, 0, BControlLook::B_ALL_BORDERS, B_HORIZONTAL); - - // draw middle knob last because it modifies middleKnob - be_control_look->DrawButtonBackground(this, middleKnob, updateRect, - normal, 0, BControlLook::B_ALL_BORDERS, B_HORIZONTAL); } diff --git a/src/preferences/appearance/FakeScrollBar.h b/src/preferences/appearance/FakeScrollBar.h index 7f96f613d1..74e034b4cd 100644 --- a/src/preferences/appearance/FakeScrollBar.h +++ b/src/preferences/appearance/FakeScrollBar.h @@ -16,7 +16,7 @@ class FakeScrollBar : public BControl { public: FakeScrollBar(bool drawArrows, bool doubleArrows, - int32 knobStyle, BMessage* message); + BMessage* message); ~FakeScrollBar(void); virtual void MouseDown(BPoint point); diff --git a/src/preferences/appearance/LookAndFeelSettingsView.cpp b/src/preferences/appearance/LookAndFeelSettingsView.cpp index 4ac5f43fdd..5c7bd75725 100644 --- a/src/preferences/appearance/LookAndFeelSettingsView.cpp +++ b/src/preferences/appearance/LookAndFeelSettingsView.cpp @@ -16,6 +16,7 @@ #include #include +#include #include #include #include @@ -28,7 +29,6 @@ #include #include #include -#include #include #include #include @@ -79,15 +79,15 @@ LookAndFeelSettingsView::LookAndFeelSettingsView(const char* name) fDecorInfoButton = new BButton(B_TRANSLATE("About"), new BMessage(kMsgDecorInfo)); - // scrollbar arrow style + // scroll bar arrow style BBox* arrowStyleBox = new BBox("arrow style"); arrowStyleBox->SetLabel(B_TRANSLATE("Arrow style")); fSavedDoubleArrowsValue = _DoubleScrollBarArrows(); - fArrowStyleSingle = new FakeScrollBar(true, false, B_KNOB_STYLE_LINES, + fArrowStyleSingle = new FakeScrollBar(true, false, new BMessage(kMsgArrowStyleSingle)); - fArrowStyleDouble = new FakeScrollBar(true, true, B_KNOB_STYLE_LINES, + fArrowStyleDouble = new FakeScrollBar(true, true, new BMessage(kMsgArrowStyleDouble)); BView* arrowStyleView; @@ -98,39 +98,18 @@ LookAndFeelSettingsView::LookAndFeelSettingsView(const char* name) .Add(new BStringView("spacer", "")) .Add(new BStringView("double", B_TRANSLATE("Double:"))) .Add(fArrowStyleDouble) - .Add(BSpaceLayoutItem::CreateVerticalStrut(0)) .SetInsets(B_USE_DEFAULT_SPACING, B_USE_DEFAULT_SPACING, B_USE_DEFAULT_SPACING, B_USE_DEFAULT_SPACING) .End() .View(); arrowStyleBox->AddChild(arrowStyleView); + arrowStyleBox->SetExplicitAlignment(BAlignment(B_ALIGN_LEFT, + B_ALIGN_VERTICAL_CENTER)); - // scrollbar knob style - fSavedKnobStyleValue = _ScrollBarKnobStyle(); - - BBox* knobStyleBox = new BBox("knob style"); - knobStyleBox->SetLabel(B_TRANSLATE("Knob style")); - - fKnobStyleNone = new FakeScrollBar(false, false, B_KNOB_STYLE_NONE, - new BMessage(kMsgKnobStyleNone)); - fKnobStyleDots = new FakeScrollBar(false, false, B_KNOB_STYLE_DOTS, - new BMessage(kMsgKnobStyleDots)); - fKnobStyleLines = new FakeScrollBar(false, false, B_KNOB_STYLE_LINES, - new BMessage(kMsgKnobStyleLines)); - - BView* knobStyleView; - knobStyleView = BLayoutBuilder::Group<>() - .AddGroup(B_VERTICAL, 0) - .Add(fKnobStyleNone) - .Add(new BStringView("spacer", "")) - .Add(fKnobStyleDots) - .Add(new BStringView("spacer", "")) - .Add(fKnobStyleLines) - .SetInsets(B_USE_DEFAULT_SPACING, B_USE_DEFAULT_SPACING, - B_USE_DEFAULT_SPACING, B_USE_DEFAULT_SPACING) - .End() - .View(); - knobStyleBox->AddChild(knobStyleView); + BStringView* scrollBarLabel + = new BStringView("scroll bar", "Scroll bar:"); + scrollBarLabel->SetExplicitAlignment( + BAlignment(B_ALIGN_LEFT, B_ALIGN_TOP)); SetLayout(new BGroupLayout(B_VERTICAL)); @@ -143,10 +122,9 @@ LookAndFeelSettingsView::LookAndFeelSettingsView(const char* name) .Add(fDecorMenuField->CreateMenuBarLayoutItem(), 1, 0) .Add(fDecorInfoButton, 2, 0) ) - .Add(new BStringView("label", B_TRANSLATE("Scroll bars:"))) .AddGroup(B_HORIZONTAL, B_USE_DEFAULT_SPACING) + .Add(scrollBarLabel) .Add(arrowStyleBox) - .Add(knobStyleBox) .End() .AddGlue() .End() @@ -174,28 +152,11 @@ LookAndFeelSettingsView::AttachedToWindow() fDecorInfoButton->SetTarget(this); fArrowStyleSingle->SetTarget(this); fArrowStyleDouble->SetTarget(this); - fKnobStyleNone->SetTarget(this); - fKnobStyleDots->SetTarget(this); - fKnobStyleLines->SetTarget(this); if (fSavedDoubleArrowsValue) fArrowStyleDouble->SetValue(B_CONTROL_ON); else fArrowStyleSingle->SetValue(B_CONTROL_ON); - - switch (fSavedKnobStyleValue) { - case B_KNOB_STYLE_NONE: - fKnobStyleNone->SetValue(B_CONTROL_ON); - break; - - case B_KNOB_STYLE_DOTS: - fKnobStyleDots->SetValue(B_CONTROL_ON); - break; - - case B_KNOB_STYLE_LINES: - fKnobStyleLines->SetValue(B_CONTROL_ON); - break; - } } @@ -248,18 +209,6 @@ LookAndFeelSettingsView::MessageReceived(BMessage *msg) _SetDoubleScrollBarArrows(true); break; - case kMsgKnobStyleNone: - _SetScrollBarKnobStyle(B_KNOB_STYLE_NONE); - break; - - case kMsgKnobStyleDots: - _SetScrollBarKnobStyle(B_KNOB_STYLE_DOTS); - break; - - case kMsgKnobStyleLines: - _SetScrollBarKnobStyle(B_KNOB_STYLE_LINES); - break; - default: BView::MessageReceived(msg); break; @@ -359,49 +308,11 @@ LookAndFeelSettingsView::_SetDoubleScrollBarArrows(bool doubleArrows) } -int32 -LookAndFeelSettingsView::_ScrollBarKnobStyle() -{ - scroll_bar_info info; - get_scroll_bar_info(&info); - - return info.knob; -} - - -void -LookAndFeelSettingsView::_SetScrollBarKnobStyle(int32 knobStyle) -{ - scroll_bar_info info; - get_scroll_bar_info(&info); - - info.knob = knobStyle; - set_scroll_bar_info(&info); - - switch (knobStyle) { - case B_KNOB_STYLE_NONE: - fKnobStyleNone->SetValue(B_CONTROL_ON); - break; - - case B_KNOB_STYLE_DOTS: - fKnobStyleDots->SetValue(B_CONTROL_ON); - break; - - case B_KNOB_STYLE_LINES: - fKnobStyleLines->SetValue(B_CONTROL_ON); - break; - } - - Window()->PostMessage(kMsgUpdate); -} - - bool LookAndFeelSettingsView::IsDefaultable() { return fCurrentDecor != fDecorUtility.DefaultDecorator()->Name() - || _DoubleScrollBarArrows() != false - || _ScrollBarKnobStyle() != B_KNOB_STYLE_DOTS; + || _DoubleScrollBarArrows() != false; } @@ -410,7 +321,6 @@ LookAndFeelSettingsView::SetDefaults() { _SetDecor(fDecorUtility.DefaultDecorator()); _SetDoubleScrollBarArrows(false); - _SetScrollBarKnobStyle(B_KNOB_STYLE_DOTS); } @@ -418,8 +328,7 @@ bool LookAndFeelSettingsView::IsRevertable() { return fCurrentDecor != fSavedDecor - || _DoubleScrollBarArrows() != fSavedDoubleArrowsValue - || _ScrollBarKnobStyle() != fSavedKnobStyleValue; + || _DoubleScrollBarArrows() != fSavedDoubleArrowsValue; } @@ -427,6 +336,5 @@ void LookAndFeelSettingsView::Revert() { _SetDecor(fSavedDecor); - _SetScrollBarKnobStyle(fSavedKnobStyleValue); _SetDoubleScrollBarArrows(fSavedDoubleArrowsValue); } diff --git a/src/preferences/appearance/LookAndFeelSettingsView.h b/src/preferences/appearance/LookAndFeelSettingsView.h index bc06657544..787c8feffb 100644 --- a/src/preferences/appearance/LookAndFeelSettingsView.h +++ b/src/preferences/appearance/LookAndFeelSettingsView.h @@ -48,9 +48,6 @@ private: bool _DoubleScrollBarArrows(); void _SetDoubleScrollBarArrows(bool doubleArrows); - int32 _ScrollBarKnobStyle(); - void _SetScrollBarKnobStyle(int32 knobStyle); - private: DecorInfoUtility fDecorUtility; @@ -61,15 +58,10 @@ private: FakeScrollBar* fArrowStyleSingle; FakeScrollBar* fArrowStyleDouble; - FakeScrollBar* fKnobStyleNone; - FakeScrollBar* fKnobStyleDots; - FakeScrollBar* fKnobStyleLines; - BString fSavedDecor; BString fCurrentDecor; bool fSavedDoubleArrowsValue; - int32 fSavedKnobStyleValue; }; #endif // LOOK_AND_FEEL_SETTINGS_VIEW_H