📄 mntor.c
字号:
#include<gtk/gtk.h>#include<stdio.h>#include<stdlib.h>#include"menu_rc.c"#include"page_rc.c"void add_root_menu(GtkWidget *menu_bar, RootMenu *rootmn, char *( *submenu_y[])){ GtkWidget *menu; GtkWidget *item; GtkWidget *menu_item; int i,j; for(i=0;i<MENU_TOTAL;i++){ /* creat a root menu */ menu=gtk_menu_new(); item=gtk_menu_item_new_with_label(rootmn[i].menu_x); /* creat the menu items for the root menu */ for(j=0;j<(rootmn[i].menu_num);j++){ menu_item=gtk_menu_item_new_with_label(submenu_y[i][j]); gtk_menu_append(GTK_MENU(menu),menu_item); /* binding activate signal to some callback func*/ //code... gtk_widget_show(menu_item); } gtk_widget_show(item); gtk_menu_item_set_submenu(GTK_MENU_ITEM(item),menu); gtk_menu_bar_append(GTK_MENU_BAR(menu_bar),item); }} void add_page(GtkWidget *notebook, PageForNoteBk *page){ GtkWidget *label; int i; for(i=0;i<PAGE_TOTAL;i++){ page[i].make_page(&(page[i].pagepty)); label=gtk_label_new((page[i].pagepty).tabname); gtk_notebook_insert_page(GTK_NOTEBOOK(notebook),(page[i].pagepty).vbox,label,(page[i].pagepty).pos); }}int main(int argc, char *argv[]){ GtkWidget *window; GtkWidget *vbox; GtkWidget *menu_bar; GtkWidget *notebook; GtkWidget *status_bar; gtk_init(&argc,&argv); /* creat main window(vbox) */ window=gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_widget_set_size_request(GTK_WIDGET(window),700,500); gtk_window_set_title(GTK_WINDOW(window),"moniter"); g_signal_connect(G_OBJECT(window),"delete_event",G_CALLBACK(gtk_main_quit),NULL); /* creat a vbox(menu_bar,notebook,statusbar) for window,and add it to window. */ vbox=gtk_vbox_new(FALSE,0); gtk_container_add(GTK_CONTAINER(window),vbox); /* creat menu_bar for vbox,and add it to vbox. */ menu_bar=gtk_menu_bar_new(); gtk_box_pack_start(GTK_BOX(vbox),menu_bar,FALSE,FALSE,0); gtk_widget_show(menu_bar); /* creat root menus for menu_bar,and add them to it. */ add_root_menu(menu_bar,root_menu,submenu_y); /* creat notebook widget for vbox,and add it to vbox. */ notebook=gtk_notebook_new(); gtk_notebook_set_tab_pos(GTK_NOTEBOOK(notebook),GTK_POS_TOP); /* set the tab position policy */ gtk_box_pack_start(GTK_BOX(vbox),notebook,TRUE,TRUE,0); gtk_widget_show(notebook); /* creat pages for notebook and add them to it. */ add_page(notebook,page); /* creat statusbar widget for vbox,and add it to vbox. */ status_bar=gtk_statusbar_new(); gtk_box_pack_start(GTK_BOX(vbox),status_bar,FALSE,FALSE,0); gtk_widget_show(status_bar); gtk_widget_show(vbox); gtk_widget_show(window); gtk_main(); return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -