]> git.saurik.com Git - wxWidgets.git/commitdiff
Fillid in many more missing functions (such as Enable())
authorRobert Roebling <robert@roebling.de>
Sun, 6 Sep 1998 20:27:21 +0000 (20:27 +0000)
committerRobert Roebling <robert@roebling.de>
Sun, 6 Sep 1998 20:27:21 +0000 (20:27 +0000)
  There are still things to fix when compiling sockets ..

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

20 files changed:
include/wx/gtk/checkbox.h
include/wx/gtk/control.h
include/wx/gtk/radiobox.h
include/wx/gtk/radiobut.h
include/wx/gtk/statbox.h
include/wx/gtk1/checkbox.h
include/wx/gtk1/control.h
include/wx/gtk1/radiobox.h
include/wx/gtk1/radiobut.h
include/wx/gtk1/statbox.h
samples/controls/controls.cpp
src/gtk.inc
src/gtk/checkbox.cpp
src/gtk/radiobox.cpp
src/gtk/radiobut.cpp
src/gtk/statbox.cpp
src/gtk1/checkbox.cpp
src/gtk1/radiobox.cpp
src/gtk1/radiobut.cpp
src/gtk1/statbox.cpp

index 43327e3f26ec60d6b004a255a376eae7a89257d6..8022f9c41991fc41396b305547a1f02f5fec272b 100644 (file)
@@ -60,6 +60,7 @@ class wxCheckBox: public wxControl
     void SetValue( bool state );
     bool GetValue(void) const;
     void SetFont( const wxFont &font );
+    void Enable( bool enable );
 };
 
 #endif // __GTKCHECKBOXH__
index 5aa8a1b39a41b2e06c728f6d14930904dc1221c6..3e874707d0a75a7fc19bbd73dd6aeff9f330086b 100644 (file)
@@ -36,16 +36,13 @@ class wxControl: public wxWindow
 DECLARE_DYNAMIC_CLASS(wxControl)
 
 public:
-  // construction
   wxControl();
   wxControl( wxWindow *parent, wxWindowID id, 
       const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize, 
       long style = 0, const wxString &name = wxPanelNameStr  );
   
-  // overridables
   virtual void Command( wxCommandEvent &event );
 
-  // accessors
     // this function will filter out '&' characters and will put the accelerator
     // char (the one immediately after '&') into m_chAccel (@@ not yet)
   virtual void SetLabel( const wxString &label );
@@ -53,8 +50,7 @@ public:
 
 protected:
   wxString   m_label;
-  // when we implement keyboard interface we will make use of this, but not yet
-  //char       m_chAccel;
+  char       m_chAccel;  // enabled to avoid breaking binary compatibility later on
 };
 
 #endif // __GTKCONTROLH__
index 1da4e3d97997fec74b0645273aa9bf10bf64ac56..3ba68d40d989822e4429c7dc7b378e7e4c03f20c 100644 (file)
@@ -65,7 +65,6 @@ class wxRadioBox: public wxControl
     void SetSelection( int n );
     int GetSelection(void) const;
     wxString GetString( int n ) const;
-    wxString GetLabel(void) const;
     void SetLabel( const wxString& label );
     void SetLabel( int item, const wxString& label );
     void SetLabel( int item, wxBitmap *bitmap );
@@ -79,8 +78,8 @@ class wxRadioBox: public wxControl
     virtual int Number(void) const;
     int GetNumberOfRowsOrCols(void) const;
     void SetNumberOfRowsOrCols( int n );
+    
     void SetFont( const wxFont &font );
-
     void OnSize( wxSizeEvent &event );
     
   // implementation    
index 3e0705a7a8c45952dd6ee5a6a3707a29f41590fa..659ef322c75daedcea93627830ebd7ad0916a10f 100644 (file)
@@ -62,6 +62,7 @@ class wxRadioButton: public wxControl
     virtual void SetValue(bool val);
     virtual bool GetValue(void) const;
     void SetFont( const wxFont &font );
+    void Enable( bool enable );
 };
 
 #endif // __GTKRADIOBUTTONH__
index a6248a6bc99b147b2dbcd32876a74eefe4e6d89e..d6c8314bc0decd67faf62afe4727005678156529 100644 (file)
@@ -50,6 +50,7 @@ class wxStaticBox: public wxControl
     bool Create( wxWindow *parent, wxWindowID id, const wxString &label,
       const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize, 
       long style = 0, const wxString &name = wxStaticBoxNameStr  );
+    void SetLabel( const wxString &label );
 };
 
 #endif // __GTKSTATICBOXH__
index 43327e3f26ec60d6b004a255a376eae7a89257d6..8022f9c41991fc41396b305547a1f02f5fec272b 100644 (file)
@@ -60,6 +60,7 @@ class wxCheckBox: public wxControl
     void SetValue( bool state );
     bool GetValue(void) const;
     void SetFont( const wxFont &font );
