mirror of
https://github.com/SpartanJ/eepp.git
synced 2026-05-31 10:36:30 +03:00
Cache UINode polygon and screen position.
Renamed all UI_CTRL_FLAG_* to NODE_FLAG_*. Several minor fixes. --HG-- branch : dev-2.1
This commit is contained in:
@@ -45,7 +45,6 @@ class EE_API Transform {
|
||||
|
||||
static const Transform Identity;
|
||||
private:
|
||||
|
||||
float mMatrix[16];
|
||||
};
|
||||
|
||||
|
||||
@@ -5,30 +5,33 @@
|
||||
|
||||
namespace EE { namespace UI {
|
||||
|
||||
enum UI_CONTROL_FLAGS_VALUES {
|
||||
UI_CTRL_FLAG_CLOSE = (1<<0),
|
||||
UI_CTRL_FLAG_CLOSE_FO = (1<<1),
|
||||
UI_CTRL_FLAG_MOUSEOVER = (1<<2),
|
||||
UI_CTRL_FLAG_HAS_FOCUS = (1<<3),
|
||||
UI_CTRL_FLAG_SELECTED = (1<<4),
|
||||
UI_CTRL_FLAG_DISABLE_FADE_OUT = (1<<5),
|
||||
UI_CTRL_FLAG_MOUSEOVER_ME_OR_CHILD = (1<<6),
|
||||
UI_CTRL_FLAG_DRAGGING = (1<<7),
|
||||
UI_CTRL_FLAG_WIDGET = (1<<8),
|
||||
UI_CTRL_FLAG_SKIN_OWNER = (1<<9),
|
||||
UI_CTRL_FLAG_TOUCH_DRAGGING = (1<<10),
|
||||
UI_CTRL_FLAG_DISABLED_BY_MODAL_WINDOW = (1<<11),
|
||||
UI_CTRL_FLAG_SELECTING = (1<<12),
|
||||
UI_CTRL_FLAG_ROTATED = (1<<13),
|
||||
UI_CTRL_FLAG_SCALED = (1<<14),
|
||||
UI_CTRL_FLAG_OWNED_BY_WINDOW = (1<<15),
|
||||
UI_CTRL_FLAG_DRAWABLE_OWNER = (1<<16),
|
||||
UI_CTRL_FLAG_REVERSE_DRAW = (1<<17),
|
||||
UI_CTRL_FLAG_FRAME_BUFFER = (1<<18),
|
||||
UI_CTRL_FLAG_NEEDS_REDRAW = (1<<19),
|
||||
UI_CTRL_FLAG_DIRTY_POLY = (1<<20),
|
||||
UI_CTRL_FLAG_WINDOW = (1<<21),
|
||||
UI_CTRL_FLAG_FREE_USE = (1<<22)
|
||||
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_WINDOW = (1<<21),
|
||||
NODE_FLAG_POSITION_DIRTY = (1<<22),
|
||||
NODE_FLAG_TRANFORM_DIRTY = (1<<23),
|
||||
NODE_FLAG_TRANFORM_INVERT_DIRTY = (1<<24),
|
||||
NODE_FLAG_FREE_USE = (1<<25)
|
||||
};
|
||||
|
||||
#define UI_HALIGN_LEFT TEXT_ALIGN_LEFT
|
||||
|
||||
@@ -63,7 +63,7 @@ UINode * UIItemContainer<TContainer>::overFind( const Vector2f& Point ) {
|
||||
updateQuad();
|
||||
|
||||
if ( mPoly.pointInside( Point ) ) {
|
||||
writeCtrlFlag( UI_CTRL_FLAG_MOUSEOVER_ME_OR_CHILD, 1 );
|
||||
writeCtrlFlag( NODE_FLAG_MOUSEOVER_ME_OR_CHILD, 1 );
|
||||
|
||||
for ( Uint32 i = tParent->mVisibleFirst; i <= tParent->mVisibleLast; i++ ) {
|
||||
if ( NULL != tParent->mItems[i] ) {
|
||||
|
||||
@@ -207,7 +207,7 @@ class EE_API UINode {
|
||||
|
||||
Polygon2f& getPolygon();
|
||||
|
||||
const Vector2f& getPolygonCenter() const;
|
||||
Vector2f getPolygonCenter();
|
||||
|
||||
void setSkinState( const Uint32& State );
|
||||
|
||||
@@ -383,7 +383,7 @@ class EE_API UINode {
|
||||
BlendMode mBlend;
|
||||
Uint16 mNumCallBacks;
|
||||
|
||||
Polygon2f mPoly;
|
||||
mutable Polygon2f mPoly;
|
||||
Vector2f mCenter;
|
||||
|
||||
UIEventsMap mEvents;
|
||||
@@ -516,8 +516,6 @@ class EE_API UINode {
|
||||
|
||||
virtual void updateScreenPos();
|
||||
|
||||
void updateChildsScreenPos();
|
||||
|
||||
void writeCtrlFlag( const Uint32& Flag, const Uint32& Val );
|
||||
|
||||
void writeFlag( const Uint32& Flag, const Uint32& Val );
|
||||
@@ -561,6 +559,10 @@ class EE_API UINode {
|
||||
UIWindow * getParentWindow();
|
||||
|
||||
void updateOriginPoint();
|
||||
|
||||
void setDirty();
|
||||
|
||||
void setChildsDirty();
|
||||
};
|
||||
|
||||
}}
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE QtCreatorProject>
|
||||
<!-- Written by QtCreator 4.4.0, 2018-01-13T19:28:42. -->
|
||||
<!-- Written by QtCreator 4.4.0, 2018-01-14T01:01:23. -->
|
||||
<qtcreator>
|
||||
<data>
|
||||
<variable>EnvironmentId</variable>
|
||||
<value type="QByteArray">{b6114084-39c2-4cd0-b9e2-d8803dc6b446}</value>
|
||||
<value type="QByteArray">{d43f4693-30c1-436c-b1d1-498aab2c2f8c}</value>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.ActiveTarget</variable>
|
||||
@@ -63,7 +63,7 @@
|
||||
<valuemap type="QVariantMap">
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{388e5431-b31b-42b3-b9ad-9002d279d75d}</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{6d057187-158a-4883-8d5b-d470a6b6b025}</value>
|
||||
<value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">10</value>
|
||||
<value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
|
||||
<value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
|
||||
|
||||
@@ -40,6 +40,8 @@ TextureAtlasTextureRegionEditor::~TextureAtlasTextureRegionEditor() {
|
||||
}
|
||||
|
||||
void TextureAtlasTextureRegionEditor::draw() {
|
||||
UIWidget::draw();
|
||||
|
||||
Primitives P;
|
||||
P.setColor( Color( 255, 0, 0, mAlpha ) );
|
||||
P.setLineWidth( PixelDensity::dpToPx( 1.f ) );
|
||||
@@ -48,8 +50,6 @@ void TextureAtlasTextureRegionEditor::draw() {
|
||||
|
||||
P.drawLine( Line2f( Vector2f( mScreenPos.x, mScreenPos.y + uiCenterPx.y ), Vector2f( mScreenPos.x + mRealSize.getWidth(), mScreenPos.y + uiCenterPx.y ) ) );
|
||||
P.drawLine( Line2f( Vector2f( mScreenPos.x + uiCenterPx.x, mScreenPos.y ), Vector2f( mScreenPos.x + uiCenterPx.x, mScreenPos.y + mRealSize.getHeight() ) ) );
|
||||
|
||||
UIWidget::draw();
|
||||
}
|
||||
|
||||
void TextureAtlasTextureRegionEditor::update() {
|
||||
|
||||
@@ -146,13 +146,13 @@ void UIImage::autoAlign() {
|
||||
}
|
||||
|
||||
void UIImage::safeDeleteDrawable() {
|
||||
if ( NULL != mDrawable && ( mNodeFlags & UI_CTRL_FLAG_DRAWABLE_OWNER ) ) {
|
||||
if ( NULL != mDrawable && ( mNodeFlags & NODE_FLAG_DRAWABLE_OWNER ) ) {
|
||||
if ( mDrawable->getDrawableType() == Drawable::SPRITE ) {
|
||||
Sprite * spr = reinterpret_cast<Sprite*>( mDrawable );
|
||||
eeSAFE_DELETE( spr );
|
||||
}
|
||||
|
||||
writeCtrlFlag( UI_CTRL_FLAG_DRAWABLE_OWNER, 0 );
|
||||
writeCtrlFlag( NODE_FLAG_DRAWABLE_OWNER, 0 );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -186,7 +186,7 @@ void UIImage::loadFromXmlNode(const pugi::xml_node & node) {
|
||||
|
||||
if ( NULL != ( res = DrawableSearcher::searchByName( ait->as_string() ) ) ) {
|
||||
if ( res->getDrawableType() == Drawable::SPRITE )
|
||||
writeCtrlFlag( UI_CTRL_FLAG_DRAWABLE_OWNER, 1 );
|
||||
writeCtrlFlag( NODE_FLAG_DRAWABLE_OWNER, 1 );
|
||||
|
||||
setDrawable( res );
|
||||
}
|
||||
|
||||
@@ -50,26 +50,26 @@ Uint32 UIListBoxItem::onMouseClick( const Vector2i& Pos, const Uint32 Flags ) {
|
||||
void UIListBoxItem::select() {
|
||||
UIListBox * LBParent = reinterpret_cast<UIListBox*> ( getParent()->getParent() );
|
||||
|
||||
bool wasSelected = 0 != ( mNodeFlags & UI_CTRL_FLAG_SELECTED );
|
||||
bool wasSelected = 0 != ( mNodeFlags & NODE_FLAG_SELECTED );
|
||||
|
||||
if ( LBParent->isMultiSelect() ) {
|
||||
if ( !wasSelected ) {
|
||||
setSkinState( UISkinState::StateSelected );
|
||||
|
||||
mNodeFlags |= UI_CTRL_FLAG_SELECTED;
|
||||
mNodeFlags |= NODE_FLAG_SELECTED;
|
||||
|
||||
LBParent->mSelected.push_back( LBParent->getItemIndex( this ) );
|
||||
|
||||
LBParent->onSelected();
|
||||
} else {
|
||||
mNodeFlags &= ~UI_CTRL_FLAG_SELECTED;
|
||||
mNodeFlags &= ~NODE_FLAG_SELECTED;
|
||||
|
||||
LBParent->mSelected.remove( LBParent->getItemIndex( this ) );
|
||||
}
|
||||
} else {
|
||||
setSkinState( UISkinState::StateSelected );
|
||||
|
||||
mNodeFlags |= UI_CTRL_FLAG_SELECTED;
|
||||
mNodeFlags |= NODE_FLAG_SELECTED;
|
||||
|
||||
LBParent->mSelected.clear();
|
||||
LBParent->mSelected.push_back( LBParent->getItemIndex( this ) );
|
||||
@@ -98,21 +98,21 @@ void UIListBoxItem::update() {
|
||||
Uint32 UIListBoxItem::onMouseExit( const Vector2i& Pos, const Uint32 Flags ) {
|
||||
UINode::onMouseExit( Pos, Flags );
|
||||
|
||||
if ( mNodeFlags & UI_CTRL_FLAG_SELECTED )
|
||||
if ( mNodeFlags & NODE_FLAG_SELECTED )
|
||||
setSkinState( UISkinState::StateSelected );
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
void UIListBoxItem::unselect() {
|
||||
if ( mNodeFlags & UI_CTRL_FLAG_SELECTED )
|
||||
mNodeFlags &= ~UI_CTRL_FLAG_SELECTED;
|
||||
if ( mNodeFlags & NODE_FLAG_SELECTED )
|
||||
mNodeFlags &= ~NODE_FLAG_SELECTED;
|
||||
|
||||
setSkinState( UISkinState::StateNormal );
|
||||
}
|
||||
|
||||
bool UIListBoxItem::isSelected() const {
|
||||
return 0 != ( mNodeFlags & UI_CTRL_FLAG_SELECTED );
|
||||
return 0 != ( mNodeFlags & NODE_FLAG_SELECTED );
|
||||
}
|
||||
|
||||
void UIListBoxItem::onStateChange() {
|
||||
|
||||
@@ -99,10 +99,7 @@ Uint32 UIMessageBox::onMessage( const UIMessage * Msg ) {
|
||||
case UIMessage::Click:
|
||||
{
|
||||
if ( Msg->getFlags() & EE_BUTTON_LMASK ) {
|
||||
Vector2i mousei( UIManager::instance()->getMousePos() );
|
||||
Vector2f mouse( mousei.x, mousei.y );
|
||||
|
||||
if ( Msg->getSender() == mButtonOK && mButtonOK->getPolygon().pointInside( mouse ) ) {
|
||||
if ( Msg->getSender() == mButtonOK ) {
|
||||
sendCommonEvent( UIEvent::MsgBoxConfirmClick );
|
||||
|
||||
closeWindow();
|
||||
|
||||
@@ -39,7 +39,7 @@ UINode::UINode() :
|
||||
mSkinState( NULL ),
|
||||
mBackground( NULL ),
|
||||
mBorder( NULL ),
|
||||
mNodeFlags( 0 ),
|
||||
mNodeFlags( NODE_FLAG_POSITION_DIRTY | NODE_FLAG_TRANFORM_DIRTY | NODE_FLAG_TRANFORM_INVERT_DIRTY ),
|
||||
mBlend( BlendAlpha ),
|
||||
mNumCallBacks( 0 ),
|
||||
mVisible( true ),
|
||||
@@ -57,10 +57,6 @@ UINode::UINode() :
|
||||
|
||||
if ( NULL != mParentCtrl )
|
||||
mParentCtrl->childAdd( this );
|
||||
|
||||
updateScreenPos();
|
||||
updateQuad();
|
||||
updateOriginPoint();
|
||||
}
|
||||
|
||||
UINode::~UINode() {
|
||||
@@ -138,8 +134,7 @@ Uint32 UINode::onMessage( const UIMessage * Msg ) {
|
||||
void UINode::setInternalPosition( const Vector2i& Pos ) {
|
||||
mPos = Pos;
|
||||
mRealPos = Vector2i( Pos.x * PixelDensity::getPixelDensity(), Pos.y * PixelDensity::getPixelDensity() );
|
||||
updateScreenPos();
|
||||
updateChildsScreenPos();
|
||||
setDirty();
|
||||
}
|
||||
|
||||
UINode * UINode::setPosition( const Vector2f& Pos ) {
|
||||
@@ -163,8 +158,7 @@ void UINode::setPixelsPosition( const Vector2i& Pos ) {
|
||||
if ( mRealPos != Pos ) {
|
||||
mPos = Vector2i( PixelDensity::pxToDpI( Pos.x ), PixelDensity::pxToDpI( Pos.y ) );
|
||||
mRealPos = Pos;
|
||||
updateScreenPos();
|
||||
updateChildsScreenPos();
|
||||
setDirty();
|
||||
onPositionChange();
|
||||
}
|
||||
}
|
||||
@@ -312,11 +306,7 @@ UINode * UINode::setParent( UINode * parent ) {
|
||||
if ( NULL != mParentCtrl )
|
||||
mParentCtrl->childAdd( this );
|
||||
|
||||
updateScreenPos();
|
||||
|
||||
updateChildsScreenPos();
|
||||
|
||||
updateQuad();
|
||||
setDirty();
|
||||
|
||||
onParentChange();
|
||||
|
||||
@@ -361,7 +351,7 @@ void UINode::center() {
|
||||
}
|
||||
|
||||
void UINode::close() {
|
||||
mNodeFlags |= UI_CTRL_FLAG_CLOSE;
|
||||
mNodeFlags |= NODE_FLAG_CLOSE;
|
||||
|
||||
UIManager::instance()->addToCloseQueue( this );
|
||||
}
|
||||
@@ -492,8 +482,8 @@ void UINode::update() {
|
||||
ChildLoop = ChildLoop->mNext;
|
||||
}
|
||||
|
||||
if ( mNodeFlags & UI_CTRL_FLAG_MOUSEOVER_ME_OR_CHILD )
|
||||
writeCtrlFlag( UI_CTRL_FLAG_MOUSEOVER_ME_OR_CHILD, 0 );
|
||||
if ( mNodeFlags & NODE_FLAG_MOUSEOVER_ME_OR_CHILD )
|
||||
writeCtrlFlag( NODE_FLAG_MOUSEOVER_ME_OR_CHILD, 0 );
|
||||
}
|
||||
|
||||
void UINode::sendMouseEvent( const Uint32& Event, const Vector2i& Pos, const Uint32& Flags ) {
|
||||
@@ -552,11 +542,11 @@ Uint32 UINode::onMouseClick( const Vector2i& Pos, const Uint32 Flags ) {
|
||||
}
|
||||
|
||||
bool UINode::isMouseOver() {
|
||||
return 0 != ( mNodeFlags & UI_CTRL_FLAG_MOUSEOVER );
|
||||
return 0 != ( mNodeFlags & NODE_FLAG_MOUSEOVER );
|
||||
}
|
||||
|
||||
bool UINode::isMouseOverMeOrChilds() {
|
||||
return 0 != ( mNodeFlags & UI_CTRL_FLAG_MOUSEOVER_ME_OR_CHILD );
|
||||
return 0 != ( mNodeFlags & NODE_FLAG_MOUSEOVER_ME_OR_CHILD );
|
||||
}
|
||||
|
||||
Uint32 UINode::onMouseDoubleClick( const Vector2i& Pos, const Uint32 Flags ) {
|
||||
@@ -565,7 +555,7 @@ Uint32 UINode::onMouseDoubleClick( const Vector2i& Pos, const Uint32 Flags ) {
|
||||
}
|
||||
|
||||
Uint32 UINode::onMouseEnter( const Vector2i& Pos, const Uint32 Flags ) {
|
||||
writeCtrlFlag( UI_CTRL_FLAG_MOUSEOVER, 1 );
|
||||
writeCtrlFlag( NODE_FLAG_MOUSEOVER, 1 );
|
||||
|
||||
sendMouseEvent( UIEvent::MouseEnter, Pos, Flags );
|
||||
|
||||
@@ -575,7 +565,7 @@ Uint32 UINode::onMouseEnter( const Vector2i& Pos, const Uint32 Flags ) {
|
||||
}
|
||||
|
||||
Uint32 UINode::onMouseExit( const Vector2i& Pos, const Uint32 Flags ) {
|
||||
writeCtrlFlag( UI_CTRL_FLAG_MOUSEOVER, 0 );
|
||||
writeCtrlFlag( NODE_FLAG_MOUSEOVER, 0 );
|
||||
|
||||
sendMouseEvent( UIEvent::MouseExit, Pos, Flags );
|
||||
|
||||
@@ -585,7 +575,7 @@ Uint32 UINode::onMouseExit( const Vector2i& Pos, const Uint32 Flags ) {
|
||||
}
|
||||
|
||||
Uint32 UINode::onFocus() {
|
||||
mNodeFlags |= UI_CTRL_FLAG_HAS_FOCUS;
|
||||
mNodeFlags |= NODE_FLAG_HAS_FOCUS;
|
||||
|
||||
sendCommonEvent( UIEvent::OnFocus );
|
||||
|
||||
@@ -595,7 +585,7 @@ Uint32 UINode::onFocus() {
|
||||
}
|
||||
|
||||
Uint32 UINode::onFocusLoss() {
|
||||
mNodeFlags &= ~UI_CTRL_FLAG_HAS_FOCUS;
|
||||
mNodeFlags &= ~NODE_FLAG_HAS_FOCUS;
|
||||
|
||||
sendCommonEvent( UIEvent::OnFocusLoss );
|
||||
|
||||
@@ -610,7 +600,7 @@ void UINode::onWidgetFocusLoss() {
|
||||
}
|
||||
|
||||
bool UINode::hasFocus() const {
|
||||
return 0 != ( mNodeFlags & UI_CTRL_FLAG_HAS_FOCUS );
|
||||
return 0 != ( mNodeFlags & NODE_FLAG_HAS_FOCUS );
|
||||
}
|
||||
|
||||
Uint32 UINode::onValueChange() {
|
||||
@@ -849,6 +839,9 @@ void UINode::drawChilds() {
|
||||
|
||||
void UINode::internalDraw() {
|
||||
if ( mVisible ) {
|
||||
if ( mNodeFlags & NODE_FLAG_POSITION_DIRTY )
|
||||
updateScreenPos();
|
||||
|
||||
matrixSet();
|
||||
|
||||
clipMe();
|
||||
@@ -1124,10 +1117,11 @@ UINode * UINode::overFind( const Vector2f& Point ) {
|
||||
UINode * pOver = NULL;
|
||||
|
||||
if ( mEnabled && mVisible ) {
|
||||
updateQuad();
|
||||
if ( mNodeFlags & NODE_FLAG_TRANFORM_DIRTY )
|
||||
updateQuad();
|
||||
|
||||
if ( mPoly.pointInside( Point ) ) {
|
||||
writeCtrlFlag( UI_CTRL_FLAG_MOUSEOVER_ME_OR_CHILD, 1 );
|
||||
writeCtrlFlag( NODE_FLAG_MOUSEOVER_ME_OR_CHILD, 1 );
|
||||
|
||||
UINode * ChildLoop = mChildLast;
|
||||
|
||||
@@ -1184,11 +1178,11 @@ UINode * UINode::childGetAt( Vector2i CtrlPos, unsigned int RecursiveLevel ) {
|
||||
}
|
||||
|
||||
Uint32 UINode::isWidget() {
|
||||
return mNodeFlags & UI_CTRL_FLAG_WIDGET;
|
||||
return mNodeFlags & NODE_FLAG_WIDGET;
|
||||
}
|
||||
|
||||
Uint32 UINode::isWindow() {
|
||||
return mNodeFlags & UI_CTRL_FLAG_WINDOW;
|
||||
return mNodeFlags & NODE_FLAG_WINDOW;
|
||||
}
|
||||
|
||||
Uint32 UINode::isClipped() {
|
||||
@@ -1196,15 +1190,15 @@ Uint32 UINode::isClipped() {
|
||||
}
|
||||
|
||||
Uint32 UINode::isRotated() {
|
||||
return mNodeFlags & UI_CTRL_FLAG_ROTATED;
|
||||
return mNodeFlags & NODE_FLAG_ROTATED;
|
||||
}
|
||||
|
||||
Uint32 UINode::isScaled() {
|
||||
return mNodeFlags & UI_CTRL_FLAG_SCALED;
|
||||
return mNodeFlags & NODE_FLAG_SCALED;
|
||||
}
|
||||
|
||||
Uint32 UINode::isFrameBuffer() {
|
||||
return mNodeFlags & UI_CTRL_FLAG_FRAME_BUFFER;
|
||||
return mNodeFlags & NODE_FLAG_FRAME_BUFFER;
|
||||
}
|
||||
|
||||
bool UINode::isMeOrParentTreeRotated() {
|
||||
@@ -1260,14 +1254,29 @@ bool UINode::isMeOrParentTreeScaledOrRotatedOrFrameBuffer() {
|
||||
}
|
||||
|
||||
Polygon2f& UINode::getPolygon() {
|
||||
if ( mNodeFlags & NODE_FLAG_TRANFORM_DIRTY )
|
||||
updateQuad();
|
||||
|
||||
return mPoly;
|
||||
}
|
||||
|
||||
const Vector2f& UINode::getPolygonCenter() const {
|
||||
return mCenter;
|
||||
Vector2f UINode::getPolygonCenter() {
|
||||
if ( mNodeFlags & NODE_FLAG_TRANFORM_DIRTY )
|
||||
updateQuad();
|
||||
|
||||
return mPoly.getBounds().getCenter();
|
||||
}
|
||||
|
||||
void UINode::updateQuad() {
|
||||
if ( !( mNodeFlags & NODE_FLAG_TRANFORM_DIRTY ) &&
|
||||
!( mNodeFlags & NODE_FLAG_TRANFORM_DIRTY ) ) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ( mNodeFlags & NODE_FLAG_POSITION_DIRTY ) {
|
||||
updateScreenPos();
|
||||
}
|
||||
|
||||
mPoly = Polygon2f( Rectf( mScreenPosf.x, mScreenPosf.y, mScreenPosf.x + mRealSize.getWidth(), mScreenPosf.y + mRealSize.getHeight() ) );
|
||||
|
||||
mPoly.rotate( mAngle, getRotationCenter() );
|
||||
@@ -1283,6 +1292,8 @@ void UINode::updateQuad() {
|
||||
|
||||
tParent = tParent->getParent();
|
||||
};
|
||||
|
||||
mNodeFlags &= ~NODE_FLAG_TRANFORM_DIRTY | NODE_FLAG_TRANFORM_INVERT_DIRTY;
|
||||
}
|
||||
|
||||
void UINode::updateCenter() {
|
||||
@@ -1378,7 +1389,7 @@ UINode * UINode::setThemeSkin( UITheme * Theme, const std::string& skinName ) {
|
||||
UINode * UINode::setSkin( const UISkin& Skin ) {
|
||||
removeSkin();
|
||||
|
||||
writeCtrlFlag( UI_CTRL_FLAG_SKIN_OWNER, 1 );
|
||||
writeCtrlFlag( NODE_FLAG_SKIN_OWNER, 1 );
|
||||
|
||||
UISkin * SkinCopy = const_cast<UISkin*>( &Skin )->clone();
|
||||
|
||||
@@ -1412,7 +1423,7 @@ UINode * UINode::setSkin( UISkin * skin ) {
|
||||
}
|
||||
|
||||
void UINode::removeSkin() {
|
||||
if ( NULL != mSkinState && ( mNodeFlags & UI_CTRL_FLAG_SKIN_OWNER ) ) {
|
||||
if ( NULL != mSkinState && ( mNodeFlags & NODE_FLAG_SKIN_OWNER ) ) {
|
||||
UISkin * tSkin = mSkinState->getSkin();
|
||||
|
||||
eeSAFE_DELETE( tSkin );
|
||||
@@ -1460,18 +1471,10 @@ void UINode::setThemeToChilds( UITheme * Theme ) {
|
||||
}
|
||||
}
|
||||
|
||||
void UINode::updateChildsScreenPos() {
|
||||
UINode * ChildLoop = mChild;
|
||||
|
||||
while ( NULL != ChildLoop ) {
|
||||
ChildLoop->updateScreenPos();
|
||||
ChildLoop->updateChildsScreenPos();
|
||||
|
||||
ChildLoop = ChildLoop->mNext;
|
||||
}
|
||||
}
|
||||
|
||||
void UINode::updateScreenPos() {
|
||||
if ( !(mNodeFlags & NODE_FLAG_POSITION_DIRTY) )
|
||||
return;
|
||||
|
||||
Vector2i Pos( mRealPos );
|
||||
|
||||
nodeToScreen( Pos );
|
||||
@@ -1480,6 +1483,8 @@ void UINode::updateScreenPos() {
|
||||
mScreenPosf = Vector2f( Pos.x, Pos.y );
|
||||
|
||||
updateCenter();
|
||||
|
||||
mNodeFlags &= ~NODE_FLAG_POSITION_DIRTY;
|
||||
}
|
||||
|
||||
UISkin * UINode::getSkin() {
|
||||
@@ -1730,11 +1735,11 @@ UIWindow * UINode::getParentWindow() {
|
||||
}
|
||||
|
||||
bool UINode::isReverseDraw() const {
|
||||
return 0 != ( mNodeFlags & UI_CTRL_FLAG_REVERSE_DRAW );
|
||||
return 0 != ( mNodeFlags & NODE_FLAG_REVERSE_DRAW );
|
||||
}
|
||||
|
||||
void UINode::setReverseDraw( bool reverseDraw ) {
|
||||
writeCtrlFlag( UI_CTRL_FLAG_REVERSE_DRAW, reverseDraw ? 1 : 0 );
|
||||
writeCtrlFlag( NODE_FLAG_REVERSE_DRAW, reverseDraw ? 1 : 0 );
|
||||
invalidateDraw();
|
||||
}
|
||||
|
||||
@@ -1789,11 +1794,11 @@ void UINode::setDragEnabled( const bool& enable ) {
|
||||
}
|
||||
|
||||
bool UINode::isDragging() const {
|
||||
return 0 != ( mNodeFlags & UI_CTRL_FLAG_DRAGGING );
|
||||
return 0 != ( mNodeFlags & NODE_FLAG_DRAGGING );
|
||||
}
|
||||
|
||||
void UINode::setDragging( const bool& dragging ) {
|
||||
writeCtrlFlag( UI_CTRL_FLAG_DRAGGING, dragging );
|
||||
writeCtrlFlag( NODE_FLAG_DRAGGING, dragging );
|
||||
|
||||
if ( dragging ) {
|
||||
UIMessage tMsg( this, UIMessage::DragStart, 0 );
|
||||
@@ -1838,6 +1843,31 @@ void UINode::updateOriginPoint() {
|
||||
break;
|
||||
default: {}
|
||||
}
|
||||
|
||||
setDirty();
|
||||
}
|
||||
|
||||
void UINode::setDirty() {
|
||||
if ( ( mNodeFlags & NODE_FLAG_POSITION_DIRTY ) &&
|
||||
( mNodeFlags & NODE_FLAG_TRANFORM_DIRTY ) &&
|
||||
( mNodeFlags & NODE_FLAG_TRANFORM_INVERT_DIRTY ) )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
mNodeFlags |= NODE_FLAG_POSITION_DIRTY | NODE_FLAG_TRANFORM_DIRTY | NODE_FLAG_TRANFORM_INVERT_DIRTY;
|
||||
|
||||
setChildsDirty();
|
||||
}
|
||||
|
||||
void UINode::setChildsDirty() {
|
||||
UINode * ChildLoop = mChild;
|
||||
|
||||
while ( NULL != ChildLoop ) {
|
||||
ChildLoop->setDirty();
|
||||
|
||||
ChildLoop = ChildLoop->mNext;
|
||||
}
|
||||
}
|
||||
|
||||
void UINode::onAngleChange() {
|
||||
@@ -1860,7 +1890,7 @@ Color UINode::getColor( const Color& Col ) {
|
||||
}
|
||||
|
||||
bool UINode::isFadingOut() {
|
||||
return 0 != ( mNodeFlags & UI_CTRL_FLAG_DISABLE_FADE_OUT );
|
||||
return 0 != ( mNodeFlags & NODE_FLAG_DISABLE_DELAYED );
|
||||
}
|
||||
|
||||
bool UINode::isAnimating() {
|
||||
@@ -1871,11 +1901,11 @@ static void UINode_onFadeDone( UIAction * action, const UIAction::ActionType& ac
|
||||
UINode * node = action->getTarget();
|
||||
|
||||
if ( NULL != node ) {
|
||||
if ( ( node->getNodeFlags() & UI_CTRL_FLAG_CLOSE_FO ) )
|
||||
if ( ( node->getNodeFlags() & NODE_FLAG_CLOSE_DELAYED ) )
|
||||
node->close();
|
||||
|
||||
if ( ( node->getNodeFlags() & UI_CTRL_FLAG_DISABLE_FADE_OUT ) ) {
|
||||
node->setNodeFlags( node->getNodeFlags() & ~UI_CTRL_FLAG_DISABLE_FADE_OUT );
|
||||
if ( ( node->getNodeFlags() & NODE_FLAG_DISABLE_DELAYED ) ) {
|
||||
node->setNodeFlags( node->getNodeFlags() & ~NODE_FLAG_DISABLE_DELAYED );
|
||||
|
||||
node->setVisible( false );
|
||||
}
|
||||
@@ -1957,7 +1987,7 @@ Interpolation1d * UINode::createFadeOut( const Time& time, const bool& AlphaChil
|
||||
}
|
||||
|
||||
Interpolation1d * UINode::closeFadeOut( const Time& time, const bool& AlphaChilds, const Ease::Interpolation& Type ) {
|
||||
mNodeFlags |= UI_CTRL_FLAG_CLOSE_FO;
|
||||
mNodeFlags |= NODE_FLAG_CLOSE_DELAYED;
|
||||
|
||||
return startAlphaAnim( mAlpha, 0.f, time, AlphaChilds, Type );
|
||||
}
|
||||
@@ -1965,7 +1995,7 @@ Interpolation1d * UINode::closeFadeOut( const Time& time, const bool& AlphaChild
|
||||
Interpolation1d * UINode::disableFadeOut( const Time& time, const bool& AlphaChilds, const Ease::Interpolation& Type ) {
|
||||
setEnabled( false );
|
||||
|
||||
mNodeFlags |= UI_CTRL_FLAG_DISABLE_FADE_OUT;
|
||||
mNodeFlags |= NODE_FLAG_DISABLE_DELAYED;
|
||||
|
||||
return startAlphaAnim( mAlpha, 0.f, time, AlphaChilds, Type );
|
||||
}
|
||||
@@ -1995,19 +2025,21 @@ void UINode::setRotation( const Float& angle ) {
|
||||
mAngle = angle;
|
||||
|
||||
if ( mAngle != 0.f ) {
|
||||
mNodeFlags |= UI_CTRL_FLAG_ROTATED;
|
||||
mNodeFlags |= NODE_FLAG_ROTATED;
|
||||
} else {
|
||||
if ( mNodeFlags & UI_CTRL_FLAG_ROTATED )
|
||||
mNodeFlags &= ~UI_CTRL_FLAG_ROTATED;
|
||||
if ( mNodeFlags & NODE_FLAG_ROTATED )
|
||||
mNodeFlags &= ~NODE_FLAG_ROTATED;
|
||||
}
|
||||
|
||||
setDirty();
|
||||
|
||||
onAngleChange();
|
||||
}
|
||||
|
||||
void UINode::setRotation( const Float& angle , const OriginPoint & center ) {
|
||||
mRotationOriginPoint = center;
|
||||
updateOriginPoint();
|
||||
this->setRotation( angle );
|
||||
setRotation( angle );
|
||||
}
|
||||
|
||||
const Vector2f& UINode::getScale() const {
|
||||
@@ -2018,12 +2050,14 @@ void UINode::setScale( const Vector2f & scale ) {
|
||||
mScale = scale;
|
||||
|
||||
if ( mScale != 1.f ) {
|
||||
mNodeFlags |= UI_CTRL_FLAG_SCALED;
|
||||
mNodeFlags |= NODE_FLAG_SCALED;
|
||||
} else {
|
||||
if ( mNodeFlags & UI_CTRL_FLAG_SCALED )
|
||||
mNodeFlags &= ~UI_CTRL_FLAG_SCALED;
|
||||
if ( mNodeFlags & NODE_FLAG_SCALED )
|
||||
mNodeFlags &= ~NODE_FLAG_SCALED;
|
||||
}
|
||||
|
||||
setDirty();
|
||||
|
||||
onScaleChange();
|
||||
}
|
||||
|
||||
@@ -2047,11 +2081,11 @@ Vector2f UINode::getScaleCenter() {
|
||||
void UINode::setScale( const Vector2f& scale, const OriginPoint& center ) {
|
||||
mScaleOriginPoint = center;
|
||||
updateOriginPoint();
|
||||
this->setScale( scale );
|
||||
setScale( scale );
|
||||
}
|
||||
|
||||
void UINode::setScale( const Float& scale, const OriginPoint& center ) {
|
||||
this->setScale( Vector2f( scale, scale ), center );
|
||||
setScale( Vector2f( scale, scale ), center );
|
||||
}
|
||||
|
||||
const Float& UINode::getAlpha() const {
|
||||
|
||||
@@ -51,7 +51,7 @@ UIPushButton::UIPushButton() :
|
||||
mTextBox->setFlags( UI_VALIGN_CENTER | UI_HALIGN_CENTER );
|
||||
|
||||
if ( mStyleConfig.IconAutoMargin )
|
||||
mNodeFlags |= UI_CTRL_FLAG_FREE_USE;
|
||||
mNodeFlags |= NODE_FLAG_FREE_USE;
|
||||
|
||||
onSizeChange();
|
||||
|
||||
@@ -133,7 +133,7 @@ void UIPushButton::onThemeLoaded() {
|
||||
if ( NULL != mTextBox && NULL == mTextBox->getFont() && NULL != mSkinState && NULL != mSkinState->getSkin() && NULL != mSkinState->getSkin()->getTheme() && NULL != mSkinState->getSkin()->getTheme()->getFontStyleConfig().getFont() )
|
||||
mTextBox->setFont( mSkinState->getSkin()->getTheme()->getFontStyleConfig().getFont() );
|
||||
|
||||
if ( mNodeFlags & UI_CTRL_FLAG_FREE_USE ) {
|
||||
if ( mNodeFlags & NODE_FLAG_FREE_USE ) {
|
||||
Rect RMargin = makePadding( true, false, false, false, true );
|
||||
mStyleConfig.IconHorizontalMargin = RMargin.Left;
|
||||
}
|
||||
|
||||
@@ -29,7 +29,7 @@ void UISelectButton::select() {
|
||||
|
||||
setSkinState( UISkinState::StateSelected );
|
||||
|
||||
mNodeFlags |= UI_CTRL_FLAG_SELECTED;
|
||||
mNodeFlags |= NODE_FLAG_SELECTED;
|
||||
|
||||
if ( !wasSelected ) {
|
||||
UIMessage tMsg( this, UIMessage::Selected, 0 );
|
||||
@@ -38,14 +38,14 @@ void UISelectButton::select() {
|
||||
}
|
||||
|
||||
void UISelectButton::unselect() {
|
||||
if ( mNodeFlags & UI_CTRL_FLAG_SELECTED )
|
||||
mNodeFlags &= ~UI_CTRL_FLAG_SELECTED;
|
||||
if ( mNodeFlags & NODE_FLAG_SELECTED )
|
||||
mNodeFlags &= ~NODE_FLAG_SELECTED;
|
||||
|
||||
setSkinState( UISkinState::StateNormal );
|
||||
}
|
||||
|
||||
bool UISelectButton::selected() const {
|
||||
return 0 != ( mNodeFlags & UI_CTRL_FLAG_SELECTED );
|
||||
return 0 != ( mNodeFlags & NODE_FLAG_SELECTED );
|
||||
}
|
||||
|
||||
void UISelectButton::onStateChange() {
|
||||
|
||||
@@ -32,7 +32,7 @@ bool UISprite::isType( const Uint32& type ) const {
|
||||
}
|
||||
|
||||
Uint32 UISprite::deallocSprite() {
|
||||
return mNodeFlags & UI_CTRL_FLAG_FREE_USE;
|
||||
return mNodeFlags & NODE_FLAG_FREE_USE;
|
||||
}
|
||||
|
||||
void UISprite::setSprite( Graphics::Sprite * sprite ) {
|
||||
@@ -162,11 +162,11 @@ const Vector2i& UISprite::getAlignOffset() const {
|
||||
}
|
||||
|
||||
void UISprite::setDeallocSprite( const bool& dealloc ) {
|
||||
writeCtrlFlag( UI_CTRL_FLAG_FREE_USE, dealloc ? 1 : 0 );
|
||||
writeCtrlFlag( NODE_FLAG_FREE_USE, dealloc ? 1 : 0 );
|
||||
}
|
||||
|
||||
bool UISprite::getDeallocSprite() {
|
||||
return 0 != ( mNodeFlags & UI_CTRL_FLAG_FREE_USE );
|
||||
return 0 != ( mNodeFlags & NODE_FLAG_FREE_USE );
|
||||
}
|
||||
|
||||
void UISprite::onSizeChange() {
|
||||
|
||||
@@ -101,11 +101,11 @@ void UITableCell::select() {
|
||||
if ( NULL != MyParent->getItemSelected() )
|
||||
MyParent->getItemSelected()->unselect();
|
||||
|
||||
bool wasSelected = 0 != ( mNodeFlags & UI_CTRL_FLAG_SELECTED );
|
||||
bool wasSelected = 0 != ( mNodeFlags & NODE_FLAG_SELECTED );
|
||||
|
||||
setSkinState( UISkinState::StateSelected );
|
||||
|
||||
mNodeFlags |= UI_CTRL_FLAG_SELECTED;
|
||||
mNodeFlags |= NODE_FLAG_SELECTED;
|
||||
|
||||
MyParent->mSelected = MyParent->getItemIndex( this );
|
||||
|
||||
@@ -116,20 +116,20 @@ void UITableCell::select() {
|
||||
}
|
||||
|
||||
void UITableCell::unselect() {
|
||||
if ( mNodeFlags & UI_CTRL_FLAG_SELECTED )
|
||||
mNodeFlags &= ~UI_CTRL_FLAG_SELECTED;
|
||||
if ( mNodeFlags & NODE_FLAG_SELECTED )
|
||||
mNodeFlags &= ~NODE_FLAG_SELECTED;
|
||||
|
||||
setSkinState( UISkinState::StateNormal );
|
||||
}
|
||||
|
||||
bool UITableCell::isSelected() const {
|
||||
return 0 != ( mNodeFlags & UI_CTRL_FLAG_SELECTED );
|
||||
return 0 != ( mNodeFlags & NODE_FLAG_SELECTED );
|
||||
}
|
||||
|
||||
Uint32 UITableCell::onMouseExit( const Vector2i& Pos, const Uint32 Flags ) {
|
||||
UINode::onMouseExit( Pos, Flags );
|
||||
|
||||
if ( mNodeFlags & UI_CTRL_FLAG_SELECTED )
|
||||
if ( mNodeFlags & NODE_FLAG_SELECTED )
|
||||
setSkinState( UISkinState::StateSelected );
|
||||
|
||||
return 1;
|
||||
|
||||
@@ -59,9 +59,9 @@ void UITextureRegion::onAutoSize() {
|
||||
}
|
||||
|
||||
void UITextureRegion::draw() {
|
||||
UINode::draw();
|
||||
|
||||
if ( mVisible ) {
|
||||
UINode::draw();
|
||||
|
||||
if ( NULL != mTextureRegion && 0.f != mAlpha ) {
|
||||
Sizef oDestSize = mTextureRegion->getDestSize();
|
||||
Vector2i oOff = mTextureRegion->getOffset();
|
||||
|
||||
@@ -351,7 +351,7 @@ Uint32 UITextView::onMouseDoubleClick( const Vector2i& Pos, const Uint32 Flags )
|
||||
selCurInit( tSelCurInit );
|
||||
selCurEnd( tSelCurEnd );
|
||||
|
||||
mNodeFlags &= ~UI_CTRL_FLAG_SELECTING;
|
||||
mNodeFlags &= ~NODE_FLAG_SELECTING;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -365,7 +365,7 @@ Uint32 UITextView::onMouseClick( const Vector2i& Pos, const Uint32 Flags ) {
|
||||
selCurEnd( -1 );
|
||||
}
|
||||
|
||||
mNodeFlags &= ~UI_CTRL_FLAG_SELECTING;
|
||||
mNodeFlags &= ~NODE_FLAG_SELECTING;
|
||||
}
|
||||
|
||||
return UIWidget::onMouseClick( Pos, Flags );
|
||||
@@ -380,7 +380,7 @@ Uint32 UITextView::onMouseDown( const Vector2i& Pos, const Uint32 Flags ) {
|
||||
Int32 curPos = mTextCache->findCharacterFromPos( controlPos );
|
||||
|
||||
if ( -1 != curPos ) {
|
||||
if ( -1 == selCurInit() || !( mNodeFlags & UI_CTRL_FLAG_SELECTING ) ) {
|
||||
if ( -1 == selCurInit() || !( mNodeFlags & NODE_FLAG_SELECTING ) ) {
|
||||
selCurInit( curPos );
|
||||
selCurEnd( curPos );
|
||||
} else {
|
||||
@@ -388,7 +388,7 @@ Uint32 UITextView::onMouseDown( const Vector2i& Pos, const Uint32 Flags ) {
|
||||
}
|
||||
}
|
||||
|
||||
mNodeFlags |= UI_CTRL_FLAG_SELECTING;
|
||||
mNodeFlags |= NODE_FLAG_SELECTING;
|
||||
}
|
||||
|
||||
return UIWidget::onMouseDown( Pos, Flags );
|
||||
|
||||
@@ -31,11 +31,11 @@ UITouchDragableWidget * UITouchDragableWidget::setTouchDragEnabled( const bool&
|
||||
}
|
||||
|
||||
bool UITouchDragableWidget::isTouchDragging() const {
|
||||
return 0 != ( mNodeFlags & UI_CTRL_FLAG_TOUCH_DRAGGING );
|
||||
return 0 != ( mNodeFlags & NODE_FLAG_TOUCH_DRAGGING );
|
||||
}
|
||||
|
||||
UITouchDragableWidget * UITouchDragableWidget::setTouchDragging( const bool& dragging ) {
|
||||
writeCtrlFlag( UI_CTRL_FLAG_TOUCH_DRAGGING, true == dragging );
|
||||
writeCtrlFlag( NODE_FLAG_TOUCH_DRAGGING, true == dragging );
|
||||
return this;
|
||||
}
|
||||
|
||||
@@ -54,10 +54,10 @@ void UITouchDragableWidget::update() {
|
||||
UIManager * manager = UIManager::instance();
|
||||
Uint32 Press = manager->getPressTrigger();
|
||||
|
||||
if ( ( mNodeFlags & UI_CTRL_FLAG_TOUCH_DRAGGING ) ) {
|
||||
if ( ( mNodeFlags & NODE_FLAG_TOUCH_DRAGGING ) ) {
|
||||
// Mouse Not Down
|
||||
if ( !( Press & EE_BUTTON_LMASK ) ) {
|
||||
writeCtrlFlag( UI_CTRL_FLAG_TOUCH_DRAGGING, 0 );
|
||||
writeCtrlFlag( NODE_FLAG_TOUCH_DRAGGING, 0 );
|
||||
manager->setControlDragging( false );
|
||||
return;
|
||||
}
|
||||
@@ -83,7 +83,7 @@ void UITouchDragableWidget::update() {
|
||||
// Mouse Down
|
||||
if ( isTouchOverAllowedChilds() && !manager->isControlDragging() ) {
|
||||
if ( Press & EE_BUTTON_LMASK ) {
|
||||
writeCtrlFlag( UI_CTRL_FLAG_TOUCH_DRAGGING, 1 );
|
||||
writeCtrlFlag( NODE_FLAG_TOUCH_DRAGGING, 1 );
|
||||
|
||||
mTouchDragPoint = Vector2f( manager->getMousePos().x, manager->getMousePos().y );
|
||||
mTouchDragAcceleration = Vector2f(0,0);
|
||||
|
||||
@@ -22,7 +22,7 @@ UIWidget::UIWidget() :
|
||||
mLayoutPositionRuleWidget(NULL),
|
||||
mPropertiesTransactionCount(0)
|
||||
{
|
||||
mNodeFlags |= UI_CTRL_FLAG_WIDGET;
|
||||
mNodeFlags |= NODE_FLAG_WIDGET;
|
||||
|
||||
updateAnchorsDistances();
|
||||
}
|
||||
|
||||
@@ -43,7 +43,7 @@ UIWindow::UIWindow( UIWindow::WindowBaseContainerType type, const UIWindowStyleC
|
||||
mMinimizeListener(0),
|
||||
mFrameBufferBound( false )
|
||||
{
|
||||
mNodeFlags |= UI_CTRL_FLAG_WINDOW;
|
||||
mNodeFlags |= NODE_FLAG_WINDOW;
|
||||
|
||||
setHorizontalAlign( UI_HALIGN_CENTER );
|
||||
|
||||
@@ -63,7 +63,7 @@ UIWindow::UIWindow( UIWindow::WindowBaseContainerType type, const UIWindowStyleC
|
||||
}
|
||||
|
||||
mContainer->setLayoutSizeRules( FIXED, FIXED );
|
||||
mContainer->writeCtrlFlag( UI_CTRL_FLAG_OWNED_BY_WINDOW, 1 );
|
||||
mContainer->writeCtrlFlag( NODE_FLAG_OWNED_BY_WINDOW, 1 );
|
||||
mContainer->setParent( this );
|
||||
mContainer->setFlags( UI_REPORT_SIZE_CHANGE_TO_CHILDS | UI_CLIP_ENABLE );
|
||||
mContainer->setSize( mSize );
|
||||
@@ -91,10 +91,11 @@ UIWindow::~UIWindow() {
|
||||
void UIWindow::updateWinFlags() {
|
||||
bool needsUpdate = false;
|
||||
|
||||
writeCtrlFlag( UI_CTRL_FLAG_FRAME_BUFFER, ( mStyleConfig.WinFlags & UI_WIN_FRAME_BUFFER ) ? 1 : 0 );
|
||||
writeCtrlFlag( NODE_FLAG_FRAME_BUFFER, ( mStyleConfig.WinFlags & UI_WIN_FRAME_BUFFER ) ? 1 : 0 );
|
||||
|
||||
if ( ( mStyleConfig.WinFlags & UI_WIN_FRAME_BUFFER ) && NULL == mFrameBuffer ) {
|
||||
createFrameBuffer();
|
||||
if ( ( mStyleConfig.WinFlags & UI_WIN_FRAME_BUFFER ) ) {
|
||||
if ( NULL == mFrameBuffer )
|
||||
createFrameBuffer();
|
||||
} else {
|
||||
eeSAFE_DELETE( mFrameBuffer );
|
||||
}
|
||||
@@ -108,7 +109,7 @@ void UIWindow::updateWinFlags() {
|
||||
if ( !( mStyleConfig.WinFlags & UI_WIN_NO_BORDER ) ) {
|
||||
if ( NULL == mWindowDecoration ) {
|
||||
mWindowDecoration = UINode::New();
|
||||
mWindowDecoration->writeCtrlFlag( UI_CTRL_FLAG_OWNED_BY_WINDOW, 1 );
|
||||
mWindowDecoration->writeCtrlFlag( NODE_FLAG_OWNED_BY_WINDOW, 1 );
|
||||
}
|
||||
|
||||
mWindowDecoration->setParent( this );
|
||||
@@ -117,7 +118,7 @@ void UIWindow::updateWinFlags() {
|
||||
|
||||
if ( NULL == mBorderLeft ) {
|
||||
mBorderLeft = UINode::New();
|
||||
mBorderLeft->writeCtrlFlag( UI_CTRL_FLAG_OWNED_BY_WINDOW, 1 );
|
||||
mBorderLeft->writeCtrlFlag( NODE_FLAG_OWNED_BY_WINDOW, 1 );
|
||||
}
|
||||
|
||||
mBorderLeft->setParent( this );
|
||||
@@ -126,7 +127,7 @@ void UIWindow::updateWinFlags() {
|
||||
|
||||
if ( NULL == mBorderRight ) {
|
||||
mBorderRight = UINode::New();
|
||||
mBorderRight->writeCtrlFlag( UI_CTRL_FLAG_OWNED_BY_WINDOW, 1 );
|
||||
mBorderRight->writeCtrlFlag( NODE_FLAG_OWNED_BY_WINDOW, 1 );
|
||||
}
|
||||
|
||||
mBorderRight->setParent( this );
|
||||
@@ -135,7 +136,7 @@ void UIWindow::updateWinFlags() {
|
||||
|
||||
if ( NULL == mBorderBottom ) {
|
||||
mBorderBottom = UINode::New();
|
||||
mBorderBottom->writeCtrlFlag( UI_CTRL_FLAG_OWNED_BY_WINDOW, 1 );
|
||||
mBorderBottom->writeCtrlFlag( NODE_FLAG_OWNED_BY_WINDOW, 1 );
|
||||
}
|
||||
|
||||
mBorderBottom->setParent( this );
|
||||
@@ -145,7 +146,7 @@ void UIWindow::updateWinFlags() {
|
||||
if ( mStyleConfig.WinFlags & UI_WIN_CLOSE_BUTTON ) {
|
||||
if ( NULL == mButtonClose ) {
|
||||
mButtonClose = UINode::New();
|
||||
mButtonClose->writeCtrlFlag( UI_CTRL_FLAG_OWNED_BY_WINDOW, 1 );
|
||||
mButtonClose->writeCtrlFlag( NODE_FLAG_OWNED_BY_WINDOW, 1 );
|
||||
needsUpdate = true;
|
||||
}
|
||||
|
||||
@@ -164,7 +165,7 @@ void UIWindow::updateWinFlags() {
|
||||
if ( isMaximizable() ) {
|
||||
if ( NULL == mButtonMaximize ) {
|
||||
mButtonMaximize = UINode::New();
|
||||
mButtonMaximize->writeCtrlFlag( UI_CTRL_FLAG_OWNED_BY_WINDOW, 1 );
|
||||
mButtonMaximize->writeCtrlFlag( NODE_FLAG_OWNED_BY_WINDOW, 1 );
|
||||
needsUpdate = true;
|
||||
}
|
||||
|
||||
@@ -183,7 +184,7 @@ void UIWindow::updateWinFlags() {
|
||||
if ( mStyleConfig.WinFlags & UI_WIN_MINIMIZE_BUTTON ) {
|
||||
if ( NULL == mButtonMinimize ) {
|
||||
mButtonMinimize = UINode::New();
|
||||
mButtonMinimize->writeCtrlFlag( UI_CTRL_FLAG_OWNED_BY_WINDOW, 1 );
|
||||
mButtonMinimize->writeCtrlFlag( NODE_FLAG_OWNED_BY_WINDOW, 1 );
|
||||
needsUpdate = true;
|
||||
}
|
||||
|
||||
@@ -199,6 +200,11 @@ void UIWindow::updateWinFlags() {
|
||||
mButtonMinimize = NULL;
|
||||
}
|
||||
|
||||
if ( NULL != mTitle ) {
|
||||
mTitle->setVisible( true );
|
||||
mTitle->toFront();
|
||||
}
|
||||
|
||||
setDragEnabled( true );
|
||||
} else {
|
||||
if ( NULL != mWindowDecoration ) {
|
||||
@@ -247,6 +253,9 @@ void UIWindow::updateWinFlags() {
|
||||
if ( NULL != mContainer )
|
||||
mContainer->setPosition( 0, 0 );
|
||||
|
||||
if ( NULL != mTitle )
|
||||
mTitle->setVisible( false );
|
||||
|
||||
fixChildsSize();
|
||||
}
|
||||
|
||||
@@ -279,7 +288,7 @@ void UIWindow::drawFrameBuffer() {
|
||||
}
|
||||
|
||||
void UIWindow::drawHighlightInvalidation() {
|
||||
if ( ( mNodeFlags & UI_CTRL_FLAG_NEEDS_REDRAW ) && UIManager::instance()->getHighlightInvalidation() ) {
|
||||
if ( ( mNodeFlags & NODE_FLAG_NEEDS_REDRAW ) && UIManager::instance()->getHighlightInvalidation() ) {
|
||||
UIWidget::matrixSet();
|
||||
|
||||
Primitives P;
|
||||
@@ -339,7 +348,7 @@ void UIWindow::createModalControl() {
|
||||
|
||||
if ( NULL == mModalCtrl ) {
|
||||
mModalCtrl = UIWidget::New();
|
||||
mModalCtrl->writeCtrlFlag( UI_CTRL_FLAG_OWNED_BY_WINDOW, 1 );
|
||||
mModalCtrl->writeCtrlFlag( NODE_FLAG_OWNED_BY_WINDOW, 1 );
|
||||
mModalCtrl->setParent( Ctrl )->setPosition(0,0)->setSize( Ctrl->getSize() );
|
||||
mModalCtrl->setAnchors( UI_ANCHOR_LEFT | UI_ANCHOR_TOP | UI_ANCHOR_RIGHT | UI_ANCHOR_BOTTOM );
|
||||
} else {
|
||||
@@ -362,10 +371,10 @@ void UIWindow::enableByModal() {
|
||||
{
|
||||
if ( CtrlChild != mModalCtrl &&
|
||||
CtrlChild != this &&
|
||||
CtrlChild->getNodeFlags() & UI_CTRL_FLAG_DISABLED_BY_MODAL_WINDOW )
|
||||
CtrlChild->getNodeFlags() & NODE_FLAG_DISABLED_BY_MODAL_WINDOW )
|
||||
{
|
||||
CtrlChild->setEnabled( true );
|
||||
CtrlChild->writeCtrlFlag( UI_CTRL_FLAG_DISABLED_BY_MODAL_WINDOW, 0 );
|
||||
CtrlChild->writeCtrlFlag( NODE_FLAG_DISABLED_BY_MODAL_WINDOW, 0 );
|
||||
}
|
||||
|
||||
CtrlChild = CtrlChild->getNextNode();
|
||||
@@ -384,7 +393,7 @@ void UIWindow::disableByModal() {
|
||||
CtrlChild->isEnabled() )
|
||||
{
|
||||
CtrlChild->setEnabled( false );
|
||||
CtrlChild->writeCtrlFlag( UI_CTRL_FLAG_DISABLED_BY_MODAL_WINDOW, 1 );
|
||||
CtrlChild->writeCtrlFlag( NODE_FLAG_DISABLED_BY_MODAL_WINDOW, 1 );
|
||||
}
|
||||
|
||||
CtrlChild = CtrlChild->getNextNode();
|
||||
@@ -1014,7 +1023,7 @@ void UIWindow::onChildCountChange() {
|
||||
bool found = false;
|
||||
|
||||
while ( NULL != child ) {
|
||||
if ( !( child->getNodeFlags() & UI_CTRL_FLAG_OWNED_BY_WINDOW ) ) {
|
||||
if ( !( child->getNodeFlags() & NODE_FLAG_OWNED_BY_WINDOW ) ) {
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
@@ -1043,7 +1052,7 @@ void UIWindow::setTitle( const String& text ) {
|
||||
if ( NULL == mTitle ) {
|
||||
mTitle = UITextView::New();
|
||||
mTitle->setLayoutSizeRules( FIXED, FIXED );
|
||||
mTitle->writeCtrlFlag( UI_CTRL_FLAG_OWNED_BY_WINDOW, 1 );
|
||||
mTitle->writeCtrlFlag( NODE_FLAG_OWNED_BY_WINDOW, 1 );
|
||||
mTitle->setParent( this );
|
||||
mTitle->setHorizontalAlign( getHorizontalAlign() );
|
||||
mTitle->setVerticalAlign( getVerticalAlign() );
|
||||
@@ -1113,6 +1122,8 @@ Uint32 UIWindow::onKeyDown( const UIEventKey &Event ) {
|
||||
|
||||
void UIWindow::internalDraw() {
|
||||
if ( mVisible && 0 != mAlpha ) {
|
||||
updateScreenPos();
|
||||
|
||||
preDraw();
|
||||
|
||||
drawShadow();
|
||||
@@ -1145,13 +1156,13 @@ void UIWindow::internalDraw() {
|
||||
|
||||
drawHighlightInvalidation();
|
||||
|
||||
writeCtrlFlag( UI_CTRL_FLAG_NEEDS_REDRAW, 0 );
|
||||
writeCtrlFlag( NODE_FLAG_NEEDS_REDRAW, 0 );
|
||||
}
|
||||
}
|
||||
|
||||
void UIWindow::invalidate() {
|
||||
if ( mVisible && mAlpha != 0.f ) {
|
||||
writeCtrlFlag( UI_CTRL_FLAG_NEEDS_REDRAW, 1 );
|
||||
writeCtrlFlag( NODE_FLAG_NEEDS_REDRAW, 1 );
|
||||
|
||||
if ( NULL != mParentWindowCtrl )
|
||||
mParentWindowCtrl->invalidateDraw();
|
||||
@@ -1163,7 +1174,7 @@ FrameBuffer * UIWindow::getFrameBuffer() const {
|
||||
}
|
||||
|
||||
bool UIWindow::invalidated() {
|
||||
return 0 != ( mNodeFlags & UI_CTRL_FLAG_NEEDS_REDRAW );
|
||||
return 0 != ( mNodeFlags & NODE_FLAG_NEEDS_REDRAW );
|
||||
}
|
||||
|
||||
void UIWindow::matrixSet() {
|
||||
|
||||
Reference in New Issue
Block a user