git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5511 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			241 lines
		
	
	
		
			7.6 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			241 lines
		
	
	
		
			7.6 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| /////////////////////////////////////////////////////////////////////////////
 | |
| // Name:        filedlgg.h
 | |
| // Purpose:     wxFileDialog
 | |
| // Author:      Robert Roebling
 | |
| // Modified by:
 | |
| // Created:     8/17/99
 | |
| // Copyright:   (c) Robert Roebling
 | |
| // RCS-ID:      $Id$
 | |
| // Licence:     wxWindows licence
 | |
| /////////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| #ifndef _WX_FILEDLGG_H_
 | |
| #define _WX_FILEDLGG_H_
 | |
| 
 | |
| #ifdef __GNUG__
 | |
| #pragma interface "filedlgg.h"
 | |
| #endif
 | |
| 
 | |
| #include "wx/defs.h"
 | |
| 
 | |
| #include "wx/dialog.h"
 | |
| #include "wx/checkbox.h"
 | |
| #include "wx/listctrl.h"
 | |
| #include "wx/textctrl.h"
 | |
| #include "wx/choice.h"
 | |
| #include "wx/checkbox.h"
 | |
| #include "wx/stattext.h"
 | |
| 
 | |
| //-----------------------------------------------------------------------------
 | |
| // data
 | |
| //-----------------------------------------------------------------------------
 | |
| 
 | |
| WXDLLEXPORT_DATA(extern const wxChar *)wxFileSelectorPromptStr;
 | |
| WXDLLEXPORT_DATA(extern const wxChar *)wxFileSelectorDefaultWildcardStr;
 | |
| 
 | |
| //-----------------------------------------------------------------------------
 | |
| // classes
 | |
| //-----------------------------------------------------------------------------
 | |
| 
 | |
| class wxFileData;
 | |
| class wxFileCtrl;
 | |
| class wxFileDialog;
 | |
| 
 | |
| //-----------------------------------------------------------------------------
 | |
| //  wxFileData
 | |
| //-----------------------------------------------------------------------------
 | |
| 
 | |
| class wxFileData : public wxObject
 | |
| {
 | |
| private:
 | |
|     wxString m_name;
 | |
|     wxString m_fileName;
 | |
|     long     m_size;
 | |
|     int      m_hour;
 | |
|     int      m_minute;
 | |
|     int      m_year;
 | |
|     int      m_month;
 | |
|     int      m_day;
 | |
|     wxString m_permissions;
 | |
|     bool     m_isDir;
 | |
|     bool     m_isLink;
 | |
|     bool     m_isExe;
 | |
| 
 | |
| public:
 | |
|     wxFileData() { }
 | |
|     wxFileData( const wxString &name, const wxString &fname );
 | |
|     wxString GetName() const;
 | |
|     wxString GetFullName() const;
 | |
|     wxString GetHint() const;
 | |
|     wxString GetEntry( int num );
 | |
|     bool IsDir();
 | |
|     bool IsLink();
 | |
|     bool IsExe();
 | |
|     long GetSize();
 | |
|     void MakeItem( wxListItem &item );
 | |
|     void SetNewName( const wxString &name, const wxString &fname );
 | |
| 
 | |
| private:
 | |
|     DECLARE_DYNAMIC_CLASS(wxFileData);
 | |
| };
 | |
| 
 | |
| //-----------------------------------------------------------------------------
 | |
| //  wxFileCtrl
 | |
| //-----------------------------------------------------------------------------
 | |
| 
 | |
| class wxFileCtrl : public wxListCtrl
 | |
| {
 | |
| private:
 | |
|     wxString      m_dirName;
 | |
|     bool          m_showHidden;
 | |
|     wxString      m_wild;
 | |
| 
 | |
| public:
 | |
|     wxFileCtrl();
 | |
|     wxFileCtrl( wxWindow *win,
 | |
|                 wxWindowID id,
 | |
|                 const wxString &dirName,
 | |
|                 const wxString &wild,
 | |
|                 const wxPoint &pos = wxDefaultPosition,
 | |
|                 const wxSize &size = wxDefaultSize,
 | |
|                 long style = wxLC_LIST,
 | |
|                 const wxValidator &validator = wxDefaultValidator,
 | |
|                 const wxString &name = wxT("filelist") );
 | |
|     void ChangeToListMode();
 | |
|     void ChangeToReportMode();
 | |
|     void ChangeToIconMode();
 | |
|     void ShowHidden( bool show = TRUE );
 | |
|     long Add( wxFileData *fd, wxListItem &item );
 | |
|     void Update();
 | |
|     virtual void StatusbarText( char *WXUNUSED(text) ) {};
 | |
|     void MakeDir();
 | |
|     void GoToParentDir();
 | |
|     void GoToHomeDir();
 | |
|     void GoToDir( const wxString &dir );
 | |
|     void SetWild( const wxString &wild );
 | |
|     void GetDir( wxString &dir );
 | |
|     void OnListDeleteItem( wxListEvent &event );
 | |
|     void OnListEndLabelEdit( wxListEvent &event );
 | |
| 
 | |
| private:
 | |
|     DECLARE_DYNAMIC_CLASS(wxFileCtrl);
 | |
|     DECLARE_EVENT_TABLE()
 | |
| };
 | |
| 
 | |
| //-------------------------------------------------------------------------
 | |
| // File selector
 | |
| //-------------------------------------------------------------------------
 | |
| 
 | |
| class wxFileDialog: public wxDialog
 | |
