File: menus.c

package info (click to toggle)
xgdipc 1.2-1
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 248 kB
  • ctags: 128
  • sloc: ansic: 801; sh: 175; makefile: 118
file content (117 lines) | stat: -rw-r--r-- 3,710 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
#include "xgdipc.h"


#if (GTK_MINOR_VERSION < 1 && GTK_MAJOR_VERSION <= 1)

static GtkMenuEntry menu[] = {
        {"<Main>/File/About", "<control>A", show_about, NULL},
        {"<Main>/File/<separator>", NULL, NULL, NULL},
        {"<Main>/File/Exit", "<control>X", gtk_main_quit, NULL} 
};

void get_main_menu(GtkWidget *window, GtkWidget **menubar) {
           int nmenu_items = sizeof(menu) / sizeof(menu[0]);
           GtkMenuFactory *factory;
           GtkMenuFactory *subfactory;

           factory = gtk_menu_factory_new(GTK_MENU_FACTORY_MENU_BAR);
           subfactory = gtk_menu_factory_new(GTK_MENU_FACTORY_MENU_BAR);

           gtk_menu_factory_add_subfactory(factory, subfactory, "<Main>");
           gtk_menu_factory_add_entries(factory, menu, nmenu_items);
           gtk_window_add_accelerator_table(GTK_WINDOW(window), subfactory->table);
           
           if (menubar)
               *menubar = subfactory->widget;
 }


#else

void get_main_menu(GtkWidget *window, GtkWidget *vbox) {
   GtkWidget *menubar;
   GtkWidget *menubox;
   GtkAccelGroup *accel;
   GtkItemFactory *factory;

   GtkItemFactoryEntry menu[] = {
       {"/_File", "<alt>F", NULL, 0, "<Branch>"},
       {"/File/About", "<control>A", show_about, 0},
       {"/File/sep1", NULL, NULL, 0, "<Separator>"},
       {"/File/Exit", "<control>X", gtk_main_quit, 0} 
    };

   int nmenu_items = sizeof(menu) / sizeof(menu[0]);

   accel = gtk_accel_group_new();
   factory = gtk_item_factory_new( GTK_TYPE_MENU_BAR, "<Main>", accel );
   gtk_item_factory_create_items(factory, nmenu_items, menu, NULL);

   menubar = gtk_item_factory_get_widget( factory, "<Main>" );
   menubox = gtk_handle_box_new();
   gtk_accel_group_attach( accel, GTK_OBJECT(window ) );
   gtk_container_add(GTK_CONTAINER(menubox), menubar);
   gtk_box_pack_start(GTK_BOX(vbox), menubox, FALSE, TRUE, 0);
   gtk_widget_show(menubox);
   gtk_widget_show(menubar); 
 }

#endif

void show_about(GtkWidget *widget, gpointer data) {

  GtkWidget *window;
  GtkWidget *table; 
  GtkWidget *label1;
  GtkWidget *label2;
  GtkWidget *button;

 GtkWidget *box1;
 GtkWidget *pixmapwid;
 GdkBitmap *mask;
 GdkPixmap *pixmap;
 GtkStyle *style;

  window = gtk_window_new(GTK_WINDOW_DIALOG);
  gtk_signal_connect(GTK_OBJECT(window), "destroy", GTK_SIGNAL_FUNC(gtk_widget_destroy), window);
  gtk_window_set_title(GTK_WINDOW(window), "About: X-GnuDIP2");
  gtk_window_set_policy (GTK_WINDOW (window), FALSE, FALSE, FALSE);
  gtk_widget_realize(window);
  
  table = gtk_table_new(8, 4, TRUE);
  gtk_container_add(GTK_CONTAINER(window), table);

   style = gtk_widget_get_style (window);
  pixmap = gdk_pixmap_create_from_xpm (GTK_WIDGET(window)->window, &mask,
                                      &style->bg[GTK_STATE_NORMAL],
#ifdef XPMPATH
                                      XPMPATH);
#else
                                      "xgdip.xpm");
#endif

 pixmapwid = gtk_pixmap_new (pixmap, mask);
 gtk_widget_show(pixmapwid);


  label1 = gtk_label_new("By: Mike Machado <mike@innercite.com>");
  label2 = gtk_label_new("    Ryan Wahle <wahle@innercite.com>");

  gtk_widget_show(label1);
  gtk_widget_show(label2);

  gtk_table_attach_defaults (GTK_TABLE (table), pixmapwid, 0, 4, 2, 4);
  gtk_table_attach_defaults (GTK_TABLE (table), label1, 0, 4, 5, 6);
  gtk_table_attach_defaults (GTK_TABLE (table), label2, 0, 4, 6, 7);

  button = gtk_button_new_with_label ("Ok");
  gtk_signal_connect_object (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC(gtk_widget_destroy), GTK_OBJECT(window));
  gtk_widget_show(button);
    

  gtk_table_attach_defaults (GTK_TABLE (table), button, 1, 3, 7, 8);

  gtk_widget_show(table);
  gtk_widget_show(window); 

}