]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk/filectrl.cpp
Performance optimization
[wxWidgets.git] / src / gtk / filectrl.cpp
index fa3d8dc8c799405a79d1841bc995fd58975205cd..8bc3a2d0c983a3044ab188507b754be7bbea9806 100644 (file)
@@ -16,6 +16,8 @@
 
 #include "wx/filectrl.h"
 
+#if wxUSE_FILECTRL && !defined(__WXUNIVERSAL__)
+
 #ifndef WX_PRECOMP
 #    include "wx/sizer.h"
 #    include "wx/debug.h"
@@ -43,10 +45,10 @@ wxString wxGtkFileChooser::GetPath() const
 {
     wxGtkString str( gtk_file_chooser_get_filename( m_widget ) );
 
-    if ( str.c_str() == NULL )
-        return wxEmptyString;
-
-    return wxConvFileName->cMB2WX( str );
+    wxString string;
+    if (str.c_str() != NULL)
+        string = wxConvFileName->cMB2WX(str);
+    return string;
 }
 
 void wxGtkFileChooser::GetFilenames( wxArrayString& files ) const
@@ -93,7 +95,7 @@ bool wxGtkFileChooser::SetDirectory( const wxString& dir )
     const gboolean b =
         gtk_file_chooser_set_current_folder( m_widget,
                                              wxConvFileName->cWX2MB( dir.c_str() ) );
-    return b == TRUE;
+    return b != 0;
 }
 
 wxString wxGtkFileChooser::GetDirectory() const
@@ -192,7 +194,7 @@ int wxGtkFileChooser::GetFilterIndex() const
     }
     else
         return index;
-};
+}
 
 //-----------------------------------------------------------------------------
 // end wxGtkFileChooser Implementation
@@ -280,19 +282,13 @@ bool wxGtkFileCtrl::Create( wxWindow *parent,
         return false;
     }
 
-    GtkFileChooserAction gtkAction;
+    GtkFileChooserAction gtkAction = GTK_FILE_CHOOSER_ACTION_OPEN;
 
     if ( style & wxFC_SAVE )
-    {
         gtkAction = GTK_FILE_CHOOSER_ACTION_SAVE;
-    }
-    else if ( style & wxFC_OPEN )
-    {
-        gtkAction = GTK_FILE_CHOOSER_ACTION_OPEN;
-    }
 
     m_widget =  gtk_alignment_new ( 0, 0, 1, 1 );
-    m_fcWidget = GTK_FILE_CHOOSER( gtk_file_chooser_widget_new( GTK_FILE_CHOOSER_ACTION_OPEN ) );
+    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 ) );
 
@@ -373,18 +369,13 @@ bool wxGtkFileCtrl::SetDirectory( const wxString& dir )
 
 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 )
@@ -424,9 +415,12 @@ void wxGtkFileCtrl::GetFilenames( wxArrayString& files ) const
     m_fc.GetFilenames( files );
 }
 
-void wxGtkFileCtrl::ShowHidden(const bool show)
+void wxGtkFileCtrl::ShowHidden(bool show)
 {
-    gtk_file_chooser_set_show_hidden( m_fcWidget, ( show == true ) ? TRUE : FALSE );
+    // 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 && !defined(__WXUNIVERSAL__)