]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk/filectrl.cpp
native apple event support for osx cocoa
[wxWidgets.git] / src / gtk / filectrl.cpp
index c79d27d3bcf03d55e12532ded55028c4b0ac9380..8be3759997ada405af3c735be907db78bc9347e6 100644 (file)
@@ -16,7 +16,7 @@
 
 #include "wx/filectrl.h"
 
 
 #include "wx/filectrl.h"
 
-#if defined(__WXGTK24__) && !defined(__WXUNIVERSAL__)
+#if wxUSE_FILECTRL && !defined(__WXUNIVERSAL__)
 
 #ifndef WX_PRECOMP
 #    include "wx/sizer.h"
 
 #ifndef WX_PRECOMP
 #    include "wx/sizer.h"
@@ -111,6 +111,8 @@ wxString wxGtkFileChooser::GetFilename() const
 
 void wxGtkFileChooser::SetWildcard( const wxString& wildCard )
 {
 
 void wxGtkFileChooser::SetWildcard( const wxString& wildCard )
 {
+    m_wildcards.Empty();
+
     // parse filters
     wxArrayString wildDescriptions, wildFilters;
 
     // parse filters
     wxArrayString wildDescriptions, wildFilters;
 
@@ -144,10 +146,16 @@ void wxGtkFileChooser::SetWildcard( const wxString& wildCard )
                 gtk_file_filter_set_name( filter, wxGTK_CONV_SYS( wildDescriptions[n] ) );
 
                 wxStringTokenizer exttok( wildFilters[n], wxT( ";" ) );
                 gtk_file_filter_set_name( filter, wxGTK_CONV_SYS( wildDescriptions[n] ) );
 
                 wxStringTokenizer exttok( wildFilters[n], wxT( ";" ) );
+                
+                int n1 = 1;
                 while ( exttok.HasMoreTokens() )
                 {
                     wxString token = exttok.GetNextToken();
                     gtk_file_filter_add_pattern( filter, wxGTK_CONV_SYS( token ) );
                 while ( exttok.HasMoreTokens() )
                 {
                     wxString token = exttok.GetNextToken();
                     gtk_file_filter_add_pattern( filter, wxGTK_CONV_SYS( token ) );
+                    
+                    if (n1 == 1)
+                        m_wildcards.Add( token ); // Only add first pattern to list, used later when saving
+                    n1++;
                 }
 
                 gtk_file_chooser_add_filter( chooser, filter );
                 }
 
                 gtk_file_chooser_add_filter( chooser, filter );
@@ -258,7 +266,6 @@ IMPLEMENT_DYNAMIC_CLASS( wxGtkFileCtrl, wxControl )
 
 void wxGtkFileCtrl::Init()
 {
 
 void wxGtkFileCtrl::Init()
 {
-    m_hasFocus = false;
     m_checkNextSelEvent = false;
 
     // ignore the first folder change event which is fired upon startup.
     m_checkNextSelEvent = false;
 
     // ignore the first folder change event which is fired upon startup.
@@ -288,6 +295,7 @@ bool wxGtkFileCtrl::Create( wxWindow *parent,
         gtkAction = GTK_FILE_CHOOSER_ACTION_SAVE;
 
     m_widget =  gtk_alignment_new ( 0, 0, 1, 1 );
         gtkAction = GTK_FILE_CHOOSER_ACTION_SAVE;
 
     m_widget =  gtk_alignment_new ( 0, 0, 1, 1 );
+    g_object_ref(m_widget);
     m_fcWidget = GTK_FILE_CHOOSER( gtk_file_chooser_widget_new(gtkAction) );
     gtk_widget_show ( GTK_WIDGET( m_fcWidget ) );
     gtk_container_add ( GTK_CONTAINER ( m_widget ), GTK_WIDGET( m_fcWidget ) );
     m_fcWidget = GTK_FILE_CHOOSER( gtk_file_chooser_widget_new(gtkAction) );
     gtk_widget_show ( GTK_WIDGET( m_fcWidget ) );
     gtk_container_add ( GTK_CONTAINER ( m_widget ), GTK_WIDGET( m_fcWidget ) );
@@ -421,8 +429,6 @@ void wxGtkFileCtrl::ShowHidden(bool show)
     g_object_set (G_OBJECT (m_fcWidget), "show-hidden", show, NULL);
 }
 
     g_object_set (G_OBJECT (m_fcWidget), "show-hidden", show, NULL);
 }
 
-#endif 
-    // wxUSE_FILECTRL
+#endif // wxUSE_FILECTRL
 
 
-#endif
-    // if defined(__WXGTK24__) && !defined(__WXUNIVERSAL__)
+#endif // wxUSE_FILECTRL && !defined(__WXUNIVERSAL__)