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

filechild.h
Go to the documentation of this file.
00001 /*
00002  * Copyright 2003, 2004 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  // filechild.h
00024  //
00025  // Martin Fuchs, 23.07.2003
00026  //
00027 
00028 
00030 struct FileChildWndInfo : public ChildWndInfo
00031 {
00032     typedef ChildWndInfo super;
00033 
00034     FileChildWndInfo(HWND hmdiclient, LPCTSTR path, ENTRY_TYPE etype=ET_UNKNOWN);
00035 
00036     ENTRY_TYPE  _etype;
00037     LPCTSTR     _path;
00038 
00039     WINDOWPLACEMENT _pos;
00040     int         _open_mode; //OPEN_WINDOW_MODE
00041 };
00042 
00044 struct ShellChildWndInfo : public FileChildWndInfo
00045 {
00046     typedef FileChildWndInfo super;
00047 
00048     ShellChildWndInfo(HWND hmdiclient, LPCTSTR path, const ShellPath& root_shell_path);
00049 
00050     ShellPath   _shell_path;
00051     ShellPath   _root_shell_path;
00052 };
00053 
00055 struct NtObjChildWndInfo : public FileChildWndInfo
00056 {
00057     typedef FileChildWndInfo super;
00058 
00059     NtObjChildWndInfo(HWND hmdiclient, LPCTSTR path);
00060 };
00061 
00063 struct RegistryChildWndInfo : public FileChildWndInfo
00064 {
00065     typedef FileChildWndInfo super;
00066 
00067     RegistryChildWndInfo(HWND hmdiclient, LPCTSTR path);
00068 };
00069 
00071 struct FATChildWndInfo : public FileChildWndInfo
00072 {
00073     typedef FileChildWndInfo super;
00074 
00075     FATChildWndInfo(HWND hmdiclient, LPCTSTR path);
00076 };
00077 
00079 struct WebChildWndInfo : public FileChildWndInfo
00080 {
00081     typedef FileChildWndInfo super;
00082 
00083     WebChildWndInfo(HWND hmdiclient, LPCTSTR url);
00084 };
00085 
00086 
00088 struct FileChildWindow : public ExtContextMenuHandlerT<ChildWindow>
00089 {
00090     typedef ExtContextMenuHandlerT<ChildWindow> super;
00091 
00092     FileChildWindow(HWND hwnd, const FileChildWndInfo& info);
00093 
00094     static FileChildWindow* create(const FileChildWndInfo& info);
00095 
00096 protected:
00097     LRESULT WndProc(UINT nmsg, WPARAM wparam, LPARAM lparam);
00098     int     Command(int id, int code);
00099     int     Notify(int id, NMHDR* pnmh);
00100 
00101     virtual void resize_children(int cx, int cy);
00102     virtual String jump_to_int(LPCTSTR url);
00103 
00104     void    scan_entry(Entry* entry);
00105 
00106     bool    expand_entry(Entry* dir);
00107     static void collapse_entry(Pane* pane, Entry* dir);
00108 
00109     void    set_curdir(Entry* entry);
00110     void    activate_entry(Pane* pane);
00111 
00112     void    refresh();
00113 
00114 protected:
00115     Root    _root;
00116     Pane*   _left;
00117     Pane*   _right;
00118     TCHAR   _path[MAX_PATH];
00119     bool    _header_wdths_ok;
00120 
00121 public:
00122     const Root& get_root() const {return _root;}
00123 
00124     void    set_focus_pane(Pane* pane)
00125         {_focus_pane = pane==_right? 1: 0;}
00126 
00127     void    switch_focus_pane()
00128         {SetFocus(_focus_pane? *_left: *_right);}
00129 };
00130 
00131 
00133 struct ExecuteDialog {  
00134     TCHAR   cmd[MAX_PATH];
00135     int     cmdshow;
00136 
00137     static INT_PTR CALLBACK WndProc(HWND hwnd, UINT nmsg, WPARAM wparam, LPARAM lparam);
00138 };

Generated on Sat May 26 2012 04:17:30 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.