void Dialog::addRadioIcons(GtkWidget* vbox, const char* name, StringArrayRange icons, const IntImportCallback& importViewer, const IntExportCallback& exportViewer) { GtkWidget* table = gtk_table_new (2, static_cast<guint>(icons.last - icons.first), FALSE); gtk_widget_show (table); gtk_table_set_row_spacings (GTK_TABLE (table), 5); gtk_table_set_col_spacings (GTK_TABLE (table), 5); GSList* group = 0; GtkWidget* radio = 0; for(StringArrayRange::Iterator icon = icons.first; icon != icons.last; ++icon) { guint pos = static_cast<guint>(icon - icons.first); GtkImage* image = new_local_image(*icon); gtk_widget_show(GTK_WIDGET(image)); gtk_table_attach(GTK_TABLE(table), GTK_WIDGET(image), pos, pos+1, 0, 1, (GtkAttachOptions) (0), (GtkAttachOptions) (0), 0, 0); radio = gtk_radio_button_new(group); gtk_widget_show (radio); gtk_table_attach (GTK_TABLE (table), radio, pos, pos+1, 1, 2, (GtkAttachOptions) (0), (GtkAttachOptions) (0), 0, 0); group = gtk_radio_button_get_group(GTK_RADIO_BUTTON(radio)); } AddIntRadioData(*GTK_RADIO_BUTTON(radio), importViewer, exportViewer); DialogVBox_packRow(GTK_VBOX(vbox), GTK_WIDGET(DialogRow_new(name, table))); }
void button_set_icon( GtkButton* button, const char* icon ){ GtkImage* image = new_local_image( icon ); gtk_widget_show( GTK_WIDGET( image ) ); gtk_container_add( GTK_CONTAINER( button ), GTK_WIDGET( image ) ); }