00001 00002 // Name: SherpaFrame.h 00003 // Purpose: 00004 // Author: Joe Yates 00005 // Modified by: 00006 // Created: 11/10/2004 00007 // RCS-ID: $Id: SherpaFrame.h,v 1.1.1.1 2006/01/24 22:13:19 titusd Exp $ 00008 // Copyright: (c) BID Snc 00009 // License: BSD license (see the file 'LICENSE.txt') 00011 00012 #ifndef __SherpaFrame_h__ 00013 #define __SherpaFrame_h__ 00014 00015 #include "DirectoryTree.h" 00016 #include "DirectoryView.h" 00017 #include "Wastebin.h" 00018 #include "UndoStack.h" 00019 #include "SherpaEvent.h" 00020 00021 #define SETTING_INITIAL_PATH wxT("/SherpaFrame/InitialPath") 00022 #define SETTING_SHERPAFRAME_WIDTH wxT("/SherpaFrame/Width") 00023 #define SETTING_SHERPAFRAME_HEIGHT wxT("/SherpaFrame/Height") 00024 #define SETTING_SHERPAFRAME_LEFT wxT("/SherpaFrame/Left") 00025 #define SETTING_SHERPAFRAME_TOP wxT("/SherpaFrame/Top") 00026 #define SETTING_SHERPAFRAME_SHOWHIDDEN wxT("/SherpaFrame/ShowHidden") 00027 00028 class SherpaFrame: public wxFrame 00029 { 00030 // friends, classes, enums and types 00031 00032 // Constructors/destructors 00033 public: 00034 SherpaFrame(const wxString& sTitle); 00035 ~SherpaFrame(); 00036 00037 // Operators 00038 00039 // Slots 00040 protected: 00041 void OnKeyDown(wxKeyEvent& evt); 00042 void OnExit(wxCommandEvent& evt); 00043 00044 void mnuFileEmptyWastebin_Click(wxCommandEvent& evt); 00045 void mnuEditUndo_Click(wxCommandEvent& evt); 00046 void mnuEditRedo_Click(wxCommandEvent& evt); 00047 void mnuEditPreferences_Click(wxCommandEvent& evt); 00048 void mnuViewShowHidden_Click(wxCommandEvent& evt); 00049 void mnuDebugWastebin_Click(wxCommandEvent& evt); 00050 void mnuDebugUndo_Click(wxCommandEvent& evt); 00051 00052 void txtPath_Change(wxCommandEvent& evt); 00053 void txtPath_Enter(wxCommandEvent& evt); 00054 00055 void OnSetPath(shSetPathEvent& evt); 00056 void OnDelete(shDeleteEvent& evt); 00057 void OnToWastebin(shToWastebinEvent& evt); 00058 void OnCreate(shCreateEvent& evt); 00059 void OnRename(shRenameEvent& evt); 00060 00061 // Methods 00062 private: 00063 // The window 00064 void CreateMenus(); 00065 void CreateWidgets(); 00066 //void DoSize(); 00067 void SetShowHidden(bool bShowHidden, bool bUpdate); 00068 void SetCaption(const wxString& sPath); 00069 00070 // State 00071 void SetPath(const wxString& sPath); 00072 00073 // Undo 00074 int SendToWastebin(const wxString& sPathName); 00075 void Undo(); 00076 void Redo(); 00077 void SetUndoEnabled(); 00078 00079 // Settings 00080 void LoadSettings(); 00081 void SaveSettings(); 00082 00083 // Variables 00084 protected: 00085 private: 00086 wxString m_sTitle; 00087 wxTextCtrl * m_txtPath; 00088 wxSplitterWindow * m_spl; 00089 DirectoryTree * m_tre; 00090 DirectoryView * m_drv; 00091 Waste::Bin * m_bin; 00092 Undo::UndoStack m_undo; 00093 00094 bool m_bShowHidden; 00095 bool m_bUpdating; 00096 00097 DECLARE_NO_COPY_CLASS(SherpaFrame) 00098 DECLARE_EVENT_TABLE() 00099 }; 00100 00101 #endif // ndef __SherpaFrame_h__