+    void Enable( bool enable );
 };
 
 #endif // __GTKCHECKBOXH__
index 5aa8a1b39a41b2e06c728f6d14930904dc1221c6..3e874707d0a75a7fc19bbd73dd6aeff9f330086b 100644 (file)
@@ -36,16 +36,13 @@ class wxControl: public wxWindow
 DECLARE_DYNAMIC_CLASS(wxControl)
 
 public:
-  // construction
   wxControl();
   wxControl( wxWindow *parent, wxWindowID id, 
       const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize, 
       long style = 0, const wxString &name = wxPanelNameStr  );
   
-  // overridables
   virtual void Command( wxCommandEvent &event );
 
-  // accessors
     // this function will filter out '&' characters and will put the accelerator
     // char (the one immediately after '&') into m_chAccel (@@ not yet)
   virtual void SetLabel( const wxString &label );
@@ -53,8 +50,7 @@ public:
 
 protected:
   wxString   m_label;
-  // when we implement keyboard interface we will make use of this, but not yet
-  //char       m_chAccel;
+  char       m_chAccel;  // enabled to avoid breaking binary compatibility later on
 };
 
 #endif // __GTKCONTROLH__
index 1da4e3d97997fec74b0645273aa9bf10bf64ac56..3ba68d40d989822e4429c7dc7b378e7e4c03f20c 100644 (file)
@@ -65,7 +65,6 @@ class wxRadioBox: public wxControl
     void SetSelection( int n );
     int GetSelection(void) const;
     wxString GetString( int n ) const;
-    wxString GetLabel(void) const;
     void SetLabel( const wxString& label );
     void SetLabel( int item, const wxString& label );
     void SetLabel( int item, wxBitmap *bitmap );
@@ -79,8 +78,8 @@ class wxRadioBox: public wxControl
     virtual int Number(void) const;
     int GetNumberOfRowsOrCols(void) const;
     void SetNumberOfRowsOrCols( int n );
+    
     void SetFont( const wxFont &font );
-
     void OnSize( wxSizeEvent &event );
     
   // implementation    
index 3e0705a7a8c45952dd6ee5a6a3707a29f41590fa..659ef322c75daedcea93627830ebd7ad0916a10f 100644 (file)
@@ -62,6 +62,7 @@ class wxRadioButton: public wxControl
     virtual void SetValue(bool val);
     virtual bool GetValue(void) const;
     void SetFont( const wxFont &font );
+    void Enable( bool enable );
 };
 
 #endif // __GTKRADIOBUTTONH__
index a6248a6bc99b147b2dbcd32876a74eefe4e6d89e..d6c8314bc0decd67faf62afe4727005678156529 100644 (file)
@@ -50,6 +50,7 @@ class wxStaticBox: public wxControl
     bool Create( wxWindow *parent, wxWindowID id, const wxString &label,
       const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize, 
       long style = 0, const wxString &name = wxStaticBoxNameStr  );
+    void SetLabel( const wxString &label );
 };
 
 #endif // __GTKSTATICBOXH__
