]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk/filepicker.cpp
Committing in .
[wxWidgets.git] / src / gtk / filepicker.cpp
index 4370de3f9b1515f5fac0c5a05601495c08ed8d1d..6784f90430f0fa029727e6aa3ee07b37fcd2a5c7 100644 (file)
 // For compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
 
-#include "wx/gtk/private.h"
-#include "wx/filepicker.h"
+#if wxUSE_FILEPICKERCTRL && defined(__WXGTK26__)
 
+#include "wx/filepicker.h"
 
-#if wxUSE_TOOLTIPS
 #include "wx/tooltip.h"
-#endif
 
-#include <gdk/gdk.h>
 #include <gtk/gtk.h>
 
 #include <unistd.h> // chdir
@@ -35,8 +32,6 @@
 // implementation
 // ============================================================================
 
-#if wxUSE_FILEPICKERCTRL && defined(__WXGTK26__)
-
 //-----------------------------------------------------------------------------
 // wxFileButton
 //-----------------------------------------------------------------------------
@@ -66,9 +61,13 @@ bool wxFileButton::Create( wxWindow *parent, wxWindowID id,
         }
 
         // create the dialog associated with this button
+        // NB: unlike generic implementation, native GTK implementation needs to create
+        //     the filedialog here as it needs to use gtk_file_chooser_button_new_with_dialog()
         SetWindowStyle(style);
         m_path = path;
-        if (!CreateDialog(message, wildcard))
+        m_message = message;
+        m_wildcard = wildcard;
+        if ((m_dialog = CreateDialog()) == NULL)
             return false;
 
         // little trick used to avoid problems when there are other GTK windows 'grabbed':
@@ -122,7 +121,7 @@ void wxFileButton::OnDialogOK(wxCommandEvent& ev)
     if (ev.GetId() == wxID_OK)
     {
         // ...update our path
-        UpdatePathFromDialog();
+        UpdatePathFromDialog(m_dialog);
 
         // ...and fire an event
         wxFileDirPickerEvent event(wxEVT_COMMAND_FILEPICKER_CHANGED, this, GetId(), m_path);
@@ -199,8 +198,9 @@ bool wxDirButton::Create( wxWindow *parent, wxWindowID id,
 
         // create the dialog associated with this button
         SetWindowStyle(style);
-        m_path = path;
-        if (!CreateDialog(message, wildcard))
+        m_message = message;
+        m_wildcard = wildcard;
+        if ((m_dialog = CreateDialog()) == NULL)
             return false;
 
         // little trick used to avoid problems when there are other GTK windows 'grabbed':