diff --git a/src/graphics/csprite.cpp b/src/graphics/csprite.cpp index b213326b5..b8098e6ce 100755 --- a/src/graphics/csprite.cpp +++ b/src/graphics/csprite.cpp @@ -29,6 +29,70 @@ cSprite::cSprite() : mCb.Reset(); } +cSprite::cSprite( const std::string& name, const std::string& extension, cShapeGroup * SearchInShapeGroup ) : + mFlags( SPRITE_FLAG_AUTO_ANIM | SPRITE_FLAG_SCALE_CENTERED | SPRITE_FLAG_EVENTS_ENABLED ), + mPos(), + mAngle( 0.f ), + mScale( 1.f ), + mAnimSpeed( 16.f ), + mColor( 255,255,255,255 ), + mVertexColors( NULL ), + mRepeations( -1 ), + mBlend( ALPHA_NORMAL ), + mEffect( RN_NORMAL ), + mCurrentFrame( 0 ), + mfCurrentFrame( 0.f ), + mCurrentSubFrame( 0 ), + mSubFrames( 1 ), + mAnimTo( 0 ) +{ + mCb.Reset(); + AddFramesByPattern( name, extension, SearchInShapeGroup ); +} + +cSprite::cSprite( cShape * Shape ) : + mFlags( SPRITE_FLAG_AUTO_ANIM | SPRITE_FLAG_SCALE_CENTERED | SPRITE_FLAG_EVENTS_ENABLED ), + mPos(), + mAngle( 0.f ), + mScale( 1.f ), + mAnimSpeed( 16.f ), + mColor( 255,255,255,255 ), + mVertexColors( NULL ), + mRepeations( -1 ), + mBlend( ALPHA_NORMAL ), + mEffect( RN_NORMAL ), + mCurrentFrame( 0 ), + mfCurrentFrame( 0.f ), + mCurrentSubFrame( 0 ), + mSubFrames( 1 ), + mAnimTo( 0 ) +{ + mCb.Reset(); + CreateStatic( Shape ); +} + +cSprite::cSprite( const Uint32& TexId, const eeFloat& DestWidth, const eeFloat& DestHeight, const eeFloat& offSetX, const eeFloat& offSetY, const eeRecti& TexSector ) : + mFlags( SPRITE_FLAG_AUTO_ANIM | SPRITE_FLAG_SCALE_CENTERED | SPRITE_FLAG_EVENTS_ENABLED ), + mPos(), + mAngle( 0.f ), + mScale( 1.f ), + mAnimSpeed( 16.f ), + mColor( 255,255,255,255 ), + mVertexColors( NULL ), + mRepeations( -1 ), + mBlend( ALPHA_NORMAL ), + mEffect( RN_NORMAL ), + mCurrentFrame( 0 ), + mfCurrentFrame( 0.f ), + mCurrentSubFrame( 0 ), + mSubFrames( 1 ), + mAnimTo( 0 ) +{ + mCb.Reset(); + CreateStatic( TexId, DestWidth, DestHeight, offSetX, offSetY, TexSector ); +} + + cSprite::~cSprite() { } diff --git a/src/graphics/csprite.hpp b/src/graphics/csprite.hpp index 1e0d3c062..35c90cdb8 100755 --- a/src/graphics/csprite.hpp +++ b/src/graphics/csprite.hpp @@ -21,6 +21,12 @@ class EE_API cSprite { cSprite(); + cSprite( const std::string& name, const std::string& extension = "", cShapeGroup * SearchInShapeGroup = NULL ); + + cSprite( cShape * Shape ); + + cSprite( const Uint32& TexId, const eeFloat& DestWidth = 0, const eeFloat& DestHeight = 0, const eeFloat& offSetX = 0, const eeFloat& offSetY = 0, const eeRecti& TexSector = eeRecti(0,0,0,0) ); + ~cSprite(); cSprite& operator =( const cSprite& Other ); diff --git a/src/test/eetest.cpp b/src/test/eetest.cpp index 30a849e83..fb874cffa 100644 --- a/src/test/eetest.cpp +++ b/src/test/eetest.cpp @@ -4,7 +4,7 @@ void cEETest::Init() { EE = cEngine::instance(); #ifdef EE_DEBUG - cLog::instance()->ConsoleOutput( true ); + cLog::instance()->ConsoleOutput( true ); cLog::instance()->LiveWrite( true ); #endif @@ -63,9 +63,7 @@ void cEETest::Init() { run = ( mWindow->Created() && PAK.IsOpen() ); - if ( run ) { - cLog::instance()->Write( "Running eepp" ); - + if ( run ) { #ifdef EE_DEBUG std::cout << "Size of Callback0: " << sizeof( cb::Callback0 ) << std::endl; std::cout << "Size of cWaypoints: " << sizeof( cWaypoints ) << std::endl; @@ -141,28 +139,28 @@ void cEETest::Init() { eePolygon2f Poly = CreateRoundedPolygon( 0.f, 0.f, 256.f, 50.f ); - mVBO = cVertexBuffer::Create( VERTEX_FLAG_GET( VERTEX_FLAG_POSITION ) | VERTEX_FLAG_GET( VERTEX_FLAG_COLOR ), DM_POLYGON ); - + mVBO = cVertexBuffer::Create( VERTEX_FLAG_GET( VERTEX_FLAG_POSITION ) | VERTEX_FLAG_GET( VERTEX_FLAG_COLOR ), DM_POLYGON ); + if ( NULL != mVBO ) { for ( Uint32 i = 0; i < Poly.Size(); i++ ) { mVBO->AddVertex( Poly[i] ); mVBO->AddColor( eeColorA( 100 + i, 255 - i, 150 + i, 200 ) ); } - mVBO->Compile(); - } + mVBO->Compile(); + } PhysicsCreate(); Launch(); - } else { - std::string err; + } else { + std::string err; - std::cout << err.c_str() << std::endl; - - cLog::instance()->Write( err ); + std::cout << err.c_str() << std::endl; - cEngine::DestroySingleton(); + cLog::instance()->Write( err ); + + cEngine::DestroySingleton(); exit(0); } @@ -288,17 +286,7 @@ void cEETest::CreateUI() { Child2->StartRotation( 0.f, 360.f, 5000.f ); Child2->AngleInterpolation()->Loop( true ); - mBlindyPtr = eeNew( cSprite, () ); - mBlindyPtr->AddFramesByPattern( "gn" ); - - cUISprite::CreateParams SpriteParams; - SpriteParams.Parent( C ); - SpriteParams.PosSet( 160, 100 ); - SpriteParams.Flags |= UI_AUTO_SIZE; - SpriteParams.Sprite = mBlindyPtr; - cUISprite * Spr = eeNew( cUISprite, ( SpriteParams ) ); - Spr->Visible( true ); - Spr->Enabled( true ); + Aqua->CreateSprite( eeNew( cSprite, ( "gn" ) ), C, eeSize(), eeVector2i( 160, 100 ) ); cUITextBox::CreateParams TextParams; TextParams.Parent( C ); @@ -1159,11 +1147,11 @@ void cEETest::Screen4() { mBlindy.Position( 128-16, 128-16 ); mBlindy.Draw(); - + if ( NULL != mVBO ) { mVBO->Bind(); mVBO->Draw(); - mVBO->Unbind(); + mVBO->Unbind(); } mFBOText.Draw( 128.f - (eeFloat)(Int32)( mFBOText.GetTextWidth() * 0.5f ), 25.f - (eeFloat)(Int32)( mFBOText.GetTextHeight() * 0.5f ), FONT_DRAW_CENTER ); @@ -1568,7 +1556,6 @@ void cEETest::End() { eeSAFE_DELETE( mTGL ); eeSAFE_DELETE( mFBO ); eeSAFE_DELETE( mVBO ); - eeSAFE_DELETE( mBlindyPtr ); eeSAFE_DELETE( mBoxSprite ); eeSAFE_DELETE( mCircleSprite ); eeSAFE_DELETE( mMap ); diff --git a/src/test/eetest.hpp b/src/test/eetest.hpp index 13184d462..aeb9771ef 100644 --- a/src/test/eetest.hpp +++ b/src/test/eetest.hpp @@ -201,7 +201,6 @@ class cEETest : private cThread { cTextureGroupLoader * mTGL; cSprite mBlindy; - cSprite * mBlindyPtr; cFrameBuffer * mFBO; cVertexBuffer * mVBO; diff --git a/src/ui/cuisprite.cpp b/src/ui/cuisprite.cpp index e54137886..b1db4ea28 100644 --- a/src/ui/cuisprite.cpp +++ b/src/ui/cuisprite.cpp @@ -11,6 +11,9 @@ cUISprite::cUISprite( const cUISprite::CreateParams& Params ) : { mType = UI_TYPE_SPRITE; + if ( Params.DeallocSprite ) + mControlFlags |= UI_CTRL_FLAG_FREE_USE; + if ( ( Flags() & UI_AUTO_SIZE ) || ( Params.Size.x == -1 && Params.Size.y == -1 ) ) { if ( NULL != mSprite && NULL != mSprite->GetCurrentShape() ) { Size( mSprite->GetCurrentShape()->Size() ); @@ -19,9 +22,18 @@ cUISprite::cUISprite( const cUISprite::CreateParams& Params ) : } cUISprite::~cUISprite() { + if ( DeallocSprite() ) + eeSAFE_DELETE( mSprite ); +} + +Uint32 cUISprite::DeallocSprite() { + return mControlFlags & UI_CTRL_FLAG_FREE_USE; } void cUISprite::Sprite( cSprite * sprite ) { + if ( DeallocSprite() ) + eeSAFE_DELETE( mSprite ); + mSprite = sprite; UpdateSize(); diff --git a/src/ui/cuisprite.hpp b/src/ui/cuisprite.hpp index 8140fd0d3..20a6f43af 100644 --- a/src/ui/cuisprite.hpp +++ b/src/ui/cuisprite.hpp @@ -12,7 +12,8 @@ class EE_API cUISprite : public cUIComplexControl { inline CreateParams() : cUIComplexControl::CreateParams(), Sprite( NULL ), - SpriteRender( RN_NORMAL ) + SpriteRender( RN_NORMAL ), + DeallocSprite( true ) { } @@ -20,6 +21,7 @@ class EE_API cUISprite : public cUIComplexControl { cSprite * Sprite; EE_RENDERTYPE SpriteRender; + bool DeallocSprite; }; cUISprite( const cUISprite::CreateParams& Params ); @@ -48,6 +50,7 @@ class EE_API cUISprite : public cUIComplexControl { EE_RENDERTYPE mRender; eeVector2i mAlignOffset; cShape * mShapeLast; + bool mDealloc; void UpdateSize(); @@ -56,6 +59,8 @@ class EE_API cUISprite : public cUIComplexControl { void CheckShapeUpdate(); virtual void OnSizeChange(); + + Uint32 DeallocSprite(); }; }} diff --git a/src/ui/cuitheme.cpp b/src/ui/cuitheme.cpp index 0c3124744..430c35f9d 100644 --- a/src/ui/cuitheme.cpp +++ b/src/ui/cuitheme.cpp @@ -21,6 +21,8 @@ #include "cuitooltip.hpp" #include "cuiwindow.hpp" #include "cuiwinmenu.hpp" +#include "cuigfx.hpp" +#include "cuisprite.hpp" namespace EE { namespace UI { @@ -347,13 +349,46 @@ void cUITheme::FontSelectedColor( const eeColorA& Color ) { void cUITheme::PostInit() { } +cUIGfx * cUITheme::CreateGfx( cShape * Shape, cUIControl * Parent, const eeSize& Size, const eeVector2i& Pos, const Uint32& Flags, eeColorA ShapeColor, EE_RENDERTYPE ShapeRender ) { + cUIGfx::CreateParams GfxParams; + GfxParams.Parent( Parent ); + GfxParams.PosSet( Pos ); + GfxParams.SizeSet( Size ); + GfxParams.Flags = Flags; + GfxParams.Shape = Shape; + GfxParams.ShapeColor = ShapeColor; + GfxParams.ShapeRender = ShapeRender; + cUIGfx * Gfx = eeNew( cUIGfx, ( GfxParams ) ); + Gfx->Visible( true ); + Gfx->Enabled( true ); + return Gfx; +} + +cUISprite * cUITheme::CreateSprite( cSprite * Sprite, cUIControl * Parent, const eeSize& Size, const eeVector2i& Pos, const Uint32& Flags, bool DeallocSprite, EE_RENDERTYPE SpriteRender ) { + cUISprite::CreateParams SpriteParams; + SpriteParams.Parent( Parent ); + SpriteParams.PosSet( Pos ); + SpriteParams.SizeSet( Size ); + SpriteParams.Flags = Flags; + SpriteParams.Sprite = Sprite; + SpriteParams.SpriteRender = SpriteRender; + SpriteParams.DeallocSprite = DeallocSprite; + cUISprite * Spr = eeNew( cUISprite, ( SpriteParams ) ); + Spr->Visible( true ); + Spr->Enabled( true ); + return Spr; +} + cUICheckBox * cUITheme::CreateCheckBox( cUIControl * Parent, const eeSize& Size, const eeVector2i& Pos, const Uint32& Flags ) { cUICheckBox::CreateParams CheckBoxParams; CheckBoxParams.Parent( Parent ); CheckBoxParams.PosSet( Pos ); CheckBoxParams.SizeSet( Size ); CheckBoxParams.Flags = Flags; - return eeNew( cUICheckBox, ( CheckBoxParams ) ); + cUICheckBox * Ctrl = eeNew( cUICheckBox, ( CheckBoxParams ) ); + Ctrl->Visible( true ); + Ctrl->Enabled( true ); + return Ctrl; } cUIRadioButton * cUITheme::CreateRadioButton( cUIControl * Parent, const eeSize& Size, const eeVector2i& Pos, const Uint32& Flags ) { @@ -362,7 +397,10 @@ cUIRadioButton * cUITheme::CreateRadioButton( cUIControl * Parent, const eeSize& RadioButtonParams.PosSet( Pos ); RadioButtonParams.SizeSet( Size ); RadioButtonParams.Flags = Flags; - return eeNew( cUIRadioButton, ( RadioButtonParams ) ); + cUIRadioButton * Ctrl = eeNew( cUIRadioButton, ( RadioButtonParams ) ); + Ctrl->Visible( true ); + Ctrl->Enabled( true ); + return Ctrl; } cUITextBox * cUITheme::CreateTextBox( cUIControl * Parent, const eeSize& Size, const eeVector2i& Pos, const Uint32& Flags ) { @@ -371,7 +409,10 @@ cUITextBox * cUITheme::CreateTextBox( cUIControl * Parent, const eeSize& Size, c TextBoxParams.PosSet( Pos ); TextBoxParams.SizeSet( Size ); TextBoxParams.Flags = Flags; - return eeNew( cUITextBox, ( TextBoxParams ) ); + cUITextBox * Ctrl = eeNew( cUITextBox, ( TextBoxParams ) ); + Ctrl->Visible( true ); + Ctrl->Enabled( true ); + return Ctrl; } cUITooltip * cUITheme::CreateTooltip( cUIControl * TooltipOf, cUIControl * Parent, const eeSize& Size, const eeVector2i& Pos, const Uint32& Flags ) { @@ -380,7 +421,10 @@ cUITooltip * cUITheme::CreateTooltip( cUIControl * TooltipOf, cUIControl * Paren TooltipParams.PosSet( Pos ); TooltipParams.SizeSet( Size ); TooltipParams.Flags = Flags; - return eeNew( cUITooltip, ( TooltipParams, TooltipOf ) ); + cUITooltip * Ctrl = eeNew( cUITooltip, ( TooltipParams, TooltipOf ) ); + Ctrl->Visible( true ); + Ctrl->Enabled( true ); + return Ctrl; } cUITextEdit * cUITheme::CreateTextEdit( cUIControl * Parent, const eeSize& Size, const eeVector2i& Pos, const Uint32& Flags, UI_SCROLLBAR_MODE HScrollBar, UI_SCROLLBAR_MODE VScrollBar, bool WordWrap ) { @@ -392,7 +436,10 @@ cUITextEdit * cUITheme::CreateTextEdit( cUIControl * Parent, const eeSize& Size, TextEditParams.HScrollBar = HScrollBar; TextEditParams.VScrollBar = VScrollBar; TextEditParams.WordWrap = WordWrap; - return eeNew( cUITextEdit, ( TextEditParams ) ); + cUITextEdit * Ctrl = eeNew( cUITextEdit, ( TextEditParams ) ); + Ctrl->Visible( true ); + Ctrl->Enabled( true ); + return Ctrl; } cUITextInput * cUITheme::CreateTextInput( cUIControl * Parent, const eeSize& Size, const eeVector2i& Pos, const Uint32& Flags, bool SupportFreeEditing, Uint32 MaxLenght ) { @@ -403,7 +450,10 @@ cUITextInput * cUITheme::CreateTextInput( cUIControl * Parent, const eeSize& Siz TextInputParams.Flags = Flags; TextInputParams.SupportFreeEditing = SupportFreeEditing; TextInputParams.MaxLenght = MaxLenght; - return eeNew( cUITextInput, ( TextInputParams ) ); + cUITextInput * Ctrl = eeNew( cUITextInput, ( TextInputParams ) ); + Ctrl->Visible( true ); + Ctrl->Enabled( true ); + return Ctrl; } cUISpinBox * cUITheme::CreateSpinBox( cUIControl * Parent, const eeSize& Size, const eeVector2i& Pos, const Uint32& Flags, eeFloat DefaultValue, bool AllowDotsInNumbers ) { @@ -414,7 +464,10 @@ cUISpinBox * cUITheme::CreateSpinBox( cUIControl * Parent, const eeSize& Size, c SpinBoxParams.Flags = Flags; SpinBoxParams.DefaultValue = DefaultValue; SpinBoxParams.AllowDotsInNumbers = AllowDotsInNumbers; - return eeNew( cUISpinBox, ( SpinBoxParams ) ); + cUISpinBox * Ctrl = eeNew( cUISpinBox, ( SpinBoxParams ) ); + Ctrl->Visible( true ); + Ctrl->Enabled( true ); + return Ctrl; } cUIScrollBar * cUITheme::CreateScrollBar( cUIControl * Parent, const eeSize& Size, const eeVector2i& Pos, const Uint32& Flags, bool VerticalScrollBar ) { @@ -423,7 +476,10 @@ cUIScrollBar * cUITheme::CreateScrollBar( cUIControl * Parent, const eeSize& Siz ScrollBarParams.PosSet( Pos ); ScrollBarParams.SizeSet( Size ); ScrollBarParams.Flags = Flags; - return eeNew( cUIScrollBar, ( ScrollBarParams ) ); + cUIScrollBar * Ctrl = eeNew( cUIScrollBar, ( ScrollBarParams ) ); + Ctrl->Visible( true ); + Ctrl->Enabled( true ); + return Ctrl; } cUISlider * cUITheme::CreateSlider( cUIControl * Parent, const eeSize& Size, const eeVector2i& Pos, const Uint32& Flags, bool VerticalSlider, bool AllowHalfSliderOut, bool ExpandBackground ) { @@ -435,7 +491,10 @@ cUISlider * cUITheme::CreateSlider( cUIControl * Parent, const eeSize& Size, con SliderParams.VerticalSlider = VerticalSlider; SliderParams.AllowHalfSliderOut = AllowHalfSliderOut; SliderParams.ExpandBackground = ExpandBackground; - return eeNew( cUISlider, ( SliderParams ) ); + cUISlider * Ctrl = eeNew( cUISlider, ( SliderParams ) ); + Ctrl->Visible( true ); + Ctrl->Enabled( true ); + return Ctrl; } cUIComboBox * cUITheme::CreateComboBox( cUIControl * Parent, const eeSize& Size, const eeVector2i& Pos, const Uint32& Flags, Uint32 MinNumVisibleItems, bool PopUpToMainControl, cUIListBox * ListBox ) { @@ -447,7 +506,10 @@ cUIComboBox * cUITheme::CreateComboBox( cUIControl * Parent, const eeSize& Size, ComboParams.MinNumVisibleItems = MinNumVisibleItems; ComboParams.PopUpToMainControl = PopUpToMainControl; ComboParams.ListBox = ListBox; - return eeNew( cUIComboBox, ( ComboParams ) ); + cUIComboBox * Ctrl = eeNew( cUIComboBox, ( ComboParams ) ); + Ctrl->Visible( true ); + Ctrl->Enabled( true ); + return Ctrl; } cUIDropDownList * cUITheme::CreateDropDownList( cUIControl * Parent, const eeSize& Size, const eeVector2i& Pos, const Uint32& Flags, Uint32 MinNumVisibleItems, bool PopUpToMainControl, cUIListBox * ListBox ) { @@ -459,7 +521,10 @@ cUIDropDownList * cUITheme::CreateDropDownList( cUIControl * Parent, const eeSiz DDLParams.MinNumVisibleItems = MinNumVisibleItems; DDLParams.PopUpToMainControl = PopUpToMainControl; DDLParams.ListBox = ListBox; - return eeNew( cUIDropDownList, ( DDLParams ) ); + cUIDropDownList * Ctrl = eeNew( cUIDropDownList, ( DDLParams ) ); + Ctrl->Visible( true ); + Ctrl->Enabled( true ); + return Ctrl; } cUIListBox * cUITheme::CreateListBox( cUIControl * Parent, const eeSize& Size, const eeVector2i& Pos, const Uint32& Flags, bool SmoothScroll, Uint32 RowHeight, UI_SCROLLBAR_MODE VScrollMode, UI_SCROLLBAR_MODE HScrollMode, eeRecti PaddingContainer ) { @@ -473,7 +538,10 @@ cUIListBox * cUITheme::CreateListBox( cUIControl * Parent, const eeSize& Size, c LBParams.VScrollMode = VScrollMode; LBParams.HScrollMode = HScrollMode; LBParams.PaddingContainer = PaddingContainer; - return eeNew( cUIListBox, ( LBParams ) ); + cUIListBox * Ctrl = eeNew( cUIListBox, ( LBParams ) ); + Ctrl->Visible( true ); + Ctrl->Enabled( true ); + return Ctrl; } cUIPopUpMenu * cUITheme::CreatePopUpMenu( cUIControl * Parent, const eeSize& Size, const eeVector2i& Pos, const Uint32& Flags, Uint32 RowHeight, eeRecti PaddingContainer, Uint32 MinWidth, Uint32 MinSpaceForIcons, Uint32 MinRightMargin ) { @@ -493,7 +561,10 @@ cUIPopUpMenu * cUITheme::CreatePopUpMenu( cUIControl * Parent, const eeSize& Siz MenuParams.MinSpaceForIcons = 16; MenuParams.MinRightMargin = 8; */ - return eeNew( cUIPopUpMenu, ( MenuParams ) ); + cUIPopUpMenu * Ctrl = eeNew( cUIPopUpMenu, ( MenuParams ) ); + Ctrl->Visible( true ); + Ctrl->Enabled( true ); + return Ctrl; } cUIProgressBar * cUITheme::CreateProgressBar( cUIControl * Parent, const eeSize& Size, const eeVector2i& Pos, const Uint32& Flags, bool DisplayPercent, bool VerticalExpand, eeVector2f MovementSpeed, eeRectf FillerMargin ) { @@ -510,7 +581,10 @@ cUIProgressBar * cUITheme::CreateProgressBar( cUIControl * Parent, const eeSize& /** Aqua Theme Stuff *//** PBParams.DisplayPercent = true */ - return eeNew( cUIProgressBar, ( PBParams ) ); + cUIProgressBar * Ctrl = eeNew( cUIProgressBar, ( PBParams ) ); + Ctrl->Visible( true ); + Ctrl->Enabled( true ); + return Ctrl; } cUIPushButton * cUITheme::CreatePushButton( cUIControl * Parent, const eeSize& Size, const eeVector2i& Pos, const Uint32& Flags, cShape * Icon, Int32 IconHorizontalMargin, bool IconAutoMargin ) { @@ -526,7 +600,30 @@ cUIPushButton * cUITheme::CreatePushButton( cUIControl * Parent, const eeSize& S if ( NULL != Icon ) ButtonParams.SetIcon( Icon ); - return eeNew( cUIPushButton, ( ButtonParams ) ); + cUIPushButton * Ctrl = eeNew( cUIPushButton, ( ButtonParams ) ); + Ctrl->Visible( true ); + Ctrl->Enabled( true ); + return Ctrl; +} + +cUIWinMenu * cUITheme::CreateWinMenu( cUIControl * Parent, const eeSize& Size, const eeVector2i& Pos, const Uint32& Flags, Uint32 MarginBetweenButtons, Uint32 ButtonMargin, Uint32 MenuHeight, Uint32 FirstButtonMargin ) { + cUIWinMenu::CreateParams WinMenuParams; + WinMenuParams.Parent( Parent ); + WinMenuParams.PosSet( Pos ); + WinMenuParams.SizeSet( Size ); + WinMenuParams.Flags = Flags; + WinMenuParams.MarginBetweenButtons = MarginBetweenButtons; + WinMenuParams.ButtonMargin = ButtonMargin; + WinMenuParams.MenuHeight = MenuHeight; + WinMenuParams.FirstButtonMargin = FirstButtonMargin; + + /** Aqua Theme Stuff *//** + WinMenuParams.ButtonMargin = 12; + */ + cUIWinMenu * Ctrl = eeNew( cUIWinMenu, ( WinMenuParams ) ); + Ctrl->Visible( true ); + Ctrl->Enabled( true ); + return Ctrl; } }} diff --git a/src/ui/cuitheme.hpp b/src/ui/cuitheme.hpp index ff0b2beb5..5b23537e1 100644 --- a/src/ui/cuitheme.hpp +++ b/src/ui/cuitheme.hpp @@ -27,6 +27,8 @@ class cUITextInput; class cUITooltip; class cUIWindow; class cUIWinMenu; +class cUIGfx; +class cUISprite; class EE_API cUITheme : public tResourceManager { public: @@ -70,6 +72,10 @@ class EE_API cUITheme : public tResourceManager { void FontSelectedColor( const eeColorA& Color ); + virtual cUIGfx * CreateGfx( cShape * Shape, cUIControl * Parent, const eeSize& Size = eeSize(), const eeVector2i& Pos = eeVector2i(), const Uint32& Flags = UI_AUTO_SIZE | UI_VALIGN_CENTER | UI_HALIGN_CENTER, eeColorA ShapeColor = eeColorA(255,255,255,255), EE_RENDERTYPE ShapeRender = RN_NORMAL ); + + virtual cUISprite * CreateSprite( cSprite * Sprite, cUIControl * Parent, const eeSize& Size = eeSize(), const eeVector2i& Pos = eeVector2i(), const Uint32& Flags = UI_AUTO_SIZE | UI_VALIGN_CENTER | UI_HALIGN_CENTER, bool DeallocSprite = true, EE_RENDERTYPE SpriteRender = RN_NORMAL ); + virtual cUICheckBox * CreateCheckBox( cUIControl * Parent, const eeSize& Size = eeSize(), const eeVector2i& Pos = eeVector2i(), const Uint32& Flags = UI_VALIGN_CENTER | UI_HALIGN_LEFT ); virtual cUIRadioButton * CreateRadioButton( cUIControl * Parent, const eeSize& Size = eeSize(), const eeVector2i& Pos = eeVector2i(), const Uint32& Flags = UI_VALIGN_CENTER | UI_HALIGN_LEFT ); @@ -99,6 +105,8 @@ class EE_API cUITheme : public tResourceManager { virtual cUIProgressBar * CreateProgressBar( cUIControl * Parent, const eeSize& Size = eeSize(), const eeVector2i& Pos = eeVector2i(), const Uint32& Flags = UI_HALIGN_LEFT | UI_VALIGN_CENTER, bool DisplayPercent = false, bool VerticalExpand = false, eeVector2f MovementSpeed = eeVector2f( 64, 0 ), eeRectf FillerMargin = eeRectf() ); virtual cUIPushButton * CreatePushButton( cUIControl * Parent, const eeSize& Size = eeSize(), const eeVector2i& Pos = eeVector2i(), const Uint32& Flags = UI_VALIGN_CENTER | UI_HALIGN_CENTER, cShape * Icon = NULL, Int32 IconHorizontalMargin = 0, bool IconAutoMargin = true ); + + virtual cUIWinMenu * CreateWinMenu( cUIControl * Parent, const eeSize& Size = eeSize(), const eeVector2i& Pos = eeVector2i(), const Uint32& Flags = UI_VALIGN_CENTER | UI_HALIGN_LEFT, Uint32 MarginBetweenButtons = 0, Uint32 ButtonMargin = 4, Uint32 MenuHeight = 0, Uint32 FirstButtonMargin = 1 ); protected: std::string mName; Uint32 mNameHash;