53 mInheritsEnabled(true),
54 mSubSkinsVisible(true),
55 mInheritsVisible(true),
63 mNeedMouseFocus(true),
68 mToolTipVisible(false),
69 mToolTipCurrentTime(0),
72 mDisableUpdateRelative(false)
74 _initialise(_style, _coord, _align, _info, _parent, _croppedParent, _creator, _name);
82 mInheritsEnabled(true),
83 mSubSkinsVisible(true),
84 mInheritsVisible(true),
92 mNeedMouseFocus(true),
97 mToolTipVisible(false),
98 mToolTipCurrentTime(0),
101 mDisableUpdateRelative(false)
126 #if MYGUI_DEBUG_MODE == 1
154 if (parent_size.
width)
176 initialiseWidgetSkin(_info, _coord.
size());
197 shutdownWidgetSkin(
true);
226 shutdownWidgetSkin();
227 initialiseWidgetSkin(_info, size);
244 for (VectorSubWidgetInfo::const_iterator iter=_info->
getBasisInfo().begin(); iter!=_info->
getBasisInfo().end(); ++iter)
247 if (
object ==
nullptr)
continue;
270 (*skin)->setVisible(value);
272 (*widget)->_setInheritsVisible(value);
274 (*widget)->_setInheritsVisible(value);
282 (*iter)->_setInheritsEnable(value);
284 (*iter)->_setInheritsEnable(value);
292 if (!properties.empty())
294 MapString::const_iterator iter = properties.end();
297 if ((iter = properties.find(
"Pointer")) != properties.end())
mPointer = iter->second;
306 if ((iter = properties.find(
"FontName")) != properties.end())
_setFontName(iter->second);
315 for (VectorChildSkinInfo::const_iterator iter=child.begin(); iter!=child.end(); ++iter)
319 widget->_setInternalData(iter->name);
321 for (MapString::const_iterator prop=iter->params.begin(); prop!=iter->params.end(); ++prop)
323 widget->setUserString(prop->first, prop->second);
333 void Widget::shutdownWidgetSkin(
bool _deep)
392 _setSubSkinVisible(
false);
398 for (VectorWidgetPtr::iterator widget =
mWidgetChild.begin(); widget !=
mWidgetChild.end(); ++widget) (*widget)->_updateView();
422 _setSubSkinVisible(
true);
425 for (VectorWidgetPtr::iterator widget =
mWidgetChild.begin(); widget !=
mWidgetChild.end(); ++widget) (*widget)->_updateView();
438 if (
nullptr ==
mText)
448 MapWidgetStateInfo::const_iterator iter =
mStateInfo.find(_state);
456 (*skin)->setStateData(data);
464 MYGUI_ASSERT(
nullptr != _widget,
"invalid widget pointer");
519 if (
mAlpha == _alpha)
return;
524 for (VectorWidgetPtr::iterator widget =
mWidgetChild.begin(); widget !=
mWidgetChild.end(); ++widget) (*widget)->_updateAlpha();
526 for (VectorSubWidget::iterator skin =
mSubSkinChild.begin(); skin !=
mSubSkinChild.end(); ++skin) (*skin)->setAlpha(mRealAlpha);
529 void Widget::_updateAlpha()
534 for (VectorWidgetPtr::iterator widget =
mWidgetChild.begin(); widget !=
mWidgetChild.end(); ++widget) (*widget)->_updateAlpha();
566 if (item !=
nullptr)
return item;
572 if (item !=
nullptr)
return item;
578 void Widget::_updateAbsolutePoint()
585 for (VectorWidgetPtr::iterator widget =
mWidgetChild.begin(); widget !=
mWidgetChild.end(); ++widget) (*widget)->_updateAbsolutePoint();
610 void Widget::_setSubSkinVisible(
bool _visible)
618 (*skin)->_updateView();
628 if ( (size < 2) || (
mWidgetChild[size-1] == _widget) )
return;
629 for (
size_t pos=0; pos<size; pos++)
643 if (
nullptr == layer)
645 static std::string empty;
660 if (_name ==
mName)
return this;
666 if (
nullptr != find)
return find;
687 void Widget::frameEntered(
float _frame)
773 if (widget->getNeedToolTip())
837 MYGUI_LOG(Error,
"mask not load '" << _filename <<
"'");
856 void Widget::_linkChildWidget(
Widget* _widget)
863 void Widget::_unlinkChildWidget(Widget* _widget)
872 StaticText* text = this->castType<StaticText>(
false);
880 StaticText* text = this->castType<StaticText>(
false);
889 StaticText* text = this->castType<StaticText>(
false);
897 StaticText* text = this->castType<StaticText>(
false);
905 StaticText* text = this->castType<StaticText>(
false);
913 StaticText* text = this->castType<StaticText>(
false);
916 if (
nullptr ==
mText)
918 static std::string empty;
926 StaticText* text = this->castType<StaticText>(
false);
934 StaticText* text = this->castType<StaticText>(
false);
942 StaticText* text = this->castType<StaticText>(
false);
950 StaticText* text = this->castType<StaticText>(
false);
966 bool need_move =
false;
967 bool need_size =
false;
1048 if (parent_size.
width)
1071 for (VectorWidgetPtr::iterator widget =
mWidgetChild.begin(); widget !=
mWidgetChild.end(); ++widget) (*widget)->_updateAbsolutePoint();
1086 if (parent_size.
width)
1110 bool visible =
true;
1125 _setSubSkinVisible(visible);
1144 if (parent_size.
width)
1171 for (VectorWidgetPtr::iterator widget =
mWidgetChild.begin(); widget !=
mWidgetChild.end(); ++widget) (*widget)->_updateAbsolutePoint();
1178 bool visible =
true;
1193 _setSubSkinVisible(visible);
1213 if (parent_size.
width)
1267 for (VectorWidgetPtr::iterator widget =
mWidgetChild.begin(); widget !=
mWidgetChild.end(); ++widget) (*widget)->_updateAbsolutePoint();
1281 mParent->_unlinkChildWidget(
this);
1285 if (!_layer.empty())
1289 else if (!oldlayer.empty())
1304 MYGUI_ASSERT(_parent !=
this,
"cyclic attach (attaching to self)");
1310 Widget* parent = _parent;
1327 mParent->_linkChildWidget(
this);
1331 if (!_layer.empty())
1343 mParent->_linkChildWidget(
this);
1348 for (VectorWidgetPtr::iterator widget =
mWidgetChild.begin(); widget !=
mWidgetChild.end(); ++widget) (*widget)->_updateAbsolutePoint();
1362 mParent->_linkChildWidget(
this);
1367 for (VectorWidgetPtr::iterator widget =
mWidgetChild.begin(); widget !=
mWidgetChild.end(); ++widget) (*widget)->_updateAbsolutePoint();
1484 size_t pos = _value.find(
"\\n");
1485 if (pos == std::string::npos)
1491 std::string value(_value);
1492 while (pos != std::string::npos)
1494 value[pos++] =
'\n';
1495 value.erase(pos, 1);
1496 pos = value.find(
"\\n");
1519 return baseCreateWidget(_style, _type, _skin, _coord, _align, _layer, _name);
1548 static std::string empty;
1559 else if (_key ==
"Widget_Position")
setPosition(utility::parseValue<IntPoint>(_value));
1560 else if (_key ==
"Widget_Size")
setSize(utility::parseValue<IntSize>(_value));
1561 else if (_key ==
"Widget_Coord")
setCoord(utility::parseValue<IntCoord>(_value));
1562 else if (_key ==
"Widget_Visible")
setVisible(utility::parseValue<bool>(_value));
1563 else if (_key ==
"Widget_Alpha")
setAlpha(utility::parseValue<float>(_value));
1564 else if (_key ==
"Widget_Colour")
setColour(utility::parseValue<Colour>(_value));
1565 else if (_key ==
"Widget_InheritsAlpha")
setInheritsAlpha(utility::parseValue<bool>(_value));
1566 else if (_key ==
"Widget_InheritsPick")
setInheritsPick(utility::parseValue<bool>(_value));
1567 else if (_key ==
"Widget_MaskPick")
setMaskPick(_value);
1568 else if (_key ==
"Widget_State")
setState(_value);
1569 else if (_key ==
"Widget_NeedKey")
setNeedKeyFocus(utility::parseValue<bool>(_value));
1570 else if (_key ==
"Widget_NeedMouse")
setNeedMouseFocus(utility::parseValue<bool>(_value));
1571 else if (_key ==
"Widget_Enabled")
setEnabled(utility::parseValue<bool>(_value));
1572 else if (_key ==
"Widget_NeedToolTip")
setNeedToolTip(utility::parseValue<bool>(_value));
1573 else if (_key ==
"Widget_Pointer")
setPointer(_value);
1575 #ifndef MYGUI_DONT_USE_OBSOLETE
1576 else if (_key ==
"Widget_TextColour")
1578 MYGUI_LOG(Warning,
"Widget_TextColour is obsolete, use Text_TextColour");
1581 else if (_key ==
"Widget_FontName")
1583 MYGUI_LOG(Warning,
"Widget_FontName is obsolete, use Text_FontName");
1586 else if (_key ==
"Widget_FontHeight")
1588 MYGUI_LOG(Warning,
"Widget_FontHeight is obsolete, use Text_FontHeight");
1591 else if (_key ==
"Widget_TextAlign")
1593 MYGUI_LOG(Warning,
"Widget_TextAlign is obsolete, use Text_TextAlign");
1596 else if (_key ==
"Widget_AlignText")
1598 MYGUI_LOG(Warning,
"Widget_AlignText is obsolete, use Text_TextAlign");
1601 else if (_key ==
"Widget_Show")
1603 MYGUI_LOG(Warning,
"Widget_Show is obsolete, use Widget_Visible");
1604 setVisible(utility::parseValue<bool>(_value));
1606 else if (_key ==
"Widget_InheritsPeek")
1608 MYGUI_LOG(Warning,
"Widget_InheritsPeek is obsolete, use Widget_InheritsPick");
1611 else if (_key ==
"Widget_MaskPeek")
1613 MYGUI_LOG(Warning,
"Widget_MaskPeek is obsolete, use Widget_MaskPick");
1616 #endif // MYGUI_DONT_USE_OBSOLETE
1620 MYGUI_LOG(Warning,
"Property " << _key <<
" not found");
1647 (*skin)->setVisible(_value);
1649 (*widget)->_setInheritsVisible(_value);
1651 (*widget)->_setInheritsVisible(_value);
1656 void Widget::_setInheritsVisible(
bool _value)
1664 (*skin)->setVisible(_value);
1666 (*widget)->_setInheritsVisible(_value);
1668 (*widget)->_setInheritsVisible(_value);
1680 (*iter)->_setInheritsEnable(_value);
1682 (*iter)->_setInheritsEnable(_value);
1693 void Widget::_setInheritsEnable(
bool _value)
1701 (*iter)->_setInheritsEnable(_value);
1703 (*iter)->_setInheritsEnable(_value);