본문 바로가기

분류없음

GTK+ 3.0 Menu 만들기


안녕하세요
암흑도깨비입니다. 요즘에는 GTK를 이용하여 이런저런 프로그램을 제작해 보고 있습니다. 

현재 그놈(GNOME)에서 GTK 3.0 버전을 내놓으면서 API들이 많이 바뀌었습니다. 
그리고 무엇보다 한국에서 떠도는 웹문서들은 거진 2.0을 이용하여 만들어 놓은거라
아래의 소스는 Menu 만드는 겁니다. 

 Example MenuBar source

#include <gtk/gtk.h>
void InitializeUserInterface()
{
 GtkWidget *Window;
 GtkWidget *MenuBox;
 GtkWidget *MenuBar;
 GtkAccelGroup *menuGroup;

 menuGroup = gtk_accel_group_new();
 
 /* Init Window setting */
 Window  = gtk_window_new(GTK_WINDOW_TOPLEVEL);
 gtk_window_set_title(GTK_WINDOW(Window), "Menubar test");
 gtk_window_set_default_size(GTK_WINDOW(Window), 400, 300);

 MenuBox = gtk_vbox_new(FALSE, 0);
 gtk_container_add(GTK_CONTAINER(Window), MenuBox);

 MenuBar = gtk_menu_bar_new();
 gtk_box_pack_start(GTK_BOX(MenuBox), MenuBar, FALSE, FALSE, 0);

 GtkWidget *FileMenu;
 FileMenu = gtk_menu_item_new_with_label("File");

 GtkWidget *MainMenu;
 MainMenu = gtk_menu_new();

 gtk_menu_item_set_submenu(GTK_MENU_ITEM(FileMenu), MainMenu);
 gtk_menu_shell_append(GTK_MENU_SHELL(MenuBar), FileMenu);

 GtkWidget *FileNew;
 FileNew = gtk_image_menu_item_new_with_label("New WebBrowser");
 gtk_menu_shell_append(GTK_MENU_SHELL(MainMenu), FileNew);

 gtk_window_add_accel_group(GTK_WINDOW(Window), menuGroup);

 gtk_widget_show_all(Window);
}

int main(int argc, char *argv[])
{
 gtk_init(&argc, &argv);
 InitializeUserInterface();

 gtk_main();

 return 0;