mirror of https://github.com/OpenTTD/OpenTTD
(svn r16961) -Codechange: Moving some methods up in the class hierarchy to avoid code duplication.
parent
75ccf9de3a
commit
0081bb9a96
|
@ -973,7 +973,7 @@ void NWidgetBase::Invalidate(const Window *w) const
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @fn NWidgetCore *GetWidgetFromPos(int x, int y)
|
* @fn NWidgetCore *NWidgetBase::GetWidgetFromPos(int x, int y)
|
||||||
* Retrieve a widget by its position.
|
* Retrieve a widget by its position.
|
||||||
* @param x Horizontal position relative to the left edge of the window.
|
* @param x Horizontal position relative to the left edge of the window.
|
||||||
* @param y Vertical position relative to the top edge of the window.
|
* @param y Vertical position relative to the top edge of the window.
|
||||||
|
@ -981,11 +981,14 @@ void NWidgetBase::Invalidate(const Window *w) const
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @fn NWidgetBase *GetWidgetOfType(WidgetType tp)
|
|
||||||
* Retrieve a widget by its type.
|
* Retrieve a widget by its type.
|
||||||
* @param tp Widget type to search for.
|
* @param tp Widget type to search for.
|
||||||
* @return Returns the first widget of the specified type, or \c NULL if no widget can be found.
|
* @return Returns the first widget of the specified type, or \c NULL if no widget can be found.
|
||||||
*/
|
*/
|
||||||
|
NWidgetBase *NWidgetBase::GetWidgetOfType(WidgetType tp)
|
||||||
|
{
|
||||||
|
return (this->type == tp) ? this : NULL;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor for resizable nested widgets.
|
* Constructor for resizable nested widgets.
|
||||||
|
@ -1109,6 +1112,11 @@ void NWidgetCore::StoreWidgets(Widget *widgets, int length, bool left_moving, bo
|
||||||
w->tooltips = this->tool_tip;
|
w->tooltips = this->tool_tip;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
NWidgetCore *NWidgetCore::GetWidgetFromPos(int x, int y)
|
||||||
|
{
|
||||||
|
return (IsInsideBS(x, this->pos_x, this->current_x) && IsInsideBS(y, this->pos_y, this->current_y)) ? this : NULL;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @fn Scrollbar *NWidgetCore::FindScrollbar(Window *w, bool allow_next = true)
|
* @fn Scrollbar *NWidgetCore::FindScrollbar(Window *w, bool allow_next = true)
|
||||||
* Find the scrollbar of the widget through the Window::nested_array.
|
* Find the scrollbar of the widget through the Window::nested_array.
|
||||||
|
@ -1200,7 +1208,6 @@ static inline uint ComputeOffset(uint space, uint max_space)
|
||||||
return (max_space - space) / 2;
|
return (max_space - space) / 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Widgets stacked on top of each other.
|
* Widgets stacked on top of each other.
|
||||||
* @param tp Kind of stacking, must be either #NWID_SELECTION or #NWID_LAYERED.
|
* @param tp Kind of stacking, must be either #NWID_SELECTION or #NWID_LAYERED.
|
||||||
|
@ -1615,11 +1622,6 @@ NWidgetCore *NWidgetSpacer::GetWidgetFromPos(int x, int y)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
NWidgetBase *NWidgetSpacer::GetWidgetOfType(WidgetType tp)
|
|
||||||
{
|
|
||||||
return (this->type == tp) ? this : NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor parent nested widgets.
|
* Constructor parent nested widgets.
|
||||||
* @param tp Type of parent widget.
|
* @param tp Type of parent widget.
|
||||||
|
@ -2152,10 +2154,6 @@ void NWidgetLeaf::Invalidate(const Window *w) const
|
||||||
NWidgetBase::Invalidate(w);
|
NWidgetBase::Invalidate(w);
|
||||||
}
|
}
|
||||||
|
|
||||||
NWidgetCore *NWidgetLeaf::GetWidgetFromPos(int x, int y)
|
|
||||||
{
|
|
||||||
return (IsInsideBS(x, this->pos_x, this->current_x) && IsInsideBS(y, this->pos_y, this->current_y)) ? this : NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
Scrollbar *NWidgetLeaf::FindScrollbar(Window *w, bool allow_next)
|
Scrollbar *NWidgetLeaf::FindScrollbar(Window *w, bool allow_next)
|
||||||
{
|
{
|
||||||
|
@ -2169,11 +2167,6 @@ Scrollbar *NWidgetLeaf::FindScrollbar(Window *w, bool allow_next)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
NWidgetBase *NWidgetLeaf::GetWidgetOfType(WidgetType tp)
|
|
||||||
{
|
|
||||||
return (this->type == tp) ? this : NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Intialize nested widget tree and convert to widget array.
|
* Intialize nested widget tree and convert to widget array.
|
||||||
* @param nwid Nested widget tree.
|
* @param nwid Nested widget tree.
|
||||||
|
|
|
@ -182,7 +182,7 @@ public:
|
||||||
virtual void StoreWidgets(Widget *widgets, int length, bool left_moving, bool top_moving, bool rtl) = 0;
|
virtual void StoreWidgets(Widget *widgets, int length, bool left_moving, bool top_moving, bool rtl) = 0;
|
||||||
|
|
||||||
virtual NWidgetCore *GetWidgetFromPos(int x, int y) = 0;
|
virtual NWidgetCore *GetWidgetFromPos(int x, int y) = 0;
|
||||||
virtual NWidgetBase *GetWidgetOfType(WidgetType tp) = 0;
|
virtual NWidgetBase *GetWidgetOfType(WidgetType tp);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set additional space (padding) around the widget.
|
* Set additional space (padding) around the widget.
|
||||||
|
@ -295,6 +295,7 @@ public:
|
||||||
inline bool IsDisabled();
|
inline bool IsDisabled();
|
||||||
|
|
||||||
void StoreWidgets(Widget *widgets, int length, bool left_moving, bool top_moving, bool rtl);
|
void StoreWidgets(Widget *widgets, int length, bool left_moving, bool top_moving, bool rtl);
|
||||||
|
/* virtual */ NWidgetCore *GetWidgetFromPos(int x, int y);
|
||||||
|
|
||||||
virtual Scrollbar *FindScrollbar(Window *w, bool allow_next = true) = 0;
|
virtual Scrollbar *FindScrollbar(Window *w, bool allow_next = true) = 0;
|
||||||
|
|
||||||
|
@ -444,7 +445,6 @@ public:
|
||||||
/* virtual */ void Draw(const Window *w);
|
/* virtual */ void Draw(const Window *w);
|
||||||
/* virtual */ void Invalidate(const Window *w) const;
|
/* virtual */ void Invalidate(const Window *w) const;
|
||||||
/* virtual */ NWidgetCore *GetWidgetFromPos(int x, int y);
|
/* virtual */ NWidgetCore *GetWidgetFromPos(int x, int y);
|
||||||
/* virtual */ NWidgetBase *GetWidgetOfType(WidgetType tp);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/** Nested widget with a child.
|
/** Nested widget with a child.
|
||||||
|
@ -480,8 +480,6 @@ public:
|
||||||
/* virtual */ void SetupSmallestSize(Window *w, bool init_array);
|
/* virtual */ void SetupSmallestSize(Window *w, bool init_array);
|
||||||
/* virtual */ void Draw(const Window *w);
|
/* virtual */ void Draw(const Window *w);
|
||||||
/* virtual */ void Invalidate(const Window *w) const;
|
/* virtual */ void Invalidate(const Window *w) const;
|
||||||
/* virtual */ NWidgetCore *GetWidgetFromPos(int x, int y);
|
|
||||||
/* virtual */ NWidgetBase *GetWidgetOfType(WidgetType tp);
|
|
||||||
/* virtual */ Scrollbar *FindScrollbar(Window *w, bool allow_next = true);
|
/* virtual */ Scrollbar *FindScrollbar(Window *w, bool allow_next = true);
|
||||||
|
|
||||||
static void InvalidateDimensionCache();
|
static void InvalidateDimensionCache();
|
||||||
|
|
Loading…
Reference in New Issue