Don't avoid stock items with GTK+3

They still work fine with GTK+3, we just have to avoid them with GTK+4
This commit is contained in:
Paul Cornett
2018-11-16 23:31:30 -08:00
parent de57bcd1bc
commit 29bd2c9274
4 changed files with 56 additions and 28 deletions

View File

@@ -179,12 +179,14 @@ wxSize wxButtonBase::GetDefaultSize()
GtkWidget *wnd = gtk_window_new(GTK_WINDOW_TOPLEVEL);
GtkWidget *box = gtk_button_box_new(GTK_ORIENTATION_HORIZONTAL);
#if defined(__WXGTK3__) && GTK_CHECK_VERSION(3,10,0)
#ifdef __WXGTK4__
wxString labelGTK = GTKConvertMnemonics(wxGetStockLabel(wxID_CANCEL));
GtkWidget *btn = gtk_button_new_with_mnemonic(labelGTK.utf8_str());
#else
wxGCC_WARNING_SUPPRESS(deprecated-declarations)
GtkWidget *btn = gtk_button_new_from_stock(GTK_STOCK_CANCEL);
#endif // GTK >= 3.10 / < 3.10
wxGCC_WARNING_RESTORE()
#endif
gtk_container_add(GTK_CONTAINER(box), btn);
gtk_container_add(GTK_CONTAINER(wnd), box);
GtkRequisition req;
@@ -219,7 +221,8 @@ void wxButton::SetLabel( const wxString &lbl )
if ( HasFlag(wxBU_NOTEXT) )
return;
#if !defined(__WXGTK3__) || !GTK_CHECK_VERSION(3,10,0)
#ifndef __WXGTK4__
wxGCC_WARNING_SUPPRESS(deprecated-declarations)
if (wxIsStockID(m_windowId) && wxIsStockLabel(m_windowId, label))
{
const char *stock = wxGetStockGtkID(m_windowId);
@@ -230,7 +233,8 @@ void wxButton::SetLabel( const wxString &lbl )
return;
}
}
#endif // GTK < 3.10
wxGCC_WARNING_RESTORE()
#endif
// this call is necessary if the button had been initially created without
// a (text) label -- then we didn't use gtk_button_new_with_mnemonic() and
@@ -238,9 +242,11 @@ void wxButton::SetLabel( const wxString &lbl )
gtk_button_set_use_underline(GTK_BUTTON(m_widget), TRUE);
const wxString labelGTK = GTKConvertMnemonics(label);
gtk_button_set_label(GTK_BUTTON(m_widget), wxGTK_CONV(labelGTK));
#if !defined(__WXGTK3__) || !GTK_CHECK_VERSION(3,10,0)
#ifndef __WXGTK4__
wxGCC_WARNING_SUPPRESS(deprecated-declarations)
gtk_button_set_use_stock(GTK_BUTTON(m_widget), FALSE);
#endif // GTK < 3.10
wxGCC_WARNING_RESTORE()
#endif
GTKApplyWidgetStyle( false );
}

View File

