Turned protected initialize function into public setParent function

0.8
Bruno Van de Velde 2015-10-18 15:15:35 +02:00
parent 14cb10bc11
commit f45d3df13d
7 changed files with 60 additions and 54 deletions

View File

@ -473,7 +473,16 @@ namespace tgui
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// This function is called every frame with the time passed since the last frame.
/// @internal
/// This function is called when the widget is added to a container.
/// You should not call this function yourself.
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
virtual void setParent(Container* parent);
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// @internal
/// This function is called every frame with the time passed since the last frame.
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
virtual void update(sf::Time elapsedTime);
@ -558,13 +567,6 @@ namespace tgui
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
protected:
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// @internal
// This function is called when the widget is added to a container.
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
virtual void initialize(Container *const container);
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// @brief Attach a theme to the widget
///

View File

@ -301,6 +301,14 @@ namespace tgui
virtual sf::Vector2f getWidgetOffset() const override;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// @internal
/// This function is called when the widget is added to a container.
/// You should not call this function yourself.
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
virtual void setParent(Container* parent) override;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// @internal
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@ -310,13 +318,6 @@ namespace tgui
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
protected:
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// @internal
// Tell the widget about its parent
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
virtual void initialize(Container *const container) override;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// @brief Reload the widget
///

View File

@ -239,6 +239,14 @@ namespace tgui
virtual void setOpacity(float opacity) override;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// @internal
/// This function is called when the widget is added to a container.
/// You should not call this function yourself.
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
virtual void setParent(Container* parent) override;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// @internal
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@ -283,11 +291,6 @@ namespace tgui
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
protected:
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// This function is called when the widget is added to a container.
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
virtual void initialize(Container *const container) override;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Makes a copy of the widget

View File

@ -99,7 +99,7 @@ namespace tgui
if (!widgetPtr->getFont() && getFont())
widgetPtr->setFont(getFont());
widgetPtr->initialize(this);
widgetPtr->setParent(this);
m_widgets.push_back(widgetPtr);
m_objName.push_back(widgetName);

View File

@ -408,6 +408,20 @@ namespace tgui
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void Widget::setParent(Container* parent)
{
m_parent = parent;
if (m_parent)
{
m_position.x.getImpl()->recalculate();
m_position.y.getImpl()->recalculate();
m_size.x.getImpl()->recalculate();
m_size.y.getImpl()->recalculate();
}
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void Widget::update(sf::Time elapsedTime)
{
m_animationTimeElapsed += elapsedTime;
@ -504,20 +518,6 @@ namespace tgui
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void Widget::initialize(Container *const parent)
{
assert(parent);
m_parent = parent;
m_position.x.getImpl()->recalculate();
m_position.y.getImpl()->recalculate();
m_size.x.getImpl()->recalculate();
m_size.y.getImpl()->recalculate();
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void Widget::attachTheme(std::shared_ptr<BaseTheme> theme)
{
detachTheme();

View File

@ -204,6 +204,15 @@ namespace tgui
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void Label::setParent(Container* parent)
{
bool autoSize = getAutoSize();
Widget::setParent(parent);
setAutoSize(autoSize);
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void Label::leftMouseReleased(float x, float y)
{
bool mouseDown = m_mouseDown;
@ -230,15 +239,6 @@ namespace tgui
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void Label::initialize(Container *const parent)
{
bool autoSize = getAutoSize();
Widget::initialize(parent);
setAutoSize(autoSize);
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void Label::reload(const std::string& primary, const std::string& secondary, bool force)
{
getRenderer()->setBackgroundColor(sf::Color::Transparent);

View File

@ -274,6 +274,16 @@ namespace tgui
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void MenuBar::setParent(Container* parent)
{
Widget::setParent(parent);
if (getSize().x == 0)
setSize(bindWidth(m_parent->shared_from_this()), m_size.y);
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
bool MenuBar::mouseOnWidget(float x, float y)
{
// Check if the mouse is on top of the menu bar
@ -452,16 +462,6 @@ namespace tgui
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void MenuBar::initialize(Container *const parent)
{
Widget::initialize(parent);
if (getSize().x == 0)
setSize(bindWidth(m_parent->shared_from_this()), m_size.y);
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void MenuBar::mouseLeftWidget()
{
// Menu items which are selected on mouse hover should not remain selected now that the mouse has left