Advertisement
amousa1990

log.c

Mar 18th, 2016
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.53 KB | None | 0 0
  1. #include <gtk/gtk.h>
  2. #include "gtk_signal_handlers.h"
  3. #include <gdk/gdkkeysyms.h>
  4.  
  5. GtkWidget *main_window;
  6. GtkWidget *text_entry;
  7. GtkWidget *vcontainer;
  8. GtkWidget *menu_bar;
  9. GtkToolItem *new_tb, *open_tb;
  10. GtkWidget *toolbar;
  11. GtkWidget *notebook;
  12.  
  13. //global config
  14. int main(int argc, char **argv) {
  15. //widget init
  16. gtk_init(&argc, &argv);
  17. vcontainer = gtk_vbox_new(0,0);
  18. text_entry = gtk_text_view_new();
  19. menu_bar = gtk_menu_bar_new();
  20. toolbar = gtk_toolbar_new();
  21. notebook = gtk_notebook_new();
  22. //widget properties
  23. main_window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
  24. gtk_window_set_title(GTK_WINDOW(main_window),"land");
  25. gtk_window_set_default_size(GTK_WINDOW(main_window), 300, 200);
  26. //draw
  27. gtk_toolbar_set_style(GTK_TOOLBAR(toolbar), GTK_TOOLBAR_ICONS);
  28. new_tb = gtk_tool_button_new_from_stock(GTK_STOCK_NEW);
  29. gtk_toolbar_insert(GTK_TOOLBAR(toolbar), new_tb, -1);
  30. open_tb = gtk_tool_button_new_from_stock(GTK_STOCK_OPEN);
  31. gtk_toolbar_insert(GTK_TOOLBAR(toolbar), open_tb, -1);
  32. //acelerators:
  33. GtkAccelGroup *accels = gtk_accel_group_new();
  34. gtk_window_add_accel_group(GTK_WINDOW(main_window), accels);
  35. //experimental
  36.  
  37. GtkWidget *menubar;
  38. GtkWidget *fileMenu;
  39. GtkWidget *fileMi,*newMi,*openMi,*quitMi;
  40. GtkWidget *sep;
  41. menubar = gtk_menu_bar_new();
  42. fileMenu = gtk_menu_new();
  43. fileMi = gtk_menu_item_new_with_mnemonic("_File");
  44. newMi = gtk_image_menu_item_new_from_stock(GTK_STOCK_NEW, NULL);
  45. openMi = gtk_image_menu_item_new_from_stock(GTK_STOCK_OPEN, NULL);
  46. sep = gtk_separator_menu_item_new();
  47. quitMi = gtk_image_menu_item_new_from_stock(GTK_STOCK_QUIT, accels);
  48. gtk_widget_add_accelerator(quitMi, "activate", accels, GDK_q, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE);
  49. gtk_widget_add_accelerator(openMi, "activate", accels, GDK_o, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE);
  50. //gtk_widget_set_size_request(menubar, 320, 10);
  51. gtk_menu_item_set_submenu(GTK_MENU_ITEM(fileMi), fileMenu);
  52. gtk_menu_shell_append(GTK_MENU_SHELL(menubar), fileMi);
  53. gtk_menu_shell_append(GTK_MENU_SHELL(fileMenu), newMi);
  54. gtk_menu_shell_append(GTK_MENU_SHELL(fileMenu), openMi);
  55. gtk_menu_shell_append(GTK_MENU_SHELL(fileMenu), sep);
  56. gtk_menu_shell_append(GTK_MENU_SHELL(fileMenu), quitMi);
  57. //signal
  58. gtk_box_set_homogeneous((GtkBox*)vcontainer,1);
  59. GtkWidget* scrolled_window = gtk_scrolled_window_new(NULL, NULL);
  60. gtk_container_add(GTK_CONTAINER(scrolled_window), text_entry);
  61.  
  62. g_signal_connect(G_OBJECT(openMi), "activate",G_CALLBACK(open_file), NULL);
  63. g_signal_connect(G_OBJECT(quitMi), "activate",G_CALLBACK(gtk_main_quit), NULL);
  64. gtk_signal_connect (GTK_OBJECT (main_window), "destroy",GTK_SIGNAL_FUNC (destroy), NULL); //exit function
  65. gtk_signal_connect (GTK_OBJECT (main_window), "check-resize",GTK_SIGNAL_FUNC (resize), NULL); //exit function
  66. gtk_signal_connect(GTK_OBJECT(open_tb), "clicked",GTK_SIGNAL_FUNC (open_file), NULL);
  67.  
  68. //box drawing:
  69. gtk_toolbar_set_icon_size(GTK_TOOLBAR(toolbar), GTK_ICON_SIZE_SMALL_TOOLBAR);
  70. gtk_notebook_append_page(GTK_NOTEBOOK(notebook), scrolled_window, gtk_label_new("untitled document"));
  71. //hide the tab
  72. gtk_widget_hide(gtk_notebook_get_nth_page((GtkNotebook*)notebook, 0));
  73. gtk_box_set_homogeneous (GTK_BOX (vcontainer), FALSE);
  74. gtk_box_pack_start((GtkBox*)vcontainer,menubar,0,0,0);
  75. gtk_box_pack_start((GtkBox*)vcontainer,toolbar,0,1,0);
  76. gtk_box_pack_start((GtkBox*)vcontainer,notebook,1,1,0);
  77. gtk_container_add (GTK_CONTAINER (main_window) , vcontainer);
  78. gtk_widget_show_all(main_window);
  79. gtk_main ();
  80. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement