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__
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;
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;
const ID_COMBO_APPEND = 144;
const ID_COMBO_DELETE = 145;
const ID_COMBO_FONT = 146;
+const ID_COMBO_ENABLE = 147;
const ID_TEXT = 150;
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;
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)
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)
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()
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 );
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);
}
{
switch (event.GetId())
{
+ case ID_LISTBOX_ENABLE:
+ {
+ m_listbox->Enable( !((bool)event.GetInt()) );
+ break;
+ }
case ID_LISTBOX_SEL_NUM:
{
m_listbox->SetSelection( 2 );
{
switch (event.GetId())
{
+ case ID_CHOICE_ENABLE:
+ {
+ m_choice->Enable( !((bool)event.GetInt()) );
+ break;
+ }
case ID_CHOICE_SEL_NUM:
{
m_choice->SetSelection( 2 );
{
switch (event.GetId())
{
+ case ID_COMBO_ENABLE:
+ {
+ m_combo->Enable( !((bool)event.GetInt()) );
+ break;
+ }
case ID_COMBO_SEL_NUM:
{
m_combo->SetSelection( 2 );
{
switch (event.GetId())
{
+ case ID_RADIOBOX_ENABLE:
+ {
+ m_radio->Enable( !((bool)event.GetInt()) );
+ break;
+ }
case ID_RADIOBOX_SEL_NUM:
{
m_radio->SetSelection( 2 );
{
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 );
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) )
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
{
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 );
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) )
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