testgtkperiodic.c

Go to the documentation of this file.
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 }

Generated on Tue Aug 15 10:47:35 2006 for The Gnome Chemistry Utils by  doxygen 1.4.7