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 }