GtkWidget * pgd_transitions_create_widget (PopplerDocument *document) { PgdTransitionsDemo *demo; GtkWidget *vbox; GtkListStore *model; GtkWidget *swindow; GtkWidget *hbox, *button; demo = g_new0 (PgdTransitionsDemo, 1); demo->doc = g_object_ref (document); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 12); hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6); demo->progress = gtk_progress_bar_new (); gtk_progress_bar_set_ellipsize (GTK_PROGRESS_BAR (demo->progress), PANGO_ELLIPSIZE_END); gtk_box_pack_start (GTK_BOX (hbox), demo->progress, TRUE, TRUE, 0); gtk_widget_show (demo->progress); button = gtk_button_new_with_label ("Scan"); g_signal_connect (G_OBJECT (button), "clicked", G_CALLBACK (pgd_transitions_scan_button_clicked), (gpointer)demo); gtk_box_pack_end (GTK_BOX (hbox), button, FALSE, FALSE, 0); gtk_widget_show (button); gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, TRUE, 6); gtk_widget_show (hbox); swindow = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (swindow), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); model = gtk_list_store_new (N_COLUMNS, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING); demo->treeview = pgd_transitions_create_list (GTK_TREE_MODEL (model)); g_object_unref (model); gtk_container_add (GTK_CONTAINER (swindow), demo->treeview); gtk_widget_show (demo->treeview); gtk_box_pack_start (GTK_BOX (vbox), swindow, TRUE, TRUE, 0); gtk_widget_show (swindow); g_object_weak_ref (G_OBJECT (swindow), (GWeakNotify)pgd_transitions_free, (gpointer)demo); return vbox; }
static void gimp_progress_bar_init (GimpProgressBar *bar) { GimpProgressVtable vtable = { 0, }; gtk_progress_bar_set_text (GTK_PROGRESS_BAR (bar), " "); gtk_progress_bar_set_ellipsize (GTK_PROGRESS_BAR (bar), PANGO_ELLIPSIZE_END); vtable.start = gimp_progress_bar_start; vtable.end = gimp_progress_bar_end; vtable.set_text = gimp_progress_bar_set_text; vtable.set_value = gimp_progress_bar_set_value; vtable.pulse = gimp_progress_bar_pulse; vtable.get_window = gimp_progress_bar_get_window; bar->progress_callback = gimp_progress_install_vtable (&vtable, bar); }
GtkWidget * pgd_find_create_widget (PopplerDocument *document) { PgdFindDemo *demo; GtkWidget *vbox, *hbox; GtkWidget *button; GtkWidget *swindow; GtkWidget *checkbutton; GtkTreeModel *model; GtkWidget *treeview; GtkCellRenderer *renderer; GtkWidget *hpaned; GtkTreeSelection *selection; demo = g_new0 (PgdFindDemo, 1); demo->doc = g_object_ref (document); demo->n_pages = poppler_document_get_n_pages (document); demo->selected_page = -1; demo->options = POPPLER_FIND_DEFAULT; hpaned = gtk_paned_new (GTK_ORIENTATION_HORIZONTAL); gtk_paned_set_position (GTK_PANED (hpaned), 300); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 12); hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6); demo->entry = gtk_entry_new (); gtk_box_pack_start (GTK_BOX (hbox), demo->entry, FALSE, TRUE, 0); gtk_widget_show (demo->entry); demo->progress = gtk_progress_bar_new (); gtk_progress_bar_set_ellipsize (GTK_PROGRESS_BAR (demo->progress), PANGO_ELLIPSIZE_END); gtk_box_pack_start (GTK_BOX (hbox), demo->progress, TRUE, TRUE, 0); gtk_widget_show (demo->progress); button = gtk_button_new_with_label ("Find"); gtk_widget_set_sensitive (button, FALSE); g_signal_connect (G_OBJECT (button), "clicked", G_CALLBACK (pgd_find_button_clicked), (gpointer)demo); g_signal_connect_swapped (G_OBJECT (demo->entry), "changed", G_CALLBACK (pgd_find_button_sensitivity_cb), (gpointer)button); gtk_box_pack_end (GTK_BOX (hbox), button, FALSE, FALSE, 0); gtk_widget_show (button); gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, TRUE, 6); gtk_widget_show (hbox); hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6); checkbutton = gtk_check_button_new_with_label ("Case sensitive"); g_signal_connect (checkbutton, "toggled", G_CALLBACK (pgd_find_case_sensitive_toggled), demo); gtk_box_pack_start (GTK_BOX (hbox), checkbutton, FALSE, FALSE, 0); gtk_widget_show (checkbutton); checkbutton = gtk_check_button_new_with_label ("Backwards"); g_signal_connect (checkbutton, "toggled", G_CALLBACK (pgd_find_backwards_toggled), demo); gtk_box_pack_start (GTK_BOX (hbox), checkbutton, FALSE, FALSE, 0); gtk_widget_show (checkbutton); checkbutton = gtk_check_button_new_with_label ("Whole words only"); g_signal_connect (checkbutton, "toggled", G_CALLBACK (pgd_find_whole_words_toggled), demo); gtk_box_pack_start (GTK_BOX (hbox), checkbutton, FALSE, FALSE, 0); gtk_widget_show (checkbutton); gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0); gtk_widget_show (hbox); swindow = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (swindow), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); model = pgd_find_create_model (); treeview = gtk_tree_view_new_with_model (model); g_object_unref (model); demo->treeview = treeview; gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (treeview), TRUE); selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview)); gtk_tree_selection_set_mode (selection, GTK_SELECTION_SINGLE); g_signal_connect (selection, "changed", G_CALLBACK (pgd_find_selection_changed), demo); renderer = gtk_cell_renderer_text_new (); gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview), TITLE_COLUMN, "Matches", renderer, "text", TITLE_COLUMN, NULL); renderer = gtk_cell_renderer_text_new (); gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview), X1_COLUMN, "X1", renderer, "text", X1_COLUMN, "visible", VISIBLE_COLUMN, NULL); renderer = gtk_cell_renderer_text_new (); gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview), Y1_COLUMN, "Y1", renderer, "text", Y1_COLUMN, "visible", VISIBLE_COLUMN, NULL); renderer = gtk_cell_renderer_text_new (); gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview), X2_COLUMN, "X2", renderer, "text", X2_COLUMN, "visible", VISIBLE_COLUMN, NULL); renderer = gtk_cell_renderer_text_new (); gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview), Y2_COLUMN, "Y2", renderer, "text", Y2_COLUMN, "visible", VISIBLE_COLUMN, NULL); gtk_container_add (GTK_CONTAINER (swindow), treeview); gtk_widget_show (treeview); gtk_paned_add1 (GTK_PANED (hpaned), swindow); gtk_widget_show (swindow); demo->darea = gtk_drawing_area_new (); g_signal_connect (demo->darea, "draw", G_CALLBACK (pgd_find_viewer_drawing_area_draw), demo); swindow = gtk_scrolled_window_new (NULL, NULL); #if GTK_CHECK_VERSION(3, 7, 8) gtk_container_add(GTK_CONTAINER(swindow), demo->darea); #else gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (swindow), demo->darea); #endif gtk_widget_show (demo->darea); gtk_paned_add2 (GTK_PANED (hpaned), swindow); gtk_widget_show (swindow); gtk_box_pack_start (GTK_BOX (vbox), hpaned, TRUE, TRUE, 0); gtk_widget_show (hpaned); g_object_weak_ref (G_OBJECT (vbox), (GWeakNotify)pgd_find_free, (gpointer)demo); return vbox; }
WebkitBrowser::WebkitBrowser(GtkWidget * parent_vbox) { // Save and initialize variables. vbox = parent_vbox; last_focused_time = 0; toolbar = gtk_toolbar_new (); gtk_widget_show (toolbar); gtk_box_pack_start (GTK_BOX (vbox), toolbar, FALSE, FALSE, 0); gtk_toolbar_set_style (GTK_TOOLBAR (toolbar), GTK_TOOLBAR_BOTH); toolitem_back = (GtkWidget*) gtk_tool_item_new (); gtk_widget_show (toolitem_back); gtk_container_add (GTK_CONTAINER (toolbar), toolitem_back); button_back = gtk_button_new (); gtk_widget_show (button_back); gtk_container_add (GTK_CONTAINER (toolitem_back), button_back); image_back = gtk_image_new_from_stock ("gtk-go-back", GTK_ICON_SIZE_BUTTON); gtk_widget_show (image_back); gtk_container_add (GTK_CONTAINER (button_back), image_back); toolitem_forward = (GtkWidget*) gtk_tool_item_new (); gtk_widget_show (toolitem_forward); gtk_container_add (GTK_CONTAINER (toolbar), toolitem_forward); button_forward = gtk_button_new (); gtk_widget_show (button_forward); gtk_container_add (GTK_CONTAINER (toolitem_forward), button_forward); image_forward = gtk_image_new_from_stock ("gtk-go-forward", GTK_ICON_SIZE_BUTTON); gtk_widget_show (image_forward); gtk_container_add (GTK_CONTAINER (button_forward), image_forward); toolitem_refresh = (GtkWidget*) gtk_tool_item_new (); gtk_widget_show (toolitem_refresh); gtk_container_add (GTK_CONTAINER (toolbar), toolitem_refresh); button_refresh = gtk_button_new (); gtk_widget_show (button_refresh); gtk_container_add (GTK_CONTAINER (toolitem_refresh), button_refresh); image_refresh = gtk_image_new_from_stock ("gtk-refresh", GTK_ICON_SIZE_BUTTON); gtk_widget_show (image_refresh); gtk_container_add (GTK_CONTAINER (button_refresh), image_refresh); toolitem_stop = (GtkWidget*) gtk_tool_item_new (); gtk_widget_show (toolitem_stop); gtk_container_add (GTK_CONTAINER (toolbar), toolitem_stop); button_stop = gtk_button_new (); gtk_widget_show (button_stop); gtk_container_add (GTK_CONTAINER (toolitem_stop), button_stop); image_stop = gtk_image_new_from_stock ("gtk-stop", GTK_ICON_SIZE_BUTTON); gtk_widget_show (image_stop); gtk_container_add (GTK_CONTAINER (button_stop), image_stop); toolitem_home = (GtkWidget*) gtk_tool_item_new (); gtk_widget_show (toolitem_home); gtk_container_add (GTK_CONTAINER (toolbar), toolitem_home); button_home = gtk_button_new (); gtk_widget_show (button_home); gtk_container_add (GTK_CONTAINER (toolitem_home), button_home); gtk_button_set_focus_on_click (GTK_BUTTON (button_home), FALSE); image_home = gtk_image_new_from_stock ("gtk-home", GTK_ICON_SIZE_BUTTON); gtk_widget_show (image_home); gtk_container_add (GTK_CONTAINER (button_home), image_home); toolitem_url = (GtkWidget*) gtk_tool_item_new (); gtk_widget_show (toolitem_url); gtk_tool_item_set_expand (GTK_TOOL_ITEM (toolitem_url), TRUE); gtk_container_add (GTK_CONTAINER (toolbar), toolitem_url); entry_url = gtk_entry_new (); gtk_widget_show (entry_url); gtk_container_add (GTK_CONTAINER (toolitem_url), entry_url); gtk_entry_set_invisible_char (GTK_ENTRY (entry_url), 9679); toolitem_enter = (GtkWidget*) gtk_tool_item_new (); gtk_widget_show (toolitem_enter); gtk_container_add (GTK_CONTAINER (toolbar), toolitem_enter); button_enter = gtk_button_new (); gtk_widget_show (button_enter); gtk_container_add (GTK_CONTAINER (toolitem_enter), button_enter); image_enter = gtk_image_new_from_stock ("gtk-ok", GTK_ICON_SIZE_BUTTON); gtk_widget_show (image_enter); gtk_container_add (GTK_CONTAINER (button_enter), image_enter); scrolledwindow = gtk_scrolled_window_new (NULL, NULL); gtk_widget_show (scrolledwindow); gtk_box_pack_start (GTK_BOX (vbox), scrolledwindow, TRUE, TRUE, 0); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow), GTK_SHADOW_IN); webview = webkit_web_view_new(); gtk_widget_show(webview); gtk_container_add(GTK_CONTAINER(scrolledwindow), webview); notebook = gtk_notebook_new (); gtk_widget_show (notebook); gtk_box_pack_start (GTK_BOX (vbox), notebook, FALSE, FALSE, 0); gtk_notebook_set_show_tabs (GTK_NOTEBOOK (notebook), FALSE); gtk_notebook_set_show_border (GTK_NOTEBOOK (notebook), FALSE); label_status = gtk_label_new (""); gtk_widget_show (label_status); gtk_container_add (GTK_CONTAINER (notebook), label_status); gtk_label_set_ellipsize (GTK_LABEL (label_status), PANGO_ELLIPSIZE_MIDDLE); progressbar = gtk_progress_bar_new (); gtk_widget_show (progressbar); gtk_container_add (GTK_CONTAINER (notebook), progressbar); gtk_progress_bar_set_ellipsize (GTK_PROGRESS_BAR (progressbar), PANGO_ELLIPSIZE_MIDDLE); // Set gui as if loading has finished, so that the sensitivitiy of buttons gets right. load_finished (NULL, NULL); // Signals. g_signal_connect ((gpointer) button_back, "clicked", G_CALLBACK (on_button_back_clicked), gpointer (this)); g_signal_connect ((gpointer) button_forward, "clicked", G_CALLBACK (on_button_forward_clicked), gpointer (this)); g_signal_connect ((gpointer) button_refresh, "clicked", G_CALLBACK (on_button_refresh_clicked), gpointer (this)); g_signal_connect ((gpointer) button_stop, "clicked", G_CALLBACK (on_button_stop_clicked), gpointer (this)); g_signal_connect ((gpointer) button_home, "clicked", G_CALLBACK (on_button_home_clicked), gpointer (this)); g_signal_connect ((gpointer) entry_url, "activate", G_CALLBACK (on_entry_url_activate), gpointer (this)); g_signal_connect ((gpointer) button_enter, "clicked", G_CALLBACK (on_button_enter_clicked), gpointer (this)); g_signal_connect(G_OBJECT(webview), "grab_focus", G_CALLBACK(on_webview_grab_focus), gpointer(this)); g_signal_connect (G_OBJECT (webview), "load-committed", G_CALLBACK (load_commit_cb), gpointer(this)); g_signal_connect (G_OBJECT (webview), "load-started", G_CALLBACK (load_started_cb), gpointer(this)); g_signal_connect (G_OBJECT (webview), "load-progress-changed", G_CALLBACK (progress_change_cb), gpointer(this)); g_signal_connect (G_OBJECT (webview), "load-finished", G_CALLBACK (load_finished_cb), gpointer(this)); g_signal_connect (G_OBJECT (webview), "hovering-over-link", G_CALLBACK (link_hover_cb), gpointer(this)); }
GtkWidget * pgd_fonts_create_widget (PopplerDocument *document) { PgdFontsDemo *demo; GtkWidget *vbox; GtkListStore *model; GtkCellRenderer *renderer; GtkTreeViewColumn *column; GtkWidget *swindow; GtkWidget *hbox, *button; demo = g_new0 (PgdFontsDemo, 1); demo->doc = g_object_ref (document); vbox = gtk_vbox_new (FALSE, 12); hbox = gtk_hbox_new (FALSE, 6); demo->progress = gtk_progress_bar_new (); gtk_progress_bar_set_ellipsize (GTK_PROGRESS_BAR (demo->progress), PANGO_ELLIPSIZE_END); gtk_box_pack_start (GTK_BOX (hbox), demo->progress, TRUE, TRUE, 0); gtk_widget_show (demo->progress); button = gtk_button_new_with_label ("Scan"); g_signal_connect (G_OBJECT (button), "clicked", G_CALLBACK (pgd_fonts_scan_button_clicked), (gpointer)demo); gtk_box_pack_end (GTK_BOX (hbox), button, FALSE, FALSE, 0); gtk_widget_show (button); gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, TRUE, 6); gtk_widget_show (hbox); swindow = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (swindow), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); model = gtk_list_store_new (N_COLUMNS, G_TYPE_STRING, G_TYPE_STRING); demo->treeview = gtk_tree_view_new_with_model (GTK_TREE_MODEL (model)); gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (demo->treeview), FALSE); gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (demo->treeview), TRUE); gtk_tree_selection_set_mode (gtk_tree_view_get_selection (GTK_TREE_VIEW (demo->treeview)), GTK_SELECTION_NONE); g_object_unref (model); column = gtk_tree_view_column_new (); gtk_tree_view_append_column (GTK_TREE_VIEW (demo->treeview), column); renderer = gtk_cell_renderer_text_new (); gtk_tree_view_column_pack_start (GTK_TREE_VIEW_COLUMN (column), renderer, FALSE); gtk_tree_view_column_set_cell_data_func (column, renderer, pdg_fonts_cell_data_func, NULL, NULL); gtk_container_add (GTK_CONTAINER (swindow), demo->treeview); gtk_widget_show (demo->treeview); gtk_box_pack_start (GTK_BOX (vbox), swindow, TRUE, TRUE, 0); gtk_widget_show (swindow); g_object_weak_ref (G_OBJECT (swindow), (GWeakNotify)pgd_fonts_free, (gpointer)demo); return vbox; }