X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ec376c8fd9ff813392030426acd2317c6fa6527e..8ea30e360315c0a50d3049013a95471f7d941daf:/include/wx/generic/filepickerg.h diff --git a/include/wx/generic/filepickerg.h b/include/wx/generic/filepickerg.h index b4ddc900c9..51a019b8df 100644 --- a/include/wx/generic/filepickerg.h +++ b/include/wx/generic/filepickerg.h @@ -12,13 +12,14 @@ #ifndef _WX_FILEDIRPICKER_H_ #define _WX_FILEDIRPICKER_H_ +#include "wx/button.h" #include "wx/filename.h" #include "wx/filedlg.h" #include "wx/dirdlg.h" -extern const wxEventType wxEVT_COMMAND_DIRPICKER_CHANGED; -extern const wxEventType wxEVT_COMMAND_FILEPICKER_CHANGED; +extern WXDLLEXPORT_DATA(const wxEventType) wxEVT_COMMAND_DIRPICKER_CHANGED; +extern WXDLLEXPORT_DATA(const wxEventType) wxEVT_COMMAND_FILEPICKER_CHANGED; //----------------------------------------------------------------------------- @@ -29,7 +30,7 @@ class WXDLLIMPEXP_CORE wxGenericFileDirButton : public wxButton, public wxFileDirPickerWidgetBase { public: - wxGenericFileDirButton() { m_dialog = NULL; } + wxGenericFileDirButton() { } wxGenericFileDirButton(wxWindow *parent, wxWindowID id, const wxString& label = wxFilePickerWidgetLabel, @@ -42,7 +43,6 @@ public: const wxValidator& validator = wxDefaultValidator, const wxString& name = wxFilePickerWidgetNameStr) { - m_dialog = NULL; Create(parent, id, label, path, message, wildcard, pos, size, style, validator, name); } @@ -51,23 +51,15 @@ public: public: // overrideable - virtual bool CreateDialog(const wxString &message, - const wxString &wildcard) = 0; + virtual wxDialog *CreateDialog() = 0; - // NULL is because of a problem with destruction order in both generic & GTK code virtual wxWindow *GetDialogParent() - { return NULL; } + { return GetParent(); } virtual wxEventType GetEventType() const = 0; public: - bool Destroy() - { - m_dialog->Destroy(); - return wxButton::Destroy(); - } - bool Create(wxWindow *parent, wxWindowID id, const wxString& label = wxFilePickerWidgetLabel, const wxString& path = wxEmptyString, @@ -82,7 +74,8 @@ public: // event handler for the click void OnButtonClick(wxCommandEvent &); - wxDialog *m_dialog; +protected: + wxString m_message, m_wildcard; }; @@ -90,7 +83,7 @@ public: // wxGenericFileButton: a button which brings up a wxFileDialog //----------------------------------------------------------------------------- -#define wxFILEBTN_DEFAULT_STYLE wxFLP_OPEN +#define wxFILEBTN_DEFAULT_STYLE (wxFLP_OPEN) class WXDLLIMPEXP_CORE wxGenericFileButton : public wxGenericFileDirButton { @@ -132,24 +125,21 @@ public: // overrideable return filedlgstyle; } - virtual bool CreateDialog(const wxString &message, const wxString &wildcard) + virtual wxDialog *CreateDialog() { - m_dialog = new wxFileDialog(GetDialogParent(), message, + wxFileDialog *p = new wxFileDialog(GetDialogParent(), m_message, wxEmptyString, wxEmptyString, - wildcard, GetDialogStyle()); + m_wildcard, GetDialogStyle()); // this sets both the default folder and the default file of the dialog - GetDialog()->SetPath(m_path); - - return true; + p->SetPath(m_path); + return p; } - wxFileDialog *GetDialog() - { return wxStaticCast(m_dialog, wxFileDialog); } - void UpdateDialogPath() - { GetDialog()->SetPath(m_path); } - void UpdatePathFromDialog() - { m_path = GetDialog()->GetPath(); } + void UpdateDialogPath(wxDialog *p) + { wxStaticCast(p, wxFileDialog)->SetPath(m_path); } + void UpdatePathFromDialog(wxDialog *p) + { m_path = wxStaticCast(p, wxFileDialog)->GetPath(); } wxEventType GetEventType() const { return wxEVT_COMMAND_FILEPICKER_CHANGED; } @@ -197,19 +187,16 @@ public: // overrideable return dirdlgstyle; } - virtual bool CreateDialog(const wxString &message, const wxString &WXUNUSED(wildcard)) + virtual wxDialog *CreateDialog() { - m_dialog = new wxDirDialog(GetDialogParent(), message, m_path, + return new wxDirDialog(GetDialogParent(), m_message, m_path, GetDialogStyle()); - return true; } - wxDirDialog *GetDialog() - { return wxStaticCast(m_dialog, wxDirDialog); } - void UpdateDialogPath() - { GetDialog()->SetPath(m_path); } - void UpdatePathFromDialog() - { m_path = GetDialog()->GetPath(); } + void UpdateDialogPath(wxDialog *p) + { wxStaticCast(p, wxDirDialog)->SetPath(m_path); } + void UpdatePathFromDialog(wxDialog *p) + { m_path = wxStaticCast(p, wxDirDialog)->GetPath(); } wxEventType GetEventType() const { return wxEVT_COMMAND_DIRPICKER_CHANGED; }