[ 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:
@@ -3,11 +3,10 @@
|
|||||||
|
|
||||||
You have downloaded the GTK+ port of the wxWidgets GUI library.
|
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
|
It is required to use at least GTK+ 2.4 and some features are
|
||||||
most out of wxWidgets and some features are only available
|
only available when using GTK+ 2.8 or higher. Note that if you
|
||||||
when using GTK+ 2.4 or even from GTK+ 2.8. Note that if you
|
|
||||||
compile wxWidgets against GTK+ 2.8 your app will still work
|
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
|
tests for the presence of newer features at run-time and it
|
||||||
will fall back to a generic implementation if these features
|
will fall back to a generic implementation if these features
|
||||||
are not present in the GTK+ version used.
|
are not present in the GTK+ version used.
|
||||||
|
@@ -101,10 +101,7 @@ new file dialog</FONT></FONT></P>
|
|||||||
<P>Previously, wxGTK application made use of a file dialog written in
|
<P>Previously, wxGTK application made use of a file dialog written in
|
||||||
wxWidgets itself, since the default GTK+ file dialog was simplistic
|
wxWidgets itself, since the default GTK+ file dialog was simplistic
|
||||||
to say the least. This has changed with version GTK+ 2.4, where a
|
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+
|
nice and powerful dialog has been added. wxGTK is using it now.</P>
|
||||||
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>
|
|
||||||
<P STYLE="margin-top: 0.42cm; page-break-after: avoid"><FONT FACE="Albany, sans-serif"><FONT SIZE=4>File
|
<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>
|
configuration and preferences</FONT></FONT></P>
|
||||||
<P>The usual Unix way of saving file configuration and preferences is
|
<P>The usual Unix way of saving file configuration and preferences is
|
||||||
|
@@ -194,9 +194,6 @@ wxSaveFileSelector(const wxString& what,
|
|||||||
#include "wx/motif/filedlg.h"
|
#include "wx/motif/filedlg.h"
|
||||||
#elif defined(__WXGTK24__)
|
#elif defined(__WXGTK24__)
|
||||||
#include "wx/gtk/filedlg.h" // GTK+ > 2.4 has native version
|
#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__)
|
#elif defined(__WXGTK__)
|
||||||
#include "wx/gtk1/filedlg.h"
|
#include "wx/gtk1/filedlg.h"
|
||||||
#elif defined(__WXMAC__)
|
#elif defined(__WXMAC__)
|
||||||
|
@@ -9,10 +9,12 @@
|
|||||||
// Licence: wxWindows licence
|
// 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/control.h"
|
||||||
|
#include "wx/filectrl.h"
|
||||||
|
|
||||||
extern WXDLLEXPORT_DATA(const wxChar) wxFileSelectorDefaultWildcardStr[];
|
extern WXDLLEXPORT_DATA(const wxChar) wxFileSelectorDefaultWildcardStr[];
|
||||||
|
|
||||||
@@ -115,5 +117,5 @@ protected:
|
|||||||
|
|
||||||
#endif // wxUSE_FILECTRL
|
#endif // wxUSE_FILECTRL
|
||||||
|
|
||||||
#endif // FILECTRL_H
|
#endif // _WX_GTK_FILECTRL_H_
|
||||||
|
|
||||||
|
@@ -10,14 +10,13 @@
|
|||||||
#ifndef __GTKFILEDLGH__
|
#ifndef __GTKFILEDLGH__
|
||||||
#define __GTKFILEDLGH__
|
#define __GTKFILEDLGH__
|
||||||
|
|
||||||
#include "wx/generic/filedlgg.h"
|
|
||||||
#include "wx/gtk/filectrl.h" // for wxGtkFileChooser
|
#include "wx/gtk/filectrl.h" // for wxGtkFileChooser
|
||||||
|
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
// wxFileDialog
|
// wxFileDialog
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
|
|
||||||
class WXDLLIMPEXP_CORE wxFileDialog: public wxGenericFileDialog
|
class WXDLLIMPEXP_CORE wxFileDialog: public wxFileDialogBase
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
wxFileDialog() { }
|
wxFileDialog() { }
|
||||||
|
@@ -369,18 +369,13 @@ bool wxGtkFileCtrl::SetDirectory( const wxString& dir )
|
|||||||
|
|
||||||
bool wxGtkFileCtrl::SetFilename( const wxString& name )
|
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;
|
||||||
gtk_file_chooser_set_current_name( m_fcWidget, wxGTK_CONV( name ) );
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
return SetPath( wxFileName( GetDirectory(), name ).GetFullPath() );
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
return false;
|
return SetPath( wxFileName( GetDirectory(), name ).GetFullPath() );
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxGtkFileCtrl::SetWildcard( const wxString& wildCard )
|
void wxGtkFileCtrl::SetWildcard( const wxString& wildCard )
|
||||||
@@ -422,12 +417,8 @@ void wxGtkFileCtrl::GetFilenames( wxArrayString& files ) const
|
|||||||
|
|
||||||
void wxGtkFileCtrl::ShowHidden(bool show)
|
void wxGtkFileCtrl::ShowHidden(bool show)
|
||||||
{
|
{
|
||||||
#ifdef __WXGTK26__
|
// gtk_file_chooser_set_show_hidden() is new in 2.6
|
||||||
gtk_file_chooser_set_show_hidden(m_fcWidget, show);
|
|
||||||
#else
|
|
||||||
// gtk_file_chooser_set_show_hidden only in 2.6
|
|
||||||
g_object_set (G_OBJECT (m_fcWidget), "show-hidden", show, NULL);
|
g_object_set (G_OBJECT (m_fcWidget), "show-hidden", show, NULL);
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@@ -10,7 +10,7 @@
|
|||||||
// For compilers that support precompilation, includes "wx.h".
|
// For compilers that support precompilation, includes "wx.h".
|
||||||
#include "wx/wxprec.h"
|
#include "wx/wxprec.h"
|
||||||
|
|
||||||
#if wxUSE_FILEDLG && defined(__WXGTK24__)
|
#if wxUSE_FILEDLG
|
||||||
|
|
||||||
#include "wx/filedlg.h"
|
#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,
|
static void gtk_filedialog_update_preview_callback(GtkFileChooser *chooser,
|
||||||
gpointer user_data)
|
gpointer user_data)
|
||||||
{
|
{
|
||||||
#if GTK_CHECK_VERSION(2,4,0)
|
|
||||||
GtkWidget *preview = GTK_WIDGET(user_data);
|
GtkWidget *preview = GTK_WIDGET(user_data);
|
||||||
|
|
||||||
wxGtkString filename(gtk_file_chooser_get_preview_filename(chooser));
|
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);
|
g_object_unref (pixbuf);
|
||||||
|
|
||||||
gtk_file_chooser_set_preview_widget_active(chooser, have_preview);
|
gtk_file_chooser_set_preview_widget_active(chooser, have_preview);
|
||||||
#else
|
|
||||||
wxUnusedVar(chooser);
|
|
||||||
wxUnusedVar(user_data);
|
|
||||||
#endif // GTK+ 2.4+
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} // extern "C"
|
} // extern "C"
|
||||||
@@ -141,9 +136,9 @@ static void gtk_filedialog_update_preview_callback(GtkFileChooser *chooser,
|
|||||||
// wxFileDialog
|
// 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)
|
EVT_BUTTON(wxID_OK, wxFileDialog::OnFakeOk)
|
||||||
END_EVENT_TABLE()
|
END_EVENT_TABLE()
|
||||||
|
|
||||||
@@ -154,18 +149,16 @@ wxFileDialog::wxFileDialog(wxWindow *parent, const wxString& message,
|
|||||||
long style, const wxPoint& pos,
|
long style, const wxPoint& pos,
|
||||||
const wxSize& sz,
|
const wxSize& sz,
|
||||||
const wxString& name)
|
const wxString& name)
|
||||||
: wxGenericFileDialog(parent, message, defaultDir, defaultFileName,
|
: wxFileDialogBase()
|
||||||
wildCard, style, pos, sz, name, true )
|
|
||||||
{
|
{
|
||||||
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;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
parent = GetParentForModalDialog(parent);
|
|
||||||
|
|
||||||
if (!PreCreation(parent, pos, wxDefaultSize) ||
|
if (!PreCreation(parent, pos, wxDefaultSize) ||
|
||||||
!CreateBase(parent, wxID_ANY, pos, wxDefaultSize, style,
|
!CreateBase(parent, wxID_ANY, pos, wxDefaultSize, style,
|
||||||
wxDefaultValidator, wxT("filedialog")))
|
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 )
|
if ( style & wxFD_PREVIEW )
|
||||||
{
|
{
|
||||||
GtkWidget *previewImage = gtk_image_new();
|
GtkWidget *previewImage = gtk_image_new();
|
||||||
@@ -282,162 +274,92 @@ wxFileDialog::wxFileDialog(wxWindow *parent, const wxString& message,
|
|||||||
G_CALLBACK(gtk_filedialog_update_preview_callback),
|
G_CALLBACK(gtk_filedialog_update_preview_callback),
|
||||||
previewImage);
|
previewImage);
|
||||||
}
|
}
|
||||||
#endif // GTK+ 2.4+
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxFileDialog::OnFakeOk( wxCommandEvent &event )
|
void wxFileDialog::OnFakeOk( wxCommandEvent &event )
|
||||||
{
|
{
|
||||||
if (!gtk_check_version(2,4,0))
|
EndDialog(wxID_OK);
|
||||||
EndDialog(wxID_OK);
|
|
||||||
else
|
|
||||||
wxGenericFileDialog::OnOk( event );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int wxFileDialog::ShowModal()
|
int wxFileDialog::ShowModal()
|
||||||
{
|
{
|
||||||
if (!gtk_check_version(2,4,0))
|
return wxDialog::ShowModal();
|
||||||
return wxDialog::ShowModal();
|
|
||||||
else
|
|
||||||
return wxGenericFileDialog::ShowModal();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxFileDialog::Show( bool show )
|
bool wxFileDialog::Show( bool show )
|
||||||
{
|
{
|
||||||
if (!gtk_check_version(2,4,0))
|
return wxDialog::Show( show );
|
||||||
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
|
wxString wxFileDialog::GetPath() const
|
||||||
{
|
{
|
||||||
if (!gtk_check_version(2,4,0))
|
return m_fc.GetPath();
|
||||||
{
|
|
||||||
return m_fc.GetPath();
|
|
||||||
}
|
|
||||||
|
|
||||||
return wxGenericFileDialog::GetPath();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxFileDialog::GetFilenames(wxArrayString& files) const
|
void wxFileDialog::GetFilenames(wxArrayString& files) const
|
||||||
{
|
{
|
||||||
if (!gtk_check_version(2,4,0))
|
m_fc.GetFilenames( files );
|
||||||
{
|
|
||||||
m_fc.GetFilenames( files );
|
|
||||||
}
|
|
||||||
else
|
|
||||||
wxGenericFileDialog::GetFilenames( files );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxFileDialog::GetPaths(wxArrayString& paths) const
|
void wxFileDialog::GetPaths(wxArrayString& paths) const
|
||||||
{
|
{
|
||||||
if (!gtk_check_version(2,4,0))
|
m_fc.GetPaths( paths );
|
||||||
{
|
|
||||||
m_fc.GetPaths( paths );
|
|
||||||
}
|
|
||||||
else
|
|
||||||
wxGenericFileDialog::GetPaths( paths );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxFileDialog::SetMessage(const wxString& message)
|
void wxFileDialog::SetMessage(const wxString& message)
|
||||||
{
|
{
|
||||||
if (!gtk_check_version(2,4,0))
|
m_message = message;
|
||||||
{
|
SetTitle(message);
|
||||||
m_message = message;
|
|
||||||
SetTitle(message);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
wxGenericFileDialog::SetMessage( message );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxFileDialog::SetPath(const wxString& path)
|
void wxFileDialog::SetPath(const wxString& path)
|
||||||
{
|
{
|
||||||
if (!gtk_check_version(2,4,0))
|
m_fc.SetPath( path );
|
||||||
{
|
|
||||||
m_fc.SetPath( path );
|
|
||||||
}
|
|
||||||
else
|
|
||||||
wxGenericFileDialog::SetPath( path );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxFileDialog::SetDirectory(const wxString& dir)
|
void wxFileDialog::SetDirectory(const wxString& dir)
|
||||||
{
|
{
|
||||||
if (!gtk_check_version(2,4,0))
|
m_fc.SetDirectory( dir );
|
||||||
{
|
|
||||||
m_fc.SetDirectory( dir );
|
|
||||||
}
|
|
||||||
else
|
|
||||||
wxGenericFileDialog::SetDirectory( dir );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
wxString wxFileDialog::GetDirectory() const
|
wxString wxFileDialog::GetDirectory() const
|
||||||
{
|
{
|
||||||
if (!gtk_check_version(2,4,0))
|
return m_fc.GetDirectory();
|
||||||
{
|
|
||||||
m_fc.GetDirectory();
|
|
||||||
}
|
|
||||||
|
|
||||||
return wxGenericFileDialog::GetDirectory();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxFileDialog::SetFilename(const wxString& name)
|
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));
|
||||||
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
|
else
|
||||||
wxGenericFileDialog::SetFilename( name );
|
SetPath(wxFileName(GetDirectory(), name).GetFullPath());
|
||||||
}
|
}
|
||||||
|
|
||||||
wxString wxFileDialog::GetFilename() const
|
wxString wxFileDialog::GetFilename() const
|
||||||
{
|
{
|
||||||
if (!gtk_check_version(2,4,0))
|
return m_fc.GetFilename();
|
||||||
return m_fc.GetFilename();
|
|
||||||
else
|
|
||||||
return wxGenericFileDialog::GetFilename();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxFileDialog::SetWildcard(const wxString& wildCard)
|
void wxFileDialog::SetWildcard(const wxString& wildCard)
|
||||||
{
|
{
|
||||||
if (!gtk_check_version(2,4,0))
|
m_fc.SetWildcard( wildCard );
|
||||||
{
|
|
||||||
m_fc.SetWildcard( wildCard );
|
|
||||||
}
|
|
||||||
else
|
|
||||||
wxGenericFileDialog::SetWildcard( wildCard );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxFileDialog::SetFilterIndex(int filterIndex)
|
void wxFileDialog::SetFilterIndex(int filterIndex)
|
||||||
{
|
{
|
||||||
|
|
||||||
if (!gtk_check_version(2,4,0))
|
m_fc.SetFilterIndex( filterIndex);
|
||||||
{
|
|
||||||
m_fc.SetFilterIndex( filterIndex);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
wxGenericFileDialog::SetFilterIndex( filterIndex );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int wxFileDialog::GetFilterIndex() const
|
int wxFileDialog::GetFilterIndex() const
|
||||||
{
|
{
|
||||||
if (!gtk_check_version(2,4,0))
|
return m_fc.GetFilterIndex();
|
||||||
{
|
|
||||||
return m_fc.GetFilterIndex();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
return wxGenericFileDialog::GetFilterIndex();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // wxUSE_FILEDLG && __WXGTK24__
|
#endif // wxUSE_FILEDLG
|
||||||
|
Reference in New Issue
Block a user