]> git.saurik.com Git - wxWidgets.git/commitdiff
SetFont() the second
authorRobert Roebling <robert@roebling.de>
Sun, 6 Sep 1998 18:34:18 +0000 (18:34 +0000)
committerRobert Roebling <robert@roebling.de>
Sun, 6 Sep 1998 18:34:18 +0000 (18:34 +0000)
  #ifdefed SetFont() in Statusbars destructor
  wxRadioBox setsize corrected (Still only simple layout)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@685 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

19 files changed:
include/wx/gtk/radiobox.h
include/wx/gtk1/radiobox.h
src/generic/statusbr.cpp
src/gtk/button.cpp
src/gtk/checkbox.cpp
src/gtk/radiobox.cpp
src/gtk/radiobut.cpp
src/gtk/statbox.cpp
src/gtk/stattext.cpp
src/gtk/textctrl.cpp
src/gtk/window.cpp
src/gtk1/button.cpp
src/gtk1/checkbox.cpp
src/gtk1/radiobox.cpp
src/gtk1/radiobut.cpp
src/gtk1/statbox.cpp
src/gtk1/stattext.cpp
src/gtk1/textctrl.cpp
src/gtk1/window.cpp

index 443ea706ecb10da4618e91d32cc78f6673b7af1f..1da4e3d97997fec74b0645273aa9bf10bf64ac56 100644 (file)
@@ -81,6 +81,8 @@ class wxRadioBox: public wxControl
     void SetNumberOfRowsOrCols( int n );
     void SetFont( const wxFont &font );
 
     void SetNumberOfRowsOrCols( int n );
     void SetFont( const wxFont &font );
 
+    void OnSize( wxSizeEvent &event );
+    
   // implementation    
     
     bool            m_alreadySent;
   // implementation    
     
     bool            m_alreadySent;
@@ -89,6 +91,8 @@ class wxRadioBox: public wxControl
   
     GtkRadioButton *m_radio;
     
   
     GtkRadioButton *m_radio;
     
+  DECLARE_EVENT_TABLE()    
+    
 };
 
 #endif // __GTKRADIOBOXH__
 };
 
 #endif // __GTKRADIOBOXH__
index 443ea706ecb10da4618e91d32cc78f6673b7af1f..1da4e3d97997fec74b0645273aa9bf10bf64ac56 100644 (file)
@@ -81,6 +81,8 @@ class wxRadioBox: public wxControl
     void SetNumberOfRowsOrCols( int n );
     void SetFont( const wxFont &font );
 
     void SetNumberOfRowsOrCols( int n );
     void SetFont( const wxFont &font );
 
+    void OnSize( wxSizeEvent &event );
+    
   // implementation    
     
     bool            m_alreadySent;
   // implementation    
     
     bool            m_alreadySent;
@@ -89,6 +91,8 @@ class wxRadioBox: public wxControl
   
     GtkRadioButton *m_radio;
     
   
     GtkRadioButton *m_radio;
     
+  DECLARE_EVENT_TABLE()    
+    
 };
 
 #endif // __GTKRADIOBOXH__
 };
 
 #endif // __GTKRADIOBOXH__
