1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129
|
/*!
@file
@author Albert Semenov
@date 03/2011
*/
#include "Panel.h"
#include "MyGUI_TextBox.h"
namespace MyGUI
{
Panel::Panel()
{
}
void Panel::setPosition(const IntPoint& _value)
{
Base::setPosition(_value);
}
void Panel::setSize(const IntSize& _value)
{
Base::setSize(_value);
//overrideArrange();
}
void Panel::setCoord(const IntCoord& _value)
{
Base::setCoord(_value);
//overrideArrange();
}
void Panel::updateMeasure(Widget* _widget, const IntSize& _sizeAvailable)
{
Panel* panel = _widget->castType<Panel>(false);
if (panel != nullptr)
{
panel->mDesiredSize = panel->overrideMeasure(_sizeAvailable);
}
else
{
TextBox* text = _widget->castType<TextBox>(false);
if (text != nullptr)
{
IntSize size = text->getSize() - text->getTextRegion().size() + text->getTextSize();
_widget->_setInternalData(size);
}
else
{
IntSize size = _widget->getSize();
_widget->_setInternalData(size);
// , overrideMeasure
//
/*if (_widget->getChildCount() != 0)
{
IntCoord coord = _widget->getClientCoord();
updateMeasure(_widget->getChildAt(0), coord.size());
}*/
}
}
}
void Panel::updateArrange(Widget* _widget, const IntCoord& _coordPlace)
{
updateMeasure(_widget, _coordPlace.size());
_widget->setCoord(_coordPlace);
Panel* panel = _widget->castType<Panel>(false);
if (panel != nullptr)
panel->overrideArrange();
}
IntSize Panel::getDesiredSize(Widget* _widget)
{
Panel* panel = _widget->castType<Panel>(false);
if (panel != nullptr)
return panel->mDesiredSize;
IntSize* sizePtr = _widget->_getInternalData<IntSize>(false);
if (sizePtr != nullptr)
return *sizePtr;
return IntSize();
}
/*void Panel::invalidateMeasure(Widget* _widget)
{
if (_widget->getParent() != nullptr)
{
invalidateMeasure(_widget->getParent());
Panel* panel = _widget->castType<Panel>(false);
if (panel != nullptr)
panel->overrideArrange();
}
else
{
Panel* panel = _widget->castType<Panel>(false);
if (panel != nullptr)
{
const IntSize& size = _widget->getParentSize();
Panel::updateArrange(_widget, IntCoord(0, 0, size.width, size.height));
}
else
{
//
const IntSize& size = _widget->getSize();
Panel::updateArrange(_widget, IntCoord(0, 0, size.width, size.height));
}
}
}*/
void Panel::onWidgetCreated(Widget* _widget)
{
Base::onWidgetCreated(_widget);
//invalidateMeasure(this);
}
void Panel::onWidgetDestroy(Widget* _widget)
{
//invalidateMeasure(this);
Base::onWidgetDestroy(_widget);
}
} // namespace MyGUI
|