1 /*
2  * This source file is part of MyGUI. For the latest info, see http://mygui.info/
3  * Distributed under the MIT License
4  * (See accompanying file COPYING.MIT or copy at http://opensource.org/licenses/MIT)
5  */
6 
7 #include "MyGUI_Precompiled.h"
8 #include "MyGUI_TabItem.h"
9 
10 namespace MyGUI
11 {
12 
TabItem()13 	TabItem::TabItem()
14 	{
15 	}
16 
initialiseOverride()17 	void TabItem::initialiseOverride()
18 	{
19 		Base::initialiseOverride();
20 
21 		// FIXME проверить смену скина ибо должно один раз вызываться
22 		//mOwner = getParent()->castType<TabControl>();
23 	}
24 
shutdownOverride()25 	void TabItem::shutdownOverride()
26 	{
27 		TabControl* owner = getParent() != nullptr ? getParent()->castType<TabControl>(false) : nullptr;
28 		if (owner != nullptr)
29 			owner->_notifyDeleteItem(this);
30 
31 		Base::shutdownOverride();
32 	}
33 
setCaption(const UString & _value)34 	void TabItem::setCaption(const UString& _value)
35 	{
36 		TabControl* owner = getParent() != nullptr ? getParent()->castType<TabControl>(false) : nullptr;
37 		if (owner != nullptr)
38 			owner->setItemName(this, _value);
39 		else
40 			Base::setCaption(_value);
41 	}
42 
getCaption()43 	const UString& TabItem::getCaption()
44 	{
45 		TabControl* owner = getParent() != nullptr ? getParent()->castType<TabControl>(false) : nullptr;
46 		if (owner != nullptr)
47 			return owner->getItemName(this);
48 		return Base::getCaption();
49 	}
50 
setButtonWidth(int _width)51 	void TabItem::setButtonWidth(int _width)
52 	{
53 		TabControl* owner = getParent() != nullptr ? getParent()->castType<TabControl>(false) : nullptr;
54 		if (owner != nullptr)
55 			owner->setButtonWidth(this, _width);
56 	}
57 
setPropertyOverride(const std::string & _key,const std::string & _value)58 	void TabItem::setPropertyOverride(const std::string& _key, const std::string& _value)
59 	{
60 		/// @wproperty{TabItem, ButtonWidth, int} Ширина кнопки.
61 		if (_key == "ButtonWidth")
62 			setButtonWidth(utility::parseValue<int>(_value));
63 
64 		else
65 		{
66 			Base::setPropertyOverride(_key, _value);
67 			return;
68 		}
69 
70 		eventChangeProperty(this, _key, _value);
71 	}
72 
73 } // namespace MyGUI
74