X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/9dc44eff0235c5f30940f32ccc6d9d82a236e7d2..9bc3af3e642709425476f6232a19fe4f1bbb42b8:/src/gtk/checkbox.cpp diff --git a/src/gtk/checkbox.cpp b/src/gtk/checkbox.cpp index 3fb4de8aea..8c1c45257a 100644 --- a/src/gtk/checkbox.cpp +++ b/src/gtk/checkbox.cpp @@ -30,8 +30,6 @@ extern bool g_blockEventsOnDrag; extern "C" { static void gtk_checkbox_toggled_callback(GtkWidget *widget, wxCheckBox *cb) { - if (!cb->m_hasVMT) return; - if (g_blockEventsOnDrag) return; // Transitions for 3state checkbox must be done manually, GTK's checkbox @@ -80,7 +78,7 @@ static void gtk_checkbox_toggled_callback(GtkWidget *widget, wxCheckBox *cb) } } - wxCommandEvent event(wxEVT_COMMAND_CHECKBOX_CLICKED, cb->GetId()); + wxCommandEvent event(wxEVT_CHECKBOX, cb->GetId()); event.SetInt(cb->Get3StateValue()); event.SetEventObject(cb); cb->HandleWindowEvent(event); @@ -93,6 +91,13 @@ static void gtk_checkbox_toggled_callback(GtkWidget *widget, wxCheckBox *cb) wxCheckBox::wxCheckBox() { + m_widgetCheckbox = NULL; +} + +wxCheckBox::~wxCheckBox() +{ + if (m_widgetCheckbox && m_widgetCheckbox != m_widget) + GTKDisconnect(m_widgetCheckbox); } bool wxCheckBox::Create(wxWindow *parent, @@ -122,7 +127,7 @@ bool wxCheckBox::Create(wxWindow *parent, m_widgetLabel = gtk_label_new(""); gtk_misc_set_alignment(GTK_MISC(m_widgetLabel), 0.0, 0.5); - m_widget = gtk_hbox_new(FALSE, 0); + m_widget = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_pack_start(GTK_BOX(m_widget), m_widgetLabel, FALSE, FALSE, 3); gtk_box_pack_start(GTK_BOX(m_widget), m_widgetCheckbox, FALSE, FALSE, 3); @@ -238,7 +243,7 @@ GdkWindow *wxCheckBox::GTKGetWindow(wxArrayGdkWindows& WXUNUSED(windows)) const wxVisualAttributes wxCheckBox::GetClassDefaultAttributes(wxWindowVariant WXUNUSED(variant)) { - return GetDefaultAttributesFromGTKWidget(gtk_check_button_new); + return GetDefaultAttributesFromGTKWidget(gtk_check_button_new()); } #endif