ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

mainframe.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 doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.