Clean up.

--HG--
branch : dev
This commit is contained in:
Martí­n Lucas Golini
2017-03-01 05:04:42 -03:00
parent 42131ce1eb
commit fc5c0313fe
42 changed files with 445 additions and 420 deletions

View File

@@ -8,6 +8,8 @@ namespace EE { namespace UI {
class EE_API UIComplexControl : public UIControlAnim {
public:
static UIComplexControl * New();
class CreateParams : public UIControlAnim::CreateParams {
public:
inline CreateParams() :

View File

@@ -22,6 +22,8 @@ class UIManager;
class EE_API UIControl {
public:
static UIControl * New();
typedef cb::Callback1<void, const UIEvent*> UIEventCallback;
class CreateParams {
@@ -150,11 +152,11 @@ class EE_API UIControl {
Uint32 getHorizontalAlign() const;
void setHorizontalAlign( Uint32 halign );
UIControl * setHorizontalAlign( Uint32 halign );
Uint32 getVerticalAlign() const;
void setVerticalAlign( Uint32 valign );
UIControl * setVerticalAlign( Uint32 valign );
UIBackground * setBackgroundFillEnabled( bool enabled );
@@ -178,7 +180,7 @@ class EE_API UIControl {
virtual UIControl * unsetFlags( const Uint32& flags );
UIControl * resetFlags();
UIControl * resetFlags( Uint32 newFlags = 0 );
void setBlendMode( const EE_BLEND_MODE& blend );

View File

@@ -9,6 +9,8 @@ namespace EE { namespace UI {
class EE_API UIControlAnim : public UIDragable {
public:
static UIControlAnim * New();
UIControlAnim( const CreateParams& Params );
UIControlAnim();

View File

@@ -15,9 +15,9 @@ class EE_API UIDefaultTheme : public UITheme {
WinMenuStyleConfig getWinMenuStyleConfig();
virtual UIPopUpMenu * createPopUpMenu(UIControl * Parent = NULL, const Sizei& Size = Sizei(), const Vector2i& Pos = Vector2i(), const Uint32& Flags = UI_CONTROL_DEFAULT_FLAGS | UI_AUTO_SIZE | UI_AUTO_PADDING, Recti PaddingContainer = Recti(), Uint32 MinWidth = 100, Uint32 MinSpaceForIcons = 16, Uint32 MinRightMargin = 8 );
WindowStyleConfig getWindowStyleConfig();
virtual UIWindow * createWindow( UIControl * Parent = NULL, const Sizei& Size = Sizei(), const Vector2i& Pos = Vector2i(), const Uint32& Flags = UI_CONTROL_DEFAULT_FLAGS_CENTERED, Uint32 WinFlags = UI_WIN_DEFAULT_FLAGS, Sizei MinWindowSize = Sizei(0,0), Uint8 BaseAlpha = 255 );
virtual UIPopUpMenu * createPopUpMenu(UIControl * Parent = NULL, const Sizei& Size = Sizei(), const Vector2i& Pos = Vector2i(), const Uint32& Flags = UI_CONTROL_DEFAULT_FLAGS | UI_AUTO_SIZE | UI_AUTO_PADDING, Recti PaddingContainer = Recti(), Uint32 MinWidth = 100, Uint32 MinSpaceForIcons = 16, Uint32 MinRightMargin = 8 );
virtual UICommonDialog * createCommonDialog( UIControl * Parent = NULL, const Sizei& Size = Sizei(), const Vector2i& Pos = Vector2i(), const Uint32& Flags = UI_CONTROL_DEFAULT_FLAGS_CENTERED, Uint32 WinFlags = UI_WIN_DEFAULT_FLAGS | UI_WIN_MAXIMIZE_BUTTON, Sizei MinWindowSize = Sizei(0,0), Uint8 BaseAlpha = 255, Uint32 CDLFlags = UI_CDL_DEFAULT_FLAGS, std::string DefaultFilePattern = "*", std::string DefaultDirectory = Sys::getProcessPath() );

View File

@@ -7,6 +7,8 @@ namespace EE { namespace UI {
class EE_API UIDragable : public UIControl {
public:
static UIDragable * New();
UIDragable( const UIControl::CreateParams& Params );
UIDragable();

View File

@@ -7,6 +7,8 @@ namespace EE { namespace UI {
class EE_API UIGfx : public UIComplexControl {
public:
static UIGfx * New();
class CreateParams : public UIComplexControl::CreateParams {
public:
inline CreateParams() :
@@ -59,6 +61,8 @@ class EE_API UIGfx : public UIComplexControl {
virtual void onSizeChange();
virtual void onAlignChange();
void autoSize();
void autoAlign();

View File

@@ -10,6 +10,8 @@ class UIGenericGrid;
class EE_API UIGridCell : public UIComplexControl {
public:
static UIGridCell * New();
UIGridCell( UIGridCell::CreateParams& Params );
UIGridCell();

View File

@@ -8,6 +8,8 @@ namespace EE { namespace UI {
class EE_API UISpinBox : public UIComplexControl {
public:
static UISpinBox * New();
class CreateParams : public UITextInput::CreateParams {
public:
inline CreateParams() :

View File

@@ -11,6 +11,8 @@ namespace EE { namespace UI {
class EE_API UISprite : public UIComplexControl {
public:
static UISprite * New();
class CreateParams : public UIComplexControl::CreateParams {
public:
inline CreateParams() :

View File

@@ -8,7 +8,9 @@
namespace EE { namespace UI {
class EE_API UITextEdit : public UIComplexControl {
public:
public:
static UITextEdit * New();
class CreateParams : public UITextBox::CreateParams {
public:
inline CreateParams() : UITextBox::CreateParams(),

View File

@@ -8,10 +8,10 @@ namespace EE { namespace UI {
class UITextInputPassword : public UITextInput
{
public:
UITextInputPassword( const UITextInput::CreateParams& Params );
UITextInputPassword();
~UITextInputPassword();
virtual void draw();
virtual const String& getText();

View File

@@ -83,22 +83,12 @@ class EE_API UITheme : protected ResourceManager<UISkin> {
SubTexture * getIconByName( const std::string& name );
virtual UIGfx * createGfx( SubTexture * SubTexture, UIControl * Parent = NULL, const Sizei& Size = Sizei(), const Vector2i& Pos = Vector2i(), const Uint32& Flags = UI_CONTROL_DEFAULT_FLAGS_CENTERED | UI_AUTO_SIZE, ColorA SubTextureColor = ColorA(255,255,255,255), EE_RENDER_MODE SubTextureRender = RN_NORMAL );
virtual UISprite * createSprite( Sprite * Sprite, UIControl * Parent = NULL, const Sizei& Size = Sizei(), const Vector2i& Pos = Vector2i(), const Uint32& Flags = UI_CONTROL_DEFAULT_FLAGS_CENTERED | UI_AUTO_SIZE, bool DealloSprite = true, EE_RENDER_MODE SpriteRender = RN_NORMAL );
virtual UICheckBox * createCheckBox( UIControl * Parent = NULL, const Sizei& Size = Sizei(), const Vector2i& Pos = Vector2i(), const Uint32& Flags = UI_CONTROL_DEFAULT_FLAGS );
virtual UIRadioButton * createRadioButton( UIControl * Parent = NULL, const Sizei& Size = Sizei(), const Vector2i& Pos = Vector2i(), const Uint32& Flags = UI_CONTROL_DEFAULT_FLAGS );
virtual UITextBox * createTextBox( const String& Text = "", UIControl * Parent = NULL, const Sizei& Size = Sizei(), const Vector2i& Pos = Vector2i(), const Uint32& Flags = UI_CONTROL_DEFAULT_FLAGS | UI_AUTO_SIZE );
virtual UITextEdit * createTextEdit( UIControl * Parent = NULL, const Sizei& Size = Sizei(), const Vector2i& Pos = Vector2i(), const Uint32& Flags = UI_CONTROL_DEFAULT_FLAGS | UI_AUTO_PADDING | UI_CLIP_ENABLE | UI_AUTO_SIZE | UI_TEXT_SELECTION_ENABLED, UI_SCROLLBAR_MODE HScrollBar = UI_SCROLLBAR_AUTO, UI_SCROLLBAR_MODE VScrollBar = UI_SCROLLBAR_AUTO, bool WordWrap = true );
virtual UITextInput * createTextInput( UIControl * Parent = NULL, const Sizei& Size = Sizei(), const Vector2i& Pos = Vector2i(), const Uint32& Flags = UI_CONTROL_DEFAULT_FLAGS | UI_CLIP_ENABLE | UI_AUTO_PADDING | UI_TEXT_SELECTION_ENABLED, bool SupportFreeEditing = true, Uint32 MaxLength = 1024*8 );
virtual UITextInputPassword * createTextInputPassword( UIControl * Parent = NULL, const Sizei& Size = Sizei(), const Vector2i& Pos = Vector2i(), const Uint32& Flags = UI_CONTROL_DEFAULT_FLAGS | UI_CLIP_ENABLE | UI_AUTO_PADDING | UI_TEXT_SELECTION_ENABLED, bool SupportFreeEditing = true, Uint32 MaxLength = 1024*8 );
virtual UIScrollBar * createScrollBar( UIControl * Parent = NULL, const Sizei& Size = Sizei(), const Vector2i& Pos = Vector2i(), const Uint32& Flags = UI_CONTROL_DEFAULT_FLAGS | UI_AUTO_SIZE, bool VerticalScrollBar = false );
virtual UISlider * createSlider( UIControl * Parent = NULL, const Sizei& Size = Sizei(), const Vector2i& Pos = Vector2i(), const Uint32& Flags = UI_CONTROL_DEFAULT_FLAGS, bool VerticalSlider = false, bool AllowHalfSliderOut = true, bool ExpandBackground = false );
@@ -107,16 +97,12 @@ class EE_API UITheme : protected ResourceManager<UISkin> {
virtual UIListBox * createListBox( UIControl * Parent = NULL, const Sizei& Size = Sizei(), const Vector2i& Pos = Vector2i(), const Uint32& Flags = UI_CONTROL_DEFAULT_FLAGS | UI_CLIP_ENABLE | UI_AUTO_PADDING, bool SmoothScroll = true, Uint32 RowHeight = 0, UI_SCROLLBAR_MODE VScrollMode = UI_SCROLLBAR_AUTO, UI_SCROLLBAR_MODE HScrollMode = UI_SCROLLBAR_AUTO, Recti PaddingContainer = Recti() );
virtual UIMenu * createMenu( UIControl * Parent = NULL, const Sizei& Size = Sizei(), const Vector2i& Pos = Vector2i(), const Uint32& Flags = UI_CONTROL_DEFAULT_FLAGS | UI_AUTO_SIZE | UI_AUTO_PADDING, Recti PaddingContainer = Recti(), Uint32 MinWidth = 0, Uint32 MinSpaceForIcons = 0, Uint32 MinRightMargin = 0 );
virtual UIPopUpMenu * createPopUpMenu(UIControl * Parent = NULL, const Sizei& Size = Sizei(), const Vector2i& Pos = Vector2i(), const Uint32& Flags = UI_CONTROL_DEFAULT_FLAGS | UI_AUTO_SIZE | UI_AUTO_PADDING, Recti PaddingContainer = Recti(), Uint32 MinWidth = 0, Uint32 MinSpaceForIcons = 0, Uint32 MinRightMargin = 0 );
virtual UIPushButton * createPushButton( UIControl * Parent = NULL, const Sizei& Size = Sizei(), const Vector2i& Pos = Vector2i(), const Uint32& Flags = UI_CONTROL_DEFAULT_FLAGS_CENTERED | UI_AUTO_SIZE, SubTexture * Icon = NULL, Int32 IconHorizontalMargin = 0, bool IconAutoMargin = true );
virtual UISelectButton * createSelectButton( UIControl * Parent = NULL, const Sizei& Size = Sizei(), const Vector2i& Pos = Vector2i(), const Uint32& Flags = UI_CONTROL_DEFAULT_FLAGS_CENTERED | UI_AUTO_SIZE, SubTexture * Icon = NULL, Int32 IconHorizontalMargin = 0, bool IconAutoMargin = true );
virtual UIWindow * createWindow( UIControl * Parent = NULL, const Sizei& Size = Sizei(), const Vector2i& Pos = Vector2i(), const Uint32& Flags = UI_CONTROL_DEFAULT_FLAGS_CENTERED, Uint32 WinFlags = UI_WIN_DEFAULT_FLAGS, Sizei MinWindowSize = Sizei(0,0), Uint8 BaseAlpha = 255 );
virtual UICommonDialog * createCommonDialog( UIControl * Parent = NULL, const Sizei& Size = Sizei(), const Vector2i& Pos = Vector2i(), const Uint32& Flags = UI_CONTROL_DEFAULT_FLAGS_CENTERED, Uint32 WinFlags = UI_WIN_DEFAULT_FLAGS | UI_WIN_MAXIMIZE_BUTTON, Sizei MinWindowSize = Sizei(0,0), Uint8 BaseAlpha = 255, Uint32 CDLFlags = UI_CDL_DEFAULT_FLAGS, std::string DefaultFilePattern = "*", std::string DefaultDirectory = Sys::getProcessPath() );
virtual UIMessageBox * createMessageBox( UI_MSGBOX_TYPE Type = MSGBOX_OKCANCEL, const String& Message = String(), Uint32 WinFlags = UI_WIN_DEFAULT_FLAGS | UI_WIN_MODAL, UIControl * Parent = NULL, const Sizei& Size = Sizei(), const Vector2i& Pos = Vector2i(), const Uint32& Flags = UI_CONTROL_DEFAULT_FLAGS_CENTERED, Sizei MinWindowSize = Sizei(0,0), Uint8 BaseAlpha = 255 );
@@ -137,10 +123,6 @@ class EE_API UITheme : protected ResourceManager<UISkin> {
void setTooltipPadding(const Recti & tooltipPadding);
Int32 getTabSeparation() const;
void setTabSeparation(const Int32 & tabSeparation);
FontStyleConfig getFontStyleConfig() const;
void setFontStyleConfig(const FontStyleConfig & fontConfig);
@@ -152,6 +134,8 @@ class EE_API UITheme : protected ResourceManager<UISkin> {
virtual WinMenuStyleConfig getWinMenuStyleConfig();
virtual DropDownListStyleConfig getDropDownListStyleConfig();
virtual WindowStyleConfig getWindowStyleConfig();
protected:
std::string mName;
Uint32 mNameHash;
@@ -162,7 +146,6 @@ class EE_API UITheme : protected ResourceManager<UISkin> {
ColorA mMenuFontColorOver;
ColorA mTooltipFontColor;
Recti mTooltipPadding;
Int32 mTabSeparation;
bool mUseDefaultThemeValues;
std::list<std::string> mUIElements;
std::list<std::string> mUIIcons;

View File

@@ -149,6 +149,27 @@ class DropDownListStyleConfig : public FontStyleConfig {
bool popUpToMainControl = false;
};
class WindowStyleConfig : public FontStyleConfig {
public:
WindowStyleConfig() {}
WindowStyleConfig( FontStyleConfig fontStyleConfig ) :
FontStyleConfig( fontStyleConfig )
{}
Uint32 winFlags = UI_WIN_DEFAULT_FLAGS;
Sizei decorationSize;
Sizei borderSize;
Sizei minWindowSize;
Vector2i buttonsPositionFixer;
Uint32 buttonsSeparation = 4;
Int32 minCornerDistance = 24;
ColorA titleFontColor = ColorA( 255, 255, 255, 255 );
Uint8 baseAlpha = 255;
bool decorationAutoSize = true;
bool borderAutoSize = true;
};
}}
#endif

View File

@@ -9,33 +9,23 @@ namespace EE { namespace UI {
class EE_API UIWindow : public UIComplexControl {
public:
static UIWindow * New();
class CreateParams : public UIComplexControl::CreateParams {
public:
inline CreateParams() :
UIComplexControl::CreateParams(),
WinFlags( UI_WIN_DEFAULT_FLAGS ),
ButtonsSeparation( 4 ),
MinCornerDistance( 24 ),
TitleFontColor( 255, 255, 255, 255 ),
BaseAlpha( 255 ),
DecorationAutoSize( true ),
BorderAutoSize( true )
UIComplexControl::CreateParams()
{
UITheme * theme = UIThemeManager::instance()->getDefaultTheme();
if ( NULL != theme ) {
windowStyleConfig = theme->getWindowStyleConfig();
}
}
inline ~CreateParams() {}
Uint32 WinFlags;
Sizei DecorationSize;
Sizei BorderSize;
Sizei MinWindowSize;
Vector2i ButtonsPositionFixer;
Uint32 ButtonsSeparation;
Int32 MinCornerDistance;
ColorA TitleFontColor;
Uint8 BaseAlpha;
bool DecorationAutoSize;
bool BorderAutoSize;
WindowStyleConfig windowStyleConfig;
};
UIWindow( const UIWindow::CreateParams& Params );
@@ -52,6 +42,10 @@ class EE_API UIWindow : public UIComplexControl {
UIControl * setSize( const Int32& Width, const Int32& Height );
UIWindow * setSizeWithDecoration( const Int32& Width, const Int32& Height );
UIWindow * setSizeWithDecoration( const Sizei& size );
const Sizei& getSize();
virtual void setTheme( UITheme * Theme );
@@ -103,6 +97,16 @@ class EE_API UIWindow : public UIComplexControl {
Uint32 getWinFlags() const;
UIWindow * setWinFlags(const Uint32 & winFlags);
WindowStyleConfig getStyleConfig() const;
UIWindow * setStyleConfig(const WindowStyleConfig & styleConfig);
UIWindow * setMinWindowSize( Sizei size );
UIWindow * setMinWindowSize( const Int32& width, const Int32& height );
const Sizei& getMinWindowSize();
protected:
class KeyboardShortcut {
public:
@@ -137,8 +141,7 @@ class EE_API UIWindow : public UIComplexControl {
RESIZE_TOPRIGHT
};
Uint32 mWinFlags;
WindowStyleConfig mStyleConfig;
UIControlAnim * mWindowDecoration;
UIControlAnim * mBorderLeft;
UIControlAnim * mBorderRight;
@@ -148,31 +151,16 @@ class EE_API UIWindow : public UIComplexControl {
UIComplexControl * mButtonClose;
UIComplexControl * mButtonMinimize;
UIComplexControl * mButtonMaximize;
UITextBox * mTitle;
UITextBox * mTitle;
UIControlAnim * mModalCtrl;
UIComplexControl * mModalCtrl;
Sizei mDecoSize;
Sizei mBorderSize;
Sizei mMinWindowSize;
Vector2i mNonMaxPos;
Sizei mNonMaxSize;
Vector2i mButtonsPositionFixer;
Uint32 mButtonsSeparation;
Int32 mMinCornerDistance;
UI_RESIZE_TYPE mResizeType;
Vector2i mResizePos;
ColorA mTitleFontColor;
KeyboardShortcuts mKbShortcuts;
Uint8 mBaseAlpha;
bool mDecoAutoSize;
bool mBorderAutoSize;
virtual void onSizeChange();
virtual void onAlphaChange();
@@ -203,7 +191,7 @@ class EE_API UIWindow : public UIComplexControl {
void internalSize( const Int32& w, const Int32& h );
void getMinWinSize();
void calcMinWinSize();
void fixTitleSize();

View File

@@ -328,9 +328,12 @@ void MapEditor::CreateSubTextureContainer( Int32 Width ) {
mSubTextureList->setSize( mSubTextureList->getSize().getWidth(), mSubTextureList->getRowHeight() * 9 + mSubTextureList->getContainerPadding().Top + mSubTextureList->getContainerPadding().Bottom );
mSubTextureList->addEventListener( UIEvent::EventOnItemSelected, cb::Make1( this, &MapEditor::OnSubTextureChange ) );
mGfxPreview = mTheme->createGfx( NULL, mSGCont, Sizei( Width, Width ), Vector2i( 0, mSubTextureList->getPosition().y + mSubTextureList->getSize().getHeight() + 4 ), UI_VALIGN_CENTER | UI_HALIGN_CENTER | UI_ANCHOR_RIGHT | UI_ANCHOR_TOP | UI_AUTO_FIT );
mGfxPreview->setBorderEnabled( true );
mGfxPreview->getBorder()->setColor( ColorA( 0, 0, 0, 200 ) );
mGfxPreview = UIGfx::New();
mGfxPreview->resetFlags( UI_VALIGN_CENTER | UI_HALIGN_CENTER | UI_ANCHOR_RIGHT | UI_ANCHOR_TOP | UI_AUTO_FIT )
->setParent( mSGCont )->setSize( Width, Width )
->setPosition( 0, mSubTextureList->getPosition().y + mSubTextureList->getSize().getHeight() + 4 );
mGfxPreview->setBorderEnabled( true )->setColor( ColorA( 0, 0, 0, 200 ) );
UIComplexControl::CreateParams DIParams;
DIParams.setParent( mSubTextureCont );
@@ -1014,7 +1017,11 @@ void MapEditor::MapMenuClick( const UIEvent * Event ) {
const String& txt = reinterpret_cast<UIMenuItem*> ( Event->getControl() )->getText();
if ( "New Texture Atlas..." == txt ) {
UIWindow * tWin = mTheme->createWindow( NULL, Sizei( 1024, 768 ), Vector2i(), UI_CONTROL_DEFAULT_FLAGS_CENTERED, UI_WIN_DEFAULT_FLAGS | UI_WIN_MAXIMIZE_BUTTON | UI_WIN_DRAGABLE_CONTAINER, Sizei( 1024, 768 ) );
UIWindow * tWin = UIWindow::New();
tWin->setSizeWithDecoration( 1024, 768 );
tWin->setWinFlags( UI_WIN_DEFAULT_FLAGS | UI_WIN_MAXIMIZE_BUTTON | UI_WIN_DRAGABLE_CONTAINER );
tWin->setMinWindowSize( 1024, 768 );
eeNew ( Tools::TextureAtlasEditor, ( tWin ) );
tWin->center();
tWin->show();

View File

@@ -20,7 +20,9 @@ MapLayerProperties::MapLayerProperties( MapLayer * Map, RefreshLayerListCb Cb )
if ( NULL == mUITheme )
return;
mUIWindow = mUITheme->createWindow( NULL, Sizei( 500, 500 ), Vector2i(), UI_CONTROL_DEFAULT_FLAGS_CENTERED, UI_WIN_DEFAULT_FLAGS | UI_WIN_MODAL, Sizei( 500, 500 ) );
mUIWindow = UIWindow::New();
mUIWindow->setSizeWithDecoration( 500, 500 )->setWinFlags( UI_WIN_DEFAULT_FLAGS | UI_WIN_MODAL )->setMinWindowSize( 500, 500 );
mUIWindow->addEventListener( UIEvent::EventOnWindowClose, cb::Make1( this, &MapLayerProperties::onWindowClose ) );
mUIWindow->setTitle( "Layer Properties" );

View File

@@ -19,7 +19,9 @@ MapObjectProperties::MapObjectProperties( GameObjectObject * Obj ) :
if ( NULL == mUITheme )
return;
mUIWindow = mUITheme->createWindow( NULL, Sizei( 500, 500 ), Vector2i(), UI_CONTROL_DEFAULT_FLAGS_CENTERED, UI_WIN_DEFAULT_FLAGS | UI_WIN_MODAL, Sizei( 500, 500 ) );
mUIWindow = UIWindow::New();
mUIWindow->setSizeWithDecoration( 500, 500 )->setWinFlags( UI_WIN_DEFAULT_FLAGS | UI_WIN_MODAL )->setMinWindowSize( 500, 500 );
mUIWindow->addEventListener( UIEvent::EventOnWindowClose, cb::Make1( this, &MapObjectProperties::onWindowClose ) );
mUIWindow->setTitle( "Object Properties" );

View File

@@ -18,7 +18,9 @@ TileMapProperties::TileMapProperties( TileMap * Map ) :
if ( NULL == mUITheme )
return;
mUIWindow = mUITheme->createWindow( NULL, Sizei( 500, 500 ), Vector2i(), UI_CONTROL_DEFAULT_FLAGS_CENTERED, UI_WIN_DEFAULT_FLAGS | UI_WIN_MODAL, Sizei( 500, 500 ) );
mUIWindow = UIWindow::New();
mUIWindow->setSizeWithDecoration( 500, 500 )->setWinFlags( UI_WIN_DEFAULT_FLAGS | UI_WIN_MODAL )->setMinWindowSize( 500, 500 );
mUIWindow->addEventListener( UIEvent::EventOnWindowClose, cb::Make1( this, &TileMapProperties::onWindowClose ) );
mUIWindow->setTitle( "Map Properties" );

View File

@@ -14,7 +14,9 @@ UIGOTypeNew::UIGOTypeNew( cb::Callback2<void, std::string, Uint32> Cb ) :
if ( NULL == mUITheme )
return;
mUIWindow = mUITheme->createWindow( NULL, Sizei( 278, 114 ), Vector2i(), UI_CONTROL_DEFAULT_FLAGS_CENTERED, UI_WIN_DEFAULT_FLAGS | UI_WIN_MODAL, Sizei( 278, 114 ) );
mUIWindow = UIWindow::New();
mUIWindow->setSizeWithDecoration( 278, 114 )->setWinFlags( UI_WIN_DEFAULT_FLAGS | UI_WIN_MODAL )->setMinWindowSize( 278, 114 );
mUIWindow->addEventListener( UIEvent::EventOnWindowClose, cb::Make1( this, &UIGOTypeNew::onWindowClose ) );
mUIWindow->setTitle( "Add GameObject Type" );

View File

@@ -16,7 +16,9 @@ UIMapLayerNew::UIMapLayerNew( UIMap * Map, EE_LAYER_TYPE Type, NewLayerCb newLay
if ( NULL == mTheme )
return;
mUIWindow = mTheme->createWindow( NULL, Sizei( 278, 114 ), Vector2i(), UI_CONTROL_DEFAULT_FLAGS_CENTERED, UI_WIN_DEFAULT_FLAGS | UI_WIN_MODAL, Sizei( 278, 114 ) );
mUIWindow = UIWindow::New();
mUIWindow->setSizeWithDecoration( 278, 114 )->setWinFlags( UI_WIN_DEFAULT_FLAGS | UI_WIN_MODAL )->setMinWindowSize( 278, 114 );
mUIWindow->addEventListener( UIEvent::EventOnWindowClose, cb::Make1( this, &UIMapLayerNew::onWindowClose ) );
if ( MAP_LAYER_TILED == mType )

View File

@@ -17,7 +17,11 @@ UIMapNew::UIMapNew( UIMap * Map, cb::Callback0<void> NewMapCb, bool ResizeMap )
if ( NULL == mTheme )
return;
mUIWindow = mTheme->createWindow( NULL, Sizei( 320, 380 ), Vector2i(), UI_CONTROL_DEFAULT_FLAGS_CENTERED, UI_WIN_CLOSE_BUTTON | UI_WIN_USE_DEFAULT_BUTTONS_ACTIONS | UI_WIN_SHARE_ALPHA_WITH_CHILDS | UI_WIN_MODAL, Sizei( 320, 380 ) );
mUIWindow = UIWindow::New();
mUIWindow->setSizeWithDecoration( 320, 380 )
->setWinFlags( UI_WIN_CLOSE_BUTTON | UI_WIN_USE_DEFAULT_BUTTONS_ACTIONS | UI_WIN_SHARE_ALPHA_WITH_CHILDS | UI_WIN_MODAL )
->setMinWindowSize( 320, 380 );
mUIWindow->addEventListener( UIEvent::EventOnWindowClose, cb::Make1( this, &UIMapNew::onWindowClose ) );
if ( !mResizeMap ) {

View File

@@ -48,11 +48,12 @@ TextureAtlasEditor::TextureAtlasEditor( UIWindow * AttatchTo, const TGEditorClos
InitY +=30;
mSpinOffX = eeNew( UISpinBox, () );
mSpinOffX = UISpinBox::New();
mSpinOffX->setParent( mUIContainer )->setSize( 100, 0 )->setVisible( true )->setEnabled( true );
mSpinOffX->setMinValue( -32000 );
mSpinOffX->setMaxValue( 32000 );
mSpinOffX->setPosition( mUIContainer->getSize().getWidth() - mSpinOffX->getSize().getWidth() - 10, InitY );
mSpinOffX->setAnchors( UI_ANCHOR_TOP | UI_ANCHOR_RIGHT );
mSpinOffX->addEventListener( UIEvent::EventOnValueChange, cb::Make1( this, &TextureAtlasEditor::onOffXChange ) );
TxtBox = createTextBox( Vector2i(), "Offset X:" );
@@ -60,31 +61,34 @@ TextureAtlasEditor::TextureAtlasEditor( UIWindow * AttatchTo, const TGEditorClos
InitY +=30;
mSpinOffY = eeNew( UISpinBox, () );
mSpinOffY = UISpinBox::New();
mSpinOffY->setParent( mUIContainer )->setSize( 100, 0 )->setVisible( true )->setEnabled( true );
mSpinOffY->setMinValue( -32000 );
mSpinOffY->setMaxValue( 32000 );
mSpinOffY->setPosition( mUIContainer->getSize().getWidth() - mSpinOffY->getSize().getWidth() - 10, InitY );
mSpinOffY->setAnchors( UI_ANCHOR_TOP | UI_ANCHOR_RIGHT );
mSpinOffY->addEventListener( UIEvent::EventOnValueChange, cb::Make1( this, &TextureAtlasEditor::onOffYChange ) );
TxtBox = createTextBox( Vector2i(), "Offset Y:" );
TxtBox->setPosition( mSpinOffY->getPosition().x - 10 - TxtBox->getSize().getWidth(), InitY );
InitY +=30;
mSpinDestW = eeNew( UISpinBox, () );
mSpinDestW = UISpinBox::New();
mSpinDestW->setParent( mUIContainer )->setSize( 100, 0 )->setVisible( true )->setEnabled( true );
mSpinDestW->setMaxValue( 32000 );
mSpinDestW->setPosition( mUIContainer->getSize().getWidth() - mSpinDestW->getSize().getWidth() - 10, InitY );
mSpinDestW->setAnchors( UI_ANCHOR_TOP | UI_ANCHOR_RIGHT );
mSpinDestW->addEventListener( UIEvent::EventOnValueChange, cb::Make1( this, &TextureAtlasEditor::onDestWChange ) );
TxtBox = createTextBox( Vector2i(), "Dest. Width:" );
TxtBox->setPosition( mSpinDestW->getPosition().x - 10 - TxtBox->getSize().getWidth(), InitY );
InitY +=30;
mSpinDestH = eeNew( UISpinBox, () );
mSpinDestH = UISpinBox::New();
mSpinDestH->setParent( mUIContainer )->setSize( 100, 0 )->setVisible( true )->setEnabled( true );
mSpinDestH->setMaxValue( 32000 );
mSpinDestH->setPosition( mUIContainer->getSize().getWidth() - mSpinDestH->getSize().getWidth() - 10, InitY );
mSpinDestH->setAnchors( UI_ANCHOR_TOP | UI_ANCHOR_RIGHT );
mSpinDestH->addEventListener( UIEvent::EventOnValueChange, cb::Make1( this, &TextureAtlasEditor::onDestHChange ) );
TxtBox = createTextBox( Vector2i(), "Dest. Height:" );
TxtBox->setPosition( mSpinDestH->getPosition().x - 10 - TxtBox->getSize().getWidth(), InitY );

View File

@@ -16,7 +16,9 @@ TextureAtlasNew::TextureAtlasNew( TGCreateCb NewTGCb ) :
if ( NULL == mTheme )
return;
mUIWindow = mTheme->createWindow( NULL, Sizei( 378, 244 ), Vector2i(), UI_CONTROL_DEFAULT_FLAGS_CENTERED, UI_WIN_DEFAULT_FLAGS | UI_WIN_MODAL );
mUIWindow = UIWindow::New();
mUIWindow->setSizeWithDecoration( 378, 244 )->setWinFlags( UI_WIN_DEFAULT_FLAGS | UI_WIN_MODAL )->setMinWindowSize( 378, 244 );
mUIWindow->addEventListener( UIEvent::EventOnWindowClose, cb::Make1( this, &TextureAtlasNew::windowClose ) );
mUIWindow->setTitle( "New Texture Atlas" );
@@ -67,7 +69,7 @@ TextureAtlasNew::TextureAtlasNew( TGCreateCb NewTGCb ) :
mComboHeight->getListBox()->setSelected( "512" );
createTxtBox( Vector2i( 10, 110 ), "Space between sub textures (pixels):" );
mPixelSpace = eeNew( UISpinBox, () );
mPixelSpace = UISpinBox::New();
mPixelSpace->setParent( mUIWindow->getContainer() )->setSize( 100, 0 )->setPosition( PosX, 110 )->setVisible( true )->setEnabled( true );
createTxtBox( Vector2i( 10, 140 ), "Texture Atlas Folder Path:" );

View File

@@ -25,11 +25,11 @@ UICommonDialog::UICommonDialog( const UICommonDialog::CreateParams& Params ) :
mRealSize.y = PixelDensity::dpToPxI( CDLG_MIN_HEIGHT );
}
if ( mMinWindowSize.getWidth() < CDLG_MIN_WIDTH )
mMinWindowSize.setWidth( CDLG_MIN_WIDTH );
if ( mStyleConfig.minWindowSize.getWidth() < CDLG_MIN_WIDTH )
mStyleConfig.minWindowSize.setWidth( CDLG_MIN_WIDTH );
if ( mMinWindowSize.getHeight() < CDLG_MIN_HEIGHT )
mMinWindowSize.setHeight( CDLG_MIN_HEIGHT );
if ( mStyleConfig.minWindowSize.getHeight() < CDLG_MIN_HEIGHT )
mStyleConfig.minWindowSize.setHeight( CDLG_MIN_HEIGHT );
mContainer->setSize( mSize );

View File

@@ -3,6 +3,10 @@
namespace EE { namespace UI {
UIComplexControl * UIComplexControl::New() {
return eeNew( UIComplexControl, () );
}
UIComplexControl::UIComplexControl( const UIComplexControl::CreateParams& Params ) :
UIControlAnim( Params ),
mTooltip( NULL ),

View File

@@ -9,6 +9,10 @@
namespace EE { namespace UI {
UIControl *UIControl::New() {
return eeNew( UIControl, () );
}
UIControl::UIControl( const CreateParams& Params ) :
mPos( Params.Pos ),
mRealPos( Params.Pos.x * PixelDensity::getPixelDensity(), Params.Pos.y * PixelDensity::getPixelDensity() ),
@@ -562,22 +566,24 @@ Uint32 UIControl::getHorizontalAlign() const {
return mFlags & UI_HALIGN_MASK;
}
void UIControl::setHorizontalAlign( Uint32 halign ) {
UIControl * UIControl::setHorizontalAlign( Uint32 halign ) {
mFlags &= ~UI_HALIGN_MASK;
mFlags |= halign & UI_HALIGN_MASK;
onAlignChange();
return this;
}
Uint32 UIControl::getVerticalAlign() const {
return mFlags & UI_VALIGN_MASK;
}
void UIControl::setVerticalAlign( Uint32 valign ) {
UIControl * UIControl::setVerticalAlign( Uint32 valign ) {
mFlags &= ~UI_VALIGN_MASK;
mFlags |= valign & UI_VALIGN_MASK;
onAlignChange();
return this;
}
UIBackground * UIControl::setBackgroundFillEnabled( bool enabled ) {
@@ -658,8 +664,8 @@ UIControl * UIControl::unsetFlags(const Uint32 & flags) {
return this;
}
UIControl *UIControl::resetFlags() {
mFlags = 0;
UIControl *UIControl::resetFlags( Uint32 newFlags ) {
mFlags = newFlags;
return this;
}

View File

@@ -6,6 +6,10 @@
namespace EE { namespace UI {
UIControlAnim *UIControlAnim::New() {
return eeNew( UIControlAnim, () );
}
UIControlAnim::UIControlAnim( const CreateParams& Params ) :
UIDragable( Params ),
mAngle(0.f),

View File

@@ -21,7 +21,6 @@ UIDefaultTheme::UIDefaultTheme( const std::string& name, const std::string& Abbr
setMenuFontColorOver( ColorA( 255, 255, 255, 255 ) );
setTooltipFontColor( ColorA( 0, 0, 0, 255 ) );
setTooltipPadding( Recti( 4, 6, 4, 6) );
setTabSeparation( -1 );
}
TabWidgetStyleConfig UIDefaultTheme::getTabWidgetStyleConfig() {
@@ -49,6 +48,14 @@ WinMenuStyleConfig UIDefaultTheme::getWinMenuStyleConfig() {
return winMenuStyleConfig;
}
WindowStyleConfig UIDefaultTheme::getWindowStyleConfig() {
WindowStyleConfig windowStyleConfig = UITheme::getWindowStyleConfig();
windowStyleConfig.winFlags |= UI_WIN_DRAW_SHADOW;
windowStyleConfig.buttonsPositionFixer.x = -2;
windowStyleConfig.titleFontColor = ColorA( 230, 230, 230, 255 );
return windowStyleConfig;
}
UIPopUpMenu * UIDefaultTheme::createPopUpMenu( UIControl * Parent, const Sizei& Size, const Vector2i& Pos, const Uint32& Flags, Recti PaddingContainer, Uint32 MinWidth, Uint32 MinSpaceForIcons, Uint32 MinRightMargin ) {
UIPopUpMenu::CreateParams MenuParams;
MenuParams.setParent( Parent );
@@ -70,44 +77,24 @@ UIPopUpMenu * UIDefaultTheme::createPopUpMenu( UIControl * Parent, const Sizei&
return eeNew( UIPopUpMenu, ( MenuParams ) );
}
UIWindow * UIDefaultTheme::createWindow( UIControl * Parent, const Sizei& Size, const Vector2i& Pos, const Uint32& Flags, Uint32 WinFlags, Sizei MinWindowSize, Uint8 BaseAlpha ) {
UIWindow::CreateParams WinParams;
WinParams.setParent( Parent );
WinParams.setPosition( Pos );
WinParams.setSize( Size );
WinParams.Flags = Flags;
WinParams.WinFlags = WinFlags;
WinParams.MinWindowSize = MinWindowSize;
WinParams.BaseAlpha = BaseAlpha;
if ( getUseDefaultThemeValues() ) {
WinParams.Flags |= UI_DRAW_SHADOW;
WinParams.WinFlags |= UI_WIN_DRAW_SHADOW;
WinParams.ButtonsPositionFixer.x = -2;
WinParams.TitleFontColor = ColorA( 230, 230, 230, 255 );
}
return eeNew( UIWindow, ( WinParams ) );
}
UICommonDialog * UIDefaultTheme::createCommonDialog( UIControl * Parent, const Sizei& Size, const Vector2i& Pos, const Uint32& Flags, Uint32 WinFlags, Sizei MinWindowSize, Uint8 BaseAlpha, Uint32 CDLFlags, std::string DefaultFilePattern, std::string DefaultDirectory ) {
UICommonDialog::CreateParams DLGParams;
DLGParams.setParent( Parent );
DLGParams.setPosition( Pos );
DLGParams.setSize( Size );
DLGParams.Flags = Flags;
DLGParams.WinFlags = WinFlags;
DLGParams.MinWindowSize = MinWindowSize;
DLGParams.BaseAlpha = BaseAlpha;
DLGParams.windowStyleConfig.winFlags = WinFlags;
DLGParams.windowStyleConfig.minWindowSize = MinWindowSize;
DLGParams.windowStyleConfig.baseAlpha = BaseAlpha;
DLGParams.DefaultDirectory = DefaultDirectory;
DLGParams.DefaultFilePattern = DefaultFilePattern;
DLGParams.CDLFlags = CDLFlags;
if ( getUseDefaultThemeValues() ) {
DLGParams.Flags |= UI_DRAW_SHADOW;
DLGParams.WinFlags |= UI_WIN_DRAW_SHADOW;
DLGParams.ButtonsPositionFixer.x = -2;
DLGParams.TitleFontColor = ColorA( 230, 230, 230, 255 );
DLGParams.windowStyleConfig.winFlags |= UI_WIN_DRAW_SHADOW;
DLGParams.windowStyleConfig.buttonsPositionFixer.x = -2;
DLGParams.windowStyleConfig.titleFontColor = ColorA( 230, 230, 230, 255 );
}
return eeNew( UICommonDialog, ( DLGParams ) );
@@ -119,17 +106,17 @@ UIMessageBox * UIDefaultTheme::createMessageBox( UI_MSGBOX_TYPE Type, const Stri
MsgBoxParams.setPosition( Pos );
MsgBoxParams.setSize( Size );
MsgBoxParams.Flags = Flags;
MsgBoxParams.WinFlags = WinFlags;
MsgBoxParams.MinWindowSize = MinWindowSize;
MsgBoxParams.BaseAlpha = BaseAlpha;
MsgBoxParams.windowStyleConfig.winFlags = WinFlags;
MsgBoxParams.windowStyleConfig.minWindowSize = MinWindowSize;
MsgBoxParams.windowStyleConfig.baseAlpha = BaseAlpha;
MsgBoxParams.Type = Type;
MsgBoxParams.Message = Message;
if ( getUseDefaultThemeValues() ) {
MsgBoxParams.Flags |= UI_DRAW_SHADOW;
MsgBoxParams.WinFlags |= UI_WIN_DRAW_SHADOW;
MsgBoxParams.ButtonsPositionFixer.x = -2;
MsgBoxParams.TitleFontColor = ColorA( 230, 230, 230, 255 );
MsgBoxParams.windowStyleConfig.winFlags |= UI_WIN_DRAW_SHADOW;
MsgBoxParams.windowStyleConfig.buttonsPositionFixer.x = -2;
MsgBoxParams.windowStyleConfig.titleFontColor = ColorA( 230, 230, 230, 255 );
}
return eeNew( UIMessageBox, ( MsgBoxParams ) );

View File

@@ -4,6 +4,10 @@
namespace EE { namespace UI {
UIDragable * UIDragable::New() {
return eeNew( UIDragable, () );
}
UIDragable::UIDragable( const UIControl::CreateParams& Params ) :
UIControl( Params ),
mDragButton( EE_BUTTON_LMASK )

View File

@@ -3,6 +3,10 @@
namespace EE { namespace UI {
UIGfx *UIGfx::New() {
return eeNew( UIGfx, () );
}
UIGfx::UIGfx( const UIGfx::CreateParams& Params ) :
UIComplexControl( Params ),
mSubTexture( Params.SubTexture ),
@@ -181,6 +185,11 @@ void UIGfx::onSizeChange() {
UIControlAnim::onSizeChange();
}
void UIGfx::onAlignChange() {
autoSize();
autoAlign();
}
const Vector2i& UIGfx::getAlignOffset() const {
return mAlignOffset;
}

View File

@@ -4,6 +4,10 @@
namespace EE { namespace UI {
UIGridCell *UIGridCell::New() {
return eeNew( UIGridCell, () );
}
UIGridCell::UIGridCell( UIGridCell::CreateParams& Params ) :
UIComplexControl( Params )
{

View File

@@ -53,10 +53,10 @@ void UIManager::init( Uint32 Flags, EE::Window::Window * window ) {
Params.setPosition( 0, 0 );
Params.setSize( (Float)Engine::instance()->getWidth() / PixelDensity::getPixelDensity(), (Float)Engine::instance()->getHeight() / PixelDensity::getPixelDensity() );
Params.Flags = UI_CONTROL_DEFAULT_FLAGS | UI_REPORT_SIZE_CHANGE_TO_CHILDS;
Params.WinFlags = UI_WIN_NO_BORDER | UI_WIN_RESIZEABLE;
Params.MinWindowSize = Sizei( 0, 0 );
Params.DecorationSize = Sizei( 0, 0 );
Params.DecorationAutoSize = false;
Params.windowStyleConfig.winFlags = UI_WIN_NO_BORDER | UI_WIN_RESIZEABLE;
Params.windowStyleConfig.minWindowSize = Sizei( 0, 0 );
Params.windowStyleConfig.decorationSize = Sizei( 0, 0 );
Params.windowStyleConfig.decorationAutoSize = false;
mControl = eeNew( UIWindow, ( Params ) );
mControl->setVisible( true );

View File

@@ -145,7 +145,7 @@ UIPushButton * UIMessageBox::getButtonCancel() const {
}
void UIMessageBox::autoSize() {
Sizei nSize( mTextBox->getTextWidth() + 48, mTextBox->getTextHeight() + mButtonOK->getSize().getHeight() + mDecoSize.getHeight() + 8 );
Sizei nSize( mTextBox->getTextWidth() + 48, mTextBox->getTextHeight() + mButtonOK->getSize().getHeight() + mStyleConfig.decorationSize.getHeight() + 8 );
if ( !( nSize.getWidth() > getContainer()->getSize().getWidth() ) ) {
nSize.x = getContainer()->getSize().getWidth();
@@ -158,7 +158,7 @@ void UIMessageBox::autoSize() {
if ( nSize.x != getContainer()->getSize().getWidth() || nSize.y != getContainer()->getSize().getHeight() ) {
setSize( nSize );
mMinWindowSize = nSize;
mStyleConfig.minWindowSize = nSize;
}
}

View File

@@ -3,6 +3,10 @@
namespace EE { namespace UI {
UISpinBox * UISpinBox::New() {
return eeNew( UISpinBox, () );
}
UISpinBox::UISpinBox( const UISpinBox::CreateParams& Params ) :
UIComplexControl( Params ),
mMinValue( 0.f ),

View File

@@ -3,6 +3,10 @@
namespace EE { namespace UI {
UISprite * UISprite::New() {
return eeNew( UISprite, () );
}
UISprite::UISprite( const UISprite::CreateParams& Params ) :
UIComplexControl( Params ),
mSprite( Params.Sprite ),

View File

@@ -169,11 +169,12 @@ void UITextBox::shrinkText( const Uint32& MaxWidth ) {
}
mTextCache->getFont()->shrinkText( mTextCache->getText(), MaxWidth );
mTextCache->cacheWidth();
}
void UITextBox::autoSize() {
if ( ( mFlags & UI_AUTO_SIZE ) ) {
setPixelsSize( Sizei( (int)mTextCache->getTextWidth(), (int)mTextCache->getTextHeight() ) );
setInternalPixelsSize( Sizei( (int)mTextCache->getTextWidth(), (int)mTextCache->getTextHeight() ) );
}
}

View File

@@ -5,6 +5,10 @@
namespace EE { namespace UI {
UITextEdit *UITextEdit::New() {
return eeNew( UITextEdit, () );
}
UITextEdit::UITextEdit( UITextEdit::CreateParams& Params ) :
UIComplexControl( Params ),
mTextInput( NULL ),

View File

@@ -34,7 +34,7 @@ UITextInput::UITextInput() :
mAllowEditing( true ),
mShowingWait( true )
{
setFlags( UI_CLIP_ENABLE | UI_AUTO_PADDING | UI_AUTO_SIZE | UI_TEXT_SELECTION_ENABLED );
resetFlags( UI_HALIGN_LEFT | UI_VALIGN_TOP | UI_CLIP_ENABLE | UI_AUTO_PADDING | UI_AUTO_SIZE | UI_TEXT_SELECTION_ENABLED );
mTextBuffer.start();
mTextBuffer.setActive( false );

View File

@@ -6,15 +6,6 @@
namespace EE { namespace UI {
UITextInputPassword::UITextInputPassword( const UITextInput::CreateParams& Params ) :
UITextInput( Params )
{
mPassCache = eeNew( TextCache, () );
setFontStyleConfig( mFontStyleConfig );
autoAlign();
}
UITextInputPassword::UITextInputPassword() :
UITextInput()
{
@@ -24,6 +15,10 @@ UITextInputPassword::UITextInputPassword() :
autoAlign();
}
UITextInputPassword::~UITextInputPassword() {
eeSAFE_DELETE( mPassCache );
}
void UITextInputPassword::draw() {
if ( mVisible && 0.f != mAlpha ) {
UIControlAnim::draw();

View File

@@ -388,36 +388,6 @@ SubTexture * UITheme::getIconByName( const std::string& name ) {
return NULL;
}
UIGfx * UITheme::createGfx( SubTexture * SubTexture, UIControl * Parent, const Sizei& Size, const Vector2i& Pos, const Uint32& Flags, ColorA SubTextureColor, EE_RENDER_MODE SubTextureRender ) {
UIGfx::CreateParams GfxParams;
GfxParams.setParent( Parent );
GfxParams.setPosition( Pos );
GfxParams.setSize( Size );
GfxParams.Flags = Flags;
GfxParams.SubTexture = SubTexture;
GfxParams.SubTextureColor = SubTextureColor;
GfxParams.SubTextureRender = SubTextureRender;
UIGfx * Gfx = eeNew( UIGfx, ( GfxParams ) );
Gfx->setVisible( true );
Gfx->setEnabled( true );
return Gfx;
}
UISprite * UITheme::createSprite( Sprite * Sprite, UIControl * Parent, const Sizei& Size, const Vector2i& Pos, const Uint32& Flags, bool DealloSprite, EE_RENDER_MODE SpriteRender ) {
UISprite::CreateParams SpriteParams;
SpriteParams.setParent( Parent );
SpriteParams.setPosition( Pos );
SpriteParams.setSize( Size );
SpriteParams.Flags = Flags;
SpriteParams.Sprite = Sprite;
SpriteParams.SpriteRender = SpriteRender;
SpriteParams.DeallocSprite = DealloSprite;
UISprite * Spr = eeNew( UISprite, ( SpriteParams ) );
Spr->setVisible( true );
Spr->setEnabled( true );
return Spr;
}
UICheckBox * UITheme::createCheckBox( UIControl * Parent, const Sizei& Size, const Vector2i& Pos, const Uint32& Flags ) {
UICheckBox::CreateParams CheckBoxParams;
CheckBoxParams.setParent( Parent );
@@ -430,18 +400,6 @@ UICheckBox * UITheme::createCheckBox( UIControl * Parent, const Sizei& Size, con
return Ctrl;
}
UIRadioButton * UITheme::createRadioButton( UIControl * Parent, const Sizei& Size, const Vector2i& Pos, const Uint32& Flags ) {
UIRadioButton::CreateParams RadioButtonParams;
RadioButtonParams.setParent( Parent );
RadioButtonParams.setPosition( Pos );
RadioButtonParams.setSize( Size );
RadioButtonParams.Flags = Flags;
UIRadioButton * Ctrl = eeNew( UIRadioButton, ( RadioButtonParams ) );
Ctrl->setVisible( true );
Ctrl->setEnabled( true );
return Ctrl;
}
UITextBox * UITheme::createTextBox( const String& Text, UIControl * Parent, const Sizei& Size, const Vector2i& Pos, const Uint32& Flags ) {
UITextBox::CreateParams TextBoxParams;
TextBoxParams.setParent( Parent );
@@ -455,21 +413,6 @@ UITextBox * UITheme::createTextBox( const String& Text, UIControl * Parent, cons
return Ctrl;
}
UITextEdit * UITheme::createTextEdit( UIControl * Parent, const Sizei& Size, const Vector2i& Pos, const Uint32& Flags, UI_SCROLLBAR_MODE HScrollBar, UI_SCROLLBAR_MODE VScrollBar, bool WordWrap ) {
UITextEdit::CreateParams TextEditParams;
TextEditParams.setParent( Parent );
TextEditParams.setPosition( Pos );
TextEditParams.setSize( Size );
TextEditParams.Flags = Flags;
TextEditParams.HScrollBar = HScrollBar;
TextEditParams.VScrollBar = VScrollBar;
TextEditParams.WordWrap = WordWrap;
UITextEdit * Ctrl = eeNew( UITextEdit, ( TextEditParams ) );
Ctrl->setVisible( true );
Ctrl->setEnabled( true );
return Ctrl;
}
UITextInput * UITheme::createTextInput( UIControl * Parent, const Sizei& Size, const Vector2i& Pos, const Uint32& Flags, bool SupportFreeEditing, Uint32 MaxLength ) {
UITextInput::CreateParams TextInputParams;
TextInputParams.setParent( Parent );
@@ -484,20 +427,6 @@ UITextInput * UITheme::createTextInput( UIControl * Parent, const Sizei& Size, c
return Ctrl;
}
UITextInputPassword * UITheme::createTextInputPassword( UIControl * Parent, const Sizei& Size, const Vector2i& Pos, const Uint32& Flags, bool SupportFreeEditing, Uint32 MaxLength ) {
UITextInput::CreateParams TextInputParams;
TextInputParams.setParent( Parent );
TextInputParams.setPosition( Pos );
TextInputParams.setSize( Size );
TextInputParams.Flags = Flags;
TextInputParams.SupportFreeEditing = SupportFreeEditing;
TextInputParams.MaxLength = MaxLength;
UITextInputPassword * Ctrl = eeNew( UITextInputPassword, ( TextInputParams ) );
Ctrl->setVisible( true );
Ctrl->setEnabled( true );
return Ctrl;
}
UISpinBox * UITheme::createSpinBox( UIControl * Parent, const Sizei& Size, const Vector2i& Pos, const Uint32& Flags, Float DefaultValue, bool AllowDotsInNumbers ) {
UISpinBox::CreateParams SpinBoxParams;
SpinBoxParams.setParent( Parent );
@@ -557,23 +486,6 @@ UIListBox * UITheme::createListBox( UIControl * Parent, const Sizei& Size, const
return Ctrl;
}
UIMenu * UITheme::createMenu( UIControl * Parent, const Sizei& Size, const Vector2i& Pos, const Uint32& Flags, Recti PaddingContainer, Uint32 MinWidth, Uint32 MinSpaceForIcons, Uint32 MinRightMargin ) {
UIMenu::CreateParams MenuParams;
MenuParams.setParent( Parent );
MenuParams.setPosition( Pos );
MenuParams.setSize( Size );
MenuParams.Flags = Flags;
MenuParams.PaddingContainer = PaddingContainer;
MenuParams.MinWidth = MinWidth;
MenuParams.MinSpaceForIcons = MinSpaceForIcons;
MenuParams.MinRightMargin = MinRightMargin;
UIMenu * Ctrl = eeNew( UIMenu, ( MenuParams ) );
Ctrl->setVisible( true );
Ctrl->setEnabled( true );
return Ctrl;
}
UIPopUpMenu * UITheme::createPopUpMenu( UIControl * Parent, const Sizei& Size, const Vector2i& Pos, const Uint32& Flags, Recti PaddingContainer, Uint32 MinWidth, Uint32 MinSpaceForIcons, Uint32 MinRightMargin ) {
UIPopUpMenu::CreateParams MenuParams;
MenuParams.setParent( Parent );
@@ -625,27 +537,15 @@ UISelectButton * UITheme::createSelectButton( UIControl * Parent, const Sizei& S
return Ctrl;
}
UIWindow * UITheme::createWindow( UIControl * Parent, const Sizei& Size, const Vector2i& Pos, const Uint32& Flags, Uint32 WinFlags, Sizei MinWindowSize, Uint8 BaseAlpha ) {
UIWindow::CreateParams WinParams;
WinParams.setParent( Parent );
WinParams.setPosition( Pos );
WinParams.setSize( Size );
WinParams.Flags = Flags;
WinParams.WinFlags = WinFlags;
WinParams.MinWindowSize = MinWindowSize;
WinParams.BaseAlpha = BaseAlpha;
return eeNew( UIWindow, ( WinParams ) );
}
UICommonDialog * UITheme::createCommonDialog( UIControl * Parent, const Sizei& Size, const Vector2i& Pos, const Uint32& Flags, Uint32 WinFlags, Sizei MinWindowSize, Uint8 BaseAlpha, Uint32 CDLFlags, std::string DefaultFilePattern, std::string DefaultDirectory ) {
UICommonDialog::CreateParams DLGParams;
DLGParams.setParent( Parent );
DLGParams.setPosition( Pos );
DLGParams.setSize( Size );
DLGParams.Flags = Flags;
DLGParams.WinFlags = WinFlags;
DLGParams.MinWindowSize = MinWindowSize;
DLGParams.BaseAlpha = BaseAlpha;
DLGParams.windowStyleConfig.winFlags = WinFlags;
DLGParams.windowStyleConfig.minWindowSize = MinWindowSize;
DLGParams.windowStyleConfig.baseAlpha = BaseAlpha;
DLGParams.DefaultDirectory = DefaultDirectory;
DLGParams.DefaultFilePattern = DefaultFilePattern;
DLGParams.CDLFlags = CDLFlags;
@@ -658,9 +558,9 @@ UIMessageBox * UITheme::createMessageBox( UI_MSGBOX_TYPE Type, const String& Mes
MsgBoxParams.setPosition( Pos );
MsgBoxParams.setSize( Size );
MsgBoxParams.Flags = Flags;
MsgBoxParams.WinFlags = WinFlags;
MsgBoxParams.MinWindowSize = MinWindowSize;
MsgBoxParams.BaseAlpha = BaseAlpha;
MsgBoxParams.windowStyleConfig.winFlags = WinFlags;
MsgBoxParams.windowStyleConfig.minWindowSize = MinWindowSize;
MsgBoxParams.windowStyleConfig.baseAlpha = BaseAlpha;
MsgBoxParams.Type = Type;
MsgBoxParams.Message = Message;
return eeNew( UIMessageBox, ( MsgBoxParams ) );
@@ -698,14 +598,6 @@ void UITheme::setTooltipPadding(const Recti & tooltipPadding) {
mTooltipPadding = tooltipPadding;
}
Int32 UITheme::getTabSeparation() const {
return mTabSeparation;
}
void UITheme::setTabSeparation(const Int32 & tabSeparation) {
mTabSeparation = tabSeparation;
}
void UITheme::setFontStyleConfig(const FontStyleConfig & fontConfig) {
mFontStyleConfig = fontConfig;
}
@@ -726,6 +618,10 @@ DropDownListStyleConfig UITheme::getDropDownListStyleConfig() {
return DropDownListStyleConfig( getFontStyleConfig() );
}
WindowStyleConfig UITheme::getWindowStyleConfig() {
return WindowStyleConfig( getFontStyleConfig() );
}
FontStyleConfig UITheme::getFontStyleConfig() const {
return mFontStyleConfig;
}

View File

@@ -4,52 +4,13 @@
namespace EE { namespace UI {
UIWindow::UIWindow( const UIWindow::CreateParams& Params ) :
UIComplexControl( Params ),
mWinFlags( Params.WinFlags ),
mWindowDecoration( NULL ),
mBorderLeft( NULL ),
mBorderRight( NULL ),
mBorderBottom( NULL ),
mButtonClose( NULL ),
mButtonMinimize( NULL ),
mButtonMaximize( NULL ),
mTitle( NULL ),
mModalCtrl( NULL ),
mDecoSize( Params.DecorationSize ),
mBorderSize( Params.BorderSize ),
mMinWindowSize( Params.MinWindowSize ),
mButtonsPositionFixer( Params.ButtonsPositionFixer ),
mButtonsSeparation( Params.ButtonsSeparation ),
mMinCornerDistance( Params.MinCornerDistance ),
mResizeType( RESIZE_NONE ),
mTitleFontColor( Params.TitleFontColor ),
mBaseAlpha( Params.BaseAlpha ),
mDecoAutoSize( Params.DecorationAutoSize ),
mBorderAutoSize( Params.BorderAutoSize )
{
UIManager::instance()->windowAdd( this );
UIComplexControl::CreateParams tcParams;
tcParams.setParent( this );
tcParams.Flags |= UI_REPORT_SIZE_CHANGE_TO_CHILDS;
mContainer = eeNew( UIComplexControl, ( tcParams ) );
mContainer->setEnabled( true );
mContainer->setVisible( true );
mContainer->setSize( mSize );
mContainer->addEventListener( UIEvent::EventOnPosChange, cb::Make1( this, &UIWindow::onContainerPosChange ) );
updateWinFlags();
setAlpha( mBaseAlpha );
applyDefaultTheme();
UIWindow * UIWindow::New() {
return eeNew( UIWindow, () );
}
UIWindow::UIWindow() :
UIComplexControl(),
mWinFlags( UI_WIN_DEFAULT_FLAGS ),
UIWindow::UIWindow( const UIWindow::CreateParams& Params ) :
UIComplexControl( Params ),
mStyleConfig( Params.windowStyleConfig ),
mWindowDecoration( NULL ),
mBorderLeft( NULL ),
mBorderRight( NULL ),
@@ -59,31 +20,55 @@ UIWindow::UIWindow() :
mButtonMaximize( NULL ),
mTitle( NULL ),
mModalCtrl( NULL ),
mDecoSize(),
mBorderSize(),
mMinWindowSize(),
mButtonsPositionFixer( ),
mButtonsSeparation( 4 ),
mMinCornerDistance( 24 ),
mResizeType( RESIZE_NONE ),
mTitleFontColor( 0xFFFFFFFF ),
mBaseAlpha( 255 ),
mDecoAutoSize( true ),
mBorderAutoSize( true )
mResizeType( RESIZE_NONE )
{
UIManager::instance()->windowAdd( this );
mContainer = eeNew( UIComplexControl, () );
mContainer->setParent( this );
mContainer->setFlags( UI_REPORT_SIZE_CHANGE_TO_CHILDS );
mContainer->setEnabled( true );
mContainer->setVisible( true );
mContainer->setSize( mSize );
mContainer->addEventListener( UIEvent::EventOnPosChange, cb::Make1( this, &UIWindow::onContainerPosChange ) );
updateWinFlags();
setAlpha( mBaseAlpha );
setAlpha( mStyleConfig.baseAlpha );
applyDefaultTheme();
}
UIWindow::UIWindow() :
UIComplexControl(),
mWindowDecoration( NULL ),
mBorderLeft( NULL ),
mBorderRight( NULL ),
mBorderBottom( NULL ),
mButtonClose( NULL ),
mButtonMinimize( NULL ),
mButtonMaximize( NULL ),
mTitle( NULL ),
mModalCtrl( NULL ),
mResizeType( RESIZE_NONE )
{
setHorizontalAlign( UI_HALIGN_CENTER );
UIManager::instance()->windowAdd( this );
UITheme * theme = UIThemeManager::instance()->getDefaultTheme();
if ( NULL != theme ) {
mStyleConfig = theme->getWindowStyleConfig();
}
mContainer = eeNew( UIComplexControl, () );
mContainer->setParent( this );
mContainer->setFlags( UI_REPORT_SIZE_CHANGE_TO_CHILDS );
mContainer->setSize( mSize );
mContainer->addEventListener( UIEvent::EventOnPosChange, cb::Make1( this, &UIWindow::onContainerPosChange ) );
updateWinFlags();
setAlpha( mStyleConfig.baseAlpha );
applyDefaultTheme();
}
@@ -97,7 +82,7 @@ UIWindow::~UIWindow() {
}
void UIWindow::updateWinFlags() {
if ( !( mWinFlags & UI_WIN_NO_BORDER ) ) {
if ( !( mStyleConfig.winFlags & UI_WIN_NO_BORDER ) ) {
if ( NULL == mWindowDecoration )
mWindowDecoration = eeNew( UIControlAnim, () );
@@ -126,10 +111,10 @@ void UIWindow::updateWinFlags() {
mBorderBottom->setEnabled( true );
mBorderBottom->setVisible( true );
if ( mWinFlags & UI_WIN_DRAGABLE_CONTAINER )
if ( mStyleConfig.winFlags & UI_WIN_DRAGABLE_CONTAINER )
mContainer->setDragEnabled( true );
if ( mWinFlags & UI_WIN_CLOSE_BUTTON ) {
if ( mStyleConfig.winFlags & UI_WIN_CLOSE_BUTTON ) {
if ( NULL == mButtonClose )
mButtonClose = eeNew( UIComplexControl, () );
@@ -137,12 +122,12 @@ void UIWindow::updateWinFlags() {
mButtonClose->setVisible( true );
mButtonClose->setEnabled( true );
if ( mWinFlags & UI_WIN_USE_DEFAULT_BUTTONS_ACTIONS ) {
if ( mStyleConfig.winFlags & UI_WIN_USE_DEFAULT_BUTTONS_ACTIONS ) {
mButtonClose->addEventListener( UIEvent::EventMouseClick, cb::Make1( this, &UIWindow::onButtonCloseClick ) );
}
}
if ( ( mWinFlags & UI_WIN_RESIZEABLE ) && ( mWinFlags & UI_WIN_MAXIMIZE_BUTTON ) ) {
if ( ( mStyleConfig.winFlags & UI_WIN_RESIZEABLE ) && ( mStyleConfig.winFlags & UI_WIN_MAXIMIZE_BUTTON ) ) {
if ( NULL == mButtonMaximize )
mButtonMaximize = eeNew( UIComplexControl, () );
@@ -150,12 +135,12 @@ void UIWindow::updateWinFlags() {
mButtonMaximize->setVisible( true );
mButtonMaximize->setEnabled( true );
if ( mWinFlags & UI_WIN_USE_DEFAULT_BUTTONS_ACTIONS ) {
if ( mStyleConfig.winFlags & UI_WIN_USE_DEFAULT_BUTTONS_ACTIONS ) {
mButtonMaximize->addEventListener( UIEvent::EventMouseClick, cb::Make1( this, &UIWindow::onButtonMaximizeClick ) );
}
}
if ( mWinFlags & UI_WIN_MINIMIZE_BUTTON ) {
if ( mStyleConfig.winFlags & UI_WIN_MINIMIZE_BUTTON ) {
if ( NULL == mButtonMinimize )
mButtonMinimize = eeNew( UIComplexControl, () );
@@ -163,7 +148,7 @@ void UIWindow::updateWinFlags() {
mButtonMinimize->setVisible( true );
mButtonMinimize->setEnabled( true );
if ( mWinFlags & UI_WIN_USE_DEFAULT_BUTTONS_ACTIONS ) {
if ( mStyleConfig.winFlags & UI_WIN_USE_DEFAULT_BUTTONS_ACTIONS ) {
mButtonMinimize->addEventListener( UIEvent::EventMouseClick, cb::Make1( this, &UIWindow::onButtonMinimizeClick ) );
}
}
@@ -180,10 +165,13 @@ void UIWindow::createModalControl() {
UIControl * Ctrl = UIManager::instance()->getMainControl();
if ( NULL == mModalCtrl ) {
mModalCtrl = eeNew( UIControlAnim, ( UIControlAnim::CreateParams( Ctrl , Vector2i(0,0), Ctrl->getSize(), UI_ANCHOR_LEFT | UI_ANCHOR_TOP | UI_ANCHOR_RIGHT | UI_ANCHOR_BOTTOM ) ) );
mModalCtrl = UIComplexControl::New();
mModalCtrl->setParent( Ctrl )->setPosition(0,0)->setSize( Ctrl->getSize() );
mModalCtrl->setAnchors( UI_ANCHOR_LEFT | UI_ANCHOR_TOP | UI_ANCHOR_RIGHT | UI_ANCHOR_BOTTOM );
} else {
mModalCtrl->setPosition( 0, 0 );
mModalCtrl->setSize( Ctrl->getSize() );
mModalCtrl->updateAnchorsDistances();
}
mModalCtrl->setEnabled( false );
@@ -298,7 +286,7 @@ void UIWindow::setTheme( UITheme *Theme ) {
mContainer->setThemeControl ( Theme, "winback" );
if ( !( mWinFlags & UI_WIN_NO_BORDER ) ) {
if ( !( mStyleConfig.winFlags & UI_WIN_NO_BORDER ) ) {
mWindowDecoration->setThemeControl ( Theme, "windeco" );
mBorderLeft->setThemeControl ( Theme, "winborderleft" );
mBorderRight->setThemeControl ( Theme, "winborderright" );
@@ -319,18 +307,18 @@ void UIWindow::setTheme( UITheme *Theme ) {
mButtonMinimize->setSize( mButtonMinimize->getSkinSize() );
}
getMinWinSize();
calcMinWinSize();
fixChildsSize();
}
}
void UIWindow::getMinWinSize() {
if ( NULL == mWindowDecoration || ( mMinWindowSize.x != 0 && mMinWindowSize.y != 0 ) )
void UIWindow::calcMinWinSize() {
if ( NULL == mWindowDecoration || ( mStyleConfig.minWindowSize.x != 0 && mStyleConfig.minWindowSize.y != 0 ) )
return;
Sizei tSize;
tSize.x = mBorderLeft->getSize().getWidth() + mBorderRight->getSize().getWidth() - mButtonsPositionFixer.x;
tSize.x = mBorderLeft->getSize().getWidth() + mBorderRight->getSize().getWidth() - mStyleConfig.buttonsPositionFixer.x;
tSize.y = mWindowDecoration->getSize().getHeight() + mBorderBottom->getSize().getHeight();
if ( NULL != mButtonClose )
@@ -342,31 +330,31 @@ void UIWindow::getMinWinSize() {
if ( NULL != mButtonMinimize )
tSize.x += mButtonMinimize->getSize().getWidth();
if ( mMinWindowSize.x < tSize.x )
mMinWindowSize.x = tSize.x;
if ( mStyleConfig.minWindowSize.x < tSize.x )
mStyleConfig.minWindowSize.x = tSize.x;
if ( mMinWindowSize.y < tSize.y )
mMinWindowSize.y = tSize.y;
if ( mStyleConfig.minWindowSize.y < tSize.y )
mStyleConfig.minWindowSize.y = tSize.y;
}
void UIWindow::applyMinWinSize() {
if ( mSize.x < mMinWindowSize.x && mSize.y < mMinWindowSize.y ) {
setSize( mMinWindowSize );
} else if ( mSize.x < mMinWindowSize.x ) {
setSize( Sizei( mMinWindowSize.x, mSize.y ) );
} else if ( mSize.y < mMinWindowSize.y ) {
setSize( Sizei( mSize.x, mMinWindowSize.y ) );
if ( mSize.x < mStyleConfig.minWindowSize.x && mSize.y < mStyleConfig.minWindowSize.y ) {
setSize( mStyleConfig.minWindowSize );
} else if ( mSize.x < mStyleConfig.minWindowSize.x ) {
setSize( Sizei( mStyleConfig.minWindowSize.x, mSize.y ) );
} else if ( mSize.y < mStyleConfig.minWindowSize.y ) {
setSize( Sizei( mSize.x, mStyleConfig.minWindowSize.y ) );
}
}
void UIWindow::onSizeChange() {
if ( mSize.x < mMinWindowSize.x || mSize.y < mMinWindowSize.y ) {
if ( mSize.x < mMinWindowSize.x && mSize.y < mMinWindowSize.y ) {
setSize( mMinWindowSize );
} else if ( mSize.x < mMinWindowSize.x ) {
setSize( Sizei( mMinWindowSize.x, mSize.y ) );
if ( mSize.x < mStyleConfig.minWindowSize.x || mSize.y < mStyleConfig.minWindowSize.y ) {
if ( mSize.x < mStyleConfig.minWindowSize.x && mSize.y < mStyleConfig.minWindowSize.y ) {
setSize( mStyleConfig.minWindowSize );
} else if ( mSize.x < mStyleConfig.minWindowSize.x ) {
setSize( Sizei( mStyleConfig.minWindowSize.x, mSize.y ) );
} else {
setSize( Sizei( mSize.x, mMinWindowSize.y ) );
setSize( Sizei( mSize.x, mStyleConfig.minWindowSize.y ) );
}
} else {
fixChildsSize();
@@ -395,13 +383,23 @@ UIControl * UIWindow::setSize( const Int32& Width, const Int32& Height ) {
return this;
}
UIWindow *UIWindow::setSizeWithDecoration(const Int32 & Width, const Int32 & Height) {
setSizeWithDecoration( Sizei( Width, Height ) );
return this;
}
UIWindow *UIWindow::setSizeWithDecoration(const Sizei & size) {
UIComplexControl::setSize( size );
return this;
}
const Sizei& UIWindow::getSize() {
return UIComplexControl::getSize();
}
void UIWindow::fixChildsSize() {
if ( mSize.getWidth() < mMinWindowSize.getWidth() || mSize.getHeight() < mMinWindowSize.getHeight() ) {
internalSize( eemin( mSize.getWidth(), mMinWindowSize.getWidth() ), eemin( mSize.getHeight(), mMinWindowSize.getHeight() ) );
if ( mSize.getWidth() < mStyleConfig.minWindowSize.getWidth() || mSize.getHeight() < mStyleConfig.minWindowSize.getHeight() ) {
internalSize( eemin( mSize.getWidth(), mStyleConfig.minWindowSize.getWidth() ), eemin( mSize.getHeight(), mStyleConfig.minWindowSize.getHeight() ) );
}
if ( NULL == mWindowDecoration ) {
@@ -409,28 +407,28 @@ void UIWindow::fixChildsSize() {
return;
}
Sizei decoSize = mDecoSize;
Sizei decoSize = mStyleConfig.decorationSize;
if ( mDecoAutoSize ) {
decoSize = mDecoSize = Sizei( mSize.getWidth(), mWindowDecoration->getSkinSize().getHeight() );
if ( mStyleConfig.decorationAutoSize ) {
decoSize = mStyleConfig.decorationSize = Sizei( mSize.getWidth(), mWindowDecoration->getSkinSize().getHeight() );
}
mWindowDecoration->setSize( mDecoSize );
mWindowDecoration->setSize( mStyleConfig.decorationSize );
if ( mBorderAutoSize ) {
if ( mStyleConfig.borderAutoSize ) {
mBorderBottom->setSize( Sizei( mSize.getWidth(), mBorderBottom->getSkinSize().getHeight() ) );
} else {
mBorderBottom->setSize( mSize.getWidth(), mBorderSize.getHeight() );
mBorderBottom->setSize( mSize.getWidth(), mStyleConfig.borderSize.getHeight() );
}
Uint32 BorderHeight = mSize.getHeight() - decoSize.getHeight() - mBorderBottom->getSize().getHeight();
if ( mBorderAutoSize ) {
if ( mStyleConfig.borderAutoSize ) {
mBorderLeft->setSize( Sizei( mBorderLeft->getSkinSize().getWidth(), BorderHeight ) );
mBorderRight->setSize( Sizei( mBorderRight->getSkinSize().getWidth(), BorderHeight ) );
} else {
mBorderLeft->setSize( mBorderSize.getWidth(), BorderHeight );
mBorderRight->setSize( mBorderSize.getWidth(), BorderHeight );
mBorderLeft->setSize( mStyleConfig.borderSize.getWidth(), BorderHeight );
mBorderRight->setSize( mStyleConfig.borderSize.getWidth(), BorderHeight );
}
mBorderLeft->setPosition( 0, mWindowDecoration->getSize().getHeight() );
@@ -443,31 +441,31 @@ void UIWindow::fixChildsSize() {
Uint32 yPos;
if ( NULL != mButtonClose ) {
yPos = mWindowDecoration->getSize().getHeight() / 2 - mButtonClose->getSize().getHeight() / 2 + mButtonsPositionFixer.y;
yPos = mWindowDecoration->getSize().getHeight() / 2 - mButtonClose->getSize().getHeight() / 2 + mStyleConfig.buttonsPositionFixer.y;
mButtonClose->setPosition( mWindowDecoration->getSize().getWidth() - mBorderRight->getSize().getWidth() - mButtonClose->getSize().getWidth() + mButtonsPositionFixer.x, yPos );
mButtonClose->setPosition( mWindowDecoration->getSize().getWidth() - mBorderRight->getSize().getWidth() - mButtonClose->getSize().getWidth() + mStyleConfig.buttonsPositionFixer.x, yPos );
}
if ( NULL != mButtonMaximize ) {
yPos = mWindowDecoration->getSize().getHeight() / 2 - mButtonMaximize->getSize().getHeight() / 2 + mButtonsPositionFixer.y;
yPos = mWindowDecoration->getSize().getHeight() / 2 - mButtonMaximize->getSize().getHeight() / 2 + mStyleConfig.buttonsPositionFixer.y;
if ( NULL != mButtonClose ) {
mButtonMaximize->setPosition( mButtonClose->getPosition().x - mButtonsSeparation - mButtonMaximize->getSize().getWidth(), yPos );
mButtonMaximize->setPosition( mButtonClose->getPosition().x - mStyleConfig.buttonsSeparation - mButtonMaximize->getSize().getWidth(), yPos );
} else {
mButtonMaximize->setPosition( mWindowDecoration->getSize().getWidth() - mBorderRight->getSize().getWidth() - mButtonMaximize->getSize().getWidth() + mButtonsPositionFixer.x, yPos );
mButtonMaximize->setPosition( mWindowDecoration->getSize().getWidth() - mBorderRight->getSize().getWidth() - mButtonMaximize->getSize().getWidth() + mStyleConfig.buttonsPositionFixer.x, yPos );
}
}
if ( NULL != mButtonMinimize ) {
yPos = mWindowDecoration->getSize().getHeight() / 2 - mButtonMinimize->getSize().getHeight() / 2 + mButtonsPositionFixer.y;
yPos = mWindowDecoration->getSize().getHeight() / 2 - mButtonMinimize->getSize().getHeight() / 2 + mStyleConfig.buttonsPositionFixer.y;
if ( NULL != mButtonMaximize ) {
mButtonMinimize->setPosition( mButtonMaximize->getPosition().x - mButtonsSeparation - mButtonMinimize->getSize().getWidth(), yPos );
mButtonMinimize->setPosition( mButtonMaximize->getPosition().x - mStyleConfig.buttonsSeparation - mButtonMinimize->getSize().getWidth(), yPos );
} else {
if ( NULL != mButtonClose ) {
mButtonMinimize->setPosition( mButtonClose->getPosition().x - mButtonsSeparation - mButtonMinimize->getSize().getWidth(), yPos );
mButtonMinimize->setPosition( mButtonClose->getPosition().x - mStyleConfig.buttonsSeparation - mButtonMinimize->getSize().getWidth(), yPos );
} else {
mButtonMinimize->setPosition( mWindowDecoration->getSize().getWidth() - mBorderRight->getSize().getWidth() - mButtonMinimize->getSize().getWidth() + mButtonsPositionFixer.x, yPos );
mButtonMinimize->setPosition( mWindowDecoration->getSize().getWidth() - mBorderRight->getSize().getWidth() - mButtonMinimize->getSize().getWidth() + mStyleConfig.buttonsPositionFixer.x, yPos );
}
}
}
@@ -519,7 +517,7 @@ void UIWindow::doResize ( const UIMessage * Msg ) {
if ( NULL == mWindowDecoration )
return;
if ( !( mWinFlags & UI_WIN_RESIZEABLE ) ||
if ( !( mStyleConfig.winFlags & UI_WIN_RESIZEABLE ) ||
!( Msg->getFlags() & EE_BUTTON_LMASK ) ||
RESIZE_NONE != mResizeType ||
( UIManager::instance()->getLastPressTrigger() & EE_BUTTON_LMASK )
@@ -540,30 +538,30 @@ void UIWindow::decideResizeType( UIControl * Control ) {
} else if ( Pos.x >= ( mSize.getWidth() - mBorderRight->getSize().getWidth() ) ) {
tryResize( RESIZE_TOPRIGHT );
} else if ( Pos.y <= mBorderBottom->getSize().getHeight() ) {
if ( Pos.x < mMinCornerDistance ) {
if ( Pos.x < mStyleConfig.minCornerDistance ) {
tryResize( RESIZE_TOPLEFT );
} else if ( Pos.x > mSize.getWidth() - mMinCornerDistance ) {
} else if ( Pos.x > mSize.getWidth() - mStyleConfig.minCornerDistance ) {
tryResize( RESIZE_TOPRIGHT );
} else {
tryResize( RESIZE_TOP );
}
}
} else if ( Control == mBorderBottom ) {
if ( Pos.x < mMinCornerDistance ) {
if ( Pos.x < mStyleConfig.minCornerDistance ) {
tryResize( RESIZE_LEFTBOTTOM );
} else if ( Pos.x > mSize.getWidth() - mMinCornerDistance ) {
} else if ( Pos.x > mSize.getWidth() - mStyleConfig.minCornerDistance ) {
tryResize( RESIZE_RIGHTBOTTOM );
} else {
tryResize( RESIZE_BOTTOM );
}
} else if ( Control == mBorderLeft ) {
if ( Pos.y >= mSize.getHeight() - mMinCornerDistance ) {
if ( Pos.y >= mSize.getHeight() - mStyleConfig.minCornerDistance ) {
tryResize( RESIZE_LEFTBOTTOM );
} else {
tryResize( RESIZE_LEFT );
}
} else if ( Control == mBorderRight ) {
if ( Pos.y >= mSize.getHeight() - mMinCornerDistance ) {
if ( Pos.y >= mSize.getHeight() - mStyleConfig.minCornerDistance ) {
tryResize( RESIZE_RIGHTBOTTOM );
} else {
tryResize( RESIZE_RIGHT );
@@ -722,7 +720,7 @@ void UIWindow::internalSize( const Int32& w, const Int32& h ) {
}
void UIWindow::internalSize( Sizei Size ) {
Sizei realMin = PixelDensity::dpToPxI( mMinWindowSize );
Sizei realMin = PixelDensity::dpToPxI( mStyleConfig.minWindowSize );
Size.x = eemax( realMin.x, Size.x );
Size.y = eemax( realMin.y, Size.y );
@@ -736,7 +734,7 @@ void UIWindow::internalSize( Sizei Size ) {
void UIWindow::draw() {
UIComplexControl::draw();
if ( mWinFlags & UI_WIN_DRAW_SHADOW ) {
if ( mStyleConfig.winFlags & UI_WIN_DRAW_SHADOW ) {
Primitives P;
P.setForceDraw( false );
@@ -799,7 +797,7 @@ bool UIWindow::show() {
setFocus();
startAlphaAnim( mBaseAlpha == getAlpha() ? 0.f : mAlpha, mBaseAlpha, UIThemeManager::instance()->getControlsFadeInTime() );
startAlphaAnim( mStyleConfig.baseAlpha == getAlpha() ? 0.f : mAlpha, mStyleConfig.baseAlpha, UIThemeManager::instance()->getControlsFadeInTime() );
if ( isModal() ) {
createModalControl();
@@ -840,7 +838,7 @@ bool UIWindow::hide() {
}
void UIWindow::onAlphaChange() {
if ( mWinFlags & UI_WIN_SHARE_ALPHA_WITH_CHILDS ) {
if ( mStyleConfig.winFlags & UI_WIN_SHARE_ALPHA_WITH_CHILDS ) {
UIControlAnim * AnimChild;
UIControl * CurChild = mChild;
@@ -858,38 +856,35 @@ void UIWindow::onAlphaChange() {
}
void UIWindow::setBaseAlpha( const Uint8& Alpha ) {
if ( mAlpha == mBaseAlpha ) {
if ( mAlpha == mStyleConfig.baseAlpha ) {
UIControlAnim::setAlpha( Alpha );
}
mBaseAlpha = Alpha;
mStyleConfig.baseAlpha = Alpha;
}
const Uint8& UIWindow::getBaseAlpha() const {
return mBaseAlpha;
return mStyleConfig.baseAlpha;
}
void UIWindow::setTitle( const String& Text ) {
if ( NULL == mTitle ) {
UITextBox::CreateParams Params;
Params.setParent( this );
Params.Flags = UI_CLIP_ENABLE | UI_VALIGN_CENTER;
Params.fontStyleConfig.fontColor = mTitleFontColor;
if ( mFlags & UI_HALIGN_CENTER )
Params.Flags |= UI_HALIGN_CENTER;
mTitle = eeNew( UITextBox, () );
mTitle->setParent( this );
mTitle->setHorizontalAlign( getHorizontalAlign() );
mTitle->setVerticalAlign( getVerticalAlign() );
mTitle->setFontColor( mStyleConfig.titleFontColor );
if ( mFlags & UI_DRAW_SHADOW )
Params.Flags |= UI_DRAW_SHADOW;
mTitle->setFlags( UI_DRAW_SHADOW );
mTitle = eeNew( UITextBox, ( Params ) );
mTitle->setEnabled( false );
mTitle->setVisible( true );
}
mTitle->setText( Text );
fixTitleSize();
mTitle->setText( Text );
}
void UIWindow::fixTitleSize() {
@@ -926,7 +921,7 @@ void UIWindow::maximize() {
}
Uint32 UIWindow::onMouseDoubleClick( const Vector2i &Pos, const Uint32 Flags ) {
if ( ( mWinFlags & UI_WIN_RESIZEABLE ) && ( NULL != mButtonMaximize ) && ( Flags & EE_BUTTON_LMASK ) ) {
if ( ( mStyleConfig.winFlags & UI_WIN_RESIZEABLE ) && ( NULL != mButtonMaximize ) && ( Flags & EE_BUTTON_LMASK ) ) {
onButtonMaximizeClick( NULL );
}
@@ -982,23 +977,57 @@ bool UIWindow::removeShortcut( const Uint32& KeyCode, const Uint32& Mod ) {
}
bool UIWindow::isMaximizable() {
return 0 != ( ( mWinFlags & UI_WIN_RESIZEABLE ) && ( mWinFlags & UI_WIN_MAXIMIZE_BUTTON ) );
return 0 != ( ( mStyleConfig.winFlags & UI_WIN_RESIZEABLE ) && ( mStyleConfig.winFlags & UI_WIN_MAXIMIZE_BUTTON ) );
}
Uint32 UIWindow::getWinFlags() const {
return mWinFlags;
return mStyleConfig.winFlags;
}
UIWindow * UIWindow::setWinFlags(const Uint32 & winFlags) {
mWinFlags = winFlags;
mStyleConfig.winFlags = winFlags;
updateWinFlags();
return this;
}
WindowStyleConfig UIWindow::getStyleConfig() const {
return mStyleConfig;
}
UIWindow * UIWindow::setStyleConfig(const WindowStyleConfig & styleConfig) {
mStyleConfig = styleConfig;
updateWinFlags();
setAlpha( mStyleConfig.baseAlpha );
applyDefaultTheme();
applyMinWinSize();
return this;
}
UIWindow * UIWindow::setMinWindowSize( const Int32& width, const Int32& height ) {
return setMinWindowSize( Sizei( width, height ) );
}
UIWindow * UIWindow::setMinWindowSize( Sizei size ) {
mStyleConfig.minWindowSize = size;
applyMinWinSize();
return this;
}
const Sizei& UIWindow::getMinWindowSize() {
return mStyleConfig.minWindowSize;
}
bool UIWindow::isModal() {
return 0 != ( mWinFlags & UI_WIN_MODAL );
return 0 != ( mStyleConfig.winFlags & UI_WIN_MODAL );
}
UIControlAnim * UIWindow::getModalControl() const {
@@ -1008,7 +1037,7 @@ UIControlAnim * UIWindow::getModalControl() const {
void UIWindow::resizeCursor() {
UIManager * Man = UIManager::instance();
if ( !isMouseOverMeOrChilds() || !Man->getUseGlobalCursors() || ( mWinFlags & UI_WIN_NO_BORDER ) || !( mWinFlags & UI_WIN_RESIZEABLE ) )
if ( !isMouseOverMeOrChilds() || !Man->getUseGlobalCursors() || ( mStyleConfig.winFlags & UI_WIN_NO_BORDER ) || !( mStyleConfig.winFlags & UI_WIN_RESIZEABLE ) )
return;
Vector2i Pos = Man->getMousePos();
@@ -1023,9 +1052,9 @@ void UIWindow::resizeCursor() {
} else if ( Pos.x >= ( mSize.getWidth() - mBorderRight->getSize().getWidth() ) ) {
Man->setCursor( EE_CURSOR_SIZENESW ); // RESIZE_TOPRIGHT
} else if ( Pos.y <= mBorderBottom->getSize().getHeight() ) {
if ( Pos.x < mMinCornerDistance ) {
if ( Pos.x < mStyleConfig.minCornerDistance ) {
Man->setCursor( EE_CURSOR_SIZENWSE ); // RESIZE_TOPLEFT
} else if ( Pos.x > mSize.getWidth() - mMinCornerDistance ) {
} else if ( Pos.x > mSize.getWidth() - mStyleConfig.minCornerDistance ) {
Man->setCursor( EE_CURSOR_SIZENESW ); // RESIZE_TOPRIGHT
} else {
Man->setCursor( EE_CURSOR_SIZENS ); // RESIZE_TOP
@@ -1034,21 +1063,21 @@ void UIWindow::resizeCursor() {
Man->setCursor( EE_CURSOR_ARROW );
}
} else if ( Control == mBorderBottom ) {
if ( Pos.x < mMinCornerDistance ) {
if ( Pos.x < mStyleConfig.minCornerDistance ) {
Man->setCursor( EE_CURSOR_SIZENESW ); // RESIZE_LEFTBOTTOM
} else if ( Pos.x > mSize.getWidth() - mMinCornerDistance ) {
} else if ( Pos.x > mSize.getWidth() - mStyleConfig.minCornerDistance ) {
Man->setCursor( EE_CURSOR_SIZENWSE ); // RESIZE_RIGHTBOTTOM
} else {
Man->setCursor( EE_CURSOR_SIZENS ); // RESIZE_BOTTOM
}
} else if ( Control == mBorderLeft ) {
if ( Pos.y >= mSize.getHeight() - mMinCornerDistance ) {
if ( Pos.y >= mSize.getHeight() - mStyleConfig.minCornerDistance ) {
Man->setCursor( EE_CURSOR_SIZENESW ); // RESIZE_LEFTBOTTOM
} else {
Man->setCursor( EE_CURSOR_SIZEWE ); // RESIZE_LEFT
}
} else if ( Control == mBorderRight ) {
if ( Pos.y >= mSize.getHeight() - mMinCornerDistance ) {
if ( Pos.y >= mSize.getHeight() - mStyleConfig.minCornerDistance ) {
Man->setCursor( EE_CURSOR_SIZENWSE ); // RESIZE_RIGHTBOTTOM
} else {
Man->setCursor( EE_CURSOR_SIZEWE ); // RESIZE_RIGHT

View File

@@ -277,7 +277,7 @@ void EETest::createUI() {
eePRINTL( "Texture Atlas Loading Time: %4.3f ms.", TE.getElapsed().asMilliseconds() );
UIManager::instance()->init(); // UI_MANAGER_DRAW_BOXES | UI_MANAGER_HIGHLIGHT_FOCUS | UI_MANAGER_HIGHLIGHT_OVER
UIManager::instance()->init(UI_MANAGER_DRAW_BOXES); // UI_MANAGER_DRAW_BOXES | UI_MANAGER_HIGHLIGHT_FOCUS | UI_MANAGER_HIGHLIGHT_OVER
//mTheme = UITheme::loadFromPath( eeNew( UIdefaultTheme, ( mThemeName, mThemeName ) ), MyPath + mThemeName + "/" );
@@ -299,7 +299,14 @@ void EETest::createUI() {
Params.Border.setColor( 0x979797CC );
Params.Background.setColors( ColorA( 0xEDEDED66 ), ColorA( 0xEDEDEDCC ), ColorA( 0xEDEDEDCC ), ColorA( 0xEDEDED66 ) );
UIWindow * tWin = mTheme->createWindow( NULL, Sizei( 530, 405 ), Vector2i( 320, 240 ), UI_CONTROL_DEFAULT_FLAGS_CENTERED, UI_WIN_DRAGABLE_CONTAINER , Sizei( 530, 405 ), 200 );
UIWindow * tWin = UIWindow::New();
tWin->setSize( 530, 405 )->setPosition( 320, 240 );
WindowStyleConfig windowStyleConfig = tWin->getStyleConfig();
windowStyleConfig.winFlags = UI_WIN_DRAGABLE_CONTAINER;
windowStyleConfig.minWindowSize = Sizei( 530, 405 );
windowStyleConfig.baseAlpha = 200;
tWin->setStyleConfig( windowStyleConfig );
C = tWin->getContainer();
tWin->setVisible( false )->setEnabled( false );
@@ -330,7 +337,12 @@ void EETest::createUI() {
Child2->startRotation( 0.f, 360.f, Milliseconds( 5000.f ) );
Child2->getRotationInterpolation()->setLoop( true );
mTheme->createSprite( eeNew( Sprite, ( "gn" ) ), C, Sizei(), Vector2i( 160, 100 ) );
UISprite * sprite = UISprite::New();
sprite->setFlags( UI_AUTO_SIZE );
sprite->setSprite( eeNew( Sprite, ( "gn" ) ) );
sprite->setDeallocSprite( true );
sprite->setParent( C );
sprite->setPosition( 160, 100 );
UITextBox::CreateParams TextParams;
TextParams.setParent( C );
@@ -638,7 +650,7 @@ void EETest::createNewUI() {
pushButton->setText( "PushButton" );
pushButton->setIcon( mTheme->getIconByName( "ok" ) );
UISprite * sprite = eeNew( UISprite, () );
UISprite * sprite = UISprite::New();
sprite->setPosition( 50, 600 );
sprite->setSprite( &SP );
@@ -665,7 +677,7 @@ void EETest::createNewUI() {
textEdit->setPosition( 350, 4 )->setSize( 200, 200 );
textEdit->setText( mBuda );
UISpinBox * spinBox = eeNew( UISpinBox, () );
UISpinBox * spinBox = UISpinBox::New();
spinBox->setPosition( 350, 210 )->setSize( 200, 0 );
UIGenericGrid * genGrid = eeNew( UIGenericGrid, () );
@@ -678,17 +690,20 @@ void EETest::createNewUI() {
for ( Uint32 i = 0; i < 15; i++ ) {
UIGridCell * Cell = eeNew( UIGridCell, () );
UITextBox * TxtBox = eeNew( UITextBox, () );
UITextInput * TxtInput = eeNew( UITextInput, () );
UIGfx * TxtGfx = eeNew( UIGfx, () );
UITextBox * TxtBox = UITextBox::New();
UITextInput * TxtInput = UITextInput::New();
UIGfx * TxtGfx = UIGfx::New();
TxtGfx->unsetFlags( UI_AUTO_SIZE );
Cell->setParent( genGrid->getContainer() );
TxtGfx->setSubTexture( mTheme->getIconByName( "ok" ) );
TxtBox->setText( "Test " + String::toStr( i+1 ) );
Cell->setCell( 0, TxtBox );
Cell->setCell( 1, TxtGfx );
Cell->setCell( 2, TxtInput );
TxtGfx->setSubTexture( mTheme->getIconByName( "ok" ) );
TxtBox->setText( "Test " + String::toStr( i+1 ) );
genGrid->add( Cell );
}
@@ -716,9 +731,9 @@ void EETest::createNewUI() {
UITabWidget * TabWidget = eeNew( UITabWidget, () );
TabWidget->setPosition( 350, 530 )->setSize( 200, 64 );
TabWidget->add( "Tab 1", (eeNew( UIComplexControl, () ))->setThemeControl( "winback" ), mTheme->getIconByName( "ok" ) );
TabWidget->add( "Tab 2", (eeNew( UIComplexControl, () ))->setThemeControl( "winback" ), mTheme->getIconByName( "go-up" ) );
TabWidget->add( "Tab 3", (eeNew( UIComplexControl, () ))->setThemeControl( "winback" ), mTheme->getIconByName( "add" ) );
TabWidget->add( "Tab 1", UIComplexControl::New()->setThemeControl( "winback" ), mTheme->getIconByName( "ok" ) );
TabWidget->add( "Tab 2", UIComplexControl::New()->setThemeControl( "winback" ), mTheme->getIconByName( "go-up" ) );
TabWidget->add( "Tab 3", UIComplexControl::New()->setThemeControl( "winback" ), mTheme->getIconByName( "add" ) );
/**/
}
@@ -727,7 +742,13 @@ void EETest::createMapEditor() {
if ( NULL != mMapEditor )
return;
UIWindow * tWin = mTheme->createWindow( NULL, Sizei( 1024, 768 ), Vector2i(), UI_CONTROL_DEFAULT_FLAGS_CENTERED, UI_WIN_DEFAULT_FLAGS | UI_WIN_MAXIMIZE_BUTTON | UI_WIN_DRAGABLE_CONTAINER, Sizei( 1024, 768 ) );
UIWindow * tWin = UIWindow::New();
tWin->setSizeWithDecoration( 1024, 768 )->setPosition( 0, 0 );
WindowStyleConfig windowStyleConfig = tWin->getStyleConfig();
windowStyleConfig.winFlags = UI_WIN_DEFAULT_FLAGS | UI_WIN_MAXIMIZE_BUTTON | UI_WIN_DRAGABLE_CONTAINER;
windowStyleConfig.minWindowSize = Sizei( 1024, 768 );
tWin->setStyleConfig( windowStyleConfig );
mMapEditor = eeNew( MapEditor, ( tWin, cb::Make0( this, &EETest::onMapEditorClose ) ) );
tWin->center();
tWin->show();
@@ -738,7 +759,13 @@ void EETest::onMapEditorClose() {
}
void EETest::createETGEditor() {
UIWindow * tWin = mTheme->createWindow( NULL, Sizei( 1024, 768 ), Vector2i(), UI_CONTROL_DEFAULT_FLAGS_CENTERED, UI_WIN_DEFAULT_FLAGS | UI_WIN_MAXIMIZE_BUTTON | UI_WIN_DRAGABLE_CONTAINER, Sizei( 1024, 768 ) );
UIWindow * tWin = UIWindow::New();
tWin->setSizeWithDecoration( 1024, 768 )->setPosition( 0, 0 );
WindowStyleConfig windowStyleConfig = tWin->getStyleConfig();
windowStyleConfig.winFlags = UI_WIN_DEFAULT_FLAGS | UI_WIN_MAXIMIZE_BUTTON | UI_WIN_DRAGABLE_CONTAINER;
windowStyleConfig.minWindowSize = Sizei( 1024, 768 );
tWin->setStyleConfig( windowStyleConfig );
mETGEditor = eeNew ( Tools::TextureAtlasEditor, ( tWin, cb::Make0( this, &EETest::onETGEditorClose ) ) );
tWin->center();
tWin->show();
@@ -776,7 +803,9 @@ void EETest::createWinMenu() {
}
void EETest::createDecoratedWindow() {
mUIWindow = mTheme->createWindow( NULL, Sizei( 530, 350 ), Vector2i( 200, 50 ), UI_CONTROL_DEFAULT_FLAGS_CENTERED, UI_WIN_DEFAULT_FLAGS | UI_WIN_MAXIMIZE_BUTTON, Sizei( 100, 200 ) );
mUIWindow = UIWindow::New();
mUIWindow->setWinFlags( UI_WIN_DEFAULT_FLAGS | UI_WIN_MAXIMIZE_BUTTON )
->setMinWindowSize( 530, 350 )->setPosition( 200, 50 );
mUIWindow->addEventListener( UIEvent::EventOnWindowCloseClick, cb::Make1( this, &EETest::onCloseClick ) );
mUIWindow->setTitle( "Test Window" );
@@ -792,17 +821,23 @@ void EETest::createDecoratedWindow() {
TabWidget->setParent( mUIWindow->getContainer() )->setSize( 510, 250 )->setPosition( 10, 55 )->
setFlags( UI_HALIGN_CENTER | UI_VALIGN_CENTER | UI_ANCHOR_RIGHT | UI_ANCHOR_BOTTOM | UI_ANCHOR_LEFT | UI_ANCHOR_TOP );
//mTheme->createTabWidget( mUIWindow->getContainer(), Sizei( 510, 250 ), Vector2i( 10, 55 ), UI_HALIGN_CENTER | UI_VALIGN_CENTER | UI_ANCHOR_RIGHT | UI_ANCHOR_BOTTOM | UI_ANCHOR_LEFT | UI_ANCHOR_TOP );
UITextEdit * TEdit = mTheme->createTextEdit( TabWidget, Sizei(), Vector2i() );
UITextEdit * TEdit = UITextEdit::New();
TEdit->setParent( TabWidget );
TEdit->setText( mBuda );
TabWidget->add( "TextEdit", TEdit );
UITextInput * Txt = mTheme->createTextInput( TabWidget, Sizei(), Vector2i(), UI_AUTO_PADDING | UI_WORD_WRAP | UI_TEXT_SELECTION_ENABLED );
UITextInput * Txt = UITextInput::New();
Txt->setFlags( UI_WORD_WRAP );
Txt->setParent( TabWidget );
Txt->setText( mBuda );
TabWidget->add( "TextInput", Txt );
TabWidget->add( "TextBox", mTheme->createTextBox( mBuda, TabWidget, Sizei(), Vector2i(), UI_AUTO_PADDING | UI_WORD_WRAP | UI_TEXT_SELECTION_ENABLED ) );
UITextBox * txtBox = UITextBox::New();
txtBox->resetFlags( UI_HALIGN_LEFT | UI_VALIGN_TOP | UI_AUTO_PADDING | UI_WORD_WRAP | UI_TEXT_SELECTION_ENABLED );
txtBox->setParent( TabWidget );
txtBox->setText( mBuda );
TabWidget->add( "TextBox", txtBox );
createWinMenu();
}