MyGUI  3.2.1
MyGUI_MultiListItem.cpp
Go to the documentation of this file.
00001 /*
00002  * This source file is part of MyGUI. For the latest info, see http://mygui.info/
00003  * Distributed under the MIT License
00004  * (See accompanying file COPYING.MIT or copy at http://opensource.org/licenses/MIT)
00005  */
00006 
00007 #include "MyGUI_Precompiled.h"
00008 #include "MyGUI_MultiListItem.h"
00009 #include "MyGUI_MultiListBox.h"
00010 
00011 namespace MyGUI
00012 {
00013 
00014     MultiListItem::MultiListItem()
00015     {
00016     }
00017 
00018     void MultiListItem::initialiseOverride()
00019     {
00020         Base::initialiseOverride();
00021     }
00022 
00023     void MultiListItem::shutdownOverride()
00024     {
00025         Base::shutdownOverride();
00026     }
00027 
00028     void MultiListItem::setCaption(const UString& _value)
00029     {
00030         MultiListBox* owner = getOwner();
00031         if (owner != nullptr)
00032             owner->setColumnName(this, _value);
00033         else
00034             Base::setCaption(_value);
00035     }
00036 
00037     const UString& MultiListItem::getCaption()
00038     {
00039         MultiListBox* owner = getOwner();
00040         if (owner != nullptr)
00041             return owner->getColumnName(this);
00042 
00043         return Base::getCaption();
00044     }
00045 
00046     void MultiListItem::setItemResizingPolicy(ResizingPolicy _value)
00047     {
00048         MultiListBox* owner = getOwner();
00049         if (owner != nullptr)
00050             owner->setColumnResizingPolicy(this, _value);
00051     }
00052 
00053     void MultiListItem::setItemWidth(int _value)
00054     {
00055         MultiListBox* owner = getOwner();
00056         if (owner != nullptr)
00057             owner->setColumnWidth(this, _value);
00058     }
00059 
00060     void MultiListItem::setPropertyOverride(const std::string& _key, const std::string& _value)
00061     {
00063         if (_key == "ItemResizingPolicy")
00064             setItemResizingPolicy(ResizingPolicy::parse(_value));
00065 
00067         else if (_key == "ItemWidth")
00068             setItemWidth(utility::parseValue<int>(_value));
00069 
00070         else
00071         {
00072             Base::setPropertyOverride(_key, _value);
00073             return;
00074         }
00075 
00076         eventChangeProperty(this, _key, _value);
00077     }
00078 
00079     MultiListBox* MultiListItem::getOwner()
00080     {
00081         if (getParent() != nullptr)
00082         {
00083             if (getParent()->isType<MultiListBox>())
00084                 return getParent()->castType<MultiListBox>();
00085             else if ((getParent()->getParent() != nullptr) && (getParent()->getParent()->getClientWidget() == getParent()))
00086             {
00087                 if (getParent()->getParent()->isType<MultiListBox>())
00088                     return getParent()->getParent()->castType<MultiListBox>();
00089             }
00090         }
00091 
00092         return nullptr;
00093     }
00094 
00095 } // namespace MyGUI