From 700d08c1092bd08150d47b952c1e0d817a64d75f Mon Sep 17 00:00:00 2001 From: Robert Roebling Date: Mon, 5 Nov 2007 18:43:14 +0000 Subject: [PATCH] [ 1823588 ] gtk filedlg - droping support for gtk 2.2 git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@49649 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- docs/gtk/readme.txt | 7 +- docs/gtk/wxGNOME/wxGNOME.html | 7 +- include/wx/filedlg.h | 3 - include/wx/gtk/filectrl.h | 8 +- include/wx/gtk/filedlg.h | 3 +- src/gtk/filectrl.cpp | 21 ++---- src/gtk/filedlg.cpp | 138 ++++++++-------------------------- 7 files changed, 47 insertions(+), 140 deletions(-) diff --git a/docs/gtk/readme.txt b/docs/gtk/readme.txt index 40468a9cc9..89fcbec894 100644 --- a/docs/gtk/readme.txt +++ b/docs/gtk/readme.txt @@ -3,11 +3,10 @@ You have downloaded the GTK+ port of the wxWidgets GUI library. -It is recommended to use at least GTK+ 2.2.3 to get the -most out of wxWidgets and some features are only available -when using GTK+ 2.4 or even from GTK+ 2.8. Note that if you +It is required to use at least GTK+ 2.4 and some features are +only available when using GTK+ 2.8 or higher. Note that if you compile wxWidgets against GTK+ 2.8 your app will still work -with older GTK+ version down to version 2.2 as wxWidgets +with older GTK+ version down to version 2.4 as wxWidgets tests for the presence of newer features at run-time and it will fall back to a generic implementation if these features are not present in the GTK+ version used. diff --git a/docs/gtk/wxGNOME/wxGNOME.html b/docs/gtk/wxGNOME/wxGNOME.html index f8ad9851f1..bb230bf4a3 100644 --- a/docs/gtk/wxGNOME/wxGNOME.html +++ b/docs/gtk/wxGNOME/wxGNOME.html @@ -101,10 +101,7 @@ new file dialog

Previously, wxGTK application made use of a file dialog written in wxWidgets itself, since the default GTK+ file dialog was simplistic to say the least. This has changed with version GTK+ 2.4, where a -nice and powerful dialog has been added. We now query the GTK+ -library, if the new file dialog functions are available and wxGTK -applications will show and use them if that is the case, otherwise, -they will fall back to the old generic one.

+nice and powerful dialog has been added. wxGTK is using it now.

File configuration and preferences

The usual Unix way of saving file configuration and preferences is @@ -161,4 +158,4 @@ See GNOME's Human Interface Guidelines at See FreeDesktop's homepage at www.freedesktop.org.


