00001 #include <gcu/gtkperiodic.h> 00002 #include <gcu/chemistry.h> 00003 #include <glib.h> 00004 #include <gtk/gtk.h> 00005 #include <stdio.h> 00006 00011 void on_changed(GtkPeriodic* periodic, guint Z, gpointer data) 00012 { 00013 printf("Selected element:%d\n", Z); 00014 } 00015 00016 void on_color_scheme_none(GtkToggleButton* btn, GtkWidget* periodic) 00017 { 00018 if (gtk_toggle_button_get_active(btn)) g_object_set(G_OBJECT(periodic), "color-style", GTK_PERIODIC_COLOR_NONE, NULL); 00019 } 00020 00021 void on_color_scheme_default(GtkToggleButton* btn, GtkWidget* periodic) 00022 { 00023 if (gtk_toggle_button_get_active(btn)) g_object_set(G_OBJECT(periodic), "color-style", GTK_PERIODIC_COLOR_DEFAULT, NULL); 00024 } 00025 00026 int main(int argc, char *argv[]) 00027 { 00028 GtkWidget *window; 00029 GtkWidget *periodic; 00030 GtkVBox* vbox; 00031 GtkHBox* hbox; 00032 GtkLabel* label; 00033 GtkRadioButton *btn; 00034 GSList* btn_group; 00035 00036 gtk_init (&argc, &argv); 00037 00038 window = gtk_window_new (GTK_WINDOW_TOPLEVEL); 00039 gtk_window_set_title(GTK_WINDOW(window), "GtkPeriodic test"); 00040 g_signal_connect(GTK_OBJECT(window), "destroy", 00041 GTK_SIGNAL_FUNC(gtk_main_quit), 00042 NULL); 00043 00044 g_object_set(G_OBJECT(window), "allow-shrink", FALSE, NULL); 00045 00046 periodic = gtk_periodic_new(); 00047 vbox = (GtkVBox*)gtk_vbox_new(FALSE, 0); 00048 hbox = (GtkHBox*)gtk_hbox_new(FALSE, 0); 00049 label = (GtkLabel*)gtk_label_new("Color scheme:"); 00050 gtk_box_pack_start_defaults(GTK_BOX(hbox), GTK_WIDGET(label)); 00051 btn = (GtkRadioButton*)gtk_radio_button_new_with_label(NULL, "None"); 00052 g_signal_connect(G_OBJECT(btn), "toggled", (GCallback)on_color_scheme_none, (gpointer)periodic); 00053 gtk_box_pack_start_defaults(GTK_BOX(hbox), GTK_WIDGET(btn)); 00054 btn_group = gtk_radio_button_get_group(btn); 00055 btn = (GtkRadioButton*)gtk_radio_button_new_with_label(btn_group, "Default"); 00056 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(btn), TRUE); 00057 g_signal_connect(G_OBJECT(btn), "toggled", (GCallback)on_color_scheme_default, (gpointer)periodic); 00058 gtk_box_pack_end_defaults(GTK_BOX(hbox), GTK_WIDGET(btn)); 00059 gtk_box_pack_start_defaults(GTK_BOX(vbox), GTK_WIDGET(hbox)); 00060 gtk_box_pack_start_defaults(GTK_BOX(vbox), gtk_hseparator_new()); 00061 00062 g_object_set(G_OBJECT(periodic), "color-style", GTK_PERIODIC_COLOR_DEFAULT, NULL); 00063 g_signal_connect(G_OBJECT(periodic), "element_changed", (GCallback)on_changed, NULL); 00064 gtk_box_pack_end_defaults(GTK_BOX(vbox), GTK_WIDGET(GTK_PERIODIC(periodic))); 00065 gtk_container_add(GTK_CONTAINER(window), GTK_WIDGET(vbox)); 00066 gtk_widget_show_all(window); 00067 00068 gtk_main(); 00069 00070 return(0); 00071 }