From 6e9c9c28d950a822beb0fb4e76d5ba40a247085c Mon Sep 17 00:00:00 2001 From: frosch Date: Thu, 12 Aug 2010 09:13:04 +0000 Subject: (svn r20459) -Codechange: Remove the Scrollbar members of Window and make NWidgetScrollbar inherit from Scrollbar instead. --- src/widget.cpp | 30 +++++------------------------- src/widget_type.h | 5 +---- src/window.cpp | 6 +++--- src/window_gui.h | 3 --- 4 files changed, 9 insertions(+), 35 deletions(-) (limited to 'src') diff --git a/src/widget.cpp b/src/widget.cpp index 698217670..b1cc96745 100644 --- a/src/widget.cpp +++ b/src/widget.cpp @@ -75,7 +75,7 @@ static void ScrollbarClickPositioning(Window *w, NWidgetScrollbar *nw, int x, in { int pos; bool rtl = false; - Scrollbar *sb = nw->GetScrollbar(w); + Scrollbar *sb = nw; switch (nw->type) { case WWT_SCROLLBAR: @@ -1670,7 +1670,7 @@ void Scrollbar::SetCapacityFromWidget(Window *w, int widget, int padding) * @param colour Colour of the scrollbar. * @param index Index in the widget array used by the window system. */ -NWidgetScrollbar::NWidgetScrollbar(WidgetType tp, Colours colour, int index) : NWidgetCore(tp, colour, 1, 1, 0x0, STR_NULL) +NWidgetScrollbar::NWidgetScrollbar(WidgetType tp, Colours colour, int index) : NWidgetCore(tp, colour, 1, 1, 0x0, STR_NULL), Scrollbar(tp != WWT_HSCROLLBAR) { assert(tp == WWT_HSCROLLBAR || tp == WWT_SCROLLBAR || tp == WWT_SCROLL2BAR); this->SetIndex(index); @@ -1722,21 +1722,21 @@ void NWidgetScrollbar::Draw(const Window *w) case WWT_HSCROLLBAR: DrawHorizontalScrollbar(r, this->colour, (w->flags4 & (WF_SCROLL_UP | WF_HSCROLL)) == (WF_SCROLL_UP | WF_HSCROLL), w->scrolling_scrollbar == this->index, - (w->flags4 & (WF_SCROLL_DOWN | WF_HSCROLL)) == (WF_SCROLL_DOWN | WF_HSCROLL), this->GetScrollbar(w)); + (w->flags4 & (WF_SCROLL_DOWN | WF_HSCROLL)) == (WF_SCROLL_DOWN | WF_HSCROLL), this); break; case WWT_SCROLLBAR: assert(this->widget_data == 0); DrawVerticalScrollbar(r, this->colour, (w->flags4 & (WF_SCROLL_UP | WF_HSCROLL | WF_SCROLL2)) == WF_SCROLL_UP, w->scrolling_scrollbar == this->index, - (w->flags4 & (WF_SCROLL_DOWN | WF_HSCROLL | WF_SCROLL2)) == WF_SCROLL_DOWN, this->GetScrollbar(w)); + (w->flags4 & (WF_SCROLL_DOWN | WF_HSCROLL | WF_SCROLL2)) == WF_SCROLL_DOWN, this); break; case WWT_SCROLL2BAR: assert(this->widget_data == 0); DrawVerticalScrollbar(r, this->colour, (w->flags4 & (WF_SCROLL_UP | WF_HSCROLL | WF_SCROLL2)) == (WF_SCROLL_UP | WF_SCROLL2), w->scrolling_scrollbar == this->index, - (w->flags4 & (WF_SCROLL_DOWN | WF_HSCROLL | WF_SCROLL2)) == (WF_SCROLL_DOWN | WF_SCROLL2), this->GetScrollbar(w)); + (w->flags4 & (WF_SCROLL_DOWN | WF_HSCROLL | WF_SCROLL2)) == (WF_SCROLL_DOWN | WF_SCROLL2), this); break; default: NOT_REACHED(); @@ -1747,26 +1747,6 @@ void NWidgetScrollbar::Draw(const Window *w) } } -const Scrollbar *NWidgetScrollbar::GetScrollbar(const Window *w) const -{ - switch (this->type) { - case WWT_HSCROLLBAR: return &w->old_hscroll; - case WWT_SCROLLBAR: return &w->old_vscroll; - case WWT_SCROLL2BAR: return &w->old_vscroll2; - default: NOT_REACHED(); - } -} - -Scrollbar *NWidgetScrollbar::GetScrollbar(Window *w) const -{ - switch (this->type) { - case WWT_HSCROLLBAR: return &w->old_hscroll; - case WWT_SCROLLBAR: return &w->old_vscroll; - case WWT_SCROLL2BAR: return &w->old_vscroll2; - default: NOT_REACHED(); - } -} - /** Reset the cached dimensions. */ /* static */ void NWidgetLeaf::InvalidateDimensionCache() { diff --git a/src/widget_type.h b/src/widget_type.h index 7b5597ed7..961a6c4c9 100644 --- a/src/widget_type.h +++ b/src/widget_type.h @@ -632,15 +632,12 @@ public: * Also assign the scrollbar to other widgets using #SetScrollbar() to make the mousewheel work. * @ingroup NestedWidgets */ -class NWidgetScrollbar : public NWidgetCore { +class NWidgetScrollbar : public NWidgetCore, public Scrollbar { public: NWidgetScrollbar(WidgetType tp, Colours colour, int index); /* virtual */ void SetupSmallestSize(Window *w, bool init_array); /* virtual */ void Draw(const Window *w); - - const Scrollbar *GetScrollbar(const Window *w) const; - Scrollbar *GetScrollbar(Window *w) const; }; /** diff --git a/src/window.cpp b/src/window.cpp index 469e0c26b..09134b270 100644 --- a/src/window.cpp +++ b/src/window.cpp @@ -104,7 +104,7 @@ int Window::GetRowFromWidget(int clickpos, int widget, int padding, int line_hei */ const Scrollbar *Window::GetScrollbar(uint widnum) const { - return this->GetWidget(widnum)->GetScrollbar(this); + return this->GetWidget(widnum); } /** @@ -114,7 +114,7 @@ const Scrollbar *Window::GetScrollbar(uint widnum) const */ Scrollbar *Window::GetScrollbar(uint widnum) { - return this->GetWidget(widnum)->GetScrollbar(this); + return this->GetWidget(widnum); } @@ -1304,7 +1304,7 @@ void Window::InitNested(const WindowDesc *desc, WindowNumber window_number) } /** Empty constructor, initialization has been moved to #InitNested() called from the constructor of the derived class. */ -Window::Window() : old_hscroll(false), old_vscroll(true), old_vscroll2(true), scrolling_scrollbar(-1) +Window::Window() : scrolling_scrollbar(-1) { } diff --git a/src/window_gui.h b/src/window_gui.h index 852ec5977..6c9c688bf 100644 --- a/src/window_gui.h +++ b/src/window_gui.h @@ -256,9 +256,6 @@ public: int width; ///< width of the window (number of pixels to the right in x direction) int height; ///< Height of the window (number of pixels down in y direction) - Scrollbar old_hscroll; ///< Horizontal scroll bar - Scrollbar old_vscroll; ///< First vertical scroll bar - Scrollbar old_vscroll2; ///< Second vertical scroll bar ResizeInfo resize; ///< Resize information Owner owner; ///< The owner of the content shown in this window. Company colour is acquired from this variable. -- cgit v1.2.3-70-g09d2