testgtkperiodic.c

Go to the documentation of this file.
00001 /* 
00002  * Gnome Chemisty Utils
00003  * testgtkperiodic.c 
00004  *
00005  * Copyright (C) 2006 Jean Bréfort <jean.brefort@normalesup.org>
00006  *
00007  * This program is free software; you can redistribute it and/or 
00008  * modify it under the terms of the GNU General Public License as 
00009  * published by the Free Software Foundation; either version 2 of the
00010  * License, or (at your option) any later version.
00011  *
00012  * This program is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00015  * GNU General Public License for more details.
00016  *
00017  * You should have received a copy of the GNU General Public License
00018  * along with this program; if not, write to the Free Software
00019  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301
00020  * USA
00021  */
00022 
00023 #include <gcu/gtkperiodic.h>
00024 #include <gcu/chemistry.h>
00025 #include <glib.h>
00026 #include <gtk/gtk.h>
00027 #include <stdio.h>
00028 
00033 void on_changed(GtkPeriodic* periodic, guint Z, gpointer data)
00034 {
00035         printf("Selected element:%d\n", Z);
00036 }
00037 
00038 void on_color_scheme_none(GtkToggleButton* btn, GtkWidget* periodic)
00039 {
00040         if (gtk_toggle_button_get_active(btn)) g_object_set(G_OBJECT(periodic), "color-style", GTK_PERIODIC_COLOR_NONE, NULL);
00041 }
00042 
00043 void on_color_scheme_default(GtkToggleButton* btn, GtkWidget* periodic)
00044 {
00045         if (gtk_toggle_button_get_active(btn)) g_object_set(G_OBJECT(periodic), "color-style", GTK_PERIODIC_COLOR_DEFAULT, NULL);
00046 }
00047 
00048 int main(int argc, char *argv[])
00049 {
00050         GtkWidget *window;
00051         GtkWidget *periodic;
00052         GtkVBox* vbox;
00053         GtkHBox* hbox;
00054         GtkLabel* label;
00055         GtkRadioButton *btn;
00056         GSList* btn_group;
00057         
00058         gtk_init (&argc, &argv);
00059         
00060         window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
00061         gtk_window_set_title(GTK_WINDOW(window), "GtkPeriodic test");
00062         g_signal_connect(GTK_OBJECT(window), "destroy",
00063                  GTK_SIGNAL_FUNC(gtk_main_quit),
00064                  NULL);
00065 
00066         g_object_set(G_OBJECT(window), "allow-shrink", FALSE, NULL);
00067         
00068         periodic = gtk_periodic_new();
00069         vbox = (GtkVBox*)gtk_vbox_new(FALSE, 0);
00070         hbox = (GtkHBox*)gtk_hbox_new(FALSE, 0);
00071         label = (GtkLabel*)gtk_label_new("Color scheme:");
00072         gtk_box_pack_start_defaults(GTK_BOX(hbox), GTK_WIDGET(label));
00073         btn = (GtkRadioButton*)gtk_radio_button_new_with_label(NULL, "None");
00074         g_signal_connect(G_OBJECT(btn), "toggled", (GCallback)on_color_scheme_none, (gpointer)periodic);
00075         gtk_box_pack_start_defaults(GTK_BOX(hbox), GTK_WIDGET(btn));
00076         btn_group = gtk_radio_button_get_group(btn);
00077         btn = (GtkRadioButton*)gtk_radio_button_new_with_label(btn_group, "Default");
00078         gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(btn), TRUE);
00079         g_signal_connect(G_OBJECT(btn), "toggled", (GCallback)on_color_scheme_default, (gpointer)periodic);
00080         gtk_box_pack_end_defaults(GTK_BOX(hbox), GTK_WIDGET(btn));
00081         gtk_box_pack_start_defaults(GTK_BOX(vbox), GTK_WIDGET(hbox));
00082         gtk_box_pack_start_defaults(GTK_BOX(vbox), gtk_hseparator_new());
00083 
00084         g_object_set(G_OBJECT(periodic), "color-style", GTK_PERIODIC_COLOR_DEFAULT, NULL);
00085         g_signal_connect(G_OBJECT(periodic), "element_changed", (GCallback)on_changed, NULL);
00086         gtk_box_pack_end_defaults(GTK_BOX(vbox), GTK_WIDGET(GTK_PERIODIC(periodic)));
00087         gtk_container_add(GTK_CONTAINER(window), GTK_WIDGET(vbox));
00088         gtk_widget_show_all(window);
00089 
00090         gtk_main();
00091         
00092         return(0);
00093 }

Generated on Sat Aug 11 01:04:42 2007 for The Gnome Chemistry Utils by  doxygen 1.5.3