/* ========================================================================== * ÆÄ ÀÏ : UIContainer.h * ¸ñ Àû : * ÀÛ ¼º ÀÚ : À̼ø±Ô * ÀÛ ¼º ÀÏ : 2006.09.29 * ÁÖÀÇ»çÇ× : *===========================================================================*/ #pragma once #include "UINode.h" #include "UINodeData.h" /// UI ÄÁÅ×ÀÌ³Ê ½ºÅ² class cUIContainerSkin : public cUINodeSkin { public: cUIContainerSkin( eUINodeType type = eUINODE_CONTAINER ); virtual ~cUIContainerSkin(); }; ///////////////////////////////////////////////////////////////////////////////////// /// UI ÄÁÅ×ÀÌ³Ê /// ´Ù¸¥ UI ³ëµå¸¦ ÀÚ½ÄÀ¸·Î °¡Áú ¼ö ÀÖ´Ù. class cUIContainer : public cUINode { public: /// °»½Å virtual void UpdateRect(); /// ½ºÅ² virtual void UpdateSkin(); /// À̺¥Æ®¸¦ ó¸® virtual bool HandleEvent( const cUIEvent& event ); /// ÀÚ½ÄÀ» Ãß°¡ virtual void AddChild( cUINode* pchild ); /// ÀÚ½ÄÀ» Á¦°Å virtual void RemoveChild( cUINode* pchild ); /// ºÎ¸ð·ÎºÎÅÍ ÀÚ½ÄÀ» ¿ÏÀüÈ÷ Á¦°Å( Æ÷ÀÎÅͱîÁö ¾ø¾Ø´Ù ) virtual void RemoveChildComplete( cUINode* pchild ); /// ÀÚ½Ä ¸®½ºÆ®¸¦ ¸®ÅÏ tPointerList* GetChildList(); /// ³ëµå¸¦ ¸®ÅÏ /// À§Ä¡¿¡ µû¶ó ÀÚ½Ä ¶Ç´Â ÀÚ±â ÀÚ½ÅÀ» ¸®ÅÏÇÑ´Ù. cUINode* GetNode( const cUIPos& pos ) const; /// ÄÁÅ×À̳ʸ¦ ¸®ÅÏ /// ·çÆ®ÀÇ child Áß ÇØ´ç ¿µ¿ª°ú °¡Àå °¡±î¿î ÄÁÅ×À̳ʸ¦ ã´Â´Ù cUIContainer* GetNearRootChild( cUIContainer* con, bool axisX ); /// ¹é±×¶ó¿îµå·Î ÁöÁ¤ void SetOnlyBackground( bool value ); /// ºä Ȧµå ¼¼ÆÃ ¿©ºÎ void SetHoldView( bool hold ); /// ¹é±×¶ó¿îµåÀÎÁö ¿©ºÎ ¸®ÅÏ bool IsOnlyBackground(); /// ¹Ýµå½Ã º¸¿©Á®¾ßÇÏ´Â À©µµ¿ìÀÎÁö ¿©ºÎ ¸®ÅÏ bool IsHoldView(); ////// Ưº°ÇÑ ÀÚ½Ä °ü¸® /// Æ÷Ä¿½º °®´Â ¿¡µðÆ® ¹Ú½º üÀÎÁö void ChangeFocus( unsigned int index ); /// ¿¡µðÆ®¹Ú½º ÅÇÀ» »ðÀÔ int AddEditBox( cUINode* pchild ); /// ¶óµð¿À ¹öưÀ» »ðÀÔ void AddRadio( unsigned int groupNum, cUINode* pchild ); /// Çìµå ¶óµð¿À ¹öưÀ» ¸®ÅÏ cUINode* GetHeadRadio( unsigned int groupNum ); /// ÀÚ¼®±â´É »ç¿ë¿©ºÎ ( ´Ù¸¥ ÄÁÅ×À̳ʰ¡ ºÙ°Ô ÇÒÁö ¿©ºÎ ) void SetExceptSnap( bool set ); bool IsExceptSnap(); /// ÀÚ¼®°Ë»ç½Ã Á¦¿Ü¿©ºÎ /// ¸ðµç UI ¶ô Ç®±â void NetUnLockAllUI(); /// ÀÚ½ÄÀ» ¸®ÅÏ cUINode* GetChild( int id ); protected: cUIContainer( eUINodeType type = eUINODE_CONTAINER ); virtual ~cUIContainer(); protected: /// À̺¥Æ® virtual void OnOk() {} virtual void OnCancel() {} virtual void OnCommand( cUINode* /*caller*/, unsigned int /*id*/ ) {} virtual void OnCheckBoxChanged( cUINode* /*caller*/, unsigned int /*id*/ ) {} virtual void OnEditBoxEntered( cUINode* /*caller*/, unsigned int /*id*/ ) {} virtual void OnListBoxChanged( cUINode* /*caller*/, unsigned int /*id*/ ) {} virtual void OnListBoxSelected( cUINode* /*caller*/, unsigned int /*id*/ ) {} virtual void OnListBoxSelectedRButton( cUINode* /*caller*/, unsigned int /*id*/, bool /*shift*/ ) {} virtual void OnScrollbarMoved( cUINode* /*caller*/, unsigned int /*id*/ ) {} virtual void OnButtonDowned( cUINode* /*caller*/, unsigned int /*id*/ ) {} virtual void OnButtonContinueDowned( cUINode* /*caller*/, unsigned int /*id*/ ) {} virtual void OnRadioPressed( cUINode* /*caller*/, unsigned int /*id*/ ) {} virtual void OnPushButtonPressed( cUINode* /*caller*/, unsigned int /*id*/ ) {} virtual void OnTabButtonPressed( cUINode* /*caller*/, unsigned int /*id*/ ) {} virtual void OnIconHovered( cUINode* /*caller*/, unsigned int /*id*/, const cUIPos& /*pos*/ ) {} virtual void OnIconLeft( cUINode* /*caller*/, unsigned int /*id*/ ) {} virtual void OnIconDragged( cUINode* /*caller*/, unsigned int /*id*/, const cUIPos& /*pos*/, bool /*shift*/ ) {} virtual void OnIconDoubleClicked( cUINode* /*caller*/, unsigned int /*id*/ ) {} virtual void OnIconClicked( cUINode* /*caller*/, unsigned int /*id*/ ) {} virtual void OnIconRightClicked( cUINode* /*caller*/, unsigned int /*id*/, bool /*shift*/ ) {} virtual void OnImageHovered( cUINode* /*caller*/, unsigned int /*id*/, const cUIPos& /*pos*/ ) {} virtual void OnImageClicked( cUINode* /*caller*/, unsigned int /*id*/ ) {} virtual void OnListBoxRowHovered( cUINode* /*caller*/, unsigned int /*id*/, const cUIPos& /*pos*/, void* /*extraData*/ ) {} virtual void OnListBoxRowLeft( cUINode* /*caller*/, unsigned int /*id*/ ) {} virtual void OnListBoxImageHorvered( cUINode* /*caller*/, unsigned int /*id*/, const cUIPos& /*pos*/, void* /*extraData*/ ) {} virtual void OnListBoxImageLeft( cUINode* /*caller*/, unsigned int /*id*/ ) {} virtual void OnGaugeEnd( cUINode* /*caller*/, unsigned int /*id*/ ) {} virtual void OnComboSelected( cUINode* /*caller*/, unsigned int /*id*/ ) {} virtual void OnOptiongaugeUpdate( cUINode* /*caller*/, unsigned int /*id*/ ) {} virtual void OnMouseOtherClick( const cUIPos& /*pos*/ ) {} protected: /// ÀÚ½Ä ¸®½ºÆ® typedef tPointerList cChildList; cChildList mChildList; /// ¿¡µðÆ® ¹Ú½º ¸®½ºÆ® (µ¿ÀÏÇѺθ𠳢¸®¸¸ Àû¿ëµÊ) typedef tPointerArray cEditArr; cEditArr mEditArr; /// Çìµå ¶óµð¿À ¹öư ¹è¿­ typedef tPointerArray cRadioArr; cRadioArr mHeadRadioArr; public: /// ¹é±×¶ó¿îµå·Î »ý¼ºµÈ À©µµ¿ì bool mOnlyBackground; /// ¹Ýµå½Ã º¸¿©¾ßÇÏ´Â À©µµ¿ì ( visible ·Î ¼¼ÆÃÇÒ¼ö ¾øµµ·Ï ÇÑ´Ù ) bool mHoldView; private: /// ÀÚ¼®±â´É Àû¿ë¿©ºÎ ( true ÀÌ¸é ´Ù¸¥ ÄÁÅ×À̳ʵéÀÌ ºÙÁö ¾Ê´Â´Ù ) bool mExceptSnap; }; inline tPointerList* cUIContainer::GetChildList() { return &mChildList; } inline void cUIContainer::SetOnlyBackground( bool value ) { mOnlyBackground = value; } inline void cUIContainer::SetHoldView( bool hold ) { mHoldView = hold; } inline bool cUIContainer::IsOnlyBackground() { return mOnlyBackground; } inline bool cUIContainer::IsHoldView() { return mHoldView; } inline void cUIContainer::SetExceptSnap( bool set ) { mExceptSnap = set; } inline bool cUIContainer::IsExceptSnap() { return mExceptSnap; }