Main Page   Class Hierarchy   Compound List   File List   Compound Members   File Members   Related Pages  

MainFrm.h

Go to the documentation of this file.
00001 /* QuestDesigner - Open Zelda's Project
00002    Copyright (C) 2003 Kronuz
00003    Copyright (C) 2001/2003 Open Zelda's Project
00004  
00005    This program is free software; you can redistribute it and/or
00006    modify it under the terms of the GNU General Public License
00007    as published by the Free Software Foundation; either version 2
00008    of the License, or (at your option) any later version.
00009 
00010    This program is distributed in the hope that it will be useful,
00011    but WITHOUT ANY WARRANTY; without even the implied warranty of
00012    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00013    GNU General Public License for more details.
00014 
00015    You should have received a copy of the GNU General Public License
00016    along with this program; if not, write to the Free Software
00017    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
00018 */
00020 
00025 #pragma once
00026 
00027 #include <dbstate.h>
00028 #include <DockingFrame.h>
00029 #include <TabbedDockingWindow.h>
00030 
00031 #define CWM_INITIALIZE  (WMDF_LAST+1)
00032 
00034 
00035 #include <PlainTextView.h>
00036 
00037 #include "ChildFrm.h"
00038 
00039 #include "FoldersTree.h"
00040 #include "BuildOutputView.h"
00041 
00042 #include "SCompiler.h"
00043 
00045 // Forward declarations
00046 class CIdleHandlerPump;
00047 
00049 
00074 class CMainFrame : 
00075     public dockwins::CMDIDockingFrameImpl<CMainFrame>, 
00076     public CUpdateUI<CMainFrame>,
00077     public CMessageFilter, 
00078     public CIdleHandlerPump
00079 {
00080     friend CChildFrame;
00081 protected:
00082     typedef CMainFrame thisClass;
00083     typedef dockwins::CMDIDockingFrameImpl<CMainFrame> baseClass;
00084 
00085 protected:
00086     CTabbedMDIClient<CDotNetTabCtrl<CTabViewTabItem> > m_tabbedClient;
00087     sstate::CWindowStateMgr m_stateMgr;
00088     
00089     CSimpleArray<CChildFrame*> m_ChildList;
00090 
00091     // The windows status bar
00092     CMultiPaneStatusBarCtrl m_wndStatusBar;
00093 
00094     CTabbedMDICommandBarCtrl m_CmdBar;
00095 
00096     // Information docking window:
00097     CTabbedDockingWindow m_InfoFrame;
00098 
00100     CFoldersTree m_foldersDockWnd;
00101 
00102     CPlainTextView m_TaskListView;
00103     CPlainTextView m_DescriptionView;
00104     CBuildOutputView m_OutputView;
00106     SCompiler m_SmallCompiler;
00107 public:
00108     DECLARE_FRAME_WND_CLASS(NULL, IDR_MAINFRAME)
00109 
00110     virtual BOOL PreTranslateMessage(MSG* pMsg);
00111     virtual BOOL OnIdle();
00112 
00113     BEGIN_UPDATE_UI_MAP(CMainFrame)
00114         UPDATE_ELEMENT ( ID_FILE_RELOAD, UPDUI_MENUPOPUP )
00115         UPDATE_ELEMENT ( ID_FILE_SAVE, UPDUI_MENUPOPUP | UPDUI_TOOLBAR )
00116         UPDATE_ELEMENT ( ID_FILE_SAVE_ALL, UPDUI_MENUPOPUP | UPDUI_TOOLBAR )
00117         UPDATE_ELEMENT ( ID_FILE_SAVE_AS, UPDUI_MENUPOPUP )
00118         UPDATE_ELEMENT ( ID_FILE_PRINT, UPDUI_MENUPOPUP | UPDUI_TOOLBAR )
00119         UPDATE_ELEMENT ( ID_FILE_PRINT_SETUP, UPDUI_MENUPOPUP )
00120 
00121         UPDATE_ELEMENT ( ID_EDIT_UNDO, UPDUI_MENUPOPUP | UPDUI_TOOLBAR )
00122         UPDATE_ELEMENT ( ID_EDIT_REDO, UPDUI_MENUPOPUP | UPDUI_TOOLBAR )
00123         UPDATE_ELEMENT ( ID_EDIT_CUT, UPDUI_MENUPOPUP | UPDUI_TOOLBAR )
00124         UPDATE_ELEMENT ( ID_EDIT_COPY, UPDUI_MENUPOPUP | UPDUI_TOOLBAR )
00125         UPDATE_ELEMENT ( ID_EDIT_PASTE, UPDUI_MENUPOPUP | UPDUI_TOOLBAR )
00126         UPDATE_ELEMENT ( ID_EDIT_CLEAR, UPDUI_MENUPOPUP | UPDUI_TOOLBAR )       
00127         
00128         UPDATE_ELEMENT ( ID_EDIT_READ_ONLY, UPDUI_MENUPOPUP )
00129         
00130         UPDATE_ELEMENT ( ID_EDIT_TAB, UPDUI_MENUPOPUP | UPDUI_TOOLBAR )
00131         UPDATE_ELEMENT ( ID_EDIT_UNTAB, UPDUI_MENUPOPUP | UPDUI_TOOLBAR )       
00132         
00133         UPDATE_ELEMENT ( ID_EDIT_FIND_SELECTION, UPDUI_MENUPOPUP )
00134 
00135         UPDATE_ELEMENT ( ID_EDIT_UPPERCASE, UPDUI_MENUPOPUP )
00136         UPDATE_ELEMENT ( ID_EDIT_LOWERCASE, UPDUI_MENUPOPUP )
00137         UPDATE_ELEMENT ( ID_EDIT_TABIFY, UPDUI_MENUPOPUP )
00138         UPDATE_ELEMENT ( ID_EDIT_UNTABIFY, UPDUI_MENUPOPUP )
00139         UPDATE_ELEMENT ( ID_EDIT_SHOW_WHITE_SPACE, UPDUI_MENUPOPUP )
00140 
00141         UPDATE_ELEMENT ( ID_EDIT_TOGGLE_BOOKMARK, UPDUI_MENUPOPUP )
00142         UPDATE_ELEMENT ( ID_EDIT_GOTO_NEXT_BOOKMARK, UPDUI_MENUPOPUP )
00143         UPDATE_ELEMENT ( ID_EDIT_GOTO_PREV_BOOKMARK, UPDUI_MENUPOPUP )
00144         UPDATE_ELEMENT ( ID_EDIT_CLEAR_ALL_BOOKMARKS, UPDUI_MENUPOPUP )     
00145 
00146         UPDATE_ELEMENT(ID_VIEW_TOOLBAR, UPDUI_MENUPOPUP)
00147         UPDATE_ELEMENT(ID_VIEW_STATUS_BAR, UPDUI_MENUPOPUP)
00148 
00149         UPDATE_ELEMENT(ID_VIEW_INFO, UPDUI_MENUPOPUP)
00150         UPDATE_ELEMENT(ID_VIEW_PROP, UPDUI_MENUPOPUP)
00151 
00152     END_UPDATE_UI_MAP()
00153 
00154     BEGIN_MSG_MAP(CMainFrame)
00155         MESSAGE_HANDLER(WM_CREATE, OnCreate)
00156         MESSAGE_HANDLER(WM_DESTROY, OnDestroy)
00157         MESSAGE_HANDLER(CWM_INITIALIZE, OnInitialize)
00158 
00159         COMMAND_ID_HANDLER(ID_APP_EXIT, OnFileExit)
00160         COMMAND_ID_HANDLER(ID_FILE_NEW, OnFileNew)
00161         COMMAND_ID_HANDLER(ID_FILE_OPEN, OnFileOpen)
00162         COMMAND_ID_HANDLER(ID_VIEW_TOOLBAR, OnViewToolBar)
00163         COMMAND_ID_HANDLER(ID_VIEW_STATUS_BAR, OnViewStatusBar)
00164         COMMAND_ID_HANDLER(ID_VIEW_INFO, OnViewInfoWindow)
00165 
00166         COMMAND_ID_HANDLER(ID_BUILD, OnBuildProject)
00167         //MESSAGE_HANDLER(WMQD_BEGIN, ??)
00168         MESSAGE_HANDLER(WMQD_MESSAGE, m_OutputView.OnWriteMsg)
00169         //MESSAGE_HANDLER(WMQD_END, ??)
00170 
00171         COMMAND_TOGGLE_MEMBER_HANDLER(ID_VIEW_INFO, m_InfoFrame)
00172 
00173         COMMAND_ID_HANDLER(ID_APP_ABOUT, OnAppAbout)
00174         COMMAND_ID_HANDLER(ID_WINDOW_CASCADE, OnWindowCascade)
00175         COMMAND_ID_HANDLER(ID_WINDOW_TILE_HORZ, OnWindowTile)
00176         COMMAND_ID_HANDLER(ID_WINDOW_ARRANGE, OnWindowArrangeIcons)
00177 
00178         // Pass all unhandled WM_COMMAND messages to the active child window
00179         CHAIN_MDI_CHILD_COMMANDS()
00180         CHAIN_MSG_MAP(CUpdateUI<CMainFrame>)
00181         CHAIN_MSG_MAP(baseClass)
00182 
00183     END_MSG_MAP()
00184 
00185 // Handler prototypes (uncomment arguments if needed):
00186 //  LRESULT MessageHandler(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
00187 //  LRESULT CommandHandler(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
00188 //  LRESULT NotifyHandler(int /*idCtrl*/, LPNMHDR /*pnmh*/, BOOL& /*bHandled*/)
00189 
00190     LRESULT OnCreate(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/);
00191     void InitializeDefaultPanes(void);
00192     LRESULT OnInitialize(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
00193     LRESULT OnDestroy(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/);
00194 
00195     LRESULT OnFileExit(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
00196     LRESULT OnFileNew(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
00197     LRESULT OnFileOpen(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
00198     LRESULT OnViewToolBar(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
00199     LRESULT OnViewStatusBar(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
00200     LRESULT OnViewInfoWindow(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
00201     LRESULT OnAppAbout(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
00202     LRESULT OnWindowCascade(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
00203     LRESULT OnWindowTile(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
00204     LRESULT OnWindowArrangeIcons(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
00205 
00206     LRESULT OnBuildProject(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
00207 
00208 public:
00209     int Select(LPCTSTR szFilename, LPARAM lParam);
00210     int FileOpen(LPCTSTR szFilename, LPARAM lParam=0, BOOL bReadOnly=FALSE);
00211 
00212     void UIUpdateMenuItems();
00213 
00214 };

Generated on Wed Apr 16 19:12:22 2003 for QuestDesigner by doxygen1.2.18