projects
/
wxWidgets.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
This file should not have been checked in!
[wxWidgets.git]
/
src
/
gtk
/
checkbox.cpp
diff --git
a/src/gtk/checkbox.cpp
b/src/gtk/checkbox.cpp
index e038003ca6c38919b8d50a70585dd2813ad0cf69..2a7d0437bf6b44c4c240e42a8f7ca642c2b22e0f 100644
(file)
--- a/
src/gtk/checkbox.cpp
+++ b/
src/gtk/checkbox.cpp
@@
-8,18
+8,20
@@
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
-#if
def __GNUG__
+#if
defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
#pragma implementation "checkbox.h"
#endif
#pragma implementation "checkbox.h"
#endif
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
#include "wx/defs.h"
#if wxUSE_CHECKBOX
#include "wx/checkbox.h"
#include "wx/defs.h"
#if wxUSE_CHECKBOX
#include "wx/checkbox.h"
-#include <gdk/gdk.h>
-#include <gtk/gtk.h>
+#include "wx/gtk/private.h"
//-----------------------------------------------------------------------------
// idle system
//-----------------------------------------------------------------------------
// idle system
@@
-32,8
+34,9
@@
extern bool g_isIdle;
// data
//-----------------------------------------------------------------------------
// data
//-----------------------------------------------------------------------------
-extern bool g_blockEventsOnDrag;
-extern wxCursor g_globalCursor;
+extern bool g_blockEventsOnDrag;
+extern wxCursor g_globalCursor;
+extern wxWindowGTK *g_delayedFocus;
//-----------------------------------------------------------------------------
// "clicked"
//-----------------------------------------------------------------------------
// "clicked"
@@
-85,8
+88,6
@@
bool wxCheckBox::Create(wxWindow *parent,
return FALSE;
}
return FALSE;
}
- wxControl::SetLabel( label );
-
if ( style & wxALIGN_RIGHT )
{
// VZ: as I don't know a way to create a right aligned checkbox with
if ( style & wxALIGN_RIGHT )
{
// VZ: as I don't know a way to create a right aligned checkbox with
@@
-94,7
+95,7
@@
bool wxCheckBox::Create(wxWindow *parent,
// left of it
m_widgetCheckbox = gtk_check_button_new();
// left of it
m_widgetCheckbox = gtk_check_button_new();
- m_widgetLabel = gtk_label_new(
m_label.mbc_str()
);
+ m_widgetLabel = gtk_label_new(
""
);
gtk_misc_set_alignment(GTK_MISC(m_widgetLabel), 0.0, 0.5);
m_widget = gtk_hbox_new(FALSE, 0);
gtk_misc_set_alignment(GTK_MISC(m_widgetLabel), 0.0, 0.5);
m_widget = gtk_hbox_new(FALSE, 0);
@@
-106,10
+107,11
@@
bool wxCheckBox::Create(wxWindow *parent,
}
else
{
}
else
{
- m_widgetCheckbox = gtk_check_button_new_with_label(
m_label.mbc_str()
);
- m_widgetLabel =
GTK_BUTTON( m_widgetCheckbox )->child
;
+ m_widgetCheckbox = gtk_check_button_new_with_label(
""
);
+ m_widgetLabel =
BUTTON_CHILD( m_widgetCheckbox )
;
m_widget = m_widgetCheckbox;
}
m_widget = m_widgetCheckbox;
}
+ SetLabel( label );
gtk_signal_connect( GTK_OBJECT(m_widgetCheckbox),
"clicked",
gtk_signal_connect( GTK_OBJECT(m_widgetCheckbox),
"clicked",
@@
-119,8
+121,7
@@
bool wxCheckBox::Create(wxWindow *parent,
m_parent->DoAddChild( this );
PostCreation();
m_parent->DoAddChild( this );
PostCreation();
-
- SetFont( parent->GetFont() );
+ InheritAttributes();
wxSize size_best( DoGetBestSize() );
wxSize new_size( size );
wxSize size_best( DoGetBestSize() );
wxSize new_size( size );
@@
-131,9
+132,6
@@
bool wxCheckBox::Create(wxWindow *parent,
if ((new_size.x != size.x) || (new_size.y != size.y))
SetSize( new_size.x, new_size.y );
if ((new_size.x != size.x) || (new_size.y != size.y))
SetSize( new_size.x, new_size.y );
- SetBackgroundColour( parent->GetBackgroundColour() );
- SetForegroundColour( parent->GetForegroundColour() );
-
Show( TRUE );
return TRUE;
Show( TRUE );
return TRUE;
@@
-166,7
+164,12
@@
void wxCheckBox::SetLabel( const wxString& label )
wxControl::SetLabel( label );
wxControl::SetLabel( label );
- gtk_label_set( GTK_LABEL(m_widgetLabel), GetLabel().mbc_str() );
+#ifdef __WXGTK20__
+ wxString label2 = PrepareLabelMnemonics( label );
+ gtk_label_set_text_with_mnemonic( GTK_LABEL(m_widgetLabel), wxGTK_CONV( label2 ) );
+#else
+ gtk_label_set( GTK_LABEL(m_widgetLabel), wxGTK_CONV( GetLabel() ) );
+#endif
}
bool wxCheckBox::Enable( bool enable )
}
bool wxCheckBox::Enable( bool enable )
@@
-188,7
+191,7
@@
void wxCheckBox::ApplyWidgetStyle()
bool wxCheckBox::IsOwnGtkWindow( GdkWindow *window )
{
bool wxCheckBox::IsOwnGtkWindow( GdkWindow *window )
{
- return
(window == GTK_TOGGLE_BUTTON(m_widget)->event_window
);
+ return
window == TOGGLE_BUTTON_EVENT_WIN(m_widget
);
}
void wxCheckBox::OnInternalIdle()
}
void wxCheckBox::OnInternalIdle()
@@
-196,17
+199,28
@@
void wxCheckBox::OnInternalIdle()
wxCursor cursor = m_cursor;
if (g_globalCursor.Ok()) cursor = g_globalCursor;
wxCursor cursor = m_cursor;
if (g_globalCursor.Ok()) cursor = g_globalCursor;
- if (GTK_TOGGLE_BUTTON(m_widgetCheckbox)->event_window && cursor.Ok())
+ GdkWindow *event_window = TOGGLE_BUTTON_EVENT_WIN(m_widgetCheckbox);
+ if ( 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. */
{
/* 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() );
+ gdk_window_set_cursor( event_window, cursor.GetCursor() );
}
}
- UpdateWindowUI();
+ if (g_delayedFocus == this)
+ {
+ if (GTK_WIDGET_REALIZED(m_widget))
+ {
+ gtk_widget_grab_focus( m_widget );
+ g_delayedFocus = NULL;
+ }
+ }
+
+ if (wxUpdateUIEvent::CanUpdate(this))
+ UpdateWindowUI(wxUPDATE_UI_FROMIDLE);
}
wxSize wxCheckBox::DoGetBestSize() const
}
wxSize wxCheckBox::DoGetBestSize() const