static VALUE menutoolbutton_initialize(int argc, VALUE *argv, VALUE self) { GtkToolItem* item; if (argc == 0){ item = gtk_menu_tool_button_new((GtkWidget*)NULL, (const gchar*)NULL); } else if (TYPE(argv[0]) == T_SYMBOL || TYPE(argv[0]) == T_STRING){ VALUE stock_id; rb_scan_args(argc, argv, "10", &stock_id); if (TYPE(stock_id) == T_SYMBOL){ item = gtk_menu_tool_button_new_from_stock(rb_id2name(SYM2ID(stock_id))); } else { item = gtk_menu_tool_button_new_from_stock(RVAL2CSTR(stock_id)); } } else { VALUE icon_widget, label; rb_scan_args(argc, argv, "11", &icon_widget, &label); item = gtk_menu_tool_button_new(GTK_WIDGET(RVAL2GOBJ(icon_widget)), NIL_P(label) ? (const gchar*)NULL : RVAL2CSTR(label)); } RBGTK_INITIALIZE(self, item); return Qnil; }
GtkToolItem * ToolButton::newItem() { XOJ_CHECK_TYPE(ToolButton); GtkToolItem * it; if (!stock.isEmpty()) { if (popupMenu) { it = gtk_menu_tool_button_new_from_stock(stock.c_str()); gtk_menu_tool_button_set_menu(GTK_MENU_TOOL_BUTTON(it), popupMenu); } else { it = gtk_tool_button_new_from_stock(stock.c_str()); } } else if (group != GROUP_NOGROUP) { if (popupMenu) { it = gtk_menu_tool_toggle_button_new(this->gui->loadIcon(iconName.c_str()), description.c_str()); gtk_menu_tool_toggle_button_set_menu(GTK_MENU_TOOL_TOGGLE_BUTTON(it), popupMenu); } else { it = gtk_toggle_tool_button_new(); gtk_tool_button_set_icon_widget(GTK_TOOL_BUTTON(it), this->gui->loadIcon(iconName.c_str())); } } else { if (popupMenu) { it = gtk_menu_tool_button_new(this->gui->loadIcon(iconName.c_str()), description.c_str()); gtk_menu_tool_button_set_menu(GTK_MENU_TOOL_BUTTON(it), popupMenu); } else { it = gtk_tool_button_new(this->gui->loadIcon(iconName.c_str()), description.c_str()); } } gtk_tool_item_set_tooltip_text(GTK_TOOL_ITEM(it), description.c_str()); gtk_tool_button_set_label(GTK_TOOL_BUTTON(it), description.c_str()); return it; }
static GtkWidget* create_toolbar (GtkWidget *window) { /* Create toolbar */ GtkToolbar *toolbar = GTK_TOOLBAR (gtk_toolbar_new ()); gtk_toolbar_set_icon_size (toolbar, GTK_ICON_SIZE_LARGE_TOOLBAR); GtkToolItem *quit; toolbar_add_button (toolbar, gtk_menu_tool_button_new_from_stock (GTK_STOCK_GOTO_FIRST), FOLDING_TAB_PANE_GET_FROM_WINDOW (window, FOLDING_TAB_PANE_LEFT)); toolbar_add_button (toolbar, gtk_menu_tool_button_new_from_stock (GTK_STOCK_GOTO_LAST), FOLDING_TAB_PANE_GET_FROM_WINDOW (window, FOLDING_TAB_PANE_RIGHT)); toolbar_add_button (toolbar, gtk_menu_tool_button_new_from_stock (GTK_STOCK_GOTO_TOP), FOLDING_TAB_PANE_GET_FROM_WINDOW (window, FOLDING_TAB_PANE_TOP)); toolbar_add_button (toolbar, gtk_menu_tool_button_new_from_stock (GTK_STOCK_GOTO_BOTTOM), FOLDING_TAB_PANE_GET_FROM_WINDOW (window, FOLDING_TAB_PANE_BOTTOM)); gtk_toolbar_insert (GTK_TOOLBAR (toolbar), gtk_separator_tool_item_new(), gtk_toolbar_get_n_items (toolbar)); quit = gtk_tool_button_new_from_stock (GTK_STOCK_QUIT); gtk_toolbar_insert (toolbar, quit, gtk_toolbar_get_n_items (toolbar)); g_signal_connect (G_OBJECT (quit), "clicked", G_CALLBACK (application_shutdown), toolbar); return GTK_WIDGET (toolbar); }
GtkWidget * make_toolbar(xsltTransformer *ttt) { GtkToolbar *toolbar; GtkWidget *button; toolbar = gtk_toolbar_new(); gtk_toolbar_set_icon_size(GTK_TOOLBAR(toolbar), GTK_ICON_SIZE_MENU); gtk_toolbar_set_style(GTK_TOOLBAR(toolbar), GTK_TOOLBAR_ICONS); button = gtk_menu_tool_button_new_from_stock("gtk-open"); g_signal_connect(button, "clicked", G_CALLBACK(xslt_add_file_menu_action), ttt); gtk_toolbar_insert(toolbar, button,-1); /* Sub menu for file button */ GtkWidget *file_menu, *open_item; file_menu = gtk_menu_new(); open_item = gtk_menu_item_new_with_label(_("Add File")); gtk_menu_shell_append(GTK_MENU_SHELL(file_menu), open_item); g_signal_connect(open_item, "activate", G_CALLBACK(xslt_add_file_menu_action), ttt); gtk_widget_show (open_item); open_item = gtk_menu_item_new_with_label(_("Open Files...")); gtk_menu_item_set_submenu(GTK_MENU_ITEM(open_item),gtk_menu_new()); gtk_widget_show (open_item); gtk_menu_shell_append(GTK_MENU_SHELL(file_menu), open_item); g_signal_connect (open_item, "activate", G_CALLBACK (xslt_add_file_cb), ttt); gtk_menu_tool_button_set_menu(button, file_menu); button = gtk_tool_button_new_from_stock("gtk-save-as"); gtk_toolbar_insert(toolbar, button,-1); g_signal_connect(button, "clicked", G_CALLBACK(xslt_save_file), ttt); button = gtk_tool_button_new_from_stock("gtk-media-play"); gtk_toolbar_insert(toolbar, button,-1); g_signal_connect(button, "clicked", G_CALLBACK(xslt_transform), ttt); return toolbar; }
GtkWidget* ptk_toolbar_add_items_from_data( GtkWidget* toolbar, PtkToolItemEntry* entries, gpointer cb_data, GtkTooltips* tooltips ) { GtkWidget* btn; PtkToolItemEntry* ent; GtkWidget* image; GtkWidget* menu; GtkIconSize icon_size = gtk_toolbar_get_icon_size (GTK_TOOLBAR (toolbar)); GSList* radio_group = NULL; for( ent = entries; ; ++ent ) { /* Normal tool item */ if( G_LIKELY( ent->stock_icon || ent->tooltip || ent->label ) ) { /* Stock item */ if( G_LIKELY(ent->stock_icon) ) image = gtk_image_new_from_stock( ent->stock_icon, icon_size ); else image = NULL; if( G_LIKELY( ! ent->menu ) ) { /* Normal button */ if( G_UNLIKELY( PTK_IS_STOCK_ITEM(ent) ) ) btn = GTK_WIDGET(gtk_tool_button_new_from_stock ( ent->label )); else btn = GTK_WIDGET(gtk_tool_button_new ( image, _(ent->label) )); } else if( G_UNLIKELY( PTK_IS_CHECK_TOOL_ITEM(ent) ) ) { if( G_UNLIKELY( PTK_IS_STOCK_ITEM(ent) ) ) btn = GTK_WIDGET(gtk_toggle_tool_button_new_from_stock(ent->label)); else { btn = GTK_WIDGET(gtk_toggle_tool_button_new ()); gtk_tool_button_set_icon_widget( GTK_TOOL_BUTTON(btn), image ); gtk_tool_button_set_label(GTK_TOOL_BUTTON(btn), _(ent->label)); } } else if( G_UNLIKELY( PTK_IS_RADIO_TOOL_ITEM(ent) ) ) { if( G_UNLIKELY( PTK_IS_STOCK_ITEM(ent) ) ) btn = GTK_WIDGET(gtk_radio_tool_button_new_from_stock( radio_group, ent->label )); else { btn = GTK_WIDGET(gtk_radio_tool_button_new( radio_group )); if( G_LIKELY( PTK_IS_RADIO_TOOL_ITEM( (ent + 1) ) ) ) radio_group = gtk_radio_tool_button_get_group( GTK_RADIO_TOOL_BUTTON(btn) ); else radio_group = NULL; gtk_tool_button_set_icon_widget( GTK_TOOL_BUTTON(btn), image ); gtk_tool_button_set_label(GTK_TOOL_BUTTON(btn), _(ent->label)); } } else if( ent->menu ) { if( G_UNLIKELY( PTK_IS_STOCK_ITEM(ent) ) ) btn = GTK_WIDGET(gtk_menu_tool_button_new_from_stock ( ent->label )); else { btn = GTK_WIDGET(gtk_menu_tool_button_new ( image, _(ent->label) )); if( G_LIKELY( 3 < (int)ent->menu ) ) { /* Sub menu */ menu = ptk_menu_new_from_data( ent->menu, cb_data, NULL ); gtk_menu_tool_button_set_menu( GTK_MENU_TOOL_BUTTON(btn), menu ); } } } if( G_LIKELY(ent->callback) ) { /* Callback */ if( G_LIKELY( ent->menu == NULL || ent->menu == PTK_EMPTY_MENU) ) g_signal_connect( btn, "clicked", ent->callback, cb_data); else g_signal_connect( btn, "toggled", ent->callback, cb_data); } if( G_LIKELY(ent->tooltip) ) gtk_tool_item_set_tooltip (GTK_TOOL_ITEM (btn), tooltips, _(ent->tooltip), NULL); } else { if( ! PTK_IS_SEPARATOR_TOOL_ITEM(ent) ) /* End of menu */ break; btn = (GtkWidget*)gtk_separator_tool_item_new (); } gtk_toolbar_insert ( GTK_TOOLBAR(toolbar), GTK_TOOL_ITEM(btn), -1 ); if( G_UNLIKELY(ent->ret) ) {/* Return */ *ent->ret = btn; ent->ret = NULL; } } return NULL; }
gint main (gint argc, gchar **argv) { GtkWidget *window, *toolbar, *table, *treeview, *scrolled_window; GtkWidget *hbox, *hbox1, *hbox2, *checkbox, *option_menu, *menu; gint i; static const gchar *toolbar_styles[] = { "icons", "text", "both (vertical)", "both (horizontal)" }; GtkToolItem *item; GtkListStore *store; GtkWidget *image; GtkWidget *menuitem; GtkWidget *button; GtkWidget *label; GIcon *gicon; GSList *group; gtk_init (&argc, &argv); window = gtk_window_new (GTK_WINDOW_TOPLEVEL); g_signal_connect (window, "destroy", G_CALLBACK(gtk_main_quit), NULL); table = gtk_table_new (4, 2, FALSE); gtk_container_add (GTK_CONTAINER (window), table); toolbar = gtk_toolbar_new (); gtk_table_attach (GTK_TABLE (table), toolbar, 0,2, 0,1, GTK_FILL|GTK_EXPAND, GTK_FILL, 0, 0); hbox1 = gtk_hbox_new (FALSE, 3); gtk_container_set_border_width (GTK_CONTAINER (hbox1), 5); gtk_table_attach (GTK_TABLE (table), hbox1, 1,2, 1,2, GTK_FILL|GTK_EXPAND, GTK_FILL, 0, 0); hbox2 = gtk_hbox_new (FALSE, 2); gtk_container_set_border_width (GTK_CONTAINER (hbox2), 5); gtk_table_attach (GTK_TABLE (table), hbox2, 1,2, 2,3, GTK_FILL|GTK_EXPAND, GTK_FILL, 0, 0); checkbox = gtk_check_button_new_with_mnemonic("_Vertical"); gtk_box_pack_start (GTK_BOX (hbox1), checkbox, FALSE, FALSE, 0); g_signal_connect (checkbox, "toggled", G_CALLBACK (change_orientation), toolbar); checkbox = gtk_check_button_new_with_mnemonic("_Show Arrow"); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbox), TRUE); gtk_box_pack_start (GTK_BOX (hbox1), checkbox, FALSE, FALSE, 0); g_signal_connect (checkbox, "toggled", G_CALLBACK (change_show_arrow), toolbar); checkbox = gtk_check_button_new_with_mnemonic("_Set Toolbar Style:"); g_signal_connect (checkbox, "toggled", G_CALLBACK (set_toolbar_style_toggled), toolbar); gtk_box_pack_start (GTK_BOX (hbox1), checkbox, FALSE, FALSE, 0); option_menu = gtk_option_menu_new(); gtk_widget_set_sensitive (option_menu, FALSE); g_object_set_data (G_OBJECT (checkbox), "option-menu", option_menu); menu = gtk_menu_new(); for (i = 0; i < G_N_ELEMENTS (toolbar_styles); i++) { GtkWidget *menuitem; menuitem = gtk_menu_item_new_with_label (toolbar_styles[i]); gtk_container_add (GTK_CONTAINER (menu), menuitem); gtk_widget_show (menuitem); } gtk_option_menu_set_menu (GTK_OPTION_MENU (option_menu), menu); gtk_option_menu_set_history (GTK_OPTION_MENU (option_menu), GTK_TOOLBAR (toolbar)->style); gtk_box_pack_start (GTK_BOX (hbox2), option_menu, FALSE, FALSE, 0); g_signal_connect (option_menu, "changed", G_CALLBACK (change_toolbar_style), toolbar); checkbox = gtk_check_button_new_with_mnemonic("_Set Icon Size:"); g_signal_connect (checkbox, "toggled", G_CALLBACK (set_icon_size_toggled), toolbar); gtk_box_pack_start (GTK_BOX (hbox2), checkbox, FALSE, FALSE, 0); option_menu = gtk_option_menu_new(); g_object_set_data (G_OBJECT (checkbox), "option-menu", option_menu); gtk_widget_set_sensitive (option_menu, FALSE); menu = gtk_menu_new(); menuitem = gtk_menu_item_new_with_label ("small toolbar"); g_object_set_data (G_OBJECT (menuitem), "value-id", GINT_TO_POINTER (GTK_ICON_SIZE_SMALL_TOOLBAR)); gtk_container_add (GTK_CONTAINER (menu), menuitem); gtk_widget_show (menuitem); menuitem = gtk_menu_item_new_with_label ("large toolbar"); g_object_set_data (G_OBJECT (menuitem), "value-id", GINT_TO_POINTER (GTK_ICON_SIZE_LARGE_TOOLBAR)); gtk_container_add (GTK_CONTAINER (menu), menuitem); gtk_widget_show (menuitem); gtk_option_menu_set_menu (GTK_OPTION_MENU (option_menu), menu); gtk_box_pack_start (GTK_BOX (hbox2), option_menu, FALSE, FALSE, 0); g_signal_connect (option_menu, "changed", G_CALLBACK (icon_size_history_changed), toolbar); scrolled_window = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_table_attach (GTK_TABLE (table), scrolled_window, 1,2, 3,4, GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 0, 0); store = create_items_list (&treeview); gtk_container_add (GTK_CONTAINER (scrolled_window), treeview); item = gtk_tool_button_new_from_stock (GTK_STOCK_NEW); gtk_tool_button_set_label (GTK_TOOL_BUTTON (item), "Custom label"); gtk_tool_button_set_label (GTK_TOOL_BUTTON (item), NULL); add_item_to_list (store, item, "New"); gtk_toolbar_insert (GTK_TOOLBAR (toolbar), item, -1); gdk_threads_add_timeout (3000, (GSourceFunc) timeout_cb, item); gtk_tool_item_set_expand (item, TRUE); menu = gtk_menu_new (); for (i = 0; i < 20; i++) { char *text; text = g_strdup_printf ("Menuitem %d", i); menuitem = gtk_menu_item_new_with_label (text); g_free (text); gtk_widget_show (menuitem); gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem); } item = gtk_menu_tool_button_new_from_stock (GTK_STOCK_OPEN); gtk_menu_tool_button_set_menu (GTK_MENU_TOOL_BUTTON (item), menu); add_item_to_list (store, item, "Open"); gtk_toolbar_insert (GTK_TOOLBAR (toolbar), item, -1); gdk_threads_add_timeout (3000, (GSourceFunc) timeout_cb1, item); menu = gtk_menu_new (); for (i = 0; i < 20; i++) { char *text; text = g_strdup_printf ("A%d", i); menuitem = gtk_menu_item_new_with_label (text); g_free (text); gtk_widget_show (menuitem); gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem); } item = gtk_menu_tool_button_new_from_stock (GTK_STOCK_GO_BACK); gtk_menu_tool_button_set_menu (GTK_MENU_TOOL_BUTTON (item), menu); add_item_to_list (store, item, "BackWithHistory"); gtk_toolbar_insert (GTK_TOOLBAR (toolbar), item, -1); item = gtk_separator_tool_item_new (); add_item_to_list (store, item, "-----"); gtk_toolbar_insert (GTK_TOOLBAR (toolbar), item, -1); item = gtk_tool_button_new_from_stock (GTK_STOCK_REFRESH); add_item_to_list (store, item, "Refresh"); g_signal_connect (item, "clicked", G_CALLBACK (reload_clicked), NULL); gtk_toolbar_insert (GTK_TOOLBAR (toolbar), item, -1); image = gtk_image_new_from_stock (GTK_STOCK_DIALOG_WARNING, GTK_ICON_SIZE_DIALOG); item = gtk_tool_item_new (); gtk_widget_show (image); gtk_container_add (GTK_CONTAINER (item), image); add_item_to_list (store, item, "(Custom Item)"); gtk_toolbar_insert (GTK_TOOLBAR (toolbar), item, -1); item = gtk_tool_button_new_from_stock (GTK_STOCK_GO_BACK); add_item_to_list (store, item, "Back"); gtk_toolbar_insert (GTK_TOOLBAR (toolbar), item, -1); item = gtk_separator_tool_item_new (); add_item_to_list (store, item, "-----"); gtk_toolbar_insert (GTK_TOOLBAR (toolbar), item, -1); item = gtk_tool_button_new_from_stock (GTK_STOCK_GO_FORWARD); add_item_to_list (store, item, "Forward"); gtk_toolbar_insert (GTK_TOOLBAR (toolbar), item, -1); item = gtk_toggle_tool_button_new_from_stock (GTK_STOCK_BOLD); g_signal_connect (item, "toggled", G_CALLBACK (bold_toggled), NULL); add_item_to_list (store, item, "Bold"); gtk_toolbar_insert (GTK_TOOLBAR (toolbar), item, -1); gtk_widget_set_sensitive (GTK_WIDGET (item), FALSE); item = gtk_separator_tool_item_new (); add_item_to_list (store, item, "-----"); gtk_toolbar_insert (GTK_TOOLBAR (toolbar), item, -1); gtk_tool_item_set_expand (item, TRUE); gtk_separator_tool_item_set_draw (GTK_SEPARATOR_TOOL_ITEM (item), FALSE); g_assert (gtk_toolbar_get_nth_item (GTK_TOOLBAR (toolbar), 0) != 0); item = gtk_radio_tool_button_new_from_stock (NULL, GTK_STOCK_JUSTIFY_LEFT); group = gtk_radio_tool_button_get_group (GTK_RADIO_TOOL_BUTTON (item)); add_item_to_list (store, item, "Left"); gtk_toolbar_insert (GTK_TOOLBAR (toolbar), item, -1); item = gtk_radio_tool_button_new_from_stock (group, GTK_STOCK_JUSTIFY_CENTER); make_prop_editor (G_OBJECT (item)); group = gtk_radio_tool_button_get_group (GTK_RADIO_TOOL_BUTTON (item)); add_item_to_list (store, item, "Center"); gtk_toolbar_insert (GTK_TOOLBAR (toolbar), item, -1); item = gtk_radio_tool_button_new_from_stock (group, GTK_STOCK_JUSTIFY_RIGHT); add_item_to_list (store, item, "Right"); gtk_toolbar_insert (GTK_TOOLBAR (toolbar), item, -1); item = gtk_tool_button_new (gtk_image_new_from_file ("apple-red.png"), "_Apple"); add_item_to_list (store, item, "Apple"); gtk_toolbar_insert (GTK_TOOLBAR (toolbar), item, -1); gtk_tool_button_set_use_underline (GTK_TOOL_BUTTON (item), TRUE); gicon = g_content_type_get_icon ("video/ogg"); image = gtk_image_new_from_gicon (gicon, GTK_ICON_SIZE_LARGE_TOOLBAR); g_object_unref (gicon); item = gtk_tool_button_new (image, "Video"); add_item_to_list (store, item, "Video"); gtk_toolbar_insert (GTK_TOOLBAR (toolbar), item, -1); image = gtk_image_new_from_icon_name ("utility-terminal", GTK_ICON_SIZE_LARGE_TOOLBAR); item = gtk_tool_button_new (image, "Terminal"); add_item_to_list (store, item, "Terminal"); gtk_toolbar_insert (GTK_TOOLBAR (toolbar), item, -1); hbox = gtk_hbox_new (FALSE, 5); gtk_container_set_border_width (GTK_CONTAINER (hbox), 5); gtk_table_attach (GTK_TABLE (table), hbox, 1,2, 4,5, GTK_FILL|GTK_EXPAND, GTK_FILL, 0, 0); button = gtk_button_new_with_label ("Drag me to the toolbar"); gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, FALSE, 0); label = gtk_label_new ("Drop index:"); gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0); label = gtk_label_new (""); gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0); checkbox = gtk_check_button_new_with_mnemonic("_Right to left"); if (gtk_widget_get_default_direction () == GTK_TEXT_DIR_RTL) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbox), TRUE); else gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbox), FALSE); g_signal_connect (checkbox, "toggled", G_CALLBACK (rtl_toggled), NULL); gtk_box_pack_end (GTK_BOX (hbox), checkbox, FALSE, FALSE, 0); gtk_drag_source_set (button, GDK_BUTTON1_MASK, target_table, G_N_ELEMENTS (target_table), GDK_ACTION_MOVE); gtk_drag_dest_set (toolbar, GTK_DEST_DEFAULT_DROP, target_table, G_N_ELEMENTS (target_table), GDK_ACTION_MOVE); g_signal_connect (toolbar, "drag_motion", G_CALLBACK (toolbar_drag_motion), NULL); g_signal_connect (toolbar, "drag_leave", G_CALLBACK (toolbar_drag_leave), NULL); g_signal_connect (toolbar, "drag_drop", G_CALLBACK (toolbar_drag_drop), label); gtk_widget_show_all (window); make_prop_editor (G_OBJECT (toolbar)); g_signal_connect (window, "delete_event", G_CALLBACK (gtk_main_quit), NULL); g_signal_connect (toolbar, "popup_context_menu", G_CALLBACK (popup_context_menu), NULL); gtk_main (); return 0; }
static void browser_window_init(BrowserWindow *window) { g_atomic_int_inc(&windowCount); gchar img_src_dir[BUFSIZE] = {0}; strcat(img_src_dir, get_cuprum_dir()); gchar img_source_1[BUFSIZE] = {0}; strcat(img_source_1, img_src_dir); strcat(img_source_1, "/resources/img/1.png"); gchar img_source_2[BUFSIZE] = {0}; strcat(img_source_2, img_src_dir); strcat(img_source_2, "/resources/img/2.png"); gtk_window_set_title(GTK_WINDOW(window), defaultWindowTitle); gtk_window_set_default_size(GTK_WINDOW(window), 1000, 750); window->uriEntry = gtk_entry_new(); g_signal_connect_swapped(window->uriEntry, "activate", G_CALLBACK(activateUriEntryCallback), (gpointer)window); gtk_entry_set_icon_activatable(GTK_ENTRY(window->uriEntry), GTK_ENTRY_ICON_PRIMARY, FALSE); g_signal_connect_swapped (G_OBJECT(window->uriEntry), "icon-press", G_CALLBACK(certificateCallback), window); updateUriEntryIcon(window); /* Keyboard accelerators */ window->accelGroup = gtk_accel_group_new(); gtk_window_add_accel_group(GTK_WINDOW(window), window->accelGroup); /* Global accelerators */ gtk_accel_group_connect(window->accelGroup, GDK_KEY_I, GDK_CONTROL_MASK | GDK_SHIFT_MASK, GTK_ACCEL_VISIBLE, g_cclosure_new_swap(G_CALLBACK(toggleWebInspector), window, NULL)); gtk_accel_group_connect(window->accelGroup, GDK_KEY_F12, 0, GTK_ACCEL_VISIBLE, g_cclosure_new_swap(G_CALLBACK(toggleWebInspector), window, NULL)); gtk_accel_group_connect(window->accelGroup, GDK_KEY_F11, 0, GTK_ACCEL_VISIBLE, g_cclosure_new_swap(G_CALLBACK(showFullscreen), window, NULL)); /* Reload page */ gtk_accel_group_connect(window->accelGroup, GDK_KEY_F5, 0, GTK_ACCEL_VISIBLE, g_cclosure_new_swap(G_CALLBACK(reloadPage), window, NULL)); gtk_accel_group_connect(window->accelGroup, GDK_KEY_R, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE, g_cclosure_new_swap(G_CALLBACK(reloadPage), window, NULL)); /* Reload page ignoring cache */ gtk_accel_group_connect(window->accelGroup, GDK_KEY_F5, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE, g_cclosure_new_swap(G_CALLBACK(reloadPageIgnoringCache), window, NULL)); gtk_accel_group_connect(window->accelGroup, GDK_KEY_R, GDK_CONTROL_MASK | GDK_SHIFT_MASK, GTK_ACCEL_VISIBLE, g_cclosure_new_swap(G_CALLBACK(reloadPageIgnoringCache), window, NULL)); //add by zgh menu window->menubar = BROWSER_MENU_BAR(browser_menu_bar_new()); browser_menu_bar_add_accelerators(BROWSER_MENU_BAR(window->menubar), window->accelGroup); g_signal_connect_swapped(G_OBJECT(window->menubar), "menu_find", G_CALLBACK(menuSearchCallback), window); g_signal_connect_swapped(G_OBJECT(window->menubar), "menu_zoom_in", G_CALLBACK(zoomInCallback), window); g_signal_connect_swapped(G_OBJECT(window->menubar), "menu_zoom_out", G_CALLBACK(zoomOutCallback), window); g_signal_connect_swapped(G_OBJECT(window->menubar), "menu_zoom_fit", G_CALLBACK(zoomFitCallback), window); // g_signal_connect_swapped(G_OBJECT(window->menubar), "menu_nopagestyle", G_CALLBACK(menuNopagestyleCallback), window); // g_signal_connect_swapped(G_OBJECT(window->menubar), "menu_webpagestyle", G_CALLBACK(menuWebpagestyleCallback), window); g_signal_connect_swapped(G_OBJECT(window->menubar), "menu_fullscreen", G_CALLBACK(showFullscreen), window); g_signal_connect_swapped(G_OBJECT(window->menubar), "menu_bookmarkbar", G_CALLBACK(showBookmarkbar), window); g_signal_connect_swapped(G_OBJECT(window->menubar), "menu_history_manager", G_CALLBACK(showHistoryManagerWindow), window);//add by zlf g_signal_connect_swapped(G_OBJECT(window->menubar), "menu_history_clear", G_CALLBACK(showHistoryClearWindow), window);//add by zlf g_signal_connect(G_OBJECT(window->menubar), "menu_quit", G_CALLBACK(gtk_main_quit), window); // gtk_container_set_border_width(GTK_CONTAINER(window->menubar), 0); g_signal_connect(G_OBJECT(window->menubar), "button-press-event", G_CALLBACK(buttonmenuCallback), window); GtkWidget *toolbar = gtk_toolbar_new(); window->toolbar = toolbar; gtk_orientable_set_orientation(GTK_ORIENTABLE(toolbar), GTK_ORIENTATION_HORIZONTAL); gtk_toolbar_set_style(GTK_TOOLBAR(toolbar), GTK_TOOLBAR_ICONS); // gtk_toolbar_set_style(GTK_TOOLBAR(toolbar), GTK_TOOLBAR_BOTH_HORIZ); gtk_toolbar_set_icon_size(GTK_TOOLBAR(toolbar), GTK_ICON_SIZE_SMALL_TOOLBAR); gtk_container_set_border_width(GTK_CONTAINER(window->toolbar), 0); g_signal_connect(G_OBJECT(toolbar), "button-press-event", G_CALLBACK(buttonmenuCallback), window); GtkToolItem *item = gtk_menu_tool_button_new_from_stock(GTK_STOCK_GO_BACK); window->backItem = GTK_WIDGET(item); gtk_menu_tool_button_set_menu(GTK_MENU_TOOL_BUTTON(item), 0); g_signal_connect_swapped(item, "clicked", G_CALLBACK(goBackCallback), (gpointer)window); gtk_toolbar_insert(GTK_TOOLBAR(toolbar), item, -1); gtk_widget_show(GTK_WIDGET(item)); item = gtk_menu_tool_button_new_from_stock(GTK_STOCK_GO_FORWARD); window->forwardItem = GTK_WIDGET(item); gtk_menu_tool_button_set_menu(GTK_MENU_TOOL_BUTTON(item), 0); g_signal_connect_swapped(G_OBJECT(item), "clicked", G_CALLBACK(goForwardCallback), (gpointer)window); gtk_toolbar_insert(GTK_TOOLBAR(toolbar), item, -1); gtk_widget_show(GTK_WIDGET(item)); item = gtk_tool_button_new_from_stock(GTK_STOCK_REFRESH); window->reloadOrStopButton = GTK_WIDGET(item); g_signal_connect_swapped(item, "clicked", G_CALLBACK(reloadOrStopCallback), window); gtk_toolbar_insert(GTK_TOOLBAR(toolbar), item, -1); gtk_widget_add_accelerator(window->reloadOrStopButton, "clicked", window->accelGroup, GDK_KEY_F5, 0, GTK_ACCEL_VISIBLE); gtk_widget_show(window->reloadOrStopButton); item = gtk_tool_button_new_from_stock(GTK_STOCK_HOME); window->homeButton = GTK_WIDGET(item); g_signal_connect_swapped(item, "clicked", G_CALLBACK(homeButtonCallback), window); gtk_toolbar_insert(GTK_TOOLBAR(toolbar), item, -1); gtk_widget_show(window->homeButton); gtk_entry_set_icon_from_pixbuf(GTK_ENTRY(window->uriEntry), GTK_ENTRY_ICON_SECONDARY, create_pixbuf(img_source_1)); gtk_entry_set_icon_activatable(GTK_ENTRY(window->uriEntry), GTK_ENTRY_ICON_PRIMARY, TRUE); gtk_entry_set_icon_tooltip_markup(GTK_ENTRY(window->uriEntry), GTK_ENTRY_ICON_SECONDARY, "将此页加为书签"); g_signal_connect_swapped (G_OBJECT(window->uriEntry), "icon-press", G_CALLBACK(collecturiCallback), window); //by sunh item = gtk_tool_button_new_from_stock(GTK_STOCK_GOTO_BOTTOM); g_signal_connect_swapped(G_OBJECT(item), "clicked", G_CALLBACK(downloadCallback), window); gtk_toolbar_insert(GTK_TOOLBAR(toolbar), item, -1); gtk_widget_show(GTK_WIDGET(item)); //by sunh end item = gtk_tool_item_new(); gtk_tool_item_set_expand(item, TRUE); gtk_container_add(GTK_CONTAINER(item), window->uriEntry); gtk_widget_show(window->uriEntry); gtk_toolbar_insert(GTK_TOOLBAR(toolbar), item, -1); gtk_widget_show(GTK_WIDGET(item)); //setting item = gtk_tool_button_new_from_stock(GTK_STOCK_PREFERENCES); g_signal_connect_swapped(G_OBJECT(item), "clicked", G_CALLBACK(settingsCallback), window); gtk_toolbar_insert(GTK_TOOLBAR(toolbar), item, -1); gtk_widget_show(GTK_WIDGET(item)); // -setting GtkWidget *vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); window->mainBox = vbox; gtk_widget_show_all(GTK_WIDGET(window->menubar)); gtk_box_pack_start(GTK_BOX(vbox), GTK_WIDGET(window->menubar), FALSE, FALSE, 0); //<wangc add tab mamager TabMng* tbmng=(TabMng*)malloc(sizeof(TabMng)); initTabMng(tbmng); window->tabmng=tbmng; GtkWidget *boxtab = gtk_box_new (FALSE, 0); window->boxtab=boxtab; GtkWidget * btab = gtk_button_new_with_label ("Add"); g_signal_connect (G_OBJECT (btab), "clicked", G_CALLBACK (cbAddTab), window); gtk_box_pack_start (GTK_BOX(boxtab), btab, FALSE, FALSE, 0); gtk_widget_show (btab); gtk_box_pack_start(GTK_BOX(vbox),boxtab,FALSE, FALSE, 0); gtk_widget_show(boxtab); //> gtk_box_pack_start(GTK_BOX(vbox), toolbar, FALSE, FALSE, 0); gtk_widget_show(toolbar); //书签栏 GtkWidget *bookmarkbar = gtk_toolbar_new(); window->bookmarkbar = bookmarkbar; /* item =gtk_tool_item_new(); gtk_tool_item_set_expand(item, TRUE); GtkWidget *bookmarkBox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); gtk_container_add(GTK_CONTAINER(item), bookmarkBox); window->bookmarkbox = bookmarkBox; gtk_toolbar_insert(GTK_TOOLBAR(bookmarkbar), item, 0); gtk_widget_show(bookmarkBox); gtk_widget_show(GTK_WIDGET(item)); */ gtk_toolbar_set_icon_size (GTK_TOOLBAR (window->bookmarkbar), GTK_ICON_SIZE_MENU); gtk_toolbar_set_style (GTK_TOOLBAR (window->bookmarkbar), GTK_TOOLBAR_BOTH);//GTK_TOOLBAR_BOTH_HORIZ g_signal_connect(G_OBJECT(bookmarkbar), "button-press-event", G_CALLBACK(buttonmenuCallback), window); gtk_box_pack_start(GTK_BOX(vbox), bookmarkbar, FALSE, FALSE, 0); // gtk_widget_show(bookmarkbar); /* GtkWidget *status_bar = gtk_label_new(""); gtk_label_set_width_chars(GTK_LABEL(status_bar), 50); gtk_misc_set_alignment(GTK_MISC(status_bar), 0, 0); gtk_box_pack_end(GTK_BOX(vbox), status_bar, FALSE, FALSE, 0); // gtk_widget_show(status_bar); */ gtk_container_add(GTK_CONTAINER(window), vbox); gtk_widget_show(vbox); HS_init(window);// add by zlf }