#pragma implementation "checkbox.h"
#endif
-#include "wx/checkbox.h"
+#include "wx/defs.h"
#if wxUSE_CHECKBOX
+#include "wx/checkbox.h"
+
#include <gdk/gdk.h>
#include <gtk/gtk.h>
if (!cb->m_hasVMT) return;
if (g_blockEventsOnDrag) return;
+
+ if (cb->m_blockEvent) return;
wxCommandEvent event(wxEVT_COMMAND_CHECKBOX_CLICKED, cb->GetId());
event.SetInt( cb->GetValue() );
{
m_needParent = TRUE;
m_acceptsFocus = TRUE;
+ m_blockEvent = FALSE;
if (!PreCreation( parent, pos, size ) ||
!CreateBase( parent, id, pos, size, style, validator, name ))
{
wxFAIL_MSG( wxT("wxCheckBox creation failed") );
- return FALSE;
+ return FALSE;
}
wxControl::SetLabel( label );
if (state == GetValue())
return;
- gtk_signal_disconnect_by_func( GTK_OBJECT(m_widgetCheckbox),
- GTK_SIGNAL_FUNC(gtk_checkbox_clicked_callback),
- (gpointer *)this );
+ m_blockEvent = TRUE;
gtk_toggle_button_set_state( GTK_TOGGLE_BUTTON(m_widgetCheckbox), state );
-
- gtk_signal_connect( GTK_OBJECT(m_widgetCheckbox),
- "clicked",
- GTK_SIGNAL_FUNC(gtk_checkbox_clicked_callback),
- (gpointer *)this );
+
+ m_blockEvent = FALSE;
}
bool wxCheckBox::GetValue() const
if (GTK_TOGGLE_BUTTON(m_widgetCheckbox)->event_window && cursor.Ok())
{
/* I now set the cursor the anew in every OnInternalIdle call
- as setting the cursor in a parent window also effects the
- windows above so that checking for the current cursor is
- not possible. */
-
- gdk_window_set_cursor( GTK_TOGGLE_BUTTON(m_widgetCheckbox)->event_window, cursor.GetCursor() );
+ as setting the cursor in a parent window also effects the
+ windows above so that checking for the current cursor is
+ not possible. */
+
+ gdk_window_set_cursor( GTK_TOGGLE_BUTTON(m_widgetCheckbox)->event_window, cursor.GetCursor() );
}
UpdateWindowUI();