]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/generic/filedlgg.h
Remove calls to a couple of deprecated methods, fix wxMotif build with
[wxWidgets.git] / include / wx / generic / filedlgg.h
index f3724ad09d07cbfdc88f9cbfa60132ae7bd0e793..9dacc71243466e9e638716b013601fb76d158752 100644 (file)
@@ -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_
 
+