X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/0b8558681e8c69b749f64b891111f5ea72c04550..0ec6fd04ebd5f37220cb0d4d7c6d7256af50aee7:/include/wx/generic/filedlgg.h diff --git a/include/wx/generic/filedlgg.h b/include/wx/generic/filedlgg.h index f3724ad09d..9dacc71243 100644 --- a/include/wx/generic/filedlgg.h +++ b/include/wx/generic/filedlgg.h @@ -6,23 +6,17 @@ // Created: 8/17/99 // Copyright: (c) Robert Roebling // RCS-ID: $Id$ -// Licence: wxWindows licence +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// #ifndef _WX_FILEDLGG_H_ #define _WX_FILEDLGG_H_ -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(__APPLE__) #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" //----------------------------------------------------------------------------- // data @@ -35,86 +29,14 @@ WXDLLEXPORT_DATA(extern const wxChar *)wxFileSelectorDefaultWildcardStr; // classes //----------------------------------------------------------------------------- +class wxCheckBox; +class wxChoice; 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( const 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, const wxWindowID id, - const wxString &dirName, const wxString &wild, - const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize, - const long style = wxLC_LIST, const wxValidator &validator = wxDefaultValidator, - const wxString &name = _T("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() -}; +class wxListEvent; +class wxStaticText; +class wxTextCtrl; //------------------------------------------------------------------------- // File selector @@ -127,19 +49,20 @@ public: wxFileDialog(wxWindow *parent, const wxString& message = wxFileSelectorPromptStr, - const wxString& defaultDir = "", - const wxString& defaultFile = "", + const wxString& defaultDir = _T(""), + const wxString& defaultFile = _T(""), const wxString& wildCard = wxFileSelectorDefaultWildcardStr, long style = 0, const wxPoint& pos = wxDefaultPosition); + virtual ~wxFileDialog(); - void SetMessage(const wxString& message) { m_message = message; } + void SetMessage(const wxString& message) { SetTitle(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; } + void SetFilterIndex(int filterIndex); wxString GetMessage() const { return m_message; } wxString GetPath() const { return m_path; } @@ -147,8 +70,17 @@ public: wxString GetFilename() const { return m_fileName; } wxString GetWildcard() const { return m_wildCard; } long GetStyle() const { return m_dialogStyle; } - int GetFilterIndex() const { return m_filterIndex ; } - + int GetFilterIndex() const { return m_filterIndex; } + + // for multiple file selection + void GetPaths(wxArrayString& paths) const; + void GetFilenames(wxArrayString& files) const; + + // implementation only from now on + // ------------------------------- + + virtual int ShowModal(); + void OnSelected( wxListEvent &event ); void OnActivated( wxListEvent &event ); void OnList( wxCommandEvent &event ); @@ -157,29 +89,39 @@ public: void OnHome( wxCommandEvent &event ); void OnListOk( wxCommandEvent &event ); void OnNew( wxCommandEvent &event ); - -protected: - wxString m_message; - long m_dialogStyle; - wxString m_dir; - wxString m_path; // Full path - wxString m_fileName; - wxString m_wildCard; - int m_filterIndex; - wxChoice *m_choice; - wxTextCtrl *m_text; - wxFileCtrl *m_list; - + void OnChoiceFilter( wxCommandEvent &event ); + void OnTextEnter( wxCommandEvent &event ); + void OnTextChange( wxCommandEvent &event ); + void OnCheck( wxCommandEvent &event ); + + void HandleAction( const wxString &fn ); + +protected: + // use the filter with the given index + void DoSetFilterIndex(int filterindex); + + 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() -}; -#define wxOPEN 1 -#define wxSAVE 2 -#define wxOVERWRITE_PROMPT 4 -#define wxHIDE_READONLY 8 -#define wxFILE_MUST_EXIST 16 + // these variables are preserved between wxFileDialog calls + static long ms_lastViewStyle; // list or report? + static bool ms_lastShowHidden; // did we show hidden files? +}; // File selector - backward compatibility WXDLLEXPORT wxString @@ -222,3 +164,4 @@ wxSaveFileSelector(const wxChar *what, #endif // _WX_DIRDLGG_H_ +