@@ -85,23 +85,29 @@ bool wxDirDialog::Create(wxWindow* parent,
if (parent)
gtk_parent = GTK_WINDOW( gtk_widget_get_toplevel(parent->m_widget) );
#ifndef __WXGTK4__
wxGCC_WARNING_SUPPRESS(deprecated-declarations)
#endif
m_widget = gtk_file_chooser_dialog_new(
wxGTK_CONV(m_message),
gtk_parent,
GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER,
#if defined(__WXGTK3__) && GTK_CHECK_VERSION(3,10,0)
#ifdef __WXGTK4__
static_cast<const char*>(wxGTK_CONV(wxConvertMnemonicsToGTK(wxGetStockLabel(wxID_CANCEL)))),
#else
GTK_STOCK_CANCEL,
#endif // GTK >= 3.10 / < 3.10
#endif
GTK_RESPONSE_CANCEL,
#if defined(__WXGTK3__) && GTK_CHECK_VERSION(3,10,0)
#ifdef __WXGTK4__
static_cast<const char*>(wxGTK_CONV(wxConvertMnemonicsToGTK(wxGetStockLabel(wxID_OPEN)))),
#else
GTK_STOCK_OPEN,
#endif // GTK >= 3.10 / < 3.10
#endif
GTK_RESPONSE_ACCEPT,
NULL);
#ifndef __WXGTK4__
wxGCC_WARNING_RESTORE()
#endif
g_object_ref(m_widget);
gtk_dialog_set_default_response(GTK_DIALOG(m_widget), GTK_RESPONSE_ACCEPT);

View File

@@ -213,38 +213,44 @@ bool wxFileDialog::Create(wxWindow *parent, const wxString& message,
if (parent)
gtk_parent = GTK_WINDOW( gtk_widget_get_toplevel(parent->m_widget) );
#ifndef __WXGTK4__
wxGCC_WARNING_SUPPRESS(deprecated-declarations)
#endif
wxString ok_btn_stock;
if ( style & wxFD_SAVE )
{
gtk_action = GTK_FILE_CHOOSER_ACTION_SAVE;
#if defined(__WXGTK3__) && GTK_CHECK_VERSION(3,10,0)
#ifdef __WXGTK4__
ok_btn_stock = wxConvertMnemonicsToGTK(wxGetStockLabel(wxID_SAVE));
#else
ok_btn_stock = GTK_STOCK_SAVE;
#endif // GTK >= 3.10 / < 3.10
#endif
}
else
{
gtk_action = GTK_FILE_CHOOSER_ACTION_OPEN;
#if defined(__WXGTK3__) && GTK_CHECK_VERSION(3,10,0)
#ifdef __WXGTK4__
ok_btn_stock = wxConvertMnemonicsToGTK(wxGetStockLabel(wxID_OPEN));
#else
ok_btn_stock = GTK_STOCK_OPEN;
#endif // GTK >= 3.10 / < 3.10
#endif
}
m_widget = gtk_file_chooser_dialog_new(
wxGTK_CONV(m_message),
gtk_parent,
gtk_action,
#if defined(__WXGTK3__) && GTK_CHECK_VERSION(3,10,0)
#ifdef __WXGTK4__
static_cast<const gchar*>(wxGTK_CONV(wxConvertMnemonicsToGTK(wxGetStockLabel(wxID_CANCEL)))),
#else
GTK_STOCK_CANCEL,
#endif // GTK >= 3.10 / < 3.10
#endif
GTK_RESPONSE_CANCEL,
static_cast<const gchar*>(wxGTK_CONV(ok_btn_stock)), GTK_RESPONSE_ACCEPT,
NULL);
#ifndef __WXGTK4__
wxGCC_WARNING_RESTORE()
#endif
g_object_ref(m_widget);
GtkFileChooser* file_chooser = GTK_FILE_CHOOSER(m_widget);

View File

@@ -49,47 +49,57 @@ wxMessageDialog::wxMessageDialog(wxWindow *parent,
wxString wxMessageDialog::GetDefaultYesLabel() const
{
#if defined(__WXGTK3__) && GTK_CHECK_VERSION(3,10,0)
#ifdef __WXGTK4__
return wxConvertMnemonicsToGTK(wxGetStockLabel(wxID_YES));
#else
wxGCC_WARNING_SUPPRESS(deprecated-declarations)
return GTK_STOCK_YES;
#endif // GTK >= 3.10 / < 3.10
wxGCC_WARNING_RESTORE()
#endif
}
wxString wxMessageDialog::GetDefaultNoLabel() const
{
#if defined(__WXGTK3__) && GTK_CHECK_VERSION(3,10,0)
#ifdef __WXGTK4__
return wxConvertMnemonicsToGTK(wxGetStockLabel(wxID_NO));
#else
wxGCC_WARNING_SUPPRESS(deprecated-declarations)
return GTK_STOCK_NO;
#endif // GTK >= 3.10 / < 3.10
wxGCC_WARNING_RESTORE()
#endif
}
wxString wxMessageDialog::GetDefaultOKLabel() const
{
#if defined(__WXGTK3__) && GTK_CHECK_VERSION(3,10,0)
#ifdef __WXGTK4__
return wxConvertMnemonicsToGTK(wxGetStockLabel(wxID_OK));
#else
wxGCC_WARNING_SUPPRESS(deprecated-declarations)
return GTK_STOCK_OK;
#endif // GTK >= 3.10 / < 3.10
wxGCC_WARNING_RESTORE()
#endif
}
wxString wxMessageDialog::GetDefaultCancelLabel() const
{
#if defined(__WXGTK3__) && GTK_CHECK_VERSION(3,10,0)
#ifdef __WXGTK4__
return wxConvertMnemonicsToGTK(wxGetStockLabel(wxID_CANCEL));
#else
wxGCC_WARNING_SUPPRESS(deprecated-declarations)
return GTK_STOCK_CANCEL;
#endif // GTK >= 3.10 / < 3.10
wxGCC_WARNING_RESTORE()
#endif
}
wxString wxMessageDialog::GetDefaultHelpLabel() const
{
#if defined(__WXGTK3__) && GTK_CHECK_VERSION(3,10,0)
#ifdef __WXGTK4__
return wxConvertMnemonicsToGTK(wxGetStockLabel(wxID_HELP));
#else
wxGCC_WARNING_SUPPRESS(deprecated-declarations)
return GTK_STOCK_HELP;
#endif // GTK >= 3.10 / < 3.10
wxGCC_WARNING_RESTORE()
#endif
}
void wxMessageDialog::DoSetCustomLabel(wxString& var, const ButtonLabel& label)
@@ -102,11 +112,11 @@ void wxMessageDialog::DoSetCustomLabel(wxString& var, const ButtonLabel& label)
}
else // stock label
{
#if defined(__WXGTK3__) && GTK_CHECK_VERSION(3,10,0)
#ifdef __WXGTK4__
var = wxConvertMnemonicsToGTK(wxGetStockLabel(stockId));
#else
var = wxGetStockGtkID(stockId);
#endif // GTK >= 3.10 / < 3.10
#endif
}
}