buttonbox.c

来自「gtk1.2的教程」· C语言 代码 · 共 123 行

C
123
字号
/* example-start buttonbox buttonbox.c */#include <gtk/gtk.h>/* Create a Button Box with the specified parameters */GtkWidget *create_bbox( gint  horizontal,                        char *title,                        gint  spacing,                        gint  child_w,                        gint  child_h,                        gint  layout ){  GtkWidget *frame;  GtkWidget *bbox;  GtkWidget *button;  frame = gtk_frame_new (title);  if (horizontal)    bbox = gtk_hbutton_box_new ();  else    bbox = gtk_vbutton_box_new ();  gtk_container_set_border_width (GTK_CONTAINER (bbox), 5);  gtk_container_add (GTK_CONTAINER (frame), bbox);  /* Set the appearance of the Button Box */  gtk_button_box_set_layout (GTK_BUTTON_BOX (bbox), layout);  gtk_button_box_set_spacing (GTK_BUTTON_BOX (bbox), spacing);  gtk_button_box_set_child_size (GTK_BUTTON_BOX (bbox), child_w, child_h);  button = gtk_button_new_with_label ("OK");  gtk_container_add (GTK_CONTAINER (bbox), button);  button = gtk_button_new_with_label ("Cancel");  gtk_container_add (GTK_CONTAINER (bbox), button);  button = gtk_button_new_with_label ("Help");  gtk_container_add (GTK_CONTAINER (bbox), button);  return(frame);}int main( int   argc,          char *argv[] ){  static GtkWidget* window = NULL;  GtkWidget *main_vbox;  GtkWidget *vbox;  GtkWidget *hbox;  GtkWidget *frame_horz;  GtkWidget *frame_vert;  /* Initialize GTK */  gtk_init( &argc, &argv );  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);  gtk_window_set_title (GTK_WINDOW (window), "Button Boxes");  gtk_signal_connect (GTK_OBJECT (window), "destroy",		      GTK_SIGNAL_FUNC(gtk_main_quit),		      NULL);  gtk_container_set_border_width (GTK_CONTAINER (window), 10);  main_vbox = gtk_vbox_new (FALSE, 0);  gtk_container_add (GTK_CONTAINER (window), main_vbox);  frame_horz = gtk_frame_new ("Horizontal Button Boxes");  gtk_box_pack_start (GTK_BOX (main_vbox), frame_horz, TRUE, TRUE, 10);  vbox = gtk_vbox_new (FALSE, 0);  gtk_container_set_border_width (GTK_CONTAINER (vbox), 10);  gtk_container_add (GTK_CONTAINER (frame_horz), vbox);  gtk_box_pack_start (GTK_BOX (vbox),	   create_bbox (TRUE, "Spread (spacing 40)", 40, 85, 20, GTK_BUTTONBOX_SPREAD),		      TRUE, TRUE, 0);  gtk_box_pack_start (GTK_BOX (vbox),	   create_bbox (TRUE, "Edge (spacing 30)", 30, 85, 20, GTK_BUTTONBOX_EDGE),		      TRUE, TRUE, 5);  gtk_box_pack_start (GTK_BOX (vbox),           create_bbox (TRUE, "Start (spacing 20)", 20, 85, 20, GTK_BUTTONBOX_START),		      TRUE, TRUE, 5);  gtk_box_pack_start (GTK_BOX (vbox),	   create_bbox (TRUE, "End (spacing 10)", 10, 85, 20, GTK_BUTTONBOX_END),		      TRUE, TRUE, 5);  frame_vert = gtk_frame_new ("Vertical Button Boxes");  gtk_box_pack_start (GTK_BOX (main_vbox), frame_vert, TRUE, TRUE, 10);  hbox = gtk_hbox_new (FALSE, 0);  gtk_container_set_border_width (GTK_CONTAINER (hbox), 10);  gtk_container_add (GTK_CONTAINER (frame_vert), hbox);  gtk_box_pack_start (GTK_BOX (hbox),           create_bbox (FALSE, "Spread (spacing 5)", 5, 85, 20, GTK_BUTTONBOX_SPREAD),		      TRUE, TRUE, 0);  gtk_box_pack_start (GTK_BOX (hbox),           create_bbox (FALSE, "Edge (spacing 30)", 30, 85, 20, GTK_BUTTONBOX_EDGE),		      TRUE, TRUE, 5);  gtk_box_pack_start (GTK_BOX (hbox),           create_bbox (FALSE, "Start (spacing 20)", 20, 85, 20, GTK_BUTTONBOX_START),		      TRUE, TRUE, 5);  gtk_box_pack_start (GTK_BOX (hbox),           create_bbox (FALSE, "End (spacing 20)", 20, 85, 20, GTK_BUTTONBOX_END),		      TRUE, TRUE, 5);  gtk_widget_show_all (window);  /* Enter the event loop */  gtk_main ();      return(0);}/* example-end */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?