00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
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 }