[ 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
This commit is contained in:
Robert Roebling
2007-11-05 18:43:14 +00:00
parent e815120e41
commit 700d08c109
7 changed files with 47 additions and 140 deletions

View File

@@ -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.

View File

@@ -101,10 +101,7 @@ new file dialog</FONT></FONT></P>
<P>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.</P>
nice and powerful dialog has been added. wxGTK is using it now.</P>
<P STYLE="margin-top: 0.42cm; page-break-after: avoid"><FONT FACE="Albany, sans-serif"><FONT SIZE=4>File
configuration and preferences</FONT></FONT></P>
<P>The usual Unix way of saving file configuration and preferences is

View File

@@ -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__)

View File

@@ -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_

View File

@@ -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() { }

View File

@@ -369,8 +369,6 @@ bool wxGtkFileCtrl::SetDirectory( const wxString& dir )
bool wxGtkFileCtrl::SetFilename( const wxString& name )
{
if ( !gtk_check_version( 2, 4, 0 ) )
{
if ( HasFlag( wxFC_SAVE ) )
{
gtk_file_chooser_set_current_name( m_fcWidget, wxGTK_CONV( name ) );
@@ -378,9 +376,6 @@ bool wxGtkFileCtrl::SetFilename( const wxString& name )
}
else
return SetPath( wxFileName( GetDirectory(), name ).GetFullPath() );
}
return false;
}
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

View File

@@ -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 );
}
int wxFileDialog::ShowModal()
{
if (!gtk_check_version(2,4,0))
return wxDialog::ShowModal();
else
return wxGenericFileDialog::ShowModal();
}
bool wxFileDialog::Show( bool show )
{
if (!gtk_check_version(2,4,0))
return wxDialog::Show( show );
else
return wxGenericFileDialog::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();
}
void wxFileDialog::GetFilenames(wxArrayString& files) const
{
if (!gtk_check_version(2,4,0))
{
m_fc.GetFilenames( files );
}
else
wxGenericFileDialog::GetFilenames( files );
}
void wxFileDialog::GetPaths(wxArrayString& paths) const
{
if (!gtk_check_version(2,4,0))
{
m_fc.GetPaths( paths );
}
else
wxGenericFileDialog::GetPaths( paths );
}
void wxFileDialog::SetMessage(const wxString& message)
{
if (!gtk_check_version(2,4,0))
{
m_message = message;
SetTitle(message);
}
else
wxGenericFileDialog::SetMessage( message );
}
void wxFileDialog::SetPath(const wxString& path)
{
if (!gtk_check_version(2,4,0))
{
m_fc.SetPath( path );
}
else
wxGenericFileDialog::SetPath( path );
}
void wxFileDialog::SetDirectory(const wxString& dir)
{
if (!gtk_check_version(2,4,0))
{
m_fc.SetDirectory( dir );
}
else
wxGenericFileDialog::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());
}
else
wxGenericFileDialog::SetFilename( name );
}
wxString wxFileDialog::GetFilename() const
{
if (!gtk_check_version(2,4,0))
return m_fc.GetFilename();
else
return wxGenericFileDialog::GetFilename();
}
void wxFileDialog::SetWildcard(const wxString& wildCard)
{
if (!gtk_check_version(2,4,0))
{
m_fc.SetWildcard( wildCard );
}
else
wxGenericFileDialog::SetWildcard( wildCard );
}
void wxFileDialog::SetFilterIndex(int filterIndex)
{
if (!gtk_check_version(2,4,0))
{
m_fc.SetFilterIndex( filterIndex);
}
else
wxGenericFileDialog::SetFilterIndex( filterIndex );
}
int wxFileDialog::GetFilterIndex() const
{
if (!gtk_check_version(2,4,0))
{
return m_fc.GetFilterIndex();
}
else
return wxGenericFileDialog::GetFilterIndex();
}
#endif // wxUSE_FILEDLG && __WXGTK24__
#endif // wxUSE_FILEDLG