| {
 | |
| public:
 | |
|     wxFileDialog() { }
 | |
| 
 | |
|     wxFileDialog(wxWindow *parent,
 | |
|                  const wxString& message = wxFileSelectorPromptStr,
 | |
|                  const wxString& defaultDir = "",
 | |
|                  const wxString& defaultFile = "",
 | |
|                  const wxString& wildCard = wxFileSelectorDefaultWildcardStr,
 | |
|                  long style = 0,
 | |
|                  const wxPoint& pos = wxDefaultPosition);
 | |
|     ~wxFileDialog();
 | |
| 
 | |
|     void SetMessage(const wxString& message) { m_message = message; }
 | |
|     void SetPath(const wxString& path);
 | |
|     void SetDirectory(const wxString& dir) { m_dir = dir; }
 | |
|     void SetFilename(const wxString& name) { m_fileName = name; }
 | |
|     void SetWildcard(const wxString& wildCard) { m_wildCard = wildCard; }
 | |
|     void SetStyle(long style) { m_dialogStyle = style; }
 | |
|     void SetFilterIndex(int filterIndex) { m_filterIndex = filterIndex; }
 | |
| 
 | |
|     wxString GetMessage() const { return m_message; }
 | |
|     wxString GetPath() const { return m_path; }
 | |
|     wxString GetDirectory() const { return m_dir; }
 | |
|     wxString GetFilename() const { return m_fileName; }
 | |
|     wxString GetWildcard() const { return m_wildCard; }
 | |
|     long GetStyle() const { return m_dialogStyle; }
 | |
|     int GetFilterIndex() const { return m_filterIndex; }
 | |
| 
 | |
|     // for multiple file selection
 | |
|     void GetPaths(wxArrayString& paths) const;
 | |
|     void GetFilenames(wxArrayString& files) const;
 | |
| 
 | |
|     void OnSelected( wxListEvent &event );
 | |
|     void OnActivated( wxListEvent &event );
 | |
|     void OnList( wxCommandEvent &event );
 | |
|     void OnReport( wxCommandEvent &event );
 | |
|     void OnUp( wxCommandEvent &event );
 | |
|     void OnHome( wxCommandEvent &event );
 | |
|     void OnListOk( wxCommandEvent &event );
 | |
|     void OnNew( wxCommandEvent &event );
 | |
|     void OnChoice( wxCommandEvent &event );
 | |
|     void OnTextEnter( wxCommandEvent &event );
 | |
|     void OnCheck( wxCommandEvent &event );
 | |
| 
 | |
|     void HandleAction( const wxString &fn );
 | |
| 
 | |
| protected:
 | |
|     wxString       m_message;
 | |
|     long           m_dialogStyle;
 | |
|     wxString       m_dir;
 | |
|     wxString       m_path; // Full path
 | |
|     wxString       m_fileName;
 | |
|     wxString       m_wildCard;
 | |
|     int            m_filterIndex;
 | |
|     wxString       m_filterExtension;
 | |
|     wxChoice      *m_choice;
 | |
|     wxTextCtrl    *m_text;
 | |
|     wxFileCtrl    *m_list;
 | |
|     wxCheckBox    *m_check;
 | |
|     wxStaticText  *m_static;
 | |
| 
 | |
| private:
 | |
|     DECLARE_DYNAMIC_CLASS(wxFileDialog)
 | |
|     DECLARE_EVENT_TABLE()
 | |
| 
 | |
|     static long   s_lastViewStyle;  // list or report?
 | |
|     static bool   s_lastShowHidden; 
 | |
| };
 | |
| 
 | |
| // File selector - backward compatibility
 | |
| WXDLLEXPORT wxString
 | |
| wxFileSelector(const wxChar *message = wxFileSelectorPromptStr,
 | |
|                const wxChar *default_path = NULL,
 | |
|                const wxChar *default_filename = NULL,
 | |
|                const wxChar *default_extension = NULL,
 | |
|                const wxChar *wildcard = wxFileSelectorDefaultWildcardStr,
 | |
|                int flags = 0,
 | |
|                wxWindow *parent = NULL,
 | |
|                int x = -1, int y = -1);
 | |
| 
 | |
| // An extended version of wxFileSelector
 | |
| WXDLLEXPORT wxString
 | |
| wxFileSelectorEx(const wxChar *message = wxFileSelectorPromptStr,
 | |
|                  const wxChar *default_path = NULL,
 | |
|                  const wxChar *default_filename = NULL,
 | |
|                  int *indexDefaultExtension = NULL,
 | |
|                  const wxChar *wildcard = wxFileSelectorDefaultWildcardStr,
 | |
|                  int flags = 0,
 | |
|                  wxWindow *parent = NULL,
 | |
|                  int x = -1, int y = -1);
 | |
| 
 | |
| // Ask for filename to load
 | |
| WXDLLEXPORT wxString
 | |
| wxLoadFileSelector(const wxChar *what,
 | |
|                    const wxChar *extension,
 | |
|                    const wxChar *default_name = (const wxChar *)NULL,
 | |
|                    wxWindow *parent = (wxWindow *) NULL);
 | |
| 
 | |
| // Ask for filename to save
 | |
| WXDLLEXPORT wxString
 | |
| wxSaveFileSelector(const wxChar *what,
 | |
|                    const wxChar *extension,
 | |
|                    const wxChar *default_name = (const wxChar *) NULL,
 | |
|                    wxWindow *parent = (wxWindow *) NULL);
 | |
| 
 | |
| 
 | |
| 
 | |
| #endif
 | |
|     // _WX_DIRDLGG_H_
 | |
| 
 |