#include "wx/filectrl.h"
-#if defined(__WXGTK24__) && !defined(__WXUNIVERSAL__)
+#if wxUSE_FILECTRL && !defined(__WXUNIVERSAL__)
#ifndef WX_PRECOMP
# include "wx/sizer.h"
void wxGtkFileChooser::SetWildcard( const wxString& wildCard )
{
+ m_wildcards.Empty();
+
// parse filters
wxArrayString wildDescriptions, wildFilters;
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 ) );
+
+ 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 );
void wxGtkFileCtrl::Init()
{
- m_hasFocus = false;
m_checkNextSelEvent = false;
// ignore the first folder change event which is fired upon startup.
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 ) );
bool wxGtkFileCtrl::SetFilename( const wxString& name )
{
- if ( !gtk_check_version( 2, 4, 0 ) )
+ if ( HasFlag( wxFC_SAVE ) )
{
- if ( HasFlag( wxFC_SAVE ) )
- {
- gtk_file_chooser_set_current_name( m_fcWidget, wxGTK_CONV( name ) );
- return true;
- }
- else
- return SetPath( wxFileName( GetDirectory(), name ).GetFullPath() );
+ gtk_file_chooser_set_current_name( m_fcWidget, wxGTK_CONV( name ) );
+ return true;
}
-
- return false;
+ else
+ return SetPath( wxFileName( GetDirectory(), name ).GetFullPath() );
}
void wxGtkFileCtrl::SetWildcard( const wxString& wildCard )
void wxGtkFileCtrl::ShowHidden(bool show)
{
- gtk_file_chooser_set_show_hidden(m_fcWidget, show);
+ // gtk_file_chooser_set_show_hidden() is new in 2.6
+ 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__)