2 * Copyright (C) 2008 Liam Girdwood
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place, Suite 330,
17 * Boston, MA 02111-1307, USA.
28 #include "sky/legend.h"
30 static GtkItemFactoryEntry menu_items
[] = {
31 { "/_File", NULL
, NULL
, 0, "<Branch>" },
32 { "/File/_New", "<control>N", NULL
, 0, "<StockItem>", GTK_STOCK_NEW
},
33 { "/File/_Open", "<control>O", NULL
, 0, "<StockItem>", GTK_STOCK_OPEN
},
34 { "/File/_Save", "<control>S", NULL
, 0, "<StockItem>", GTK_STOCK_SAVE
},
35 { "/File/Save _As", NULL
, NULL
, 0, "<Item>" },
36 { "/File/sep1", NULL
, NULL
, 0, "<Separator>" },
37 { "/File/_Quit", "<CTRL>Q", gtk_main_quit
, 0, "<StockItem>", GTK_STOCK_QUIT
},
38 { "/_Help", NULL
, NULL
, 0, "<LastBranch>" },
39 { "/_Help/About", NULL
, NULL
, 0, "<Item>" },
42 static gint nmenu_items
= sizeof (menu_items
) / sizeof (menu_items
[0]);
44 static GtkWidget
*get_menubar_menu(GtkWidget
*window
)
46 GtkItemFactory
*item_factory
;
47 GtkAccelGroup
*accel_group
;
49 accel_group
= gtk_accel_group_new();
50 item_factory
= gtk_item_factory_new(GTK_TYPE_MENU_BAR
, "<main>",
53 gtk_item_factory_create_items(item_factory
, nmenu_items
, menu_items
, NULL
);
54 gtk_window_add_accel_group(GTK_WINDOW (window
), accel_group
);
56 return gtk_item_factory_get_widget(item_factory
, "<main>");
59 int main (int argc
, char **argv
)
63 GtkWidget
*gtk_legend
;
69 bindtextdomain (GETTEXT_PACKAGE
, PACKAGE_LOCALE_DIR
);
70 bind_textdomain_codeset (GETTEXT_PACKAGE
, "UTF-8");
71 textdomain (GETTEXT_PACKAGE
);
74 gtk_init (&argc
, &argv
);
78 g_critical("db_init: failed %d\n", err
);
80 window
= gtk_window_new(GTK_WINDOW_TOPLEVEL
);
81 gtk_window_set_title(GTK_WINDOW(window
), "Nova");
82 g_signal_connect (window
, "destroy",
83 G_CALLBACK (gtk_main_quit
), NULL
);
85 gtk_sky
= virtual_sky_new();
86 gtk_widget_set_usize(gtk_sky
, 800, 600);
88 gtk_legend
= legend_new();
89 gtk_widget_set_usize(gtk_legend
, -1, 50);
91 menubar
= get_menubar_menu (window
);
93 vbox
= gtk_vbox_new(FALSE
, 0);
94 gtk_container_add(GTK_CONTAINER(window
), vbox
);
95 gtk_box_pack_start (GTK_BOX (vbox
), menubar
, FALSE
, TRUE
, 0);
96 gtk_box_pack_start(GTK_BOX(vbox
),
99 gtk_box_pack_start(GTK_BOX(vbox
),
103 gtk_widget_show_all(window
);
104 sky_connect_signals(gtk_sky
);
105 sky_set_legend(gtk_sky
, gtk_legend
);