#pragma once #include "resource.h" #include "EtUIDialog.h" #include "undo.h" class CUIToolTemplate; class CEtUIControl; class CUnionValueProperty; typedef enum SELECT_TYPE_ { SELECT_NONE, SELECT_DONE, SELECT_LAST } SELECT_TYPE; // NOTE : ÄÁÆ®·ÑÀÇ Á¤·Ä ŸÀÔ // enum ALLIGN_TYPE { ALLIGN_LEFT, ALLIGN_CENTER, ALLIGN_RIGHT, ALLIGN_TOP, ALLIGN_MIDDLE, ALLIGN_BOTTOM, ALLIGN_HORIZONTAL, ALLIGN_VERTICAL }; // NOTE : ÄÁÆ®·ÑÀÇ »çÀÌÁî ¸ÂÃ߱⠟ÀÔ // enum MAKESIZE_TYPE { MAKESIZE_WIDTH, MAKESIZE_HEIGHT, MAKESIZE_BOTH }; struct SCreateControlInfo { SCreateControlInfo() { pControl = NULL; emSelect = SELECT_NONE; nTabOrder = 0; } CEtUIControl *pControl; SELECT_TYPE emSelect; SUIControlProperty Property; int nTabOrder; }; // CLayoutView form view class CLayoutView : public CFormView, public CUndo { DECLARE_DYNCREATE(CLayoutView) protected: CLayoutView(); // protected constructor used by dynamic creation virtual ~CLayoutView(); public: enum { IDD = IDD_LAYOUTVIEW }; #ifdef _DEBUG virtual void AssertValid() const; #ifndef _WIN32_WCE virtual void Dump(CDumpContext& dc) const; #endif #endif enum { NUM_CONTROL_GROUP = 8, }; protected: CPoint m_CusorPt; RECT m_CurDragRect; CEtUIControl *m_pMoveControl; bool m_bMoveMode; bool m_bDragMode; int m_nCurTabOrder; int m_nWideScreen; bool IsCurTabOrder() { return m_nCurTabOrder != -1;} CString m_szCurFileName; CEtUIDialog m_LayoutDlg; SUIDialogInfo m_DlgInfo; std::vector< CUIToolTemplate * > m_vecLayoutTemplate; std::vector< SCreateControlInfo > m_vecLayoutControl; std::vector< SCreateControlInfo > m_vecLayoutControlCopy; // À妽º·Î µÎ¸é Áß°£¿¡ ¹Ù²ð¼öµµ À־, ÄÁÆ®·Ñ Æ÷ÀÎÅÍ µé°íÀÖÀ¸·Á Çߴµ¥, Undo¶§¹®¿¡ ¾ÈµÈ´Ù. À̸§ µé°í ºñ±³. À̸§ °°À¸¸é ÇÒ¼ö¾ø´Ù. std::vector< std::string > m_vecControlGroup[NUM_CONTROL_GROUP]; int m_nLastSelectGroup; bool m_bTabOrderMode; bool m_bInitStateMode; int m_nViewCrosshair; // ±×³É Àӽ÷Πº¸ÀÌ´Â µÞ¹è°æ ´ÙÀ̾ó·Î±×. CEtUIDialog m_BackgroundDlg; // ±×³É Àӽ÷Πº¸ÀÌ´Â µÞ¹è°æ ´ÙÀ̾ó·Î±× ¸®½ºÆ®. std::list m_listBackgroundDlg; // SaveCustomUI protected: virtual void UndoLoad(CMemFile* pFile); virtual void UndoStore(CMemFile* pFile); std::vector< std::string > m_vecNotUseTemplate; void LoadNotUseTemplateList(); bool IsNotUseTemplate( CEtUITemplate *pTemplate ); public: void StartTabOrder(); void EndTabOrder(); bool SetTabOrder( int nOrder, CEtUIControl *pControl ); void AddTabOrder( int nStart, int nEnd, int nAdd ); void StartInitStateMode(); void EndInitStateMode(); void AllignControl( ALLIGN_TYPE emAllign, int nInterval = 0 ); void MakeSameSizeControl( MAKESIZE_TYPE emMakeSize ); CEtUIDialog& GetDialog() { return m_LayoutDlg; } void GetLayoutDlgPosition( float &fX, float &fY ); void SetDefaultControl( SUIControlProperty *pProperty ); int GetControlCount() { return ( int )m_vecLayoutControl.size(); } int FindControl( CEtUIControl *pControl ); CEtUIControl *GetControl( POINT Point ); CEtUIControl *GetSelectedControl(); CEtUIControl* SelectControl( POINT Point, bool bMultiSelect ); void SelectControl( int nIndex ); void SelectAllControl( bool bSelect ); void SelectControlRect(); bool IsSelectedControl( CEtUIControl *pControl ); int GetSelectedControlCount(); int GetLastSelectedControlIndex(); void MoveSelectedControl( POINT &Point ); // ¸ÖƼ¼¿·ºÆ® »óÅ¿¡¼­ ÄÁÆ®·Ñ ¼Ó¼º º¯°æ½Ã ¸ÖƼ¼¿·ºÆ® µÈ ÄÁÆ®·Ñµé ¼Ó¼º Çѹø¿¡ ¹Ù²Ù±â. void ChangeValueSelectedControl( CUnionValueProperty *pVariable, DWORD dwIndex ); void ResizeSelectedControl( SUICoord &ControlCoord ); void ResizeDialog( SUICoord &ControlCoord ); void SortDialogControl(); void GenerateControlID( UI_CONTROL_TYPE Type, char *pszControlID ); bool IsExistControlID( const char *pszControlID ); void DeleteSelectedControl(); void AddLayoutControl( SUICoord &ControlCoord, bool bUseTemplateCoord); BOOL CheckMultiSelectedCount(); const char *GetTemplateName( SUIControlProperty *pProperty ); void DrawSelectControl(); void DrawTabOrder(); void DrawInitState(); void ReinitAllControl(); void ReinitAllTemplate(); void RegenerateTexture(); void ReconstructLayout(); void RefreshLayoutDlg(); int AddLayoutTemplate( CUIToolTemplate *pTemplate, bool &bAdd ); void NewLayoutDlg(); void SaveLayoutDlg( const char *pszFileName, bool bDoNotCompressTexture = false, bool bMessageBoxSaveFailed = true ); void LoadLayoutDlg( const char *pszFileName ); // ÀϺΠƯÁ¤ ÅÛÇø´À» »ç¿ëÇÏ´Â UIÆÄÀϵéÀ» ã¾Æ º¸¿©ÁÖ°í »õ·Î ÀúÀå void SaveCustomUI(); void _SearchSubFolderUIFile( const char *pszFolderName ); int m_nCurCustomControlIDforCustomSave; // Ä¿½ºÅÒ ÅÛÇø´ÀÌ ¾Æ´Ñ ÀÏ¹Ý ÅÛÇø´À» »ç¿ëÇÏ´Â UIÆÄÀϵéÀ» ã¾Æ º¸¿©ÁÖ°í »õ·Î ÀúÀå void SaveUIWithUsedTemplate(); void _SaveUIWithUsedTemplate( const char *pszFolderName ); std::string m_nCurSelTemplateNameforCustomSave; // ¸ù¶¥ ¿­°í ´Ù½Ã ÀúÀåÇϱâ. void SaveAllUI(); void _SaveAllUI( const char *pszFolderName ); void AddBackgroundDialog( const char *pFileName ); void ClearBackgroundDialog(); void DeleteBackgroundDialog( int nIndex ); // ±×·ìÈ­ void MakeGroupSelectedControl( int nGroupIndex ); void SelectControlGroup( int nGroupIndex ); bool IsGroupControl( int nGroupIndex, CEtUIControl *pControl ); void DrawControlGroupInfo( CDC* pDC, int nX, int nY ); protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support DECLARE_MESSAGE_MAP() public: afx_msg BOOL OnEraseBkgnd(CDC* pDC); afx_msg void OnLButtonDown(UINT nFlags, CPoint point); afx_msg void OnLButtonUp(UINT nFlags, CPoint point); afx_msg void OnMouseMove(UINT nFlags, CPoint point); afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags); afx_msg LRESULT OnOpenView( WPARAM wParam, LPARAM lParam ); afx_msg LRESULT OnCloseView( WPARAM wParam, LPARAM lParam ); afx_msg void OnFileSave(); afx_msg void OnFileSaveAs(); afx_msg void OnFileOpen(); afx_msg void OnFileNew(); afx_msg void OnUpdateAllignBottom(CCmdUI *pCmdUI); afx_msg void OnUpdateAllignCenter(CCmdUI *pCmdUI); afx_msg void OnUpdateAllignLeft(CCmdUI *pCmdUI); afx_msg void OnUpdateAllignMiddle(CCmdUI *pCmdUI); afx_msg void OnUpdateAllignRight(CCmdUI *pCmdUI); afx_msg void OnUpdateAllignTop(CCmdUI *pCmdUI); afx_msg void OnUpdateMakesamesizeBoth(CCmdUI *pCmdUI); afx_msg void OnUpdateMakesamesizeHeight(CCmdUI *pCmdUI); afx_msg void OnUpdateMakesamesizeWidth(CCmdUI *pCmdUI); afx_msg void OnAllignBottom(); afx_msg void OnAllignCenter(); afx_msg void OnAllignLeft(); afx_msg void OnAllignMiddle(); afx_msg void OnAllignRight(); afx_msg void OnAllignTop(); afx_msg void OnMakesamesizeBoth(); afx_msg void OnMakesamesizeHeight(); afx_msg void OnMakesamesizeWidth(); afx_msg void OnFormatTaborder(); afx_msg void OnUpdateFormatTaborder(CCmdUI *pCmdUI); virtual void OnInitialUpdate(); afx_msg void OnEditUndo(); afx_msg void OnEditRedo(); protected: virtual void PostNcDestroy(); public: afx_msg void OnUpdateEditUndo(CCmdUI *pCmdUI); afx_msg void OnUpdateEditRedo(CCmdUI *pCmdUI); afx_msg void OnEditDelete(); afx_msg void OnEditSelectall(); afx_msg void OnUpdateEditDelete(CCmdUI *pCmdUI); afx_msg void OnUpdateEditCopy(CCmdUI *pCmdUI); afx_msg void OnEditCopy(); afx_msg void OnUpdateEditPaste(CCmdUI *pCmdUI); afx_msg void OnEditPaste(); afx_msg void OnCenterindialogVertical(); afx_msg void OnCenterindialogHorizontal(); afx_msg void OnEditDeletedialogtexture(); afx_msg void OnAllignHorizontal(); afx_msg void OnAllignVertical(); afx_msg void OnUpdateAllignHorizontal(CCmdUI *pCmdUI); afx_msg void OnUpdateAllignVertical(CCmdUI *pCmdUI); afx_msg void OnRButtonDown(UINT nFlags, CPoint point); afx_msg void OnAddCoinTemplate(); afx_msg void OnViewCrosshair(); afx_msg void OnUpdateViewCrosshair(CCmdUI *pCmdUI); afx_msg void OnViewWidescreen(); afx_msg void OnUpdateViewWidescreen(CCmdUI *pCmdUI); afx_msg void OnFormatMakesameproperty(); afx_msg void OnUpdateFormatMakesameproperty(CCmdUI *pCmdUI); afx_msg void OnDelNotusetemplate(); afx_msg void OnFormatInitstate(); afx_msg void OnUpdateFormatInitstate(CCmdUI *pCmdUI); };