- \ No newline at end of file + diff --git a/include/wx/filedlg.h b/include/wx/filedlg.h index b8384d3e83..394a93c87d 100644 --- a/include/wx/filedlg.h +++ b/include/wx/filedlg.h @@ -194,9 +194,6 @@ wxSaveFileSelector(const wxString& what, #include "wx/motif/filedlg.h" #elif defined(__WXGTK24__) #include "wx/gtk/filedlg.h" // GTK+ > 2.4 has native version -#elif defined(__WXGTK20__) - #define wxHAS_GENERIC_FILEDIALOG - #include "wx/generic/filedlgg.h" #elif defined(__WXGTK__) #include "wx/gtk1/filedlg.h" #elif defined(__WXMAC__) diff --git a/include/wx/gtk/filectrl.h b/include/wx/gtk/filectrl.h index 77b5fa193f..c38c4debe0 100644 --- a/include/wx/gtk/filectrl.h +++ b/include/wx/gtk/filectrl.h @@ -9,10 +9,12 @@ // Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////// -#ifndef FILECTRL_H -#define FILECTRL_H + +#ifndef _WX_GTK_FILECTRL_H_ +#define _WX_GTK_FILECTRL_H_ #include "wx/control.h" +#include "wx/filectrl.h" extern WXDLLEXPORT_DATA(const wxChar) wxFileSelectorDefaultWildcardStr[]; @@ -115,5 +117,5 @@ protected: #endif // wxUSE_FILECTRL -#endif // FILECTRL_H +#endif // _WX_GTK_FILECTRL_H_ diff --git a/include/wx/gtk/filedlg.h b/include/wx/gtk/filedlg.h index 4c88ab1471..d54f2bdd19 100644 --- a/include/wx/gtk/filedlg.h +++ b/include/wx/gtk/filedlg.h @@ -10,14 +10,13 @@ #ifndef __GTKFILEDLGH__ #define __GTKFILEDLGH__ -#include "wx/generic/filedlgg.h" #include "wx/gtk/filectrl.h" // for wxGtkFileChooser //------------------------------------------------------------------------- // wxFileDialog //------------------------------------------------------------------------- -class WXDLLIMPEXP_CORE wxFileDialog: public wxGenericFileDialog +class WXDLLIMPEXP_CORE wxFileDialog: public wxFileDialogBase { public: wxFileDialog() { } diff --git a/src/gtk/filectrl.cpp b/src/gtk/filectrl.cpp index 5beb5a438e..c79d27d3bc 100644 --- a/src/gtk/filectrl.cpp +++ b/src/gtk/filectrl.cpp @@ -369,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 ) @@ -422,12 +417,8 @@ void wxGtkFileCtrl::GetFilenames( wxArrayString& files ) const void wxGtkFileCtrl::ShowHidden(bool show) { -#ifdef __WXGTK26__ - gtk_file_chooser_set_show_hidden(m_fcWidget, show); -#else - // gtk_file_chooser_set_show_hidden only in 2.6 + // gtk_file_chooser_set_show_hidden() is new in 2.6 g_object_set (G_OBJECT (m_fcWidget), "show-hidden", show, NULL); -#endif } #endif diff --git a/src/gtk/filedlg.cpp b/src/gtk/filedlg.cpp index 22ca5c3e6d..d0d224b110 100644 --- a/src/gtk/filedlg.cpp +++ b/src/gtk/filedlg.cpp @@ -10,7 +10,7 @@ // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" -#if wxUSE_FILEDLG && defined(__WXGTK24__) +#if wxUSE_FILEDLG #include "wx/filedlg.h" @@ -112,7 +112,6 @@ static void gtk_filedialog_response_callback(GtkWidget *w, static void gtk_filedialog_update_preview_callback(GtkFileChooser *chooser, gpointer user_data) { -#if GTK_CHECK_VERSION(2,4,0) GtkWidget *preview = GTK_WIDGET(user_data); wxGtkString filename(gtk_file_chooser_get_preview_filename(chooser)); @@ -128,10 +127,6 @@ static void gtk_filedialog_update_preview_callback(GtkFileChooser *chooser, g_object_unref (pixbuf); gtk_file_chooser_set_preview_widget_active(chooser, have_preview); -#else - wxUnusedVar(chooser); - wxUnusedVar(user_data); -#endif // GTK+ 2.4+ } } // extern "C" @@ -141,9 +136,9 @@ static void gtk_filedialog_update_preview_callback(GtkFileChooser *chooser, // wxFileDialog //----------------------------------------------------------------------------- -IMPLEMENT_DYNAMIC_CLASS(wxFileDialog,wxGenericFileDialog) +IMPLEMENT_DYNAMIC_CLASS(wxFileDialog,wxFileDialogBase) -BEGIN_EVENT_TABLE(wxFileDialog,wxGenericFileDialog) +BEGIN_EVENT_TABLE(wxFileDialog,wxFileDialogBase) EVT_BUTTON(wxID_OK, wxFileDialog::OnFakeOk) END_EVENT_TABLE() @@ -154,18 +149,16 @@ wxFileDialog::wxFileDialog(wxWindow *parent, const wxString& message, long style, const wxPoint& pos, const wxSize& sz, const wxString& name) - : wxGenericFileDialog(parent, message, defaultDir, defaultFileName, - wildCard, style, pos, sz, name, true ) + : wxFileDialogBase() { - if (gtk_check_version(2,4,0)) + parent = GetParentForModalDialog(parent); + + if (!wxFileDialogBase::Create(parent, message, defaultDir, defaultFileName, + wildCard, style, pos, sz, name)) { - wxGenericFileDialog::Create( parent, message, defaultDir, - defaultFileName, wildCard, style, pos ); return; } - parent = GetParentForModalDialog(parent); - if (!PreCreation(parent, pos, wxDefaultSize) || !CreateBase(parent, wxID_ANY, pos, wxDefaultSize, style, wxDefaultValidator, wxT("filedialog"))) @@ -271,7 +264,6 @@ wxFileDialog::wxFileDialog(wxWindow *parent, const wxString& message, } } -#if GTK_CHECK_VERSION(2,4,0) if ( style & wxFD_PREVIEW ) { GtkWidget *previewImage = gtk_image_new(); @@ -282,162 +274,92 @@ wxFileDialog::wxFileDialog(wxWindow *parent, const wxString& message, G_CALLBACK(gtk_filedialog_update_preview_callback), previewImage); } -#endif // GTK+ 2.4+ } void wxFileDialog::OnFakeOk( wxCommandEvent &event ) { - if (!gtk_check_version(2,4,0)) - EndDialog(wxID_OK); - else - wxGenericFileDialog::OnOk( event ); + EndDialog(wxID_OK); } int wxFileDialog::ShowModal() { - if (!gtk_check_version(2,4,0)) - return wxDialog::ShowModal(); - else - return wxGenericFileDialog::ShowModal(); + return wxDialog::ShowModal(); } bool wxFileDialog::Show( bool show ) { - if (!gtk_check_version(2,4,0)) - return wxDialog::Show( show ); - else - return wxGenericFileDialog::Show( show ); + return wxDialog::Show( show ); } -void wxFileDialog::DoSetSize(int x, int y, int width, int height, int sizeFlags ) +void wxFileDialog::DoSetSize(int WXUNUSED(x), int WXUNUSED(y), + int WXUNUSED(width), int WXUNUSED(height), + int WXUNUSED(sizeFlags)) { - if (!m_wxwindow) - return; - else - wxGenericFileDialog::DoSetSize( x, y, width, height, sizeFlags ); } wxString wxFileDialog::GetPath() const { - if (!gtk_check_version(2,4,0)) - { - return m_fc.GetPath(); - } - - return wxGenericFileDialog::GetPath(); + return m_fc.GetPath(); } void wxFileDialog::GetFilenames(wxArrayString& files) const { - if (!gtk_check_version(2,4,0)) - { - m_fc.GetFilenames( files ); - } - else - wxGenericFileDialog::GetFilenames( files ); + m_fc.GetFilenames( files ); } void wxFileDialog::GetPaths(wxArrayString& paths) const { - if (!gtk_check_version(2,4,0)) - { - m_fc.GetPaths( paths ); - } - else - wxGenericFileDialog::GetPaths( paths ); + m_fc.GetPaths( paths ); } void wxFileDialog::SetMessage(const wxString& message) { - if (!gtk_check_version(2,4,0)) - { - m_message = message; - SetTitle(message); - } - else - wxGenericFileDialog::SetMessage( message ); + m_message = message; + SetTitle(message); } void wxFileDialog::SetPath(const wxString& path) { - if (!gtk_check_version(2,4,0)) - { - m_fc.SetPath( path ); - } - else - wxGenericFileDialog::SetPath( path ); + m_fc.SetPath( path ); } void wxFileDialog::SetDirectory(const wxString& dir) { - if (!gtk_check_version(2,4,0)) - { - m_fc.SetDirectory( dir ); - } - else - wxGenericFileDialog::SetDirectory( dir ); + m_fc.SetDirectory( dir ); } wxString wxFileDialog::GetDirectory() const { - if (!gtk_check_version(2,4,0)) - { - m_fc.GetDirectory(); - } - - return wxGenericFileDialog::GetDirectory(); + return m_fc.GetDirectory(); } void wxFileDialog::SetFilename(const wxString& name) { - if (!gtk_check_version(2,4,0)) - { - if (HasFdFlag(wxFD_SAVE)) - gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER(m_widget), wxGTK_CONV(name)); - else - SetPath(wxFileName(GetDirectory(), name).GetFullPath()); - } + if (HasFdFlag(wxFD_SAVE)) + gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER(m_widget), wxGTK_CONV(name)); else - wxGenericFileDialog::SetFilename( name ); + SetPath(wxFileName(GetDirectory(), name).GetFullPath()); } wxString wxFileDialog::GetFilename() const { - if (!gtk_check_version(2,4,0)) - return m_fc.GetFilename(); - else - return wxGenericFileDialog::GetFilename(); + return m_fc.GetFilename(); } void wxFileDialog::SetWildcard(const wxString& wildCard) { - if (!gtk_check_version(2,4,0)) - { - m_fc.SetWildcard( wildCard ); - } - else - wxGenericFileDialog::SetWildcard( wildCard ); + m_fc.SetWildcard( wildCard ); } void wxFileDialog::SetFilterIndex(int filterIndex) { - if (!gtk_check_version(2,4,0)) - { - m_fc.SetFilterIndex( filterIndex); - } - else - wxGenericFileDialog::SetFilterIndex( filterIndex ); + m_fc.SetFilterIndex( filterIndex); } int wxFileDialog::GetFilterIndex() const { - if (!gtk_check_version(2,4,0)) - { - return m_fc.GetFilterIndex(); - } - else - return wxGenericFileDialog::GetFilterIndex(); + return m_fc.GetFilterIndex(); } -#endif // wxUSE_FILEDLG && __WXGTK24__ +#endif // wxUSE_FILEDLG -- 2.45.2