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