diff --git a/include/eepp/ui/uihelper.hpp b/include/eepp/ui/uihelper.hpp index 7f4c122cd..d8c3a97df 100644 --- a/include/eepp/ui/uihelper.hpp +++ b/include/eepp/ui/uihelper.hpp @@ -6,31 +6,28 @@ namespace EE { namespace UI { enum NODE_FLAGS_VALUES { - NODE_FLAG_CLOSE = (1<<0), - NODE_FLAG_CLOSE_DELAYED = (1<<1), - NODE_FLAG_MOUSEOVER = (1<<2), - NODE_FLAG_HAS_FOCUS = (1<<3), - NODE_FLAG_SELECTED = (1<<4), - NODE_FLAG_DISABLE_DELAYED = (1<<5), - NODE_FLAG_MOUSEOVER_ME_OR_CHILD = (1<<6), - NODE_FLAG_DRAGGING = (1<<7), - NODE_FLAG_WIDGET = (1<<8), - NODE_FLAG_SKIN_OWNER = (1<<9), - NODE_FLAG_TOUCH_DRAGGING = (1<<10), - NODE_FLAG_DISABLED_BY_MODAL_WINDOW = (1<<11), - NODE_FLAG_SELECTING = (1<<12), - NODE_FLAG_ROTATED = (1<<13), - NODE_FLAG_SCALED = (1<<14), - NODE_FLAG_OWNED_BY_WINDOW = (1<<15), - NODE_FLAG_DRAWABLE_OWNER = (1<<16), - NODE_FLAG_REVERSE_DRAW = (1<<17), - NODE_FLAG_FRAME_BUFFER = (1<<18), - NODE_FLAG_NEEDS_REDRAW = (1<<19), - NODE_FLAG_DIRTY_POLY = (1<<20), + NODE_FLAG_VIEW_DIRTY = (1<<1), + NODE_FLAG_POSITION_DIRTY = (1<<2), + NODE_FLAG_POLYGON_DIRTY = (1<<3), + NODE_FLAG_ROTATED = (1<<4), + NODE_FLAG_SCALED = (1<<5), + NODE_FLAG_CLOSE = (1<<6), + NODE_FLAG_CLOSE_DELAYED = (1<<7), + NODE_FLAG_MOUSEOVER = (1<<8), + NODE_FLAG_HAS_FOCUS = (1<<9), + NODE_FLAG_SELECTED = (1<<10), + NODE_FLAG_DISABLE_DELAYED = (1<<11), + NODE_FLAG_MOUSEOVER_ME_OR_CHILD = (1<<12), + NODE_FLAG_DRAGGING = (1<<13), + NODE_FLAG_SKIN_OWNER = (1<<14), + NODE_FLAG_TOUCH_DRAGGING = (1<<15), + NODE_FLAG_DISABLED_BY_MODAL_WINDOW = (1<<16), + NODE_FLAG_OWNED_BY_WINDOW = (1<<17), + NODE_FLAG_REVERSE_DRAW = (1<<18), + NODE_FLAG_FRAME_BUFFER = (1<<19), + NODE_FLAG_WIDGET = (1<<20), NODE_FLAG_WINDOW = (1<<21), - NODE_FLAG_POSITION_DIRTY = (1<<22), - NODE_FLAG_POLYGON_DIRTY = (1<<23), - NODE_FLAG_FREE_USE = (1<<24) + NODE_FLAG_FREE_USE = (1<<22) }; #define UI_HALIGN_LEFT TEXT_ALIGN_LEFT diff --git a/include/eepp/ui/uiimage.hpp b/include/eepp/ui/uiimage.hpp index cbbdd13b0..8be80a5ca 100644 --- a/include/eepp/ui/uiimage.hpp +++ b/include/eepp/ui/uiimage.hpp @@ -42,6 +42,7 @@ class EE_API UIImage : public UIWidget { Color mColor; Vector2f mAlignOffset; Vector2f mDestSize; + bool mDrawableOwner; virtual void onSizeChange(); diff --git a/include/eepp/ui/uitextview.hpp b/include/eepp/ui/uitextview.hpp index 830e2a998..02d1750ab 100644 --- a/include/eepp/ui/uitextview.hpp +++ b/include/eepp/ui/uitextview.hpp @@ -104,6 +104,7 @@ class EE_API UITextView : public UIWidget { std::vector mSelPosCache; Int32 mLastSelCurInit; Int32 mLastSelCurEnd; + bool mSelecting; virtual void drawSelection(Text * textCache); diff --git a/src/eepp/ui/uiimage.cpp b/src/eepp/ui/uiimage.cpp index 3b995c19b..a3f37658e 100644 --- a/src/eepp/ui/uiimage.cpp +++ b/src/eepp/ui/uiimage.cpp @@ -15,7 +15,8 @@ UIImage::UIImage() : mScaleType( 0 ), mDrawable( NULL ), mColor(), - mAlignOffset(0,0) + mAlignOffset(0,0), + mDrawableOwner(false) { mFlags |= UI_AUTO_SIZE; @@ -148,13 +149,13 @@ void UIImage::autoAlign() { } void UIImage::safeDeleteDrawable() { - if ( NULL != mDrawable && ( mNodeFlags & NODE_FLAG_DRAWABLE_OWNER ) ) { + if ( NULL != mDrawable && mDrawableOwner ) { if ( mDrawable->getDrawableType() == Drawable::SPRITE ) { Sprite * spr = reinterpret_cast( mDrawable ); eeSAFE_DELETE( spr ); } - writeCtrlFlag( NODE_FLAG_DRAWABLE_OWNER, 0 ); + mDrawableOwner = false; } } @@ -188,7 +189,7 @@ void UIImage::loadFromXmlNode(const pugi::xml_node & node) { if ( NULL != ( res = DrawableSearcher::searchByName( ait->as_string() ) ) ) { if ( res->getDrawableType() == Drawable::SPRITE ) - writeCtrlFlag( NODE_FLAG_DRAWABLE_OWNER, 1 ); + mDrawableOwner = true; setDrawable( res ); } diff --git a/src/eepp/ui/uitextview.cpp b/src/eepp/ui/uitextview.cpp index a206bea0a..42f04427b 100644 --- a/src/eepp/ui/uitextview.cpp +++ b/src/eepp/ui/uitextview.cpp @@ -19,7 +19,8 @@ UITextView::UITextView() : mSelCurInit( -1 ), mSelCurEnd( -1 ), mLastSelCurInit( -1 ), - mLastSelCurEnd( -1 ) + mLastSelCurEnd( -1 ), + mSelecting( false ) { mFontStyleConfig = UIThemeManager::instance()->getDefaultFontStyleConfig(); @@ -351,7 +352,7 @@ Uint32 UITextView::onMouseDoubleClick( const Vector2i& Pos, const Uint32 Flags ) selCurInit( tSelCurInit ); selCurEnd( tSelCurEnd ); - mNodeFlags &= ~NODE_FLAG_SELECTING; + mSelecting = false; } } @@ -365,7 +366,7 @@ Uint32 UITextView::onMouseClick( const Vector2i& Pos, const Uint32 Flags ) { selCurEnd( -1 ); } - mNodeFlags &= ~NODE_FLAG_SELECTING; + mSelecting = false; } return UIWidget::onMouseClick( Pos, Flags ); @@ -380,7 +381,7 @@ Uint32 UITextView::onMouseDown( const Vector2i& Pos, const Uint32 Flags ) { Int32 curPos = mTextCache->findCharacterFromPos( Vector2i( controlPos.x, controlPos.y ) ); if ( -1 != curPos ) { - if ( -1 == selCurInit() || !( mNodeFlags & NODE_FLAG_SELECTING ) ) { + if ( -1 == selCurInit() || !mSelecting ) { selCurInit( curPos ); selCurEnd( curPos ); } else { @@ -388,7 +389,7 @@ Uint32 UITextView::onMouseDown( const Vector2i& Pos, const Uint32 Flags ) { } } - mNodeFlags |= NODE_FLAG_SELECTING; + mSelecting = true; } return UIWidget::onMouseDown( Pos, Flags ); diff --git a/src/eepp/ui/uiwindow.cpp b/src/eepp/ui/uiwindow.cpp index 52ab573bc..bbe099d25 100644 --- a/src/eepp/ui/uiwindow.cpp +++ b/src/eepp/ui/uiwindow.cpp @@ -270,7 +270,7 @@ void UIWindow::drawFrameBuffer() { } void UIWindow::drawHighlightInvalidation() { - if ( ( mNodeFlags & NODE_FLAG_NEEDS_REDRAW ) && UIManager::instance()->getHighlightInvalidation() ) { + if ( ( mNodeFlags & NODE_FLAG_VIEW_DIRTY ) && UIManager::instance()->getHighlightInvalidation() ) { UIWidget::matrixSet(); Primitives P; @@ -1142,13 +1142,13 @@ void UIWindow::internalDraw() { drawHighlightInvalidation(); - writeCtrlFlag( NODE_FLAG_NEEDS_REDRAW, 0 ); + writeCtrlFlag( NODE_FLAG_VIEW_DIRTY, 0 ); } } void UIWindow::invalidate() { if ( mVisible && mAlpha != 0.f ) { - writeCtrlFlag( NODE_FLAG_NEEDS_REDRAW, 1 ); + writeCtrlFlag( NODE_FLAG_VIEW_DIRTY, 1 ); if ( NULL != mParentWindowCtrl ) mParentWindowCtrl->invalidateDraw(); @@ -1160,7 +1160,7 @@ FrameBuffer * UIWindow::getFrameBuffer() const { } bool UIWindow::invalidated() { - return 0 != ( mNodeFlags & NODE_FLAG_NEEDS_REDRAW ); + return 0 != ( mNodeFlags & NODE_FLAG_VIEW_DIRTY ); } void UIWindow::matrixSet() { diff --git a/src/examples/empty_window/empty_window.cpp b/src/examples/empty_window/empty_window.cpp index 3847069ff..ccb900f21 100644 --- a/src/examples/empty_window/empty_window.cpp +++ b/src/examples/empty_window/empty_window.cpp @@ -44,7 +44,7 @@ EE_MAIN_FUNC int main (int argc, char * argv []) // This is the application loop, it will loop until the window is closed. // This is only a requirement if you want to support Emscripten builds ( WebGL + Canvas ). // This is the same as, except for Emscripten. - // while ( win->Running() ) + // while ( win->isRunning() ) // { // MainLoop(); // }