mirror of
https://git.pwmt.org/pwmt/zathura.git
synced 2024-12-27 13:16:02 +01:00
Added own viewport to change the views content
This commit is contained in:
parent
9cf5ec8e06
commit
c2a30db881
1 changed files with 10 additions and 5 deletions
15
zathura.c
15
zathura.c
|
@ -122,6 +122,7 @@ struct
|
||||||
GtkWindow *window;
|
GtkWindow *window;
|
||||||
GtkBox *box;
|
GtkBox *box;
|
||||||
GtkScrolledWindow *view;
|
GtkScrolledWindow *view;
|
||||||
|
GtkViewport *viewport;
|
||||||
GtkWidget *statusbar;
|
GtkWidget *statusbar;
|
||||||
GtkBox *statusbar_entries;
|
GtkBox *statusbar_entries;
|
||||||
GtkEntry *inputbar;
|
GtkEntry *inputbar;
|
||||||
|
@ -272,6 +273,7 @@ init_zathura()
|
||||||
Zathura.UI.window = GTK_WINDOW(gtk_window_new(GTK_WINDOW_TOPLEVEL));
|
Zathura.UI.window = GTK_WINDOW(gtk_window_new(GTK_WINDOW_TOPLEVEL));
|
||||||
Zathura.UI.box = GTK_BOX(gtk_vbox_new(FALSE, 0));
|
Zathura.UI.box = GTK_BOX(gtk_vbox_new(FALSE, 0));
|
||||||
Zathura.UI.view = GTK_SCROLLED_WINDOW(gtk_scrolled_window_new(NULL, NULL));
|
Zathura.UI.view = GTK_SCROLLED_WINDOW(gtk_scrolled_window_new(NULL, NULL));
|
||||||
|
Zathura.UI.viewport = GTK_VIEWPORT(gtk_viewport_new(NULL, NULL));
|
||||||
Zathura.UI.statusbar = gtk_event_box_new();
|
Zathura.UI.statusbar = gtk_event_box_new();
|
||||||
Zathura.UI.statusbar_entries = GTK_BOX(gtk_hbox_new(FALSE, 0));
|
Zathura.UI.statusbar_entries = GTK_BOX(gtk_hbox_new(FALSE, 0));
|
||||||
Zathura.UI.inputbar = GTK_ENTRY(gtk_entry_new());
|
Zathura.UI.inputbar = GTK_ENTRY(gtk_entry_new());
|
||||||
|
@ -289,6 +291,7 @@ init_zathura()
|
||||||
|
|
||||||
/* view */
|
/* view */
|
||||||
g_signal_connect(G_OBJECT(Zathura.UI.view), "key-press-event", G_CALLBACK(cb_view_kb_pressed), NULL);
|
g_signal_connect(G_OBJECT(Zathura.UI.view), "key-press-event", G_CALLBACK(cb_view_kb_pressed), NULL);
|
||||||
|
gtk_container_add(GTK_CONTAINER(Zathura.UI.view), GTK_WIDGET(Zathura.UI.viewport));
|
||||||
|
|
||||||
/* statusbar */
|
/* statusbar */
|
||||||
gtk_widget_modify_bg(GTK_WIDGET(Zathura.UI.statusbar), GTK_STATE_NORMAL, &(Zathura.Style.statusbar_bg));
|
gtk_widget_modify_bg(GTK_WIDGET(Zathura.UI.statusbar), GTK_STATE_NORMAL, &(Zathura.Style.statusbar_bg));
|
||||||
|
@ -560,16 +563,19 @@ set_page(int page)
|
||||||
|
|
||||||
Zathura.PDF.page_number = page;
|
Zathura.PDF.page_number = page;
|
||||||
Zathura.State.pages = g_strdup_printf("[%i/%i]", page + 1, Zathura.PDF.number_of_pages);
|
Zathura.State.pages = g_strdup_printf("[%i/%i]", page + 1, Zathura.PDF.number_of_pages);
|
||||||
|
switch_view(Zathura.PDF.pages[page]->drawing_area);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
switch_view(GtkWidget* widget)
|
switch_view(GtkWidget* widget)
|
||||||
{
|
{
|
||||||
GtkWidget* current = gtk_bin_get_child(GTK_BIN(Zathura.UI.view));
|
if(gtk_bin_get_child(GTK_BIN(Zathura.UI.viewport)))
|
||||||
if(current)
|
{
|
||||||
gtk_container_remove(GTK_CONTAINER(Zathura.UI.view), current);
|
g_object_ref(gtk_bin_get_child(GTK_BIN(Zathura.UI.viewport)));
|
||||||
|
gtk_container_remove(GTK_CONTAINER(Zathura.UI.viewport), gtk_bin_get_child(GTK_BIN(Zathura.UI.viewport)));
|
||||||
|
}
|
||||||
|
|
||||||
gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(Zathura.UI.view), widget);
|
gtk_container_add(GTK_CONTAINER(Zathura.UI.viewport), GTK_WIDGET(widget));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* thread implementation */
|
/* thread implementation */
|
||||||
|
@ -641,7 +647,6 @@ sc_navigate(Argument* argument)
|
||||||
new_page = (new_page + number_of_pages - 1) % number_of_pages;
|
new_page = (new_page + number_of_pages - 1) % number_of_pages;
|
||||||
|
|
||||||
set_page(new_page);
|
set_page(new_page);
|
||||||
switch_view(Zathura.PDF.pages[new_page]->drawing_area);
|
|
||||||
update_status();
|
update_status();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue