mirror of
https://github.com/SpartanJ/eepp.git
synced 2026-08-18 06:55:48 +03:00
Several fixes and clean up.
--HG-- branch : dev-scenenode
This commit is contained in:
@@ -14,5 +14,5 @@ JoystickEnabled = 0
|
||||
ParticlesNum = 1000
|
||||
UseShaders = 1
|
||||
Music = 0
|
||||
PixelDensity = 1
|
||||
PixelDensity = 1.5
|
||||
DebugUI = 0
|
||||
|
||||
@@ -22,6 +22,7 @@ namespace EE { namespace Scene {
|
||||
class Action;
|
||||
class ActionManager;
|
||||
class SceneNode;
|
||||
class NodeDrawInvalidator;
|
||||
}}
|
||||
using namespace EE::Scene;
|
||||
|
||||
@@ -43,19 +44,21 @@ enum NODE_FLAGS_VALUES {
|
||||
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_DISABLED_BY_NODE = (1<<16),
|
||||
NODE_FLAG_OWNED_BY_NODE = (1<<17),
|
||||
NODE_FLAG_REVERSE_DRAW = (1<<18),
|
||||
NODE_FLAG_FRAME_BUFFER = (1<<19),
|
||||
NODE_FLAG_CLIP_ENABLE = (1<<20),
|
||||
NODE_FLAG_SCENENODE = (1<<21),
|
||||
NODE_FLAG_UISCENENODE = (1<<22),
|
||||
NODE_FLAG_UINODE = (1<<24),
|
||||
NODE_FLAG_WIDGET = (1<<25),
|
||||
NODE_FLAG_WINDOW = (1<<26),
|
||||
NODE_FLAG_REPORT_SIZE_CHANGE_TO_CHILDS = (1<<27),
|
||||
NODE_FLAG_OVER_FIND_ALLOWED = (1<<28),
|
||||
NODE_FLAG_FREE_USE = (1<<29)
|
||||
NODE_FLAG_REPORT_SIZE_CHANGE_TO_CHILDS = (1<<21),
|
||||
NODE_FLAG_OVER_FIND_ALLOWED = (1<<22),
|
||||
|
||||
NODE_FLAG_SCENENODE = (1<<23),
|
||||
NODE_FLAG_UISCENENODE = (1<<24),
|
||||
NODE_FLAG_UINODE = (1<<25),
|
||||
NODE_FLAG_WIDGET = (1<<26),
|
||||
NODE_FLAG_WINDOW = (1<<27),
|
||||
|
||||
NODE_FLAG_FREE_USE = (1<<28)
|
||||
};
|
||||
|
||||
class EE_API Node : public Transformable {
|
||||
@@ -303,6 +306,12 @@ class EE_API Node : public Transformable {
|
||||
SceneNode * getSceneNode();
|
||||
|
||||
EventDispatcher * getEventDispatcher();
|
||||
|
||||
virtual bool isDrawInvalidator();
|
||||
|
||||
virtual bool invalidated();
|
||||
|
||||
virtual void invalidate();
|
||||
protected:
|
||||
typedef std::map< Uint32, std::map<Uint32, EventCallback> > EventsMap;
|
||||
friend class EE::Scene::EventDispatcher;
|
||||
@@ -315,6 +324,7 @@ class EE_API Node : public Transformable {
|
||||
UintPtr mData;
|
||||
Node * mParentCtrl;
|
||||
SceneNode * mSceneNode;
|
||||
Node * mNodeDrawInvalidator;
|
||||
Node * mChild; //! Pointer to the first child of the node
|
||||
Node * mChildLast; //! Pointer to the last child added
|
||||
Node * mNext; //! Pointer to the next child of the father
|
||||
@@ -453,6 +463,10 @@ class EE_API Node : public Transformable {
|
||||
void clipSmartEnable( const Int32 & x, const Int32 & y, const Uint32 & Width, const Uint32 & Height );
|
||||
|
||||
void clipSmartDisable();
|
||||
|
||||
Node * getDrawInvalidator();
|
||||
|
||||
SceneNode * findSceneNode();
|
||||
};
|
||||
|
||||
}}
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
|
||||
#include <eepp/scene/node.hpp>
|
||||
#include <eepp/window/cursorhelper.hpp>
|
||||
#include <eepp/system/translator.hpp>
|
||||
|
||||
namespace EE { namespace Graphics {
|
||||
class FrameBuffer;
|
||||
@@ -23,24 +24,44 @@ class EE_API SceneNode : public Node {
|
||||
|
||||
~SceneNode();
|
||||
|
||||
Node * loadLayoutFromFile( const std::string& layoutPath, Node * parent = NULL );
|
||||
|
||||
Node * loadLayoutFromString( const std::string& layoutString, Node * parent = NULL );
|
||||
|
||||
Node * loadLayoutFromMemory( const void * buffer, Int32 bufferSize, Node * parent = NULL );
|
||||
|
||||
Node * loadLayoutFromStream( IOStream& stream, Node * parent = NULL );
|
||||
|
||||
Node * loadLayoutFromPack( Pack * pack, const std::string& FilePackPath, Node * parent = NULL );
|
||||
|
||||
Node * loadLayoutNodes( pugi::xml_node node, Node * parent );
|
||||
|
||||
void setTranslator( Translator translator );
|
||||
|
||||
Translator& getTranslator();
|
||||
|
||||
String getTranslatorString( const std::string& str );
|
||||
|
||||
void enableFrameBuffer();
|
||||
|
||||
void disableFrameBuffer();
|
||||
|
||||
bool ownsFrameBuffer() const;
|
||||
|
||||
virtual void draw();
|
||||
|
||||
virtual void update( const Time& elapsed );
|
||||
|
||||
bool invalidated();
|
||||
|
||||
void invalidate();
|
||||
|
||||
void enableDrawInvalidation();
|
||||
|
||||
void disableDrawInvalidation();
|
||||
|
||||
EE::Window::Window * getWindow();
|
||||
|
||||
void invalidate();
|
||||
|
||||
FrameBuffer * getFrameBuffer() const;
|
||||
|
||||
void setEventDispatcher( EventDispatcher * eventDispatcher );
|
||||
@@ -89,6 +110,7 @@ class EE_API SceneNode : public Node {
|
||||
|
||||
void setCursor( EE_CURSOR_TYPE cursor );
|
||||
|
||||
virtual bool isDrawInvalidator();
|
||||
protected:
|
||||
friend class Node;
|
||||
|
||||
@@ -116,6 +138,10 @@ class EE_API SceneNode : public Node {
|
||||
|
||||
virtual void matrixUnset();
|
||||
|
||||
virtual void preDraw();
|
||||
|
||||
virtual void postDraw();
|
||||
|
||||
void sendMsg( Node * Ctrl, const Uint32& Msg, const Uint32& Flags = 0 );
|
||||
|
||||
virtual void resizeControl( EE::Window::Window * win );
|
||||
|
||||
@@ -116,6 +116,8 @@ class EE_API UIWindow : public UIWidget {
|
||||
bool invalidated();
|
||||
|
||||
FrameBuffer * getFrameBuffer() const;
|
||||
|
||||
virtual bool isDrawInvalidator();
|
||||
protected:
|
||||
class KeyboardShortcut {
|
||||
public:
|
||||
|
||||
@@ -208,6 +208,9 @@ void FrameBufferFBO::reload() {
|
||||
}
|
||||
|
||||
void FrameBufferFBO::resize( const Uint32& Width, const Uint32& Height ) {
|
||||
if ( Sizei( Width, Height ) == mSize )
|
||||
return;
|
||||
|
||||
mSize.x = Width;
|
||||
mSize.y = Height;
|
||||
|
||||
|
||||
@@ -17,6 +17,7 @@ Node::Node() :
|
||||
mData( 0 ),
|
||||
mParentCtrl( NULL ),
|
||||
mSceneNode( NULL ),
|
||||
mNodeDrawInvalidator( NULL ),
|
||||
mChild( NULL ),
|
||||
mChildLast( NULL ),
|
||||
mNext( NULL ),
|
||||
@@ -203,6 +204,7 @@ Node * Node::setParent( Node * parent ) {
|
||||
mParentCtrl->childRemove( this );
|
||||
|
||||
mParentCtrl = parent;
|
||||
mNodeDrawInvalidator = getDrawInvalidator();
|
||||
|
||||
if ( NULL != mParentCtrl )
|
||||
mParentCtrl->childAdd( this );
|
||||
@@ -211,7 +213,7 @@ Node * Node::setParent( Node * parent ) {
|
||||
|
||||
onParentChange();
|
||||
|
||||
if ( mSceneNode != getSceneNode() )
|
||||
if ( mSceneNode != findSceneNode() )
|
||||
onSceneChange();
|
||||
|
||||
return this;
|
||||
@@ -433,18 +435,6 @@ void Node::setNodeFlags( const Uint32& Flags ) {
|
||||
mNodeFlags = Flags;
|
||||
}
|
||||
|
||||
Uint32 Node::isSceneNode() {
|
||||
return mNodeFlags & NODE_FLAG_SCENENODE;
|
||||
}
|
||||
|
||||
Uint32 Node::isUISceneNode() {
|
||||
return mNodeFlags & NODE_FLAG_UISCENENODE;
|
||||
}
|
||||
|
||||
Uint32 Node::isUINode() {
|
||||
return mNodeFlags & NODE_FLAG_UINODE;
|
||||
}
|
||||
|
||||
void Node::drawChilds() {
|
||||
if ( isReverseDraw() ) {
|
||||
Node * ChildLoop = mChildLast;
|
||||
@@ -556,7 +546,8 @@ void Node::childAddAt( Node * ChildCtrl, Uint32 Pos ) {
|
||||
childRemove( ChildCtrl );
|
||||
|
||||
ChildCtrl->mParentCtrl = this;
|
||||
ChildCtrl->mSceneNode = ChildCtrl->getSceneNode();
|
||||
ChildCtrl->mSceneNode = ChildCtrl->findSceneNode();
|
||||
|
||||
if ( ChildLoop == NULL ) {
|
||||
mChild = ChildCtrl;
|
||||
mChildLast = ChildCtrl;
|
||||
@@ -774,7 +765,7 @@ Node * Node::overFind( const Vector2f& Point ) {
|
||||
}
|
||||
|
||||
void Node::onSceneChange() {
|
||||
mSceneNode = getSceneNode();
|
||||
mSceneNode = findSceneNode();
|
||||
|
||||
Node * ChildLoop = mChild;
|
||||
|
||||
@@ -808,6 +799,18 @@ Uint32 Node::isFrameBuffer() {
|
||||
return mNodeFlags & NODE_FLAG_FRAME_BUFFER;
|
||||
}
|
||||
|
||||
Uint32 Node::isSceneNode() {
|
||||
return mNodeFlags & NODE_FLAG_SCENENODE;
|
||||
}
|
||||
|
||||
Uint32 Node::isUISceneNode() {
|
||||
return mNodeFlags & NODE_FLAG_UISCENENODE;
|
||||
}
|
||||
|
||||
Uint32 Node::isUINode() {
|
||||
return mNodeFlags & NODE_FLAG_UINODE;
|
||||
}
|
||||
|
||||
bool Node::isMeOrParentTreeRotated() {
|
||||
Node * Ctrl = this;
|
||||
|
||||
@@ -998,14 +1001,16 @@ void Node::setReverseDraw( bool reverseDraw ) {
|
||||
}
|
||||
|
||||
void Node::invalidateDraw() {
|
||||
if ( NULL != mSceneNode ) {
|
||||
mSceneNode->invalidate();
|
||||
} else if ( NULL == mParentCtrl && isSceneNode() ) {
|
||||
static_cast<SceneNode*>( this )->invalidate();
|
||||
if ( NULL != mNodeDrawInvalidator ) {
|
||||
mNodeDrawInvalidator->invalidate();
|
||||
}
|
||||
}
|
||||
|
||||
SceneNode * Node::getSceneNode() {
|
||||
return mSceneNode;
|
||||
}
|
||||
|
||||
SceneNode * Node::findSceneNode() {
|
||||
Node * Ctrl = mParentCtrl;
|
||||
|
||||
while ( Ctrl != NULL ) {
|
||||
@@ -1319,7 +1324,7 @@ Node * Node::getNextWidget() {
|
||||
}
|
||||
}
|
||||
|
||||
return mSceneNode;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void Node::sendParentSizeChange( const Vector2f& SizeChange ) {
|
||||
@@ -1394,4 +1399,31 @@ void Node::clipSmartDisable() {
|
||||
}
|
||||
}
|
||||
|
||||
Node* Node::getDrawInvalidator() {
|
||||
Node * Ctrl = mParentCtrl;
|
||||
|
||||
while ( Ctrl != NULL ) {
|
||||
if ( Ctrl->isDrawInvalidator() )
|
||||
return Ctrl;
|
||||
|
||||
Ctrl = Ctrl->getParent();
|
||||
}
|
||||
|
||||
return isDrawInvalidator() ? this : NULL;
|
||||
}
|
||||
|
||||
bool Node::isDrawInvalidator() {
|
||||
return false;
|
||||
}
|
||||
|
||||
void Node::invalidate() {
|
||||
if ( mVisible && mAlpha != 0.f ) {
|
||||
writeCtrlFlag( NODE_FLAG_VIEW_DIRTY, 1 );
|
||||
}
|
||||
}
|
||||
|
||||
bool Node::invalidated() {
|
||||
return 0 != ( mNodeFlags & NODE_FLAG_VIEW_DIRTY );
|
||||
}
|
||||
|
||||
}}
|
||||
|
||||
@@ -64,6 +64,12 @@ void SceneNode::enableFrameBuffer() {
|
||||
|
||||
void SceneNode::disableFrameBuffer() {
|
||||
eeSAFE_DELETE( mFrameBuffer );
|
||||
|
||||
writeCtrlFlag( NODE_FLAG_FRAME_BUFFER, 0 );
|
||||
}
|
||||
|
||||
bool SceneNode::ownsFrameBuffer() const {
|
||||
return 0 != ( mNodeFlags & NODE_FLAG_FRAME_BUFFER );
|
||||
}
|
||||
|
||||
void SceneNode::draw() {
|
||||
@@ -73,19 +79,36 @@ void SceneNode::draw() {
|
||||
|
||||
mWindow->setView( mWindow->getDefaultView() );
|
||||
|
||||
if ( mVisible ) {
|
||||
if ( mNodeFlags & NODE_FLAG_POSITION_DIRTY )
|
||||
updateScreenPos();
|
||||
if ( mVisible && 0 != mAlpha ) {
|
||||
updateScreenPos();
|
||||
|
||||
preDraw();
|
||||
|
||||
ClippingMask * clippingMask = GLi->getClippingMask();
|
||||
|
||||
std::list<Rectf> clips = clippingMask->getPlanesClipped();
|
||||
|
||||
if ( !clips.empty() )
|
||||
clippingMask->clipPlaneDisable();
|
||||
|
||||
matrixSet();
|
||||
|
||||
clipStart();
|
||||
if ( NULL == mFrameBuffer || !usesInvalidation() || invalidated() ) {
|
||||
clipStart();
|
||||
|
||||
drawChilds();
|
||||
drawChilds();
|
||||
|
||||
clipEnd();
|
||||
clipEnd();
|
||||
}
|
||||
|
||||
matrixUnset();
|
||||
|
||||
if ( !clips.empty() )
|
||||
clippingMask->setPlanesClipped( clips );
|
||||
|
||||
postDraw();
|
||||
|
||||
writeCtrlFlag( NODE_FLAG_VIEW_DIRTY, 0 );
|
||||
}
|
||||
|
||||
mWindow->setView( prevView );
|
||||
@@ -175,11 +198,12 @@ Sizei SceneNode::getFrameBufferSize() {
|
||||
}
|
||||
|
||||
void SceneNode::createFrameBuffer() {
|
||||
writeCtrlFlag( NODE_FLAG_FRAME_BUFFER, 1 );
|
||||
eeSAFE_DELETE( mFrameBuffer );
|
||||
Sizei fboSize( getFrameBufferSize() );
|
||||
if ( fboSize.getWidth() < 1 ) fboSize.setWidth(1);
|
||||
if ( fboSize.getHeight() < 1 ) fboSize.setHeight(1);
|
||||
mFrameBuffer = FrameBuffer::New( fboSize.getWidth(), fboSize.getHeight(), true, false, true );
|
||||
mFrameBuffer = FrameBuffer::New( fboSize.getWidth(), fboSize.getHeight(), true, false, false, 4, mWindow );
|
||||
}
|
||||
|
||||
void SceneNode::drawFrameBuffer() {
|
||||
@@ -361,4 +385,14 @@ void SceneNode::setCursor( EE_CURSOR_TYPE cursor ) {
|
||||
}
|
||||
}
|
||||
|
||||
bool SceneNode::isDrawInvalidator() {
|
||||
return NULL != mFrameBuffer;
|
||||
}
|
||||
|
||||
void SceneNode::preDraw() {
|
||||
}
|
||||
|
||||
void SceneNode::postDraw() {
|
||||
}
|
||||
|
||||
}}
|
||||
|
||||
@@ -107,7 +107,7 @@ void UIDropDownList::showList() {
|
||||
if ( !mStyleConfig.PopUpToMainControl )
|
||||
mListBox->setParent( NULL != mFriendCtrl ? mFriendCtrl->getParent() : getWindowContainer() );
|
||||
else
|
||||
mListBox->setParent( getSceneNode() );
|
||||
mListBox->setParent( mSceneNode );
|
||||
|
||||
mListBox->toFront();
|
||||
|
||||
|
||||
@@ -991,8 +991,8 @@ void UIListBox::loadFromXmlNode(const pugi::xml_node & node) {
|
||||
std::string data = item.text().as_string();
|
||||
|
||||
if ( data.size() ) {
|
||||
if ( NULL != getSceneNode() && getSceneNode()->isUISceneNode() )
|
||||
items.push_back( static_cast<UISceneNode*>( getSceneNode() )->getTranslatorString( data ) );
|
||||
if ( NULL != mSceneNode && mSceneNode->isUISceneNode() )
|
||||
items.push_back( static_cast<UISceneNode*>( mSceneNode )->getTranslatorString( data ) );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -556,8 +556,6 @@ void UIMenu::loadFromXmlNode( const pugi::xml_node& node ) {
|
||||
|
||||
UIWidget::loadFromXmlNode( node );
|
||||
|
||||
|
||||
|
||||
for ( pugi::xml_node item = node.first_child(); item; item = item.next_sibling() ) {
|
||||
std::string name( item.name() );
|
||||
String::toLowerInPlace( name );
|
||||
@@ -566,26 +564,29 @@ void UIMenu::loadFromXmlNode( const pugi::xml_node& node ) {
|
||||
std::string text( item.attribute("text").as_string() );
|
||||
std::string icon( item.attribute("icon").as_string() );
|
||||
|
||||
if ( NULL != getSceneNode() && getSceneNode()->isUISceneNode() )
|
||||
add( static_cast<UISceneNode*>( getSceneNode() )->getTranslatorString( text ), getIconDrawable( icon ) );
|
||||
if ( NULL != mSceneNode && mSceneNode->isUISceneNode() )
|
||||
add( static_cast<UISceneNode*>( mSceneNode )->getTranslatorString( text ), getIconDrawable( icon ) );
|
||||
} else if ( name == "menuseparator" || name == "separator" ) {
|
||||
addSeparator();
|
||||
} else if ( name == "menucheckbox" || name == "checkbox" ) {
|
||||
std::string text( item.attribute("text").as_string() );
|
||||
bool active( item.attribute("active").as_bool() );
|
||||
|
||||
if ( NULL != getSceneNode() && getSceneNode()->isUISceneNode() )
|
||||
addCheckBox( static_cast<UISceneNode*>( getSceneNode() )->getTranslatorString( text ), active );
|
||||
if ( NULL != mSceneNode && mSceneNode->isUISceneNode() )
|
||||
addCheckBox( static_cast<UISceneNode*>( mSceneNode )->getTranslatorString( text ), active );
|
||||
} else if ( name == "menusubmenu" || name == "submenu" ) {
|
||||
std::string text( item.attribute("text").as_string() );
|
||||
std::string icon( item.attribute("icon").as_string() );
|
||||
|
||||
UIPopUpMenu * subMenu = UIPopUpMenu::New();
|
||||
|
||||
if ( NULL != getDrawInvalidator() )
|
||||
subMenu->setParent( getDrawInvalidator() );
|
||||
|
||||
subMenu->loadFromXmlNode( item );
|
||||
|
||||
if ( NULL != getSceneNode() && getSceneNode()->isUISceneNode() )
|
||||
addSubMenu( static_cast<UISceneNode*>( getSceneNode() )->getTranslatorString( text ), getIconDrawable( icon ), subMenu );
|
||||
if ( NULL != mSceneNode && mSceneNode->isUISceneNode() )
|
||||
addSubMenu( static_cast<UISceneNode*>( mSceneNode )->getTranslatorString( text ), getIconDrawable( icon ), subMenu );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -86,8 +86,8 @@ UIMenu * UIMenuSubMenu::getSubMenu() const {
|
||||
Uint32 UIMenuSubMenu::onMouseMove( const Vector2i &Pos, const Uint32 Flags ) {
|
||||
UIMenuItem::onMouseMove( Pos, Flags );
|
||||
|
||||
if ( NULL != getSceneNode() && NULL != mSubMenu && !mSubMenu->isVisible() ) {
|
||||
mTimeOver += getSceneNode()->getElapsed().asMilliseconds();
|
||||
if ( NULL != mSceneNode && NULL != mSubMenu && !mSubMenu->isVisible() ) {
|
||||
mTimeOver += mSceneNode->getElapsed().asMilliseconds();
|
||||
|
||||
if ( mTimeOver >= mMaxTime ) {
|
||||
showSubMenu();
|
||||
|
||||
@@ -198,29 +198,29 @@ const Sizef& UINode::getRealSize() {
|
||||
}
|
||||
|
||||
void UINode::drawHighlightFocus() {
|
||||
if ( NULL != getEventDispatcher() && getSceneNode()->getHighlightFocus() && getEventDispatcher()->getFocusControl() == this ) {
|
||||
if ( NULL != getEventDispatcher() && mSceneNode->getHighlightFocus() && getEventDispatcher()->getFocusControl() == this ) {
|
||||
Primitives P;
|
||||
P.setFillMode( DRAW_LINE );
|
||||
P.setBlendMode( getBlendMode() );
|
||||
P.setColor( getSceneNode()->getHighlightFocusColor() );
|
||||
P.setColor( mSceneNode->getHighlightFocusColor() );
|
||||
P.setLineWidth( PixelDensity::dpToPxI( 1 ) );
|
||||
P.drawRectangle( getScreenBounds() );
|
||||
}
|
||||
}
|
||||
|
||||
void UINode::drawOverNode() {
|
||||
if ( NULL != getEventDispatcher() && getSceneNode()->getHighlightOver() && getEventDispatcher()->getOverControl() == this ) {
|
||||
if ( NULL != getEventDispatcher() && mSceneNode->getHighlightOver() && getEventDispatcher()->getOverControl() == this ) {
|
||||
Primitives P;
|
||||
P.setFillMode( DRAW_LINE );
|
||||
P.setBlendMode( getBlendMode() );
|
||||
P.setColor( getSceneNode()->getHighlightOverColor() );
|
||||
P.setColor( mSceneNode->getHighlightOverColor() );
|
||||
P.setLineWidth( PixelDensity::dpToPxI( 1 ) );
|
||||
P.drawRectangle( getScreenBounds() );
|
||||
}
|
||||
}
|
||||
|
||||
void UINode::drawDebugData() {
|
||||
if ( NULL != getSceneNode() && getSceneNode()->getDrawDebugData() ) {
|
||||
if ( NULL != mSceneNode && mSceneNode->getDrawDebugData() ) {
|
||||
if ( isWidget() ) {
|
||||
UIWidget * me = static_cast<UIWidget*>( this );
|
||||
|
||||
@@ -240,7 +240,7 @@ void UINode::drawDebugData() {
|
||||
}
|
||||
|
||||
void UINode::drawBox() {
|
||||
if ( NULL != getSceneNode() && getSceneNode()->getDrawBoxes() ) {
|
||||
if ( NULL != mSceneNode && mSceneNode->getDrawBoxes() ) {
|
||||
Primitives P;
|
||||
P.setFillMode( DRAW_LINE );
|
||||
P.setBlendMode( getBlendMode() );
|
||||
@@ -698,11 +698,9 @@ Node * UINode::getWindowContainer() {
|
||||
|
||||
while ( Ctrl != NULL ) {
|
||||
if ( Ctrl->isType( UI_TYPE_WINDOW ) ) {
|
||||
if ( getSceneNode() == Ctrl ) {
|
||||
return Ctrl;
|
||||
} else {
|
||||
return static_cast<UIWindow*>( Ctrl )->getContainer();
|
||||
}
|
||||
return static_cast<UIWindow*>( Ctrl )->getContainer();
|
||||
} else if ( mSceneNode == Ctrl ) {
|
||||
return mSceneNode;
|
||||
}
|
||||
|
||||
Ctrl = Ctrl->getParent();
|
||||
@@ -808,7 +806,7 @@ static void UINode_onFadeDone( Action * action, const Action::ActionType& action
|
||||
}
|
||||
|
||||
Interpolation1d * UINode::startAlphaAnim( const Float& From, const Float& To, const Time& TotalTime, const bool& AlphaChilds, const Ease::Interpolation& Type, Interpolation1d::OnPathEndCallback PathEndCallback ) {
|
||||
Actions::Fade * action = Actions::Fade::New( From, To, TotalTime, Type );
|
||||
Actions::Fade * action = Actions::Fade::New( From, To, TotalTime, Type, AlphaChilds );
|
||||
|
||||
action->getInterpolation()->setPathEndCallback( PathEndCallback );
|
||||
|
||||
|
||||
@@ -96,8 +96,8 @@ Uint32 UIPopUpMenu::onMessage( const NodeMessage * Msg ) {
|
||||
if ( !Msg->getSender()->isType( UI_TYPE_MENUSUBMENU ) && ( Msg->getFlags() & EE_BUTTONS_LRM ) ) {
|
||||
sendCommonEvent( Event::OnHideByClick );
|
||||
|
||||
if ( isVisible() && NULL != getSceneNode() )
|
||||
getSceneNode()->setFocus();
|
||||
if ( isVisible() && NULL != mSceneNode )
|
||||
mSceneNode->setFocus();
|
||||
|
||||
hide();
|
||||
}
|
||||
|
||||
@@ -357,8 +357,8 @@ void UIPushButton::loadFromXmlNode(const pugi::xml_node & node) {
|
||||
String::toLowerInPlace( name );
|
||||
|
||||
if ( "text" == name ) {
|
||||
if ( NULL != getSceneNode() )
|
||||
setText( static_cast<UISceneNode*>( getSceneNode() )->getTranslatorString( ait->as_string() ) );
|
||||
if ( NULL != mSceneNode )
|
||||
setText( static_cast<UISceneNode*>( mSceneNode )->getTranslatorString( ait->as_string() ) );
|
||||
} else if ( "textovercolor" == name ) {
|
||||
setFontOverColor( Color::fromString( ait->as_string() ) );
|
||||
} else if ( "icon" == name ) {
|
||||
|
||||
@@ -459,8 +459,8 @@ void UITextEdit::loadFromXmlNode(const pugi::xml_node & node) {
|
||||
String::toLowerInPlace( name );
|
||||
|
||||
if ( "text" == name ) {
|
||||
if ( NULL != getSceneNode() && getSceneNode()->isUISceneNode() ) {
|
||||
setText( static_cast<UISceneNode*>( getSceneNode() )->getTranslatorString( ait->as_string() ) );
|
||||
if ( NULL != mSceneNode && mSceneNode->isUISceneNode() ) {
|
||||
setText( static_cast<UISceneNode*>( mSceneNode )->getTranslatorString( ait->as_string() ) );
|
||||
}
|
||||
} else if ( "allowediting" == name ) {
|
||||
setAllowEditing( ait->as_bool() );
|
||||
|
||||
@@ -43,8 +43,8 @@ bool UITextInput::isType( const Uint32& type ) const {
|
||||
}
|
||||
|
||||
void UITextInput::update( const Time& time ) {
|
||||
if ( isMouseOverMeOrChilds() && NULL != getSceneNode() ) {
|
||||
getSceneNode()->setCursor( EE_CURSOR_IBEAM );
|
||||
if ( isMouseOverMeOrChilds() && NULL != mSceneNode ) {
|
||||
mSceneNode->setCursor( EE_CURSOR_IBEAM );
|
||||
}
|
||||
|
||||
UITextView::update( time );
|
||||
@@ -295,8 +295,8 @@ Uint32 UITextInput::onMouseDoubleClick( const Vector2i& Pos, const Uint32 Flags
|
||||
Uint32 UITextInput::onMouseExit( const Vector2i& Pos, const Uint32 Flags ) {
|
||||
UINode::onMouseExit( Pos, Flags );
|
||||
|
||||
if ( NULL != getSceneNode() )
|
||||
getSceneNode()->setCursor( EE_CURSOR_ARROW );
|
||||
if ( NULL != mSceneNode )
|
||||
mSceneNode->setCursor( EE_CURSOR_ARROW );
|
||||
|
||||
return 1;
|
||||
}
|
||||
@@ -349,8 +349,8 @@ void UITextInput::loadFromXmlNode(const pugi::xml_node & node) {
|
||||
String::toLowerInPlace( name );
|
||||
|
||||
if ( "text" == name ) {
|
||||
if ( NULL != getSceneNode() && getSceneNode()->isUISceneNode() ) {
|
||||
setText( static_cast<UISceneNode*>( getSceneNode() )->getTranslatorString( ait->as_string() ) );
|
||||
if ( NULL != mSceneNode && mSceneNode->isUISceneNode() ) {
|
||||
setText( static_cast<UISceneNode*>( mSceneNode )->getTranslatorString( ait->as_string() ) );
|
||||
}
|
||||
} else if ( "allowediting" == name ) {
|
||||
setAllowEditing( ait->as_bool() );
|
||||
|
||||
@@ -534,8 +534,8 @@ void UITextView::loadFromXmlNode(const pugi::xml_node & node) {
|
||||
String::toLowerInPlace( name );
|
||||
|
||||
if ( "text" == name ) {
|
||||
if ( NULL != getSceneNode() && getSceneNode()->isUISceneNode() )
|
||||
setText( static_cast<UISceneNode*>( getSceneNode() )->getTranslatorString( ait->as_string() ) );
|
||||
if ( NULL != mSceneNode && mSceneNode->isUISceneNode() )
|
||||
setText( static_cast<UISceneNode*>( mSceneNode )->getTranslatorString( ait->as_string() ) );
|
||||
} else if ( "textcolor" == name ) {
|
||||
setFontColor( Color::fromString( ait->as_string() ) );
|
||||
} else if ( "textshadowcolor" == name ) {
|
||||
|
||||
@@ -64,7 +64,7 @@ UIWindow::UIWindow( UIWindow::WindowBaseContainerType type, const UIWindowStyleC
|
||||
}
|
||||
|
||||
mContainer->setLayoutSizeRules( FIXED, FIXED );
|
||||
mContainer->writeCtrlFlag( NODE_FLAG_OWNED_BY_WINDOW, 1 );
|
||||
mContainer->writeCtrlFlag( NODE_FLAG_OWNED_BY_NODE, 1 );
|
||||
mContainer->setParent( this );
|
||||
mContainer->clipEnable();
|
||||
mContainer->enableReportSizeChangeToChilds();
|
||||
@@ -113,7 +113,7 @@ void UIWindow::updateWinFlags() {
|
||||
if ( !( mStyleConfig.WinFlags & UI_WIN_NO_BORDER ) ) {
|
||||
if ( NULL == mWindowDecoration ) {
|
||||
mWindowDecoration = UINode::New();
|
||||
mWindowDecoration->writeCtrlFlag( NODE_FLAG_OWNED_BY_WINDOW, 1 );
|
||||
mWindowDecoration->writeCtrlFlag( NODE_FLAG_OWNED_BY_NODE, 1 );
|
||||
}
|
||||
|
||||
mWindowDecoration->setParent( this );
|
||||
@@ -122,7 +122,7 @@ void UIWindow::updateWinFlags() {
|
||||
|
||||
if ( NULL == mBorderLeft ) {
|
||||
mBorderLeft = UINode::New();
|
||||
mBorderLeft->writeCtrlFlag( NODE_FLAG_OWNED_BY_WINDOW, 1 );
|
||||
mBorderLeft->writeCtrlFlag( NODE_FLAG_OWNED_BY_NODE, 1 );
|
||||
}
|
||||
|
||||
mBorderLeft->setParent( this );
|
||||
@@ -131,7 +131,7 @@ void UIWindow::updateWinFlags() {
|
||||
|
||||
if ( NULL == mBorderRight ) {
|
||||
mBorderRight = UINode::New();
|
||||
mBorderRight->writeCtrlFlag( NODE_FLAG_OWNED_BY_WINDOW, 1 );
|
||||
mBorderRight->writeCtrlFlag( NODE_FLAG_OWNED_BY_NODE, 1 );
|
||||
}
|
||||
|
||||
mBorderRight->setParent( this );
|
||||
@@ -140,7 +140,7 @@ void UIWindow::updateWinFlags() {
|
||||
|
||||
if ( NULL == mBorderBottom ) {
|
||||
mBorderBottom = UINode::New();
|
||||
mBorderBottom->writeCtrlFlag( NODE_FLAG_OWNED_BY_WINDOW, 1 );
|
||||
mBorderBottom->writeCtrlFlag( NODE_FLAG_OWNED_BY_NODE, 1 );
|
||||
}
|
||||
|
||||
mBorderBottom->setParent( this );
|
||||
@@ -150,7 +150,7 @@ void UIWindow::updateWinFlags() {
|
||||
if ( mStyleConfig.WinFlags & UI_WIN_CLOSE_BUTTON ) {
|
||||
if ( NULL == mButtonClose ) {
|
||||
mButtonClose = UINode::New();
|
||||
mButtonClose->writeCtrlFlag( NODE_FLAG_OWNED_BY_WINDOW, 1 );
|
||||
mButtonClose->writeCtrlFlag( NODE_FLAG_OWNED_BY_NODE, 1 );
|
||||
needsUpdate = true;
|
||||
}
|
||||
|
||||
@@ -165,7 +165,7 @@ void UIWindow::updateWinFlags() {
|
||||
if ( isMaximizable() ) {
|
||||
if ( NULL == mButtonMaximize ) {
|
||||
mButtonMaximize = UINode::New();
|
||||
mButtonMaximize->writeCtrlFlag( NODE_FLAG_OWNED_BY_WINDOW, 1 );
|
||||
mButtonMaximize->writeCtrlFlag( NODE_FLAG_OWNED_BY_NODE, 1 );
|
||||
needsUpdate = true;
|
||||
}
|
||||
|
||||
@@ -180,7 +180,7 @@ void UIWindow::updateWinFlags() {
|
||||
if ( mStyleConfig.WinFlags & UI_WIN_MINIMIZE_BUTTON ) {
|
||||
if ( NULL == mButtonMinimize ) {
|
||||
mButtonMinimize = UINode::New();
|
||||
mButtonMinimize->writeCtrlFlag( NODE_FLAG_OWNED_BY_WINDOW, 1 );
|
||||
mButtonMinimize->writeCtrlFlag( NODE_FLAG_OWNED_BY_NODE, 1 );
|
||||
needsUpdate = true;
|
||||
}
|
||||
|
||||
@@ -277,13 +277,13 @@ void UIWindow::drawFrameBuffer() {
|
||||
}
|
||||
|
||||
void UIWindow::drawHighlightInvalidation() {
|
||||
if ( ( mNodeFlags & NODE_FLAG_VIEW_DIRTY ) && NULL != getSceneNode() && getSceneNode()->getHighlightInvalidation() ) {
|
||||
if ( ( mNodeFlags & NODE_FLAG_VIEW_DIRTY ) && NULL != mSceneNode && mSceneNode->getHighlightInvalidation() ) {
|
||||
UIWidget::matrixSet();
|
||||
|
||||
Primitives P;
|
||||
P.setFillMode( DRAW_LINE );
|
||||
P.setBlendMode( getBlendMode() );
|
||||
P.setColor( getSceneNode()->getHighlightInvalidationColor() );
|
||||
P.setColor( mSceneNode->getHighlightInvalidationColor() );
|
||||
P.setLineWidth( PixelDensity::dpToPx( 2 ) );
|
||||
P.drawRectangle( getScreenBounds() );
|
||||
|
||||
@@ -329,22 +329,22 @@ void UIWindow::drawShadow() {
|
||||
}
|
||||
|
||||
Sizei UIWindow::getFrameBufferSize() {
|
||||
return isResizeable() && (Node*)this != (Node*)getSceneNode() ? Sizei( Math::nextPowOfTwo( (int)mSize.getWidth() ), Math::nextPowOfTwo( (int)mSize.getHeight() ) ) : mSize.ceil().asInt();
|
||||
return isResizeable() && (Node*)this != mSceneNode ? Sizei( Math::nextPowOfTwo( (int)mSize.getWidth() ), Math::nextPowOfTwo( (int)mSize.getHeight() ) ) : mSize.ceil().asInt();
|
||||
}
|
||||
|
||||
UISceneNode *UIWindow::getUISceneNode() {
|
||||
return ( NULL != getSceneNode() && getSceneNode()->isUISceneNode() ) ? static_cast<UISceneNode*>( getSceneNode() ) : NULL;
|
||||
return ( NULL != mSceneNode && mSceneNode->isUISceneNode() ) ? static_cast<UISceneNode*>( mSceneNode ) : NULL;
|
||||
}
|
||||
|
||||
void UIWindow::createModalControl() {
|
||||
Node * Ctrl = getSceneNode();
|
||||
Node * Ctrl = mSceneNode;
|
||||
|
||||
if ( NULL == Ctrl )
|
||||
return;
|
||||
|
||||
if ( NULL == mModalCtrl ) {
|
||||
mModalCtrl = UIWidget::New();
|
||||
mModalCtrl->writeCtrlFlag( NODE_FLAG_OWNED_BY_WINDOW, 1 );
|
||||
mModalCtrl->writeCtrlFlag( NODE_FLAG_OWNED_BY_NODE, 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 {
|
||||
@@ -360,17 +360,17 @@ void UIWindow::createModalControl() {
|
||||
}
|
||||
|
||||
void UIWindow::enableByModal() {
|
||||
if ( isModal() && NULL != getSceneNode() ) {
|
||||
Node * CtrlChild = getSceneNode()->getFirstChild();
|
||||
if ( isModal() && NULL != mSceneNode ) {
|
||||
Node * CtrlChild = mSceneNode->getFirstChild();
|
||||
|
||||
while ( NULL != CtrlChild )
|
||||
{
|
||||
if ( CtrlChild != mModalCtrl &&
|
||||
CtrlChild != this &&
|
||||
CtrlChild->getNodeFlags() & NODE_FLAG_DISABLED_BY_MODAL_WINDOW )
|
||||
CtrlChild->getNodeFlags() & NODE_FLAG_DISABLED_BY_NODE )
|
||||
{
|
||||
CtrlChild->setEnabled( true );
|
||||
CtrlChild->writeCtrlFlag( NODE_FLAG_DISABLED_BY_MODAL_WINDOW, 0 );
|
||||
CtrlChild->writeCtrlFlag( NODE_FLAG_DISABLED_BY_NODE, 0 );
|
||||
}
|
||||
|
||||
CtrlChild = CtrlChild->getNextNode();
|
||||
@@ -379,8 +379,8 @@ void UIWindow::enableByModal() {
|
||||
}
|
||||
|
||||
void UIWindow::disableByModal() {
|
||||
if ( isModal() && NULL != getSceneNode() ) {
|
||||
Node * CtrlChild = getSceneNode()->getFirstChild();
|
||||
if ( isModal() && NULL != mSceneNode ) {
|
||||
Node * CtrlChild = mSceneNode->getFirstChild();
|
||||
|
||||
while ( NULL != CtrlChild )
|
||||
{
|
||||
@@ -389,7 +389,7 @@ void UIWindow::disableByModal() {
|
||||
CtrlChild->isEnabled() )
|
||||
{
|
||||
CtrlChild->setEnabled( false );
|
||||
CtrlChild->writeCtrlFlag( NODE_FLAG_DISABLED_BY_MODAL_WINDOW, 1 );
|
||||
CtrlChild->writeCtrlFlag( NODE_FLAG_DISABLED_BY_NODE, 1 );
|
||||
}
|
||||
|
||||
CtrlChild = CtrlChild->getNextNode();
|
||||
@@ -664,8 +664,8 @@ Uint32 UIWindow::onMessage( const NodeMessage * Msg ) {
|
||||
}
|
||||
case NodeMessage::WindowResize:
|
||||
{
|
||||
if ( isModal() && NULL != mModalCtrl && NULL != getSceneNode() ) {
|
||||
mModalCtrl->setSize( getSceneNode()->getSize() );
|
||||
if ( isModal() && NULL != mModalCtrl && NULL != mSceneNode ) {
|
||||
mModalCtrl->setSize( mSceneNode->getSize() );
|
||||
}
|
||||
|
||||
break;
|
||||
@@ -995,8 +995,8 @@ bool UIWindow::hide() {
|
||||
setVisible( false );
|
||||
}
|
||||
|
||||
if ( NULL != getSceneNode() )
|
||||
getSceneNode()->setFocus();
|
||||
if ( NULL != mSceneNode )
|
||||
mSceneNode->setFocus();
|
||||
|
||||
if ( NULL != mModalCtrl ) {
|
||||
mModalCtrl->setEnabled( false );
|
||||
@@ -1023,14 +1023,14 @@ void UIWindow::onAlphaChange() {
|
||||
}
|
||||
|
||||
void UIWindow::onChildCountChange() {
|
||||
if ( NULL == mContainer || (Node*)getSceneNode() == (Node*)this )
|
||||
if ( NULL == mContainer )
|
||||
return;
|
||||
|
||||
Node * child = mChild;
|
||||
bool found = false;
|
||||
|
||||
while ( NULL != child ) {
|
||||
if ( !( child->getNodeFlags() & NODE_FLAG_OWNED_BY_WINDOW ) ) {
|
||||
if ( !( child->getNodeFlags() & NODE_FLAG_OWNED_BY_NODE ) ) {
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
@@ -1059,7 +1059,7 @@ void UIWindow::setTitle( const String& text ) {
|
||||
if ( NULL == mTitle ) {
|
||||
mTitle = UITextView::New();
|
||||
mTitle->setLayoutSizeRules( FIXED, FIXED );
|
||||
mTitle->writeCtrlFlag( NODE_FLAG_OWNED_BY_WINDOW, 1 );
|
||||
mTitle->writeCtrlFlag( NODE_FLAG_OWNED_BY_NODE, 1 );
|
||||
mTitle->setParent( this );
|
||||
mTitle->setHorizontalAlign( getHorizontalAlign() );
|
||||
mTitle->setVerticalAlign( getVerticalAlign() );
|
||||
@@ -1099,7 +1099,7 @@ UITextView * UIWindow::getTitleTextBox() const {
|
||||
}
|
||||
|
||||
void UIWindow::maximize() {
|
||||
Node * Ctrl = getSceneNode();
|
||||
Node * Ctrl = mSceneNode;
|
||||
|
||||
if ( NULL == Ctrl )
|
||||
return;
|
||||
@@ -1149,7 +1149,7 @@ void UIWindow::internalDraw() {
|
||||
|
||||
matrixSet();
|
||||
|
||||
if ( !ownsFrameBuffer() || ( NULL != getSceneNode() && !getSceneNode()->usesInvalidation() ) || invalidated() ) {
|
||||
if ( !ownsFrameBuffer() || ( NULL != mSceneNode && !mSceneNode->usesInvalidation() ) || invalidated() ) {
|
||||
clipStart();
|
||||
|
||||
draw();
|
||||
@@ -1185,6 +1185,10 @@ FrameBuffer * UIWindow::getFrameBuffer() const {
|
||||
return mFrameBuffer;
|
||||
}
|
||||
|
||||
bool UIWindow::isDrawInvalidator() {
|
||||
return true;
|
||||
}
|
||||
|
||||
bool UIWindow::invalidated() {
|
||||
return 0 != ( mNodeFlags & NODE_FLAG_VIEW_DIRTY );
|
||||
}
|
||||
@@ -1192,7 +1196,7 @@ bool UIWindow::invalidated() {
|
||||
void UIWindow::matrixSet() {
|
||||
if ( ownsFrameBuffer() ) {
|
||||
if ( NULL != mFrameBuffer ) {
|
||||
if ( ( NULL != getSceneNode() && !getSceneNode()->usesInvalidation() ) || invalidated() ) {
|
||||
if ( ( NULL != mSceneNode && !mSceneNode->usesInvalidation() ) || invalidated() ) {
|
||||
mFrameBufferBound = true;
|
||||
|
||||
mFrameBuffer->bind();
|
||||
|
||||
@@ -312,10 +312,13 @@ void UIWinMenu::loadFromXmlNode( const pugi::xml_node& node ) {
|
||||
|
||||
UIPopUpMenu * subMenu = UIPopUpMenu::New();
|
||||
|
||||
if ( NULL != getDrawInvalidator() )
|
||||
subMenu->setParent( getDrawInvalidator() );
|
||||
|
||||
subMenu->loadFromXmlNode( item );
|
||||
|
||||
if ( NULL != getSceneNode() && getSceneNode()->isUISceneNode() )
|
||||
addMenuButton( static_cast<UISceneNode*>( getSceneNode() )->getTranslatorString( text ), subMenu );
|
||||
if ( NULL != mSceneNode && mSceneNode->isUISceneNode() )
|
||||
addMenuButton( static_cast<UISceneNode*>( mSceneNode )->getTranslatorString( text ), subMenu );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -35,14 +35,14 @@ class UIBlurredWindow : public UIWindow {
|
||||
if ( !ownsFrameBuffer() )
|
||||
return;
|
||||
|
||||
FrameBuffer * curFBO = FrameBufferManager::instance()->getFromName( "uimain" );
|
||||
FrameBuffer * curFBO = getSceneNode()->getFrameBuffer();
|
||||
|
||||
if ( NULL != curFBO && NULL != curFBO->getTexture() && NULL != mBlurShader ) {
|
||||
static int fboDiv = 2;
|
||||
|
||||
if ( NULL == mFboBlur ) {
|
||||
mFboBlur = FrameBuffer::New( mSize.x / fboDiv, mSize.y / fboDiv );
|
||||
} else if ( mFboBlur->getSize().getWidth() != mSize.x / fboDiv || mFboBlur->getSize().getHeight() != mSize.y / fboDiv ) {
|
||||
} else if ( mFboBlur->getSize().getWidth() != (int)( mSize.x / fboDiv ) || mFboBlur->getSize().getHeight() != (int)( mSize.y / fboDiv ) ) {
|
||||
mFboBlur->resize( mSize.x / fboDiv, mSize.y / fboDiv );
|
||||
}
|
||||
|
||||
@@ -360,7 +360,7 @@ void EETest::createBaseUI() {
|
||||
UIWindow * tWin = UIWindow::New();
|
||||
tWin->setSize( 530, 405 )->setPosition( 320, 240 );
|
||||
UIWindowStyleConfig windowStyleConfig = tWin->getStyleConfig();
|
||||
windowStyleConfig.WinFlags = UI_WIN_DRAGABLE_CONTAINER | UI_WIN_SHADOW/*| UI_WIN_FRAME_BUFFER*/;
|
||||
windowStyleConfig.WinFlags = UI_WIN_DRAGABLE_CONTAINER | UI_WIN_SHADOW | UI_WIN_FRAME_BUFFER;
|
||||
windowStyleConfig.MinWindowSize = Sizef( 530, 405 );
|
||||
windowStyleConfig.BaseAlpha = 200;
|
||||
tWin->setStyleConfig( windowStyleConfig );
|
||||
@@ -588,14 +588,21 @@ void EETest::createUI() {
|
||||
|
||||
eePRINTL( "Texture Atlas Loading Time: %4.3f ms.", TE.getElapsed().asMilliseconds() );
|
||||
|
||||
/*Uint32 UI_MAN_OPS = 0;
|
||||
if ( mDebugUI )
|
||||
UI_MAN_OPS = UI_MANAGER_HIGHLIGHT_FOCUS | UI_MANAGER_HIGHLIGHT_OVER | UI_MANAGER_DRAW_DEBUG_DATA | UI_MANAGER_DRAW_BOXES | UI_MANAGER_HIGHLIGHT_INVALIDATION;
|
||||
UIManager::instance()->init(UI_MAN_OPS | UI_MANAGER_USE_DRAW_INVALIDATION | UI_MANAGER_MAIN_CONTROL_IN_FRAME_BUFFER);
|
||||
UIManager::instance()->setTranslator( mTranslator );*/
|
||||
|
||||
UISceneNode * sceneNode = UISceneNode::New();
|
||||
|
||||
sceneNode->enableDrawInvalidation();
|
||||
sceneNode->enableFrameBuffer();
|
||||
|
||||
if ( mDebugUI ) {
|
||||
sceneNode->setDrawBoxes( true );
|
||||
sceneNode->setDrawDebugData( true );
|
||||
sceneNode->setHighlightFocus( true );
|
||||
sceneNode->setHighlightOver( true );
|
||||
sceneNode->setHighlightInvalidation( true );
|
||||
}
|
||||
|
||||
sceneNode->setTranslator( mTranslator );
|
||||
|
||||
SceneManager::instance()->add( sceneNode );
|
||||
|
||||
eePRINTL("Node size: %d", sizeof(Node));
|
||||
@@ -897,7 +904,7 @@ void EETest::createMapEditor() {
|
||||
UIWindow * tWin = UIWindow::New();
|
||||
tWin->setSizeWithDecoration( 1024, 768 )->setPosition( 0, 0 );
|
||||
UIWindowStyleConfig windowStyleConfig = tWin->getStyleConfig();
|
||||
windowStyleConfig.WinFlags = UI_WIN_DEFAULT_FLAGS | UI_WIN_MAXIMIZE_BUTTON | UI_WIN_DRAGABLE_CONTAINER | UI_WIN_SHADOW/*| UI_WIN_FRAME_BUFFER*/;
|
||||
windowStyleConfig.WinFlags = UI_WIN_DEFAULT_FLAGS | UI_WIN_MAXIMIZE_BUTTON | UI_WIN_DRAGABLE_CONTAINER | UI_WIN_SHADOW | UI_WIN_FRAME_BUFFER;
|
||||
windowStyleConfig.MinWindowSize = Sizef( 1024, 768 );
|
||||
tWin->setStyleConfig( windowStyleConfig );
|
||||
|
||||
@@ -914,7 +921,7 @@ void EETest::createETGEditor() {
|
||||
UIWindow * tWin = UIWindow::New();
|
||||
tWin->setSizeWithDecoration( 1024, 768 )->setPosition( 0, 0 );
|
||||
UIWindowStyleConfig windowStyleConfig = tWin->getStyleConfig();
|
||||
windowStyleConfig.WinFlags = UI_WIN_DEFAULT_FLAGS | UI_WIN_MAXIMIZE_BUTTON | UI_WIN_DRAGABLE_CONTAINER | UI_WIN_SHADOW/*| UI_WIN_FRAME_BUFFER*/;
|
||||
windowStyleConfig.WinFlags = UI_WIN_DEFAULT_FLAGS | UI_WIN_MAXIMIZE_BUTTON | UI_WIN_DRAGABLE_CONTAINER | UI_WIN_SHADOW | UI_WIN_FRAME_BUFFER;
|
||||
windowStyleConfig.MinWindowSize = Sizef( 1024, 768 );
|
||||
tWin->setStyleConfig( windowStyleConfig );
|
||||
|
||||
@@ -949,7 +956,7 @@ static void onWinDragStop( const Event * event ) {
|
||||
|
||||
void EETest::createDecoratedWindow() {
|
||||
mUIWindow = UIBlurredWindow::New( mBlur );
|
||||
mUIWindow->setWinFlags( UI_WIN_DEFAULT_FLAGS | UI_WIN_MAXIMIZE_BUTTON | UI_WIN_SHADOW/*| UI_WIN_FRAME_BUFFER*/ )
|
||||
mUIWindow->setWinFlags( UI_WIN_DEFAULT_FLAGS | UI_WIN_MAXIMIZE_BUTTON | UI_WIN_SHADOW | UI_WIN_FRAME_BUFFER )
|
||||
->setMinWindowSize( 530, 350 )->setPosition( 200, 50 );
|
||||
|
||||
mUIWindow->addEventListener( Event::OnWindowClose, cb::Make1( this, &EETest::onCloseClick ) );
|
||||
@@ -971,9 +978,22 @@ void EETest::createDecoratedWindow() {
|
||||
if ( !Event->getNode()->isType( UI_TYPE_MENUITEM ) )
|
||||
return;
|
||||
|
||||
/*UIMenuItem* menuItem = reinterpret_cast<UIMenuItem*> ( Event->getNode() );
|
||||
Node * node = Event->getNode();
|
||||
UIWindow * win = NULL;
|
||||
|
||||
while ( NULL != node && NULL == win ) {
|
||||
if ( node->isWindow() ) {
|
||||
win = static_cast<UIWindow*>( node );
|
||||
} else {
|
||||
node = node->getParent();
|
||||
}
|
||||
}
|
||||
|
||||
if ( NULL == win )
|
||||
return;
|
||||
|
||||
UIMenuItem* menuItem = reinterpret_cast<UIMenuItem*> ( Event->getNode() );
|
||||
const String& txt = menuItem->getText();
|
||||
UIWindow * win = Event->getNode()->getOwnerWindow();
|
||||
|
||||
if ( "Hide Border" == txt ) {
|
||||
win->setWinFlags( win->getWinFlags() | UI_WIN_NO_BORDER );
|
||||
@@ -983,7 +1003,7 @@ void EETest::createDecoratedWindow() {
|
||||
menuItem->setText( "Hide Border" );
|
||||
} else if ( "Close" == txt ) {
|
||||
win->closeFadeOut( Milliseconds(250) );
|
||||
}*/
|
||||
}
|
||||
} ) );
|
||||
|
||||
UIPopUpMenu * PopMenu2 = UIPopUpMenu::New();
|
||||
|
||||
Reference in New Issue
Block a user