index fee8fe43f81b0f434e2d7cac984eeb6ce9fa4994..8ea6f36bd73d45391313085885e7cb7ca6aa91d0 100644 (file)
@@ -62,7 +62,9 @@ wxStatusBar::wxStatusBar(void)
 
 wxStatusBar::~wxStatusBar(void)
 {
 
 wxStatusBar::~wxStatusBar(void)
 {
+#ifdef __WXMSW__
     SetFont(wxNullFont);
     SetFont(wxNullFont);
+#endif
 
        if ( m_statusWidths )
                delete[] m_statusWidths;
 
        if ( m_statusWidths )
                delete[] m_statusWidths;
index f10b170beffa6bc9549f9a9868a7d6cd5c7a6b76..034e229f1843b48a0f1902dab60c02806eb628b1 100644 (file)
@@ -105,8 +105,11 @@ void wxButton::Enable( bool enable )
 
 void wxButton::SetFont( const wxFont &font )
 {
 
 void wxButton::SetFont( const wxFont &font )
 {
-  m_font = font;
-  
+  if (((wxFont*)&font)->Ok())
+    m_font = font;
+  else
+    m_font = *wxSWISS_FONT;
+
   GtkButton *bin = GTK_BUTTON( m_widget );
   GtkWidget *label = bin->child;
   
   GtkButton *bin = GTK_BUTTON( m_widget );
   GtkWidget *label = bin->child;
   
index 2604d6d360bf30ca0731abb153c6bff65057f638..e5b2beb157877673c552cf3bfced13f2dbc9c33d 100644 (file)
@@ -91,7 +91,10 @@ bool wxCheckBox::GetValue(void) const
 
 void wxCheckBox::SetFont( const wxFont &font )
 {
 
 void wxCheckBox::SetFont( const wxFont &font )
 {
-  m_font = font;
+  if (((wxFont*)&font)->Ok())
+    m_font = font;
+  else
+    m_font = *wxSWISS_FONT;
   
   GtkButton *bin = GTK_BUTTON( m_widget );
   GtkWidget *label = bin->child;
   
   GtkButton *bin = GTK_BUTTON( m_widget );
   GtkWidget *label = bin->child;
index b42b2e82e0dd259760fa62b37f66c0aa133e541e..31e9a8e85687b23a87f0ba88c375f4154576886b 100644 (file)
@@ -53,6 +53,10 @@ static void gtk_radiobutton_clicked_callback( GtkWidget *WXUNUSED(widget), wxRad
 
 IMPLEMENT_DYNAMIC_CLASS(wxRadioBox,wxControl)
 
 
 IMPLEMENT_DYNAMIC_CLASS(wxRadioBox,wxControl)
 
+BEGIN_EVENT_TABLE(wxRadioBox, wxControl)
+  EVT_SIZE(wxRadioBox::OnSize)
+END_EVENT_TABLE()
+
 wxRadioBox::wxRadioBox(void)
 {
 }
 wxRadioBox::wxRadioBox(void)
 {
 }
@@ -118,6 +122,24 @@ bool wxRadioBox::Create( wxWindow *parent, wxWindowID id, const wxString& title,
   return TRUE;
 }
 
   return TRUE;
 }
 
+void wxRadioBox::OnSize( wxSizeEvent &WXUNUSED(event) )
+{
+  int x = m_x+5;
+  int y = m_y+15;
+  
+  GSList *item = gtk_radio_button_group( m_radio );
+  while (item)
+  {
+    GtkWidget *button = GTK_WIDGET( item->data );
+    
+    gtk_myfixed_move( GTK_MYFIXED(m_parent->m_wxwindow), button, x, y );
+    
+    y += 20;
+    
+    item = item->next;
+  }
+}
+
 bool wxRadioBox::Show( bool show )
 {
   wxWindow::Show( show );
 bool wxRadioBox::Show( bool show )
 {
   wxWindow::Show( show );
index a0e789bcbd65814a3fedd275062779d76e430941..42fddad8e6d719c7d20cb1c765ad3820d59ec2f9 100644 (file)
@@ -88,7 +88,10 @@ bool wxRadioButton::GetValue(void) const
 
 void wxRadioButton::SetFont( const wxFont &font )
 {
 
 void wxRadioButton::SetFont( const wxFont &font )
 {
-  m_font = font;
+  if (((wxFont*)&font)->Ok())
+    m_font = font;
+  else
+    m_font = *wxSWISS_FONT;
   
   GtkButton *bin = GTK_BUTTON( m_widget );
   GtkWidget *label = bin->child;
   
   GtkButton *bin = GTK_BUTTON( m_widget );
   GtkWidget *label = bin->child;
index 3f6abe319888d0f7af019ba66bd7057a9b67492f..3f28b07a58b729e53744d1236f89990d386d046a 100644 (file)
@@ -22,14 +22,14 @@ IMPLEMENT_DYNAMIC_CLASS(wxStaticBox,wxControl)
 
 wxStaticBox::wxStaticBox(void)
 {
 
 wxStaticBox::wxStaticBox(void)
 {
-};
+}
 
 wxStaticBox::wxStaticBox( wxWindow *parent, wxWindowID id, const wxString &label,
       const wxPoint &pos, const wxSize &size,
       long style, const wxString &name )
 {
   Create( parent, id, label, pos, size, style, name );
 
 wxStaticBox::wxStaticBox( wxWindow *parent, wxWindowID id, const wxString &label,
       const wxPoint &pos, const wxSize &size,
       long style, const wxString &name )
 {
   Create( parent, id, label, pos, size, style, name );
-};
+}
 
 bool wxStaticBox::Create( wxWindow *parent, wxWindowID id, const wxString &label,
       const wxPoint &pos, const wxSize &size,
 
 bool wxStaticBox::Create( wxWindow *parent, wxWindowID id, const wxString &label,
       const wxPoint &pos, const wxSize &size,
@@ -47,4 +47,4 @@ bool wxStaticBox::Create( wxWindow *parent, wxWindowID id, const wxString &label
   Show( TRUE );
 
   return TRUE;
   Show( TRUE );
 
   return TRUE;
-};
+}
index 502014914f8b1df3622b95d10af60c10fd510128..b05d93c32cd2f558b367038fca6b67fcf206fdd4 100644 (file)
@@ -23,14 +23,14 @@ IMPLEMENT_DYNAMIC_CLASS(wxStaticText,wxControl)
 
 wxStaticText::wxStaticText(void)
 {
 
 wxStaticText::wxStaticText(void)
 {
-};
+}
 
 wxStaticText::wxStaticText( wxWindow *parent, wxWindowID id, const wxString &label, 
       const wxPoint &pos, const wxSize &size, 
       long style, const wxString &name )
 {
   Create( parent, id, label, pos, size, style, name );
 
 wxStaticText::wxStaticText( wxWindow *parent, wxWindowID id, const wxString &label, 
       const wxPoint &pos, const wxSize &size, 
       long style, const wxString &name )
 {
   Create( parent, id, label, pos, size, style, name );
-};
+}
 
 bool wxStaticText::Create( wxWindow *parent, wxWindowID id, const wxString &label, 
       const wxPoint &pos, const wxSize &size, 
 
 bool wxStaticText::Create( wxWindow *parent, wxWindowID id, const wxString &label, 
       const wxPoint &pos, const wxSize &size, 
@@ -95,7 +95,7 @@ bool wxStaticText::Create( wxWindow *parent, wxWindowID id, const wxString &labe
   Show( TRUE );
     
   return TRUE;
   Show( TRUE );
     
   return TRUE;
-};
+}
 
 wxString wxStaticText::GetLabel(void) const
 {
 
 wxString wxStaticText::GetLabel(void) const
 {
@@ -103,11 +103,11 @@ wxString wxStaticText::GetLabel(void) const
   gtk_label_get( GTK_LABEL(m_widget), &str );
   wxString tmp( str );
   return tmp;
   gtk_label_get( GTK_LABEL(m_widget), &str );
   wxString tmp( str );
   return tmp;
-};
+}
 
 void wxStaticText::SetLabel( const wxString &label )
 {
   wxControl::SetLabel(label);
 
   gtk_label_set( GTK_LABEL(m_widget), m_label );
 
 void wxStaticText::SetLabel( const wxString &label )
 {
   wxControl::SetLabel(label);
 
   gtk_label_set( GTK_LABEL(m_widget), m_label );
-};
+}
index f5e26432872a40710706cc4c0cd03844bdad5978..7405f2df26f7c1996a1c671d666af8305067ef42 100644 (file)
@@ -431,7 +431,10 @@ bool wxTextCtrl::IsOwnGtkWindow( GdkWindow *window )
 
 void wxTextCtrl::SetFont( const wxFont &font )
 {
 
 void wxTextCtrl::SetFont( const wxFont &font )
 {
-  m_font = font;
+  if (((wxFont*)&font)->Ok())
+    m_font = font;
+  else
+    m_font = *wxSWISS_FONT;
   
   GtkStyle *style = (GtkStyle*) NULL;
   if (!m_hasOwnStyle)
   
   GtkStyle *style = (GtkStyle*) NULL;
   if (!m_hasOwnStyle)
index 8159b280a241216f4e599f8b15eb50d439508b2f..47e9012dcb7645bff2e88d7950258aeb8680fee7 100644 (file)
@@ -1926,20 +1926,12 @@ bool wxWindow::IsOwnGtkWindow( GdkWindow *window )
 
 void wxWindow::SetFont( const wxFont &font )
 {
 
 void wxWindow::SetFont( const wxFont &font )
 {
-  m_font = font;
-
-  // Unfortunately this results in a crash in GTK on deletion
-  // of windows, e.g. the wxStatusBar in Dialog Editor.
-#if 0
-
-  // ADDED BY JACS: not sure if this is the right thing to do,
-  // but will avoid a segv when SetFont(wxNullFont) is called.
-  if (((wxFont*) &font)->Ok())
+  if (((wxFont*)&font)->Ok())
     m_font = font;
   else
     m_font = *wxSWISS_FONT;
 
     m_font = font;
   else
     m_font = *wxSWISS_FONT;
 
-  GtkStyle *style = (GtkStyle`*) NULL;
+  GtkStyle *style = (GtkStyle*) NULL;
   if (!m_hasOwnStyle)
   {
     m_hasOwnStyle = TRUE;
   if (!m_hasOwnStyle)
   {
     m_hasOwnStyle = TRUE;
@@ -1954,7 +1946,6 @@ void wxWindow::SetFont( const wxFont &font )
   style->font = gdk_font_ref( m_font.GetInternalFont( 1.0 ) );
   
   gtk_widget_set_style( m_widget, style );
   style->font = gdk_font_ref( m_font.GetInternalFont( 1.0 ) );
   
   gtk_widget_set_style( m_widget, style );
-#endif
 }
 
 wxFont *wxWindow::GetFont(void)
 }
 
 wxFont *wxWindow::GetFont(void)
index f10b170beffa6bc9549f9a9868a7d6cd5c7a6b76..034e229f1843b48a0f1902dab60c02806eb628b1 100644 (file)
@@ -105,8 +105,11 @@ void wxButton::Enable( bool enable )
 
 void wxButton::SetFont( const wxFont &font )
 {
 
 void wxButton::SetFont( const wxFont &font )
 {
-  m_font = font;
-  
+  if (((wxFont*)&font)->Ok())
+    m_font = font;
+  else
+    m_font = *wxSWISS_FONT;
+
   GtkButton *bin = GTK_BUTTON( m_widget );
   GtkWidget *label = bin->child;
   
   GtkButton *bin = GTK_BUTTON( m_widget );
   GtkWidget *label = bin->child;
   
index 2604d6d360bf30ca0731abb153c6bff65057f638..e5b2beb157877673c552cf3bfced13f2dbc9c33d 100644 (file)
@@ -91,7 +91,10 @@ bool wxCheckBox::GetValue(void) const
 
 void wxCheckBox::SetFont( const wxFont &font )
 {
 
 void wxCheckBox::SetFont( const wxFont &font )
 {
-  m_font = font;
+  if (((wxFont*)&font)->Ok())
+    m_font = font;
+  else
+    m_font = *wxSWISS_FONT;
   
   GtkButton *bin = GTK_BUTTON( m_widget );
   GtkWidget *label = bin->child;
   
   GtkButton *bin = GTK_BUTTON( m_widget );
   GtkWidget *label = bin->child;
index b42b2e82e0dd259760fa62b37f66c0aa133e541e..31e9a8e85687b23a87f0ba88c375f4154576886b 100644 (file)
@@ -53,6 +53,10 @@ static void gtk_radiobutton_clicked_callback( GtkWidget *WXUNUSED(widget), wxRad
 
 IMPLEMENT_DYNAMIC_CLASS(wxRadioBox,wxControl)
 
 
 IMPLEMENT_DYNAMIC_CLASS(wxRadioBox,wxControl)
 
+BEGIN_EVENT_TABLE(wxRadioBox, wxControl)
+  EVT_SIZE(wxRadioBox::OnSize)
+END_EVENT_TABLE()
+
 wxRadioBox::wxRadioBox(void)
 {
 }
 wxRadioBox::wxRadioBox(void)
 {
 }
@@ -118,6 +122,24 @@ bool wxRadioBox::Create( wxWindow *parent, wxWindowID id, const wxString& title,
   return TRUE;
 }
 
   return TRUE;
 }
 
+void wxRadioBox::OnSize( wxSizeEvent &WXUNUSED(event) )
+{
+  int x = m_x+5;
+  int y = m_y+15;
+  
+  GSList *item = gtk_radio_button_group( m_radio );
+  while (item)
+  {
+    GtkWidget *button = GTK_WIDGET( item->data );
+    
+    gtk_myfixed_move( GTK_MYFIXED(m_parent->m_wxwindow), button, x, y );
+    
+    y += 20;
+    
+    item = item->next;
+  }
+}
+
 bool wxRadioBox::Show( bool show )
 {
   wxWindow::Show( show );
 bool wxRadioBox::Show( bool show )
 {
   wxWindow::Show( show );
index a0e789bcbd65814a3fedd275062779d76e430941..42fddad8e6d719c7d20cb1c765ad3820d59ec2f9 100644 (file)
@@ -88,7 +88,10 @@ bool wxRadioButton::GetValue(void) const
 
 void wxRadioButton::SetFont( const wxFont &font )
 {
 
 void wxRadioButton::SetFont( const wxFont &font )
 {
-  m_font = font;
+  if (((wxFont*)&font)->Ok())
+    m_font = font;
+  else
+    m_font = *wxSWISS_FONT;
   
   GtkButton *bin = GTK_BUTTON( m_widget );
   GtkWidget *label = bin->child;
   
   GtkButton *bin = GTK_BUTTON( m_widget );
   GtkWidget *label = bin->child;
index 3f6abe319888d0f7af019ba66bd7057a9b67492f..3f28b07a58b729e53744d1236f89990d386d046a 100644 (file)
@@ -22,14 +22,14 @@ IMPLEMENT_DYNAMIC_CLASS(wxStaticBox,wxControl)
 
 wxStaticBox::wxStaticBox(void)
 {
 
 wxStaticBox::wxStaticBox(void)
 {
-};
+}
 
 wxStaticBox::wxStaticBox( wxWindow *parent, wxWindowID id, const wxString &label,
       const wxPoint &pos, const wxSize &size,
       long style, const wxString &name )
 {
   Create( parent, id, label, pos, size, style, name );
 
 wxStaticBox::wxStaticBox( wxWindow *parent, wxWindowID id, const wxString &label,
       const wxPoint &pos, const wxSize &size,
       long style, const wxString &name )
 {
   Create( parent, id, label, pos, size, style, name );
-};
+}
 
 bool wxStaticBox::Create( wxWindow *parent, wxWindowID id, const wxString &label,
       const wxPoint &pos, const wxSize &size,
 
 bool wxStaticBox::Create( wxWindow *parent, wxWindowID id, const wxString &label,
       const wxPoint &pos, const wxSize &size,
@@ -47,4 +47,4 @@ bool wxStaticBox::Create( wxWindow *parent, wxWindowID id, const wxString &label
   Show( TRUE );
 
   return TRUE;
   Show( TRUE );
 
   return TRUE;
-};
+}
index 502014914f8b1df3622b95d10af60c10fd510128..b05d93c32cd2f558b367038fca6b67fcf206fdd4 100644 (file)
@@ -23,14 +23,14 @@ IMPLEMENT_DYNAMIC_CLASS(wxStaticText,wxControl)
 
 wxStaticText::wxStaticText(void)
 {
 
 wxStaticText::wxStaticText(void)
 {
-};
+}
 
 wxStaticText::wxStaticText( wxWindow *parent, wxWindowID id, const wxString &label, 
       const wxPoint &pos, const wxSize &size, 
       long style, const wxString &name )
 {
   Create( parent, id, label, pos, size, style, name );
 
 wxStaticText::wxStaticText( wxWindow *parent, wxWindowID id, const wxString &label, 
       const wxPoint &pos, const wxSize &size, 
       long style, const wxString &name )
 {
   Create( parent, id, label, pos, size, style, name );
-};
+}
 
 bool wxStaticText::Create( wxWindow *parent, wxWindowID id, const wxString &label, 
       const wxPoint &pos, const wxSize &size, 
 
 bool wxStaticText::Create( wxWindow *parent, wxWindowID id, const wxString &label, 
       const wxPoint &pos, const wxSize &size, 
@@ -95,7 +95,7 @@ bool wxStaticText::Create( wxWindow *parent, wxWindowID id, const wxString &labe
   Show( TRUE );
     
   return TRUE;
   Show( TRUE );
     
   return TRUE;
-};
+}
 
 wxString wxStaticText::GetLabel(void) const
 {
 
 wxString wxStaticText::GetLabel(void) const
 {
@@ -103,11 +103,11 @@ wxString wxStaticText::GetLabel(void) const
   gtk_label_get( GTK_LABEL(m_widget), &str );
   wxString tmp( str );
   return tmp;
   gtk_label_get( GTK_LABEL(m_widget), &str );
   wxString tmp( str );
   return tmp;
-};
+}
 
 void wxStaticText::SetLabel( const wxString &label )
 {
   wxControl::SetLabel(label);
 
   gtk_label_set( GTK_LABEL(m_widget), m_label );
 
 void wxStaticText::SetLabel( const wxString &label )
 {
   wxControl::SetLabel(label);
 
   gtk_label_set( GTK_LABEL(m_widget), m_label );
-};
+}
index f5e26432872a40710706cc4c0cd03844bdad5978..7405f2df26f7c1996a1c671d666af8305067ef42 100644 (file)
@@ -431,7 +431,10 @@ bool wxTextCtrl::IsOwnGtkWindow( GdkWindow *window )
 
 void wxTextCtrl::SetFont( const wxFont &font )
 {
 
 void wxTextCtrl::SetFont( const wxFont &font )
 {
-  m_font = font;
+  if (((wxFont*)&font)->Ok())
+    m_font = font;
+  else
+    m_font = *wxSWISS_FONT;
   
   GtkStyle *style = (GtkStyle*) NULL;
   if (!m_hasOwnStyle)
   
   GtkStyle *style = (GtkStyle*) NULL;
   if (!m_hasOwnStyle)
index 8159b280a241216f4e599f8b15eb50d439508b2f..47e9012dcb7645bff2e88d7950258aeb8680fee7 100644 (file)
@@ -1926,20 +1926,12 @@ bool wxWindow::IsOwnGtkWindow( GdkWindow *window )
 
 void wxWindow::SetFont( const wxFont &font )
 {
 
 void wxWindow::SetFont( const wxFont &font )
 {
-  m_font = font;
-
-  // Unfortunately this results in a crash in GTK on deletion
-  // of windows, e.g. the wxStatusBar in Dialog Editor.
-#if 0
-
-  // ADDED BY JACS: not sure if this is the right thing to do,
-  // but will avoid a segv when SetFont(wxNullFont) is called.
-  if (((wxFont*) &font)->Ok())
+  if (((wxFont*)&font)->Ok())
     m_font = font;
   else
     m_font = *wxSWISS_FONT;
 
     m_font = font;
   else
     m_font = *wxSWISS_FONT;
 
-  GtkStyle *style = (GtkStyle`*) NULL;
+  GtkStyle *style = (GtkStyle*) NULL;
   if (!m_hasOwnStyle)
   {
     m_hasOwnStyle = TRUE;
   if (!m_hasOwnStyle)
   {
     m_hasOwnStyle = TRUE;
@@ -1954,7 +1946,6 @@ void wxWindow::SetFont( const wxFont &font )
   style->font = gdk_font_ref( m_font.GetInternalFont( 1.0 ) );
   
   gtk_widget_set_style( m_widget, style );
   style->font = gdk_font_ref( m_font.GetInternalFont( 1.0 ) );
   
   gtk_widget_set_style( m_widget, style );
-#endif
 }
 
 wxFont *wxWindow::GetFont(void)
 }
 
 wxFont *wxWindow::GetFont(void)