index 385a294f95e3fd44df84bb272e6f6eac1392fa47..04c892b4c34b2c293029ec8ec87c7f276e7a3a2d 100644 (file)
@@ -103,7 +103,7 @@ const   int MINIMAL_ABOUT  = 102;
 bool MyApp::OnInit(void)
 {
   // Create the main frame window
-  MyFrame *frame = new MyFrame((wxFrame *) NULL, (char *) "Controls wxWindows App", 50, 50, 500, 420 );
+  MyFrame *frame = new MyFrame((wxFrame *) NULL, (char *) "Controls wxWindows App", 50, 50, 530, 420 );
   
   // Give it an icon
 #ifdef __WXMSW__
@@ -140,6 +140,7 @@ const  ID_LISTBOX_CLEAR     = 133;
 const  ID_LISTBOX_APPEND    = 134;
 const  ID_LISTBOX_DELETE    = 135;
 const  ID_LISTBOX_FONT      = 136;
+const  ID_LISTBOX_ENABLE    = 137;
 
 const  ID_CHOICE            = 120;
 const  ID_CHOICE_SEL_NUM    = 121;
@@ -148,6 +149,7 @@ const  ID_CHOICE_CLEAR      = 123;
 const  ID_CHOICE_APPEND     = 124;
 const  ID_CHOICE_DELETE     = 125;
 const  ID_CHOICE_FONT       = 126;
+const  ID_CHOICE_ENABLE     = 127;
 
 const  ID_COMBO             = 140;
 const  ID_COMBO_SEL_NUM     = 141;
@@ -156,6 +158,7 @@ const  ID_COMBO_CLEAR       = 143;
 const  ID_COMBO_APPEND      = 144;
 const  ID_COMBO_DELETE      = 145;
 const  ID_COMBO_FONT        = 146;
+const  ID_COMBO_ENABLE      = 147;
 
 const  ID_TEXT              = 150;
 
@@ -163,6 +166,7 @@ const  ID_RADIOBOX          = 160;
 const  ID_RADIOBOX_SEL_NUM  = 161;
 const  ID_RADIOBOX_SEL_STR  = 162;
 const  ID_RADIOBOX_FONT     = 163;
+const  ID_RADIOBOX_ENABLE   = 164;
 
 const  ID_SET_FONT          = 170;
 
@@ -175,6 +179,7 @@ BEGIN_EVENT_TABLE(MyPanel, wxPanel)
   EVT_BUTTON    (ID_LISTBOX_APPEND,     MyPanel::OnListBoxButtons)
   EVT_BUTTON    (ID_LISTBOX_DELETE,     MyPanel::OnListBoxButtons)
   EVT_BUTTON    (ID_LISTBOX_FONT,       MyPanel::OnListBoxButtons)
+  EVT_CHECKBOX  (ID_LISTBOX_ENABLE,     MyPanel::OnListBoxButtons)
   EVT_CHOICE    (ID_CHOICE,             MyPanel::OnChoice)
   EVT_BUTTON    (ID_CHOICE_SEL_NUM,     MyPanel::OnChoiceButtons)
   EVT_BUTTON    (ID_CHOICE_SEL_STR,     MyPanel::OnChoiceButtons)
@@ -182,6 +187,7 @@ BEGIN_EVENT_TABLE(MyPanel, wxPanel)
   EVT_BUTTON    (ID_CHOICE_APPEND,      MyPanel::OnChoiceButtons)
   EVT_BUTTON    (ID_CHOICE_DELETE,      MyPanel::OnChoiceButtons)
   EVT_BUTTON    (ID_CHOICE_FONT,        MyPanel::OnChoiceButtons)
+  EVT_CHECKBOX  (ID_CHOICE_ENABLE,      MyPanel::OnChoiceButtons)
   EVT_CHOICE    (ID_COMBO,              MyPanel::OnCombo)
   EVT_BUTTON    (ID_COMBO_SEL_NUM,      MyPanel::OnComboButtons)
   EVT_BUTTON    (ID_COMBO_SEL_STR,      MyPanel::OnComboButtons)
@@ -189,10 +195,12 @@ BEGIN_EVENT_TABLE(MyPanel, wxPanel)
   EVT_BUTTON    (ID_COMBO_APPEND,       MyPanel::OnComboButtons)
   EVT_BUTTON    (ID_COMBO_DELETE,       MyPanel::OnComboButtons)
   EVT_BUTTON    (ID_COMBO_FONT,         MyPanel::OnComboButtons)
+  EVT_CHECKBOX  (ID_COMBO_ENABLE,       MyPanel::OnComboButtons)
   EVT_RADIOBOX  (ID_RADIOBOX,           MyPanel::OnRadio)
   EVT_BUTTON    (ID_RADIOBOX_SEL_NUM,   MyPanel::OnRadioButtons)
   EVT_BUTTON    (ID_RADIOBOX_SEL_STR,   MyPanel::OnRadioButtons)
   EVT_BUTTON    (ID_RADIOBOX_FONT,      MyPanel::OnRadioButtons)
+  EVT_CHECKBOX  (ID_RADIOBOX_ENABLE,    MyPanel::OnRadioButtons)
   EVT_BUTTON    (ID_SET_FONT,           MyPanel::OnSetFont)
 END_EVENT_TABLE()
 
@@ -241,32 +249,35 @@ MyPanel::MyPanel( wxFrame *frame, int x, int y, int w, int h ) :
 
   wxPanel *panel = new wxPanel(m_notebook);
   m_listbox = new wxListBox( panel, ID_LISTBOX, wxPoint(10,10), wxSize(120,70), 4, choices );
-  (void)new wxButton( panel, ID_LISTBOX_SEL_NUM, "Select #2", wxPoint(180,30), wxSize(100,30) );
-  (void)new wxButton( panel, ID_LISTBOX_SEL_STR, "Select 'This'", wxPoint(300,30), wxSize(100,30) );
-  (void)new wxButton( panel, ID_LISTBOX_CLEAR, "Clear", wxPoint(180,80), wxSize(100,30) );
-  (void)new wxButton( panel, ID_LISTBOX_APPEND, "Append 'Hi!'", wxPoint(300,80), wxSize(100,30) );
+  (void)new wxButton( panel, ID_LISTBOX_SEL_NUM, "Select #2", wxPoint(180,30), wxSize(140,30) );
+  (void)new wxButton( panel, ID_LISTBOX_SEL_STR, "Select 'This'", wxPoint(340,30), wxSize(140,30) );
+  (void)new wxButton( panel, ID_LISTBOX_CLEAR, "Clear", wxPoint(180,80), wxSize(140,30) );
+  (void)new wxButton( panel, ID_LISTBOX_APPEND, "Append 'Hi!'", wxPoint(340,80), wxSize(140,30) );
   (void)new wxButton( panel, ID_LISTBOX_DELETE, "Delete selected item", wxPoint(180,130), wxSize(140,30) );
-  (void)new wxButton( panel, ID_LISTBOX_FONT, "Set Italic font", wxPoint(180,180), wxSize(140,30) );
+  (void)new wxButton( panel, ID_LISTBOX_FONT, "Set Italic font", wxPoint(340,130), wxSize(140,30) );
+  (void)new wxCheckBox( panel, ID_LISTBOX_ENABLE, "Disable", wxPoint(20,130), wxSize(140,30) );
   m_notebook->AddPage(panel, "wxList", FALSE, Image_List);
   
   panel = new wxPanel(m_notebook);
   m_choice = new wxChoice( panel, ID_CHOICE, wxPoint(10,10), wxSize(120,-1), 4, choices );
-  (void)new wxButton( panel, ID_CHOICE_SEL_NUM, "Select #2", wxPoint(180,30), wxSize(100,30) );
-  (void)new wxButton( panel, ID_CHOICE_SEL_STR, "Select 'This'", wxPoint(300,30), wxSize(100,30) );
-  (void)new wxButton( panel, ID_CHOICE_CLEAR, "Clear", wxPoint(180,80), wxSize(100,30) );
-  (void)new wxButton( panel, ID_CHOICE_APPEND, "Append 'Hi!'", wxPoint(300,80), wxSize(100,30) );
+  (void)new wxButton( panel, ID_CHOICE_SEL_NUM, "Select #2", wxPoint(180,30), wxSize(140,30) );
+  (void)new wxButton( panel, ID_CHOICE_SEL_STR, "Select 'This'", wxPoint(340,30), wxSize(140,30) );
+  (void)new wxButton( panel, ID_CHOICE_CLEAR, "Clear", wxPoint(180,80), wxSize(140,30) );
+  (void)new wxButton( panel, ID_CHOICE_APPEND, "Append 'Hi!'", wxPoint(340,80), wxSize(140,30) );
   (void)new wxButton( panel, ID_CHOICE_DELETE, "Delete selected item", wxPoint(180,130), wxSize(140,30) );
-  (void)new wxButton( panel, ID_CHOICE_FONT, "Set Italic font", wxPoint(180,180), wxSize(140,30) );
+  (void)new wxButton( panel, ID_CHOICE_FONT, "Set Italic font", wxPoint(340,130), wxSize(140,30) );
+  (void)new wxCheckBox( panel, ID_CHOICE_ENABLE, "Disable", wxPoint(20,130), wxSize(140,30) );
   m_notebook->AddPage(panel, "wxChoice", FALSE, Image_Choice);
   
   panel = new wxPanel(m_notebook);
   m_combo = new wxComboBox( panel, ID_COMBO, "This", wxPoint(10,10), wxSize(170,-1), 4, choices );
-  (void)new wxButton( panel, ID_COMBO_SEL_NUM, "Select #2", wxPoint(180,30), wxSize(100,30) );
-  (void)new wxButton( panel, ID_COMBO_SEL_STR, "Select 'This'", wxPoint(300,30), wxSize(100,30) );
-  (void)new wxButton( panel, ID_COMBO_CLEAR, "Clear", wxPoint(180,80), wxSize(100,30) );
-  (void)new wxButton( panel, ID_COMBO_APPEND, "Append 'Hi!'", wxPoint(300,80), wxSize(100,30) );
+  (void)new wxButton( panel, ID_COMBO_SEL_NUM, "Select #2", wxPoint(180,30), wxSize(140,30) );
+  (void)new wxButton( panel, ID_COMBO_SEL_STR, "Select 'This'", wxPoint(340,30), wxSize(140,30) );
+  (void)new wxButton( panel, ID_COMBO_CLEAR, "Clear", wxPoint(180,80), wxSize(140,30) );
+  (void)new wxButton( panel, ID_COMBO_APPEND, "Append 'Hi!'", wxPoint(340,80), wxSize(140,30) );
   (void)new wxButton( panel, ID_COMBO_DELETE, "Delete selected item", wxPoint(180,130), wxSize(140,30) );
-  (void)new wxButton( panel, ID_COMBO_FONT, "Set Italic font", wxPoint(180,180), wxSize(140,30) );
+  (void)new wxButton( panel, ID_COMBO_FONT, "Set Italic font", wxPoint(340,130), wxSize(140,30) );
+  (void)new wxCheckBox( panel, ID_COMBO_ENABLE, "Disable", wxPoint(20,130), wxSize(140,30) );
   m_notebook->AddPage(panel, "wxComboBox", FALSE, Image_Combo);
   
   wxTextCtrl *text = new wxTextCtrl( m_notebook, ID_TEXT, "Write text here.", wxPoint(10,10), wxSize(120,100), wxTE_MULTILINE );
@@ -274,10 +285,11 @@ MyPanel::MyPanel( wxFrame *frame, int x, int y, int w, int h ) :
   
   panel = new wxPanel(m_notebook);
   m_radio = new wxRadioBox( panel, ID_RADIOBOX, "This", wxPoint(10,10), wxSize(-1,-1), 4, choices );
-  (void)new wxButton( panel, ID_RADIOBOX_SEL_NUM, "Select #2", wxPoint(200,30), wxSize(100,30) );
-  (void)new wxButton( panel, ID_RADIOBOX_SEL_STR, "Select 'This'", wxPoint(200,80), wxSize(100,30) );
-  (void)new wxButton( panel, ID_RADIOBOX_FONT, "Set Italic font", wxPoint(200,130), wxSize(160,30) );
-  m_fontButton = new wxButton( panel, ID_SET_FONT, "Set more Italic font", wxPoint(200,180), wxSize(160,30) );
+  (void)new wxButton( panel, ID_RADIOBOX_SEL_NUM, "Select #2", wxPoint(180,30), wxSize(140,30) );
+  (void)new wxButton( panel, ID_RADIOBOX_SEL_STR, "Select 'This'", wxPoint(180,80), wxSize(140,30) );
+  (void)new wxButton( panel, ID_RADIOBOX_FONT, "Set Italic font", wxPoint(180,130), wxSize(140,30) );
+  (void)new wxCheckBox( panel, ID_RADIOBOX_ENABLE, "Disable", wxPoint(20,130), wxSize(140,30) );
+  m_fontButton = new wxButton( panel, ID_SET_FONT, "Set more Italic font", wxPoint(340,30), wxSize(160,30) );
   m_notebook->AddPage(panel, "wxRadioBox", FALSE, Image_Radio);
 }
 
@@ -302,6 +314,11 @@ void MyPanel::OnListBoxButtons( wxCommandEvent &event )
 {
   switch (event.GetId())
   {
+    case ID_LISTBOX_ENABLE:
+    {
+      m_listbox->Enable( !((bool)event.GetInt()) );
+      break;
+    }
     case ID_LISTBOX_SEL_NUM:
     {
       m_listbox->SetSelection( 2 );
@@ -347,6 +364,11 @@ void MyPanel::OnChoiceButtons( wxCommandEvent &event )
 {
   switch (event.GetId())
   {
+    case ID_CHOICE_ENABLE:
+    {
+      m_choice->Enable( !((bool)event.GetInt()) );
+      break;
+    }
     case ID_CHOICE_SEL_NUM:
     {
       m_choice->SetSelection( 2 );
@@ -392,6 +414,11 @@ void MyPanel::OnComboButtons( wxCommandEvent &event )
 {
   switch (event.GetId())
   {
+    case ID_COMBO_ENABLE:
+    {
+      m_combo->Enable( !((bool)event.GetInt()) );
+      break;
+    }
     case ID_COMBO_SEL_NUM:
     {
       m_combo->SetSelection( 2 );
@@ -437,6 +464,11 @@ void MyPanel::OnRadioButtons( wxCommandEvent &event )
 {
   switch (event.GetId())
   {
+    case ID_RADIOBOX_ENABLE:
+    {
+      m_radio->Enable( !((bool)event.GetInt()) );
+      break;
+    }
     case ID_RADIOBOX_SEL_NUM:
     {
       m_radio->SetSelection( 2 );
index 8465dc4630dd83022bff520cd675e0b9fa1029b8..dd40309ee0591aaec64e52379a0f0e36c866a3a6 100644 (file)
@@ -55,14 +55,8 @@ LIB_CPP_SRC=\
  common/validate.cpp \
  common/valtext.cpp \
  common/wxexpr.cpp \
- common/tokenzr.cpp \
  common/socket.cpp \
  common/sckaddr.cpp \
- common/protocol.cpp \
- common/url.cpp \
- common/http.cpp \
- common/ftp.cpp \
- common/sckfile.cpp \
  common/sckipc.cpp \
 \
  gtk/accel.cpp \
index e5b2beb157877673c552cf3bfced13f2dbc9c33d..d710aa4fcf49eca330049c202df53c87ddb54468 100644 (file)
@@ -89,6 +89,14 @@ bool wxCheckBox::GetValue(void) const
   return tb->active;
 }
 
+void wxCheckBox::Enable( bool enable )
+{
+  wxControl::Enable( enable );
+  GtkButton *bin = GTK_BUTTON( m_widget );
+  GtkWidget *label = bin->child;
+  gtk_widget_set_sensitive( label, enable );
+}
+
 void wxCheckBox::SetFont( const wxFont &font )
 {
   if (((wxFont*)&font)->Ok())
index 31e9a8e85687b23a87f0ba88c375f4154576886b..96e417570fc41676b802b2ff3d68ecf54a560ede 100644 (file)
@@ -177,7 +177,12 @@ void wxRadioBox::SetSelection( int n )
 {
   GSList *item = gtk_radio_button_group( m_radio );
   item = g_slist_nth( item, g_slist_length(item)-n-1 );
-  if (!item) return;
+  
+  if (!item)
+  {
+    wxFAIL_MSG( "wxRadioBox wrong index" );
+    return;
+  }
   
   GtkToggleButton *button = GTK_TOGGLE_BUTTON( item->data );
   
@@ -205,28 +210,46 @@ wxString wxRadioBox::GetString( int n ) const
   GSList *item = gtk_radio_button_group( m_radio );
   
   item = g_slist_nth( item, g_slist_length(item)-n-1 );
-  if (!item) return "";
   
-  GtkToggleButton *button = GTK_TOGGLE_BUTTON( item->data );
+  if (!item)
+  {
+    wxFAIL_MSG( "wxRadioBox wrong index" );
+    return "";
+  }
   
-  GtkLabel *label = GTK_LABEL( GTK_BUTTON(button)->child );
+  GtkButton *button = GTK_BUTTON( item->data );
+  GtkLabel *label = GTK_LABEL( button->child );
   
   return wxString( label->label );
 }
 
-wxString wxRadioBox::GetLabel(void) const
+wxString wxRadioBox::GetLabel( int item ) const
 {
-  return wxControl::GetLabel();
+  return GetString( item );
 }
 
-void wxRadioBox::SetLabel( const wxString& WXUNUSED(label) )
+void wxRadioBox::SetLabel( const wxString& label )
 {
-  wxFAIL_MSG("wxRadioBox::SetLabel not implemented.");
+  wxControl::SetLabel( label );
+  GtkFrame *frame = GTK_FRAME( m_widget );
+  gtk_frame_set_label( frame, wxControl::GetLabel() );
 }
 
-void wxRadioBox::SetLabel( int WXUNUSED(item), const wxString& WXUNUSED(label) )
+void wxRadioBox::SetLabel( int item, const wxString& label )
 {
-  wxFAIL_MSG("wxRadioBox::SetLabel not implemented.");
+  GSList *list = gtk_radio_button_group( m_radio );
+  list = g_slist_nth( list, g_slist_length(list)-item-1 );
+  
+  if (!list)
+  {
+    wxFAIL_MSG( "wxRadioBox wrong index" );
+    return;
+  }
+  
+  GtkButton *button = GTK_BUTTON( list->data );
+  GtkLabel *g_label = GTK_LABEL( button->child );
+  
+  gtk_label_set( g_label, label );
 }
 
 void wxRadioBox::SetLabel( int WXUNUSED(item), wxBitmap *WXUNUSED(bitmap) )
@@ -234,25 +257,56 @@ void wxRadioBox::SetLabel( int WXUNUSED(item), wxBitmap *WXUNUSED(bitmap) )
   wxFAIL_MSG("wxRadioBox::SetLabel not implemented.");
 }
 
-wxString wxRadioBox::GetLabel( int WXUNUSED(item) ) const
+void wxRadioBox::Enable( bool enable )
 {
-  wxFAIL_MSG("wxRadioBox::GetLabel not implemented.");
-  return "";
+  wxControl::Enable( enable );
+  
+  GSList *item = gtk_radio_button_group( m_radio );
+  while (item)
+  {
+    GtkButton *button = GTK_BUTTON( item->data );
+    GtkWidget *label = button->child;
+    gtk_widget_set_sensitive( GTK_WIDGET(button), enable );
+    gtk_widget_set_sensitive( label, enable );
+    item = item->next;
+  }
 }
 
-void wxRadioBox::Enable( bool WXUNUSED(enable) )
+void wxRadioBox::Enable( int item, bool enable )
 {
-  wxFAIL_MSG("wxRadioBox::Enable not implemented.");
+  GSList *list = gtk_radio_button_group( m_radio );
+  list = g_slist_nth( list, g_slist_length(list)-item-1 );
+  
+  if (!list)
+  {
+    wxFAIL_MSG( "wxRadioBox wrong index" );
+    return;
+  }
+  
+  GtkButton *button = GTK_BUTTON( list->data );
+  
+  GtkWidget *label = button->child;
+  gtk_widget_set_sensitive( GTK_WIDGET(button), enable );
+  gtk_widget_set_sensitive( label, enable );
 }
 
-void wxRadioBox::Enable( int WXUNUSED(item), bool WXUNUSED(enable) )
+void wxRadioBox::Show( int item, bool show )
 {
-  wxFAIL_MSG("wxRadioBox::Enable not implemented.");
-}
+  GSList *list = gtk_radio_button_group( m_radio );
+  list = g_slist_nth( list, g_slist_length(list)-item-1 );
+  
+  if (!list)
+  {
+    wxFAIL_MSG( "wxRadioBox wrong index" );
+    return;
+  }
+  
+  GtkWidget *button = GTK_WIDGET( list->data );
 
-void wxRadioBox::Show( int WXUNUSED(item), bool WXUNUSED(show) )
-{
-  wxFAIL_MSG("wxRadioBox::Show not implemented.");
+  if (show)
+    gtk_widget_show( button );
+  else
+    gtk_widget_hide( button );
 }
 
 wxString wxRadioBox::GetStringSelection(void) const
index 42fddad8e6d719c7d20cb1c765ad3820d59ec2f9..a9a81ed5ab262b6dfd6c9471426c0a3c28775692 100644 (file)
@@ -86,6 +86,14 @@ bool wxRadioButton::GetValue(void) const
   return GTK_TOGGLE_BUTTON(m_widget)->active;
 }
 
+void wxRadioButton::Enable( bool enable )
+{
+  wxControl::Enable( enable );
+  GtkButton *bin = GTK_BUTTON( m_widget );
+  GtkWidget *label = bin->child;
+  gtk_widget_set_sensitive( label, enable );
+}
+
 void wxRadioButton::SetFont( const wxFont &font )
 {
   if (((wxFont*)&font)->Ok())
index 3f28b07a58b729e53744d1236f89990d386d046a..abf8e8ce574a69eca0f9a70ada6c4d551b92ee13 100644 (file)
@@ -48,3 +48,10 @@ bool wxStaticBox::Create( wxWindow *parent, wxWindowID id, const wxString &label
 
   return TRUE;
 }
+
+void wxStaticBox::SetLabel( const wxString &label )
+{
+  wxControl::SetLabel( label );
+  GtkFrame *frame = GTK_FRAME( m_widget );
+  gtk_frame_set_label( frame, GetLabel() );
+}
index e5b2beb157877673c552cf3bfced13f2dbc9c33d..d710aa4fcf49eca330049c202df53c87ddb54468 100644 (file)
@@ -89,6 +89,14 @@ bool wxCheckBox::GetValue(void) const
   return tb->active;
 }
 
+void wxCheckBox::Enable( bool enable )
+{
+  wxControl::Enable( enable );
+  GtkButton *bin = GTK_BUTTON( m_widget );
+  GtkWidget *label = bin->child;
+  gtk_widget_set_sensitive( label, enable );
+}
+
 void wxCheckBox::SetFont( const wxFont &font )
 {
   if (((wxFont*)&font)->Ok())
index 31e9a8e85687b23a87f0ba88c375f4154576886b..96e417570fc41676b802b2ff3d68ecf54a560ede 100644 (file)
@@ -177,7 +177,12 @@ void wxRadioBox::SetSelection( int n )
 {
   GSList *item = gtk_radio_button_group( m_radio );
   item = g_slist_nth( item, g_slist_length(item)-n-1 );
-  if (!item) return;
+  
+  if (!item)
+  {
+    wxFAIL_MSG( "wxRadioBox wrong index" );
+    return;
+  }
   
   GtkToggleButton *button = GTK_TOGGLE_BUTTON( item->data );
   
@@ -205,28 +210,46 @@ wxString wxRadioBox::GetString( int n ) const
   GSList *item = gtk_radio_button_group( m_radio );
   
   item = g_slist_nth( item, g_slist_length(item)-n-1 );
-  if (!item) return "";
   
-  GtkToggleButton *button = GTK_TOGGLE_BUTTON( item->data );
+  if (!item)
+  {
+    wxFAIL_MSG( "wxRadioBox wrong index" );
+    return "";
+  }
   
-  GtkLabel *label = GTK_LABEL( GTK_BUTTON(button)->child );
+  GtkButton *button = GTK_BUTTON( item->data );
+  GtkLabel *label = GTK_LABEL( button->child );
   
   return wxString( label->label );
 }
 
-wxString wxRadioBox::GetLabel(void) const
+wxString wxRadioBox::GetLabel( int item ) const
 {
-  return wxControl::GetLabel();
+  return GetString( item );
 }
 
-void wxRadioBox::SetLabel( const wxString& WXUNUSED(label) )
+void wxRadioBox::SetLabel( const wxString& label )
 {
-  wxFAIL_MSG("wxRadioBox::SetLabel not implemented.");
+  wxControl::SetLabel( label );
+  GtkFrame *frame = GTK_FRAME( m_widget );
+  gtk_frame_set_label( frame, wxControl::GetLabel() );
 }
 
-void wxRadioBox::SetLabel( int WXUNUSED(item), const wxString& WXUNUSED(label) )
+void wxRadioBox::SetLabel( int item, const wxString& label )
 {
-  wxFAIL_MSG("wxRadioBox::SetLabel not implemented.");
+  GSList *list = gtk_radio_button_group( m_radio );
+  list = g_slist_nth( list, g_slist_length(list)-item-1 );
+  
+  if (!list)
+  {
+    wxFAIL_MSG( "wxRadioBox wrong index" );
+    return;
+  }
+  
+  GtkButton *button = GTK_BUTTON( list->data );
+  GtkLabel *g_label = GTK_LABEL( button->child );
+  
+  gtk_label_set( g_label, label );
 }
 
 void wxRadioBox::SetLabel( int WXUNUSED(item), wxBitmap *WXUNUSED(bitmap) )
@@ -234,25 +257,56 @@ void wxRadioBox::SetLabel( int WXUNUSED(item), wxBitmap *WXUNUSED(bitmap) )
   wxFAIL_MSG("wxRadioBox::SetLabel not implemented.");
 }
 
-wxString wxRadioBox::GetLabel( int WXUNUSED(item) ) const
+void wxRadioBox::Enable( bool enable )
 {
-  wxFAIL_MSG("wxRadioBox::GetLabel not implemented.");
-  return "";
+  wxControl::Enable( enable );
+  
+  GSList *item = gtk_radio_button_group( m_radio );
+  while (item)
+  {
+    GtkButton *button = GTK_BUTTON( item->data );
+    GtkWidget *label = button->child;
+    gtk_widget_set_sensitive( GTK_WIDGET(button), enable );
+    gtk_widget_set_sensitive( label, enable );
+    item = item->next;
+  }
 }
 
-void wxRadioBox::Enable( bool WXUNUSED(enable) )
+void wxRadioBox::Enable( int item, bool enable )
 {
-  wxFAIL_MSG("wxRadioBox::Enable not implemented.");
+  GSList *list = gtk_radio_button_group( m_radio );
+  list = g_slist_nth( list, g_slist_length(list)-item-1 );
+  
+  if (!list)
+  {
+    wxFAIL_MSG( "wxRadioBox wrong index" );
+    return;
+  }
+  
+  GtkButton *button = GTK_BUTTON( list->data );
+  
+  GtkWidget *label = button->child;
+  gtk_widget_set_sensitive( GTK_WIDGET(button), enable );
+  gtk_widget_set_sensitive( label, enable );
 }
 
-void wxRadioBox::Enable( int WXUNUSED(item), bool WXUNUSED(enable) )
+void wxRadioBox::Show( int item, bool show )
 {
-  wxFAIL_MSG("wxRadioBox::Enable not implemented.");
-}
+  GSList *list = gtk_radio_button_group( m_radio );
+  list = g_slist_nth( list, g_slist_length(list)-item-1 );
+  
+  if (!list)
+  {
+    wxFAIL_MSG( "wxRadioBox wrong index" );
+    return;
+  }
+  
+  GtkWidget *button = GTK_WIDGET( list->data );
 
-void wxRadioBox::Show( int WXUNUSED(item), bool WXUNUSED(show) )
-{
-  wxFAIL_MSG("wxRadioBox::Show not implemented.");
+  if (show)
+    gtk_widget_show( button );
+  else
+    gtk_widget_hide( button );
 }
 
 wxString wxRadioBox::GetStringSelection(void) const
index 42fddad8e6d719c7d20cb1c765ad3820d59ec2f9..a9a81ed5ab262b6dfd6c9471426c0a3c28775692 100644 (file)
@@ -86,6 +86,14 @@ bool wxRadioButton::GetValue(void) const
   return GTK_TOGGLE_BUTTON(m_widget)->active;
 }
 
+void wxRadioButton::Enable( bool enable )
+{
+  wxControl::Enable( enable );
+  GtkButton *bin = GTK_BUTTON( m_widget );
+  GtkWidget *label = bin->child;
+  gtk_widget_set_sensitive( label, enable );
+}
+
 void wxRadioButton::SetFont( const wxFont &font )
 {
   if (((wxFont*)&font)->Ok())
index 3f28b07a58b729e53744d1236f89990d386d046a..abf8e8ce574a69eca0f9a70ada6c4d551b92ee13 100644 (file)
@@ -48,3 +48,10 @@ bool wxStaticBox::Create( wxWindow *parent, wxWindowID id, const wxString &label
 
   return TRUE;
 }
+
+void wxStaticBox::SetLabel( const wxString &label )
+{
+  wxControl::SetLabel( label );
+  GtkFrame *frame = GTK_FRAME( m_widget );
+  gtk_frame_set_label( frame, GetLabel() );
+}