]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk/bmpbuttn.cpp
More for wxPython 2.0b9 (hopefully the last...)
[wxWidgets.git] / src / gtk / bmpbuttn.cpp
index bf155fb4fc1540140ea5bbf7ea5d17290692ad5c..dc24fa7301f2a18fdc6e7765fe28918650737b78 100644 (file)
 
 #include "wx/bmpbuttn.h"
 
+#include "gdk/gdk.h"
+#include "gtk/gtk.h"
+
 //-----------------------------------------------------------------------------
 // classes
 //-----------------------------------------------------------------------------
 
 class wxBitmapButton;
 
+//-----------------------------------------------------------------------------
+// idle system
+//-----------------------------------------------------------------------------
+
+extern void wxapp_install_idle_handler();
+extern bool g_isIdle;
+
 //-----------------------------------------------------------------------------
 // data
 //-----------------------------------------------------------------------------
@@ -31,6 +41,8 @@ extern bool   g_blockEventsOnDrag;
 
 static void gtk_bmpbutton_clicked_callback( GtkWidget *WXUNUSED(widget), wxBitmapButton *button )
 {
+    if (g_isIdle) wxapp_install_idle_handler();
+
     if (!button->HasVMT()) return;
     if (g_blockEventsOnDrag) return;
   
@@ -102,6 +114,7 @@ bool wxBitmapButton::Create( wxWindow *parent, wxWindowID id, const wxBitmap &bi
                              long style, const wxValidator& validator, const wxString &name )
 {
     m_needParent = TRUE;
+    m_acceptsFocus = TRUE;
   
     wxSize newSize = size;
 
@@ -159,22 +172,22 @@ bool wxBitmapButton::Create( wxWindow *parent, wxWindowID id, const wxBitmap &bi
       
 void wxBitmapButton::SetDefault()
 {
-/*
     GTK_WIDGET_SET_FLAGS( m_widget, GTK_CAN_DEFAULT );
     gtk_widget_grab_default( m_widget );
-*/
+    
+    SetSize( m_x, m_y, m_width, m_height );
 }
 
 void wxBitmapButton::SetLabel( const wxString &label )
 {
-    wxCHECK_RET( m_widget != NULL, "invalid button" );
+    wxCHECK_RET( m_widget != NULL, _T("invalid button") );
 
     wxControl::SetLabel( label );
 }
 
 wxString wxBitmapButton::GetLabel() const
 {
-    wxCHECK_MSG( m_widget != NULL, "", "invalid button" );
+    wxCHECK_MSG( m_widget != NULL, _T(""), _T("invalid button") );
 
     return wxControl::GetLabel();
 }
@@ -185,7 +198,7 @@ void wxBitmapButton::ApplyWidgetStyle()
 
 void wxBitmapButton::SetBitmap()
 {
-    wxCHECK_RET( m_widget != NULL, "invalid button" );
+    wxCHECK_RET( m_widget != NULL, _T("invalid button") );
 
     wxBitmap the_one;
   
@@ -220,7 +233,7 @@ void wxBitmapButton::SetBitmap()
 
 void wxBitmapButton::SetBitmapDisabled( const wxBitmap& bitmap ) 
 {
-  wxCHECK_RET( m_widget != NULL, "invalid button" );
+  wxCHECK_RET( m_widget != NULL, _T("invalid button") );
 
   if ( ! m_disabled.Ok() ) return;
   m_disabled = bitmap;
@@ -230,7 +243,7 @@ void wxBitmapButton::SetBitmapDisabled( const wxBitmap& bitmap )
 
 void wxBitmapButton::SetBitmapFocus( const wxBitmap& bitmap ) 
 {
-    wxCHECK_RET( m_widget != NULL, "invalid button" );
+    wxCHECK_RET( m_widget != NULL, _T("invalid button") );
 
     if ( ! m_focus.Ok() ) return;
     m_focus = bitmap;
@@ -240,7 +253,7 @@ void wxBitmapButton::SetBitmapFocus( const wxBitmap& bitmap )
 
 void wxBitmapButton::SetBitmapLabel( const wxBitmap& bitmap )
 {
-    wxCHECK_RET( m_widget != NULL, "invalid button" );
+    wxCHECK_RET( m_widget != NULL, _T("invalid button") );
 
     if (!m_bitmap.Ok()) return;
     m_bitmap = bitmap;
@@ -250,7 +263,7 @@ void wxBitmapButton::SetBitmapLabel( const wxBitmap& bitmap )
 
 void wxBitmapButton::SetBitmapSelected( const wxBitmap& bitmap )
 {
-    wxCHECK_RET( m_widget != NULL, "invalid button" );
+    wxCHECK_RET( m_widget != NULL, _T("invalid button") );
 
     if ( ! m_selected.Ok() ) return;
     m_selected = bitmap;