Add "const" to several Theme and Widget function members

This commit is contained in:
David Capello 2017-02-15 11:35:11 -03:00
parent 7cb41729ab
commit 235011e169
4 changed files with 35 additions and 29 deletions

View File

@ -39,7 +39,7 @@ int compare_layer_flags(int a, int b)
return a - b;
}
void for_each_layer(Widget* widget,
void for_each_layer(const Widget* widget,
const Style* style,
std::function<void(const Style::Layer&)> callback)
{
@ -102,7 +102,7 @@ void Theme::regenerate()
}
void Theme::paintWidget(Graphics* g,
Widget* widget,
const Widget* widget,
const Style* style,
gfx::Rect rc)
{
@ -120,7 +120,8 @@ void Theme::paintWidget(Graphics* g,
});
}
void Theme::paintLayer(Graphics* g, Widget* widget,
void Theme::paintLayer(Graphics* g,
const Widget* widget,
const Style::Layer& layer,
gfx::Rect& rc)
{
@ -221,7 +222,8 @@ void Theme::paintLayer(Graphics* g, Widget* widget,
}
}
gfx::Size Theme::calcSizeHint(Widget* widget, const Style* style)
gfx::Size Theme::calcSizeHint(const Widget* widget,
const Style* style)
{
gfx::Size sizeHint;
gfx::Border borderHint;
@ -229,7 +231,7 @@ gfx::Size Theme::calcSizeHint(Widget* widget, const Style* style)
return sizeHint;
}
void Theme::measureLayer(Widget* widget,
void Theme::measureLayer(const Widget* widget,
const Style::Layer& layer,
gfx::Border& borderHint,
gfx::Size& textHint, int& textAlign,
@ -273,7 +275,8 @@ void Theme::measureLayer(Widget* widget,
}
}
gfx::Border Theme::calcBorder(Widget* widget, const Style* style)
gfx::Border Theme::calcBorder(const Widget* widget,
const Style* style)
{
gfx::Size sizeHint;
gfx::Border borderHint;
@ -281,7 +284,7 @@ gfx::Border Theme::calcBorder(Widget* widget, const Style* style)
return borderHint;
}
void Theme::calcWidgetMetrics(Widget* widget,
void Theme::calcWidgetMetrics(const Widget* widget,
const Style* style,
gfx::Size& sizeHint,
gfx::Border& borderHint)

View File

@ -76,12 +76,12 @@ namespace ui {
// Default implementation to draw widgets with new ui::Styles
virtual void paintWidget(Graphics* g,
Widget* widget,
const Widget* widget,
const Style* style,
gfx::Rect rc);
virtual gfx::Size calcSizeHint(Widget* widget,
virtual gfx::Size calcSizeHint(const Widget* widget,
const Style* style);
virtual gfx::Border calcBorder(Widget* widget,
virtual gfx::Border calcBorder(const Widget* widget,
const Style* style);
static void drawSlices(Graphics* g,
@ -98,15 +98,16 @@ namespace ui {
virtual void onRegenerate() = 0;
private:
void paintLayer(Graphics* g, Widget* widget,
void paintLayer(Graphics* g,
const Widget* widget,
const Style::Layer& layer,
gfx::Rect& rc);
void measureLayer(Widget* widget,
void measureLayer(const Widget* widget,
const Style::Layer& layer,
gfx::Border& borderHint,
gfx::Size& textHint, int& textAlign,
gfx::Size& iconHint, int& iconAlign);
void calcWidgetMetrics(Widget* widget,
void calcWidgetMetrics(const Widget* widget,
const Style* style,
gfx::Size& sizeHint,
gfx::Border& borderHint);

View File

@ -348,27 +348,27 @@ bool Widget::isFocusMagnet() const
// PARENTS & CHILDREN
// ===============================================================
Window* Widget::window()
Window* Widget::window() const
{
Widget* widget = this;
const Widget* widget = this;
while (widget) {
if (widget->type() == kWindowWidget)
return static_cast<Window*>(widget);
return static_cast<Window*>(const_cast<Widget*>(widget));
widget = widget->m_parent;
}
return NULL;
return nullptr;
}
Manager* Widget::manager()
Manager* Widget::manager() const
{
Widget* widget = this;
const Widget* widget = this;
while (widget) {
if (widget->type() == kManagerWidget)
return static_cast<Manager*>(widget);
return static_cast<Manager*>(const_cast<Widget*>(widget));
widget = widget->m_parent;
}
@ -421,9 +421,10 @@ Widget* Widget::previousSibling()
return *(++it);
}
Widget* Widget::pick(const gfx::Point& pt, bool checkParentsVisibility)
Widget* Widget::pick(const gfx::Point& pt,
const bool checkParentsVisibility) const
{
Widget* inside, *picked = nullptr;
const Widget* inside, *picked = nullptr;
// isVisible() checks visibility of widget's parent.
if (((checkParentsVisibility && isVisible()) ||
@ -440,7 +441,7 @@ Widget* Widget::pick(const gfx::Point& pt, bool checkParentsVisibility)
}
}
return picked;
return const_cast<Widget*>(picked);
}
bool Widget::hasChild(Widget* child)
@ -1279,7 +1280,7 @@ bool Widget::hasMouse() const
return hasFlags(HAS_MOUSE);
}
bool Widget::hasMouseOver()
bool Widget::hasMouseOver() const
{
return (this == pick(get_mouse_position()));
}

View File

@ -161,9 +161,9 @@ namespace ui {
// PARENTS & CHILDREN
// ===============================================================
Window* window();
Widget* parent() { return m_parent; }
Manager* manager();
Window* window() const;
Widget* parent() const { return m_parent; }
Manager* manager() const;
// Returns a list of parents, if "ascendant" is true the list is
// build from child to parents, else the list is from parent to
@ -187,7 +187,8 @@ namespace ui {
Widget* nextSibling();
Widget* previousSibling();
Widget* pick(const gfx::Point& pt, bool checkParentsVisibility = true);
Widget* pick(const gfx::Point& pt,
const bool checkParentsVisibility = true) const;
bool hasChild(Widget* child);
bool hasAncestor(Widget* ancestor);
Widget* findChild(const char* id);
@ -341,7 +342,7 @@ namespace ui {
bool hasFocus() const;
bool hasMouse() const;
bool hasMouseOver();
bool hasMouseOver() const;
bool hasCapture() const;
// Offer the capture to widgets of the given type. Returns true if