Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <gtk/gtk.h>
- #include "gtk_signal_handlers.h"
- #include <gdk/gdkkeysyms.h>
- GtkWidget *main_window;
- GtkWidget *text_entry;
- GtkWidget *vcontainer;
- GtkWidget *menu_bar;
- GtkToolItem *new_tb, *open_tb;
- GtkWidget *toolbar;
- GtkWidget *notebook;
- //global config
- int main(int argc, char **argv) {
- //widget init
- gtk_init(&argc, &argv);
- vcontainer = gtk_vbox_new(0,0);
- text_entry = gtk_text_view_new();
- menu_bar = gtk_menu_bar_new();
- toolbar = gtk_toolbar_new();
- notebook = gtk_notebook_new();
- //widget properties
- main_window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
- gtk_window_set_title(GTK_WINDOW(main_window),"land");
- gtk_window_set_default_size(GTK_WINDOW(main_window), 300, 200);
- //draw
- gtk_toolbar_set_style(GTK_TOOLBAR(toolbar), GTK_TOOLBAR_ICONS);
- new_tb = gtk_tool_button_new_from_stock(GTK_STOCK_NEW);
- gtk_toolbar_insert(GTK_TOOLBAR(toolbar), new_tb, -1);
- open_tb = gtk_tool_button_new_from_stock(GTK_STOCK_OPEN);
- gtk_toolbar_insert(GTK_TOOLBAR(toolbar), open_tb, -1);
- //acelerators:
- GtkAccelGroup *accels = gtk_accel_group_new();
- gtk_window_add_accel_group(GTK_WINDOW(main_window), accels);
- //experimental
- GtkWidget *menubar;
- GtkWidget *fileMenu;
- GtkWidget *fileMi,*newMi,*openMi,*quitMi;
- GtkWidget *sep;
- menubar = gtk_menu_bar_new();
- fileMenu = gtk_menu_new();
- fileMi = gtk_menu_item_new_with_mnemonic("_File");
- newMi = gtk_image_menu_item_new_from_stock(GTK_STOCK_NEW, NULL);
- openMi = gtk_image_menu_item_new_from_stock(GTK_STOCK_OPEN, NULL);
- sep = gtk_separator_menu_item_new();
- quitMi = gtk_image_menu_item_new_from_stock(GTK_STOCK_QUIT, accels);
- gtk_widget_add_accelerator(quitMi, "activate", accels, GDK_q, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE);
- gtk_widget_add_accelerator(openMi, "activate", accels, GDK_o, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE);
- //gtk_widget_set_size_request(menubar, 320, 10);
- gtk_menu_item_set_submenu(GTK_MENU_ITEM(fileMi), fileMenu);
- gtk_menu_shell_append(GTK_MENU_SHELL(menubar), fileMi);
- gtk_menu_shell_append(GTK_MENU_SHELL(fileMenu), newMi);
- gtk_menu_shell_append(GTK_MENU_SHELL(fileMenu), openMi);
- gtk_menu_shell_append(GTK_MENU_SHELL(fileMenu), sep);
- gtk_menu_shell_append(GTK_MENU_SHELL(fileMenu), quitMi);
- //signal
- gtk_box_set_homogeneous((GtkBox*)vcontainer,1);
- GtkWidget* scrolled_window = gtk_scrolled_window_new(NULL, NULL);
- gtk_container_add(GTK_CONTAINER(scrolled_window), text_entry);
- g_signal_connect(G_OBJECT(openMi), "activate",G_CALLBACK(open_file), NULL);
- g_signal_connect(G_OBJECT(quitMi), "activate",G_CALLBACK(gtk_main_quit), NULL);
- gtk_signal_connect (GTK_OBJECT (main_window), "destroy",GTK_SIGNAL_FUNC (destroy), NULL); //exit function
- gtk_signal_connect (GTK_OBJECT (main_window), "check-resize",GTK_SIGNAL_FUNC (resize), NULL); //exit function
- gtk_signal_connect(GTK_OBJECT(open_tb), "clicked",GTK_SIGNAL_FUNC (open_file), NULL);
- //box drawing:
- gtk_toolbar_set_icon_size(GTK_TOOLBAR(toolbar), GTK_ICON_SIZE_SMALL_TOOLBAR);
- gtk_notebook_append_page(GTK_NOTEBOOK(notebook), scrolled_window, gtk_label_new("untitled document"));
- //hide the tab
- gtk_widget_hide(gtk_notebook_get_nth_page((GtkNotebook*)notebook, 0));
- gtk_box_set_homogeneous (GTK_BOX (vcontainer), FALSE);
- gtk_box_pack_start((GtkBox*)vcontainer,menubar,0,0,0);
- gtk_box_pack_start((GtkBox*)vcontainer,toolbar,0,1,0);
- gtk_box_pack_start((GtkBox*)vcontainer,notebook,1,1,0);
- gtk_container_add (GTK_CONTAINER (main_window) , vcontainer);
- gtk_widget_show_all(main_window);
- gtk_main ();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement