]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/filepicker.h
fixed memory leak introduced by dynamic wxMimeTypesManagerImpl creation (rev. 1.44...
[wxWidgets.git] / include / wx / filepicker.h
index eb015b8ed6b8e66de4ac3c2131630fe7d61e55da..d82fecb82a941e836ea467354ed72c518fa9e8b2 100644 (file)
 
 #include "wx/defs.h"
 
-
 #if wxUSE_FILEPICKERCTRL || wxUSE_DIRPICKERCTRL
 
-#include "wx/control.h"
 #include "wx/pickerbase.h"
-#include "wx/filedlg.h"
 #include "wx/filename.h"
 
-
+class WXDLLIMPEXP_CORE wxDialog;
 class WXDLLIMPEXP_CORE wxFileDirPickerEvent;
 
 extern WXDLLEXPORT_DATA(const wxChar) wxFilePickerWidgetLabel[];
@@ -48,11 +45,11 @@ public:
     virtual ~wxFileDirPickerWidgetBase() {  }
 
     wxString GetPath() const { return m_path; }
-    void SetPath(const wxString &str) { m_path=str; UpdateDialogPath(); }
+    virtual void SetPath(const wxString &str) { m_path=str; }
 
 protected:
-    virtual void UpdateDialogPath() = 0;
-    virtual void UpdatePathFromDialog() = 0;
+    virtual void UpdateDialogPath(wxDialog *) = 0;
+    virtual void UpdatePathFromDialog(wxDialog *) = 0;
 
     wxString m_path;
 };
@@ -159,13 +156,13 @@ protected:
 // used, a textctrl next to it.
 // ----------------------------------------------------------------------------
 
-#define wxFLP_USE_TEXTCTRL            wxPB_USE_TEXTCTRL
+#define wxFLP_USE_TEXTCTRL            (wxPB_USE_TEXTCTRL)
 
 #ifdef __WXGTK__
     // GTK apps usually don't have a textctrl next to the picker
-    #define wxFLP_DEFAULT_STYLE       wxFLP_OPEN
+    #define wxFLP_DEFAULT_STYLE       (wxFLP_OPEN)
 #else
-    #define wxFLP_DEFAULT_STYLE       wxFLP_USE_TEXTCTRL|wxFLP_OPEN
+    #define wxFLP_DEFAULT_STYLE       (wxFLP_USE_TEXTCTRL|wxFLP_OPEN)
 #endif
 
 class WXDLLIMPEXP_CORE wxFilePickerCtrl : public wxFileDirPickerCtrlBase
@@ -220,13 +217,6 @@ public:     // overrides
         return true;
     }
 
-    // extracts the style for our picker from wxFileDirPickerCtrlBase's style
-    long GetPickerStyle(long style) const
-    {
-        return (style & (wxFLP_OPEN|wxFLP_SAVE|wxFLP_OVERWRITE_PROMPT|
-                            wxFLP_FILE_MUST_EXIST|wxFLP_CHANGE_DIR));
-    }
-
     bool CheckPath(const wxString &path) const
     {
         return HasFlag(wxFLP_SAVE) || wxFileName::FileExists(path);
@@ -238,6 +228,14 @@ public:     // overrides
     wxEventType GetEventType() const
         { return wxEVT_COMMAND_FILEPICKER_CHANGED; }
 
+protected:
+    // extracts the style for our picker from wxFileDirPickerCtrlBase's style
+    long GetPickerStyle(long style) const
+    {
+        return (style & (wxFLP_OPEN|wxFLP_SAVE|wxFLP_OVERWRITE_PROMPT|
+                            wxFLP_FILE_MUST_EXIST|wxFLP_CHANGE_DIR));
+    }
+
 private:
     DECLARE_DYNAMIC_CLASS(wxFilePickerCtrl)
 };
@@ -253,13 +251,13 @@ private:
 // (see wxDIRP_USE_TEXTCTRL) next to it.
 // ----------------------------------------------------------------------------
 
-#define wxDIRP_USE_TEXTCTRL            wxPB_USE_TEXTCTRL
+#define wxDIRP_USE_TEXTCTRL            (wxPB_USE_TEXTCTRL)
 
 #ifdef __WXGTK__
     // GTK apps usually don't have a textctrl next to the picker
     #define wxDIRP_DEFAULT_STYLE       0
 #else
-    #define wxDIRP_DEFAULT_STYLE       wxDIRP_USE_TEXTCTRL
+    #define wxDIRP_DEFAULT_STYLE       (wxDIRP_USE_TEXTCTRL)
 #endif
 
 class WXDLLIMPEXP_CORE wxDirPickerCtrl : public wxFileDirPickerCtrlBase
@@ -299,10 +297,6 @@ public:     // overrides
         return true;
     }
 
-    // extracts the style for our picker from wxFileDirPickerCtrlBase's style
-    long GetPickerStyle(long style) const
-        { return (style & (wxDIRP_DIR_MUST_EXIST|wxDIRP_CHANGE_DIR)); }
-
     bool CheckPath(const wxString &path) const
         { if (HasFlag(wxDIRP_DIR_MUST_EXIST)) return wxFileName::DirExists(path); else return true; }
 
@@ -312,6 +306,11 @@ public:     // overrides
     wxEventType GetEventType() const
         { return wxEVT_COMMAND_DIRPICKER_CHANGED; }
 
+protected:
+    // extracts the style for our picker from wxFileDirPickerCtrlBase's style
+    long GetPickerStyle(long style) const
+        { return (style & (wxDIRP_DIR_MUST_EXIST|wxDIRP_CHANGE_DIR)); }
+
 private:
     DECLARE_DYNAMIC_CLASS(wxDirPickerCtrl)
 };