Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenmainframe.h
Go to the documentation of this file.
00001 /* 00002 * Copyright 2003, 2004, 2005 Martin Fuchs 00003 * 00004 * This library is free software; you can redistribute it and/or 00005 * modify it under the terms of the GNU Lesser General Public 00006 * License as published by the Free Software Foundation; either 00007 * version 2.1 of the License, or (at your option) any later version. 00008 * 00009 * This library is distributed in the hope that it will be useful, 00010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00012 * Lesser General Public License for more details. 00013 * 00014 * You should have received a copy of the GNU Lesser General Public 00015 * License along with this library; if not, write to the Free Software 00016 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 00017 */ 00018 00019 00020 // 00021 // Explorer clone 00022 // 00023 // mainframe.h 00024 // 00025 // Martin Fuchs, 23.07.2003 00026 // 00027 00028 00029 #define PM_OPEN_WINDOW (WM_APP+0x07) 00030 00031 enum OPEN_WINDOW_MODE { 00032 OWM_EXPLORE=1, 00033 OWM_ROOTED=2, 00034 OWM_DETAILS=4, 00035 OWM_PIDL=8, 00036 OWM_SEPARATE=16 00037 }; 00038 00039 00041 struct MainFrameBase : public PreTranslateWindow 00042 { 00043 typedef PreTranslateWindow super; 00044 00045 MainFrameBase(HWND hwnd); 00046 ~MainFrameBase(); 00047 00048 static HWND Create(const ExplorerCmd& cmd); 00049 static int OpenShellFolders(LPIDA pida, HWND hFrameWnd); 00050 00051 WindowHandle _hwndrebar; 00052 00053 WindowHandle _htoolbar; 00054 WindowHandle _haddrcombo; 00055 WindowHandle _hstatusbar; 00056 00057 WindowHandle _hsidebar; 00058 HIMAGELIST _himl; 00059 00060 HMENU _hMenuFrame; 00061 HMENU _hMenuWindow; 00062 00063 MenuInfo _menu_info; 00064 00065 protected: 00066 FullScreenParameters _fullscreen; 00067 00068 HACCEL _hAccel; 00069 HIMAGELIST _himl_old; 00070 00071 LRESULT WndProc(UINT nmsg, WPARAM wparam, LPARAM lparam); 00072 bool ProcessMessage(UINT nmsg, WPARAM wparam, LPARAM lparam, LRESULT* pres); 00073 int Command(int id, int code); 00074 int Notify(int id, NMHDR* pnmh); 00075 00076 virtual BOOL TranslateMsg(MSG* pmsg); 00077 00078 void toggle_child(HWND hwnd, UINT cmd, HWND hchild, int band_idx=-1); 00079 00080 void resize_frame_client(); 00081 virtual void resize_frame(int cx, int cy); 00082 virtual void frame_get_clientspace(PRECT prect); 00083 00084 BOOL toggle_fullscreen(); 00085 void fullscreen_move(); 00086 00087 void FillBookmarks(); 00088 virtual bool go_to(LPCTSTR url, bool new_window); 00089 }; 00090 00091 00092 #ifndef _NO_MDI 00093 00094 struct MDIMainFrame : public MainFrameBase 00095 { 00096 typedef MainFrameBase super; 00097 00098 MDIMainFrame(HWND hwnd); 00099 00100 static HWND Create(); 00101 static HWND Create(LPCTSTR path, int mode=OWM_EXPLORE|OWM_DETAILS); 00102 static HWND Create(LPCITEMIDLIST pidl, int mode=OWM_EXPLORE|OWM_DETAILS|OWM_PIDL); 00103 00104 ChildWindow* CreateChild(LPCTSTR path=NULL, int mode=OWM_EXPLORE|OWM_DETAILS); 00105 ChildWindow* CreateChild(LPCITEMIDLIST pidl, int mode=OWM_EXPLORE|OWM_DETAILS|OWM_PIDL); 00106 00107 protected: 00108 HWND _hmdiclient; 00109 00110 WindowHandle _hextrabar; 00111 #ifndef _NO_WIN_FS 00112 WindowHandle _hdrivebar; 00113 #endif 00114 00115 protected: 00116 LRESULT WndProc(UINT nmsg, WPARAM wparam, LPARAM lparam); 00117 int Command(int id, int code); 00118 00119 virtual BOOL TranslateMsg(MSG* pmsg); 00120 00121 bool activate_drive_window(LPCTSTR path); 00122 bool activate_child_window(LPCTSTR filesys); 00123 00124 virtual void resize_frame(int cx, int cy); 00125 virtual void frame_get_clientspace(PRECT prect); 00126 00127 virtual bool go_to(LPCTSTR url, bool new_window); 00128 00129 #ifndef _NO_WIN_FS 00130 TCHAR _drives[BUFFER_LEN]; 00131 #endif 00132 }; 00133 00134 #endif 00135 00136 00137 struct SDIMainFrame : public ExtContextMenuHandlerT< 00138 ShellBrowserChildT<MainFrameBase> 00139 > 00140 { 00141 typedef ExtContextMenuHandlerT< 00142 ShellBrowserChildT<MainFrameBase> 00143 > super; 00144 00145 SDIMainFrame(HWND hwnd); 00146 00147 static HWND Create(); 00148 static HWND Create(LPCTSTR path, int mode=OWM_EXPLORE|OWM_DETAILS); 00149 static HWND Create(LPCITEMIDLIST pidl, int mode=OWM_EXPLORE|OWM_DETAILS|OWM_PIDL); 00150 00151 protected: 00152 ShellPathInfo _shellpath_info; 00153 00154 WindowHandle _left_hwnd; 00155 WindowHandle _right_hwnd; 00156 00161 int _split_pos; 00162 int _last_split; 00163 RECT _clnt_rect; 00164 00165 String _url; 00166 00167 LRESULT WndProc(UINT nmsg, WPARAM wparam, LPARAM lparam); 00168 int Command(int id, int code); 00169 00170 void resize_frame(int cx, int cy); 00171 void resize_children(); 00172 void update_clnt_rect(); 00173 00174 void update_shell_browser(); 00175 void jump_to(LPCTSTR path, int mode); 00176 void jump_to(LPCITEMIDLIST path, int mode); 00177 00178 // interface BrowserCallback 00179 virtual void entry_selected(Entry* entry); 00180 00181 void set_url(LPCTSTR url); 00182 }; Generated on Mon May 28 2012 04:18:18 for ReactOS by
1.7.6.1
|