property.c
来自「Gnome的一个单人纸牌游戏。」· C语言 代码 · 共 170 行
C
170 行
#include <gdk-pixbuf/gdk-pixbuf.h>#include <gdk-pixbuf/gnome-canvas-pixbuf.h>#include "property.h"#include "callbacks.h"/** * create_PropertyBox: * @app: the application struct * * function description: * * return values: nothing */voidcreate_PropertyBox(GoalApp *app){ GtkWidget *NotebookTheme; GtkWidget *hbox1; GtkWidget *vbox1; GtkWidget *hbox2; GtkWidget *ArrowLeft; /*GtkWidget *LabelThemeName;*/ GtkWidget *ArrowRight; GtkWidget *scrolledwindow1; GtkWidget *LabelTheme; /* --- property box --- */ app->gui.PropertyBox = gnome_property_box_new (); gtk_widget_set_name (app->gui.PropertyBox, "PropertyBox"); gtk_object_set_data (GTK_OBJECT (app->gui.PropertyBox), "PropertyBox", app->gui.PropertyBox); gtk_window_set_title (GTK_WINDOW (app->gui.PropertyBox), _("Goal - theme selector")); gtk_window_set_modal (GTK_WINDOW (app->gui.PropertyBox), TRUE); NotebookTheme = GNOME_PROPERTY_BOX (app->gui.PropertyBox)->notebook; gtk_widget_set_name (NotebookTheme, "NotebookTheme"); gtk_object_set_data (GTK_OBJECT (app->gui.PropertyBox), "NotebookTheme", NotebookTheme); gtk_widget_show (NotebookTheme); hbox1 = gtk_hbox_new (FALSE, 0); gtk_widget_set_name (hbox1, "hbox1"); gtk_widget_ref (hbox1); gtk_object_set_data_full (GTK_OBJECT (app->gui.PropertyBox), "hbox1", hbox1, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hbox1); gtk_container_add (GTK_CONTAINER (NotebookTheme), hbox1); vbox1 = gtk_vbox_new (FALSE, 0); gtk_widget_set_name (vbox1, "vbox1"); gtk_widget_ref (vbox1); gtk_object_set_data_full (GTK_OBJECT (app->gui.PropertyBox), "vbox1", vbox1, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (vbox1); gtk_box_pack_start (GTK_BOX (hbox1), vbox1, TRUE, TRUE, 0); hbox2 = gtk_hbox_new (FALSE, 0); gtk_widget_set_name (hbox2, "hbox2"); gtk_widget_ref (hbox2); gtk_object_set_data_full (GTK_OBJECT (app->gui.PropertyBox), "hbox2", hbox2, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (hbox2); gtk_box_pack_start (GTK_BOX (vbox1), hbox2, FALSE, FALSE, GOAL_PROP_BOX_PAD); /* --- button left --- */ app->gui.PropertyBoxButtonLeft= gtk_button_new(); gtk_widget_set_name (app->gui.PropertyBoxButtonLeft, "button_left"); gtk_widget_ref(app->gui.PropertyBoxButtonLeft); gtk_object_set_data_full (GTK_OBJECT (app->gui.PropertyBox), "button_left", app->gui.PropertyBoxButtonLeft, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (app->gui.PropertyBoxButtonLeft); gtk_box_pack_start (GTK_BOX (hbox2), app->gui.PropertyBoxButtonLeft, FALSE, TRUE, 0); /*gtk_button_set_relief (GTK_BUTTON (app->gui.PropertyBoxButtonLeft), GTK_RELIEF_NONE);*/ ArrowLeft = gtk_arrow_new (GTK_ARROW_LEFT, GTK_SHADOW_NONE); gtk_widget_set_name (ArrowLeft, "ArrowLeft"); gtk_widget_ref (ArrowLeft); gtk_object_set_data_full (GTK_OBJECT (app->gui.PropertyBox), "ArrowLeft", ArrowLeft, (GtkDestroyNotify) gtk_widget_unref); gtk_container_add (GTK_CONTAINER (app->gui.PropertyBoxButtonLeft), ArrowLeft); /* --- theme name label --- */ app->gui.PropertyBoxLabelThemeName = gtk_label_new (_("theme name")); gtk_widget_set_name (app->gui.PropertyBoxLabelThemeName, "LabelThemeName"); gtk_widget_ref(app->gui.PropertyBoxLabelThemeName); gtk_object_set_data_full (GTK_OBJECT (app->gui.PropertyBox), "LabelThemeName", app->gui.PropertyBoxLabelThemeName, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (app->gui.PropertyBoxLabelThemeName); gtk_box_pack_start (GTK_BOX (hbox2), app->gui.PropertyBoxLabelThemeName, TRUE, TRUE, 0); /* --- button right --- */ app->gui.PropertyBoxButtonRight = gtk_button_new (); gtk_widget_set_name (app->gui.PropertyBoxButtonRight, "button_right"); gtk_widget_ref (app->gui.PropertyBoxButtonRight); gtk_object_set_data_full (GTK_OBJECT (app->gui.PropertyBox), "button_right", app->gui.PropertyBoxButtonRight, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (app->gui.PropertyBoxButtonRight); gtk_box_pack_start (GTK_BOX (hbox2), app->gui.PropertyBoxButtonRight, FALSE, TRUE, 0); /*gtk_button_set_relief (GTK_BUTTON (app->gui.PropertyBoxButtonRight), GTK_RELIEF_NONE);*/ ArrowRight = gtk_arrow_new (GTK_ARROW_RIGHT, GTK_SHADOW_NONE); gtk_widget_set_name (ArrowRight, "ArrowRight"); gtk_widget_ref (ArrowRight); gtk_object_set_data_full (GTK_OBJECT (app->gui.PropertyBox), "ArrowRight", ArrowRight, (GtkDestroyNotify) gtk_widget_unref); gtk_container_add (GTK_CONTAINER (app->gui.PropertyBoxButtonRight), ArrowRight); scrolledwindow1 = gtk_scrolled_window_new (NULL, NULL); gtk_widget_set_name (scrolledwindow1, "scrolledwindow1"); gtk_widget_ref (scrolledwindow1); gtk_object_set_data_full (GTK_OBJECT (app->gui.PropertyBox), "scrolledwindow1", scrolledwindow1, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (scrolledwindow1); gtk_box_pack_start (GTK_BOX (vbox1), scrolledwindow1, TRUE, TRUE, GOAL_PROP_BOX_PAD); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow1), GTK_POLICY_NEVER, GTK_POLICY_NEVER); /* --- canvas --- */ gtk_widget_push_visual(gdk_rgb_get_visual()); gtk_widget_push_colormap(gdk_rgb_get_cmap()); app->gui.PropertyBoxCanvas = gnome_canvas_new (); gtk_widget_pop_colormap (); gtk_widget_pop_visual (); gtk_widget_set_name(app->gui.PropertyBoxCanvas, "CanvasTheme"); gtk_widget_ref(app->gui.PropertyBoxCanvas); gtk_object_set_data_full (GTK_OBJECT (app->gui.PropertyBox), "CanvasTheme", app->gui.PropertyBoxCanvas, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (app->gui.PropertyBoxCanvas); gtk_container_add (GTK_CONTAINER (scrolledwindow1), app->gui.PropertyBoxCanvas); GTK_WIDGET_UNSET_FLAGS(app->gui.PropertyBoxCanvas, GTK_CAN_FOCUS); gnome_canvas_set_scroll_region(GNOME_CANVAS(app->gui.PropertyBoxCanvas), 0, 0, 100, 100); /* FIXME: deprecated */ gtk_widget_set_usize(app->gui.PropertyBoxCanvas, 100, 100); LabelTheme = gtk_label_new (_("Theme")); gtk_widget_set_name (LabelTheme, "LabelTheme"); gtk_widget_ref (LabelTheme); gtk_object_set_data_full (GTK_OBJECT (app->gui.PropertyBox), "LabelTheme", LabelTheme, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (LabelTheme); gtk_notebook_set_tab_label (GTK_NOTEBOOK (NotebookTheme), gtk_notebook_get_nth_page (GTK_NOTEBOOK (NotebookTheme), 0), LabelTheme); /* --- connect to signal handlers --- */ gtk_signal_connect (GTK_OBJECT(app->gui.PropertyBoxButtonLeft), "clicked", GTK_SIGNAL_FUNC (property_left_arrow_button_press_event_cb), app); gtk_signal_connect (GTK_OBJECT (app->gui.PropertyBoxButtonRight), "clicked", GTK_SIGNAL_FUNC (property_right_arrow_button_press_event_cb), app); gtk_signal_connect(GTK_OBJECT(app->gui.PropertyBox), "apply", GTK_SIGNAL_FUNC(property_box_apply_event_cb), app); /* we need this only to know when this property box is destroyed */ gtk_signal_connect(GTK_OBJECT(app->gui.PropertyBox), "destroy", GTK_SIGNAL_FUNC(property_box_destroy_event_cb), app); /* --- set sensitiv --- */ gtk_widget_set_sensitive(app->gui.PropertyBoxButtonRight, FALSE); gtk_widget_set_sensitive(app->gui.PropertyBoxButtonLeft, FALSE);}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?