mirror of
https://git.pwmt.org/pwmt/zathura.git
synced 2025-02-27 14:54:38 +01:00
Updated shortcuts.c
This commit is contained in:
parent
daa523aaf5
commit
9026f92469
1 changed files with 102 additions and 51 deletions
151
shortcuts.c
151
shortcuts.c
|
@ -13,6 +13,8 @@ bool
|
||||||
sc_abort(girara_session_t* session, girara_argument_t* argument, unsigned int t)
|
sc_abort(girara_session_t* session, girara_argument_t* argument, unsigned int t)
|
||||||
{
|
{
|
||||||
g_return_val_if_fail(session != NULL, false);
|
g_return_val_if_fail(session != NULL, false);
|
||||||
|
g_return_val_if_fail(session->global.data != NULL, false);
|
||||||
|
zathura_t* zathura = session->global.data;
|
||||||
|
|
||||||
girara_mode_set(session, NORMAL);
|
girara_mode_set(session, NORMAL);
|
||||||
|
|
||||||
|
@ -22,12 +24,20 @@ sc_abort(girara_session_t* session, girara_argument_t* argument, unsigned int t)
|
||||||
bool
|
bool
|
||||||
sc_adjust_window(girara_session_t* session, girara_argument_t* argument, unsigned int t)
|
sc_adjust_window(girara_session_t* session, girara_argument_t* argument, unsigned int t)
|
||||||
{
|
{
|
||||||
|
g_return_val_if_fail(session != NULL, false);
|
||||||
|
g_return_val_if_fail(session->global.data != NULL, false);
|
||||||
|
zathura_t* zathura = session->global.data;
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
sc_change_buffer(girara_session_t* session, girara_argument_t* argument, unsigned int t)
|
sc_change_buffer(girara_session_t* session, girara_argument_t* argument, unsigned int t)
|
||||||
{
|
{
|
||||||
|
g_return_val_if_fail(session != NULL, false);
|
||||||
|
g_return_val_if_fail(session->global.data != NULL, false);
|
||||||
|
zathura_t* zathura = session->global.data;
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -35,6 +45,8 @@ bool
|
||||||
sc_change_mode(girara_session_t* session, girara_argument_t* argument, unsigned int t)
|
sc_change_mode(girara_session_t* session, girara_argument_t* argument, unsigned int t)
|
||||||
{
|
{
|
||||||
g_return_val_if_fail(session != NULL, false);
|
g_return_val_if_fail(session != NULL, false);
|
||||||
|
g_return_val_if_fail(session->global.data != NULL, false);
|
||||||
|
zathura_t* zathura = session->global.data;
|
||||||
|
|
||||||
girara_mode_set(session, argument->n);
|
girara_mode_set(session, argument->n);
|
||||||
|
|
||||||
|
@ -45,6 +57,8 @@ bool
|
||||||
sc_focus_inputbar(girara_session_t* session, girara_argument_t* argument, unsigned int t)
|
sc_focus_inputbar(girara_session_t* session, girara_argument_t* argument, unsigned int t)
|
||||||
{
|
{
|
||||||
g_return_val_if_fail(session != NULL, false);
|
g_return_val_if_fail(session != NULL, false);
|
||||||
|
g_return_val_if_fail(session->global.data != NULL, false);
|
||||||
|
zathura_t* zathura = session->global.data;
|
||||||
|
|
||||||
if (!(GTK_WIDGET_VISIBLE(GTK_WIDGET(session->gtk.inputbar)))) {
|
if (!(GTK_WIDGET_VISIBLE(GTK_WIDGET(session->gtk.inputbar)))) {
|
||||||
gtk_widget_show(GTK_WIDGET(session->gtk.inputbar));
|
gtk_widget_show(GTK_WIDGET(session->gtk.inputbar));
|
||||||
|
@ -62,15 +76,21 @@ sc_focus_inputbar(girara_session_t* session, girara_argument_t* argument, unsign
|
||||||
bool
|
bool
|
||||||
sc_follow(girara_session_t* session, girara_argument_t* argument, unsigned int t)
|
sc_follow(girara_session_t* session, girara_argument_t* argument, unsigned int t)
|
||||||
{
|
{
|
||||||
|
g_return_val_if_fail(session != NULL, false);
|
||||||
|
g_return_val_if_fail(session->global.data != NULL, false);
|
||||||
|
zathura_t* zathura = session->global.data;
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
sc_goto(girara_session_t* session, girara_argument_t* argument, unsigned int t)
|
sc_goto(girara_session_t* session, girara_argument_t* argument, unsigned int t)
|
||||||
{
|
{
|
||||||
if (session == NULL || argument == NULL || Zathura.document == NULL) {
|
g_return_val_if_fail(session != NULL, false);
|
||||||
return false;
|
g_return_val_if_fail(session->global.data != NULL, false);
|
||||||
}
|
zathura_t* zathura = session->global.data;
|
||||||
|
g_return_val_if_fail(argument != NULL, false);
|
||||||
|
g_return_val_if_fail(zathura->document != NULL, false);
|
||||||
|
|
||||||
if (argument->n == TOP) {
|
if (argument->n == TOP) {
|
||||||
girara_argument_t arg = { TOP, NULL };
|
girara_argument_t arg = { TOP, NULL };
|
||||||
|
@ -85,12 +105,12 @@ sc_goto(girara_session_t* session, girara_argument_t* argument, unsigned int t)
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int number_of_pages = Zathura.document->number_of_pages;
|
unsigned int number_of_pages = zathura->document->number_of_pages;
|
||||||
|
|
||||||
if (t > 0 && t <= number_of_pages) {
|
if (t > 0 && t <= number_of_pages) {
|
||||||
// TODO: Calculate offset
|
// TODO: Calculate offset
|
||||||
/*GtkAdjustment* adjustment = gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(Zathura.UI.session->gtk.view));*/
|
/*GtkAdjustment* adjustment = gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(zathura->UI.session->gtk.view));*/
|
||||||
/*unsigned int offset = Zathura.document->pages[t - 1]->offset * Zathura.document->scale;*/
|
/*unsigned int offset = zathura->document->pages[t - 1]->offset * zathura->document->scale;*/
|
||||||
/*gtk_adjustment_set_value(adjustment, offset);*/
|
/*gtk_adjustment_set_value(adjustment, offset);*/
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -101,12 +121,14 @@ sc_goto(girara_session_t* session, girara_argument_t* argument, unsigned int t)
|
||||||
bool
|
bool
|
||||||
sc_navigate(girara_session_t* session, girara_argument_t* argument, unsigned int t)
|
sc_navigate(girara_session_t* session, girara_argument_t* argument, unsigned int t)
|
||||||
{
|
{
|
||||||
if (session == NULL || argument == NULL || Zathura.document == NULL) {
|
g_return_val_if_fail(session != NULL, false);
|
||||||
return false;
|
g_return_val_if_fail(session->global.data != NULL, false);
|
||||||
}
|
zathura_t* zathura = session->global.data;
|
||||||
|
g_return_val_if_fail(argument != NULL, false);
|
||||||
|
g_return_val_if_fail(zathura->document != NULL, false);
|
||||||
|
|
||||||
unsigned int number_of_pages = Zathura.document->number_of_pages;
|
unsigned int number_of_pages = zathura->document->number_of_pages;
|
||||||
unsigned int new_page = Zathura.document->current_page_number;
|
unsigned int new_page = zathura->document->current_page_number;
|
||||||
|
|
||||||
if (argument->n == NEXT) {
|
if (argument->n == NEXT) {
|
||||||
new_page = (new_page + 1) % number_of_pages;
|
new_page = (new_page + 1) % number_of_pages;
|
||||||
|
@ -122,24 +144,35 @@ sc_navigate(girara_session_t* session, girara_argument_t* argument, unsigned int
|
||||||
bool
|
bool
|
||||||
sc_recolor(girara_session_t* session, girara_argument_t* argument, unsigned int t)
|
sc_recolor(girara_session_t* session, girara_argument_t* argument, unsigned int t)
|
||||||
{
|
{
|
||||||
|
g_return_val_if_fail(session != NULL, false);
|
||||||
|
g_return_val_if_fail(session->global.data != NULL, false);
|
||||||
|
|
||||||
|
zathura_t* zathura = session->global.data;
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
sc_reload(girara_session_t* session, girara_argument_t* argument, unsigned int t)
|
sc_reload(girara_session_t* session, girara_argument_t* argument, unsigned int t)
|
||||||
{
|
{
|
||||||
|
g_return_val_if_fail(session != NULL, false);
|
||||||
|
g_return_val_if_fail(session->global.data != NULL, false);
|
||||||
|
|
||||||
|
zathura_t* zathura = session->global.data;
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
sc_rotate(girara_session_t* session, girara_argument_t* argument, unsigned int t)
|
sc_rotate(girara_session_t* session, girara_argument_t* argument, unsigned int t)
|
||||||
{
|
{
|
||||||
if (session == NULL || Zathura.document == NULL) {
|
g_return_val_if_fail(session != NULL, false);
|
||||||
return false;
|
g_return_val_if_fail(session->global.data != NULL, false);
|
||||||
}
|
zathura_t* zathura = session->global.data;
|
||||||
|
g_return_val_if_fail(zathura->document != NULL, false);
|
||||||
|
|
||||||
/* update rotate value */
|
/* update rotate value */
|
||||||
Zathura.document->rotate = (Zathura.document->rotate + 90) % 360;
|
zathura->document->rotate = (zathura->document->rotate + 90) % 360;
|
||||||
|
|
||||||
/* render all pages again */
|
/* render all pages again */
|
||||||
render_all();
|
render_all();
|
||||||
|
@ -150,11 +183,17 @@ sc_rotate(girara_session_t* session, girara_argument_t* argument, unsigned int t
|
||||||
bool
|
bool
|
||||||
sc_scroll(girara_session_t* session, girara_argument_t* argument, unsigned int t)
|
sc_scroll(girara_session_t* session, girara_argument_t* argument, unsigned int t)
|
||||||
{
|
{
|
||||||
|
g_return_val_if_fail(session != NULL, false);
|
||||||
|
g_return_val_if_fail(session->global.data != NULL, false);
|
||||||
|
zathura_t* zathura = session->global.data;
|
||||||
|
g_return_val_if_fail(argument != NULL, false);
|
||||||
|
g_return_val_if_fail(zathura->document != NULL, false);
|
||||||
|
|
||||||
GtkAdjustment* adjustment = NULL;
|
GtkAdjustment* adjustment = NULL;
|
||||||
if ( (argument->n == LEFT) || (argument->n == RIGHT) )
|
if ( (argument->n == LEFT) || (argument->n == RIGHT) )
|
||||||
adjustment = gtk_scrolled_window_get_hadjustment(GTK_SCROLLED_WINDOW(Zathura.UI.session->gtk.view));
|
adjustment = gtk_scrolled_window_get_hadjustment(GTK_SCROLLED_WINDOW(zathura->UI.session->gtk.view));
|
||||||
else
|
else
|
||||||
adjustment = gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(Zathura.UI.session->gtk.view));
|
adjustment = gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(zathura->UI.session->gtk.view));
|
||||||
|
|
||||||
gdouble view_size = gtk_adjustment_get_page_size(adjustment);
|
gdouble view_size = gtk_adjustment_get_page_size(adjustment);
|
||||||
gdouble value = gtk_adjustment_get_value(adjustment);
|
gdouble value = gtk_adjustment_get_value(adjustment);
|
||||||
|
@ -202,40 +241,54 @@ sc_scroll(girara_session_t* session, girara_argument_t* argument, unsigned int t
|
||||||
bool
|
bool
|
||||||
sc_search(girara_session_t* session, girara_argument_t* argument, unsigned int t)
|
sc_search(girara_session_t* session, girara_argument_t* argument, unsigned int t)
|
||||||
{
|
{
|
||||||
|
g_return_val_if_fail(session != NULL, false);
|
||||||
|
g_return_val_if_fail(session->global.data != NULL, false);
|
||||||
|
zathura_t* zathura = session->global.data;
|
||||||
|
g_return_val_if_fail(argument != NULL, false);
|
||||||
|
g_return_val_if_fail(zathura->document != NULL, false);
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
sc_navigate_index(girara_session_t* session, girara_argument_t* argument, unsigned int t)
|
sc_navigate_index(girara_session_t* session, girara_argument_t* argument, unsigned int t)
|
||||||
{
|
{
|
||||||
|
g_return_val_if_fail(session != NULL, false);
|
||||||
|
g_return_val_if_fail(session->global.data != NULL, false);
|
||||||
|
zathura_t* zathura = session->global.data;
|
||||||
|
g_return_val_if_fail(argument != NULL, false);
|
||||||
|
g_return_val_if_fail(zathura->document != NULL, false);
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
sc_toggle_index(girara_session_t* session, girara_argument_t* argument, unsigned int t)
|
sc_toggle_index(girara_session_t* session, girara_argument_t* argument, unsigned int t)
|
||||||
{
|
{
|
||||||
if (session == NULL || Zathura.document == NULL) {
|
g_return_val_if_fail(session != NULL, false);
|
||||||
return false;
|
g_return_val_if_fail(session->global.data != NULL, false);
|
||||||
}
|
zathura_t* zathura = session->global.data;
|
||||||
|
g_return_val_if_fail(argument != NULL, false);
|
||||||
|
g_return_val_if_fail(zathura->document != NULL, false);
|
||||||
|
|
||||||
girara_tree_node_t* document_index = NULL;
|
girara_tree_node_t* document_index = NULL;
|
||||||
GtkWidget* treeview = NULL;
|
GtkWidget* treeview = NULL;
|
||||||
GtkTreeModel* model = NULL;
|
GtkTreeModel* model = NULL;
|
||||||
GtkCellRenderer* renderer = NULL;
|
GtkCellRenderer* renderer = NULL;
|
||||||
|
|
||||||
if (Zathura.UI.index == NULL) {
|
if (zathura->UI.index == NULL) {
|
||||||
/* create new index widget */
|
/* create new index widget */
|
||||||
Zathura.UI.index = gtk_scrolled_window_new(NULL, NULL);
|
zathura->UI.index = gtk_scrolled_window_new(NULL, NULL);
|
||||||
|
|
||||||
if (Zathura.UI.index == NULL) {
|
if (zathura->UI.index == NULL) {
|
||||||
goto error_ret;
|
goto error_ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(Zathura.UI.index),
|
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(zathura->UI.index),
|
||||||
GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
|
GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
|
||||||
|
|
||||||
/* create index */
|
/* create index */
|
||||||
document_index = zathura_document_index_generate(Zathura.document);
|
document_index = zathura_document_index_generate(zathura->document);
|
||||||
if (document_index == NULL) {
|
if (document_index == NULL) {
|
||||||
// TODO: Error message
|
// TODO: Error message
|
||||||
goto error_free;
|
goto error_free;
|
||||||
|
@ -269,25 +322,25 @@ sc_toggle_index(girara_session_t* session, girara_argument_t* argument, unsigned
|
||||||
gtk_tree_view_set_cursor(GTK_TREE_VIEW(treeview), gtk_tree_path_new_first(), NULL, FALSE);
|
gtk_tree_view_set_cursor(GTK_TREE_VIEW(treeview), gtk_tree_path_new_first(), NULL, FALSE);
|
||||||
/*g_signal_connect(G_OBJECT(treeview), "row-activated", G_CALLBACK(cb_index_row_activated), NULL); TODO*/
|
/*g_signal_connect(G_OBJECT(treeview), "row-activated", G_CALLBACK(cb_index_row_activated), NULL); TODO*/
|
||||||
|
|
||||||
gtk_container_add(GTK_CONTAINER(Zathura.UI.index), treeview);
|
gtk_container_add(GTK_CONTAINER(zathura->UI.index), treeview);
|
||||||
gtk_widget_show(treeview);
|
gtk_widget_show(treeview);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (GTK_WIDGET_VISIBLE(GTK_WIDGET(Zathura.UI.index))) {
|
if (GTK_WIDGET_VISIBLE(GTK_WIDGET(zathura->UI.index))) {
|
||||||
girara_set_view(session, Zathura.UI.page_view);
|
girara_set_view(session, zathura->UI.page_view);
|
||||||
gtk_widget_hide(GTK_WIDGET(Zathura.UI.index));
|
gtk_widget_hide(GTK_WIDGET(zathura->UI.index));
|
||||||
} else {
|
} else {
|
||||||
girara_set_view(session, Zathura.UI.index);
|
girara_set_view(session, zathura->UI.index);
|
||||||
gtk_widget_show(GTK_WIDGET(Zathura.UI.index));
|
gtk_widget_show(GTK_WIDGET(zathura->UI.index));
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
error_free:
|
error_free:
|
||||||
|
|
||||||
if (Zathura.UI.index != NULL) {
|
if (zathura->UI.index != NULL) {
|
||||||
g_object_ref_sink(Zathura.UI.index);
|
g_object_ref_sink(zathura->UI.index);
|
||||||
Zathura.UI.index = NULL;
|
zathura->UI.index = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (document_index != NULL) {
|
if (document_index != NULL) {
|
||||||
|
@ -302,9 +355,7 @@ error_ret:
|
||||||
bool
|
bool
|
||||||
sc_toggle_inputbar(girara_session_t* session, girara_argument_t* argument, unsigned int t)
|
sc_toggle_inputbar(girara_session_t* session, girara_argument_t* argument, unsigned int t)
|
||||||
{
|
{
|
||||||
if (session == NULL) {
|
g_return_val_if_fail(session != NULL, false);
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (GTK_WIDGET_VISIBLE(GTK_WIDGET(session->gtk.inputbar))) {
|
if (GTK_WIDGET_VISIBLE(GTK_WIDGET(session->gtk.inputbar))) {
|
||||||
gtk_widget_hide(GTK_WIDGET(session->gtk.inputbar));
|
gtk_widget_hide(GTK_WIDGET(session->gtk.inputbar));
|
||||||
|
@ -318,9 +369,7 @@ sc_toggle_inputbar(girara_session_t* session, girara_argument_t* argument, unsig
|
||||||
bool
|
bool
|
||||||
sc_toggle_fullscreen(girara_session_t* session, girara_argument_t* argument, unsigned int t)
|
sc_toggle_fullscreen(girara_session_t* session, girara_argument_t* argument, unsigned int t)
|
||||||
{
|
{
|
||||||
if (session == NULL) {
|
g_return_val_if_fail(session != NULL, false);
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
static bool fullscreen = false;
|
static bool fullscreen = false;
|
||||||
|
|
||||||
|
@ -338,9 +387,7 @@ sc_toggle_fullscreen(girara_session_t* session, girara_argument_t* argument, uns
|
||||||
bool
|
bool
|
||||||
sc_toggle_statusbar(girara_session_t* session, girara_argument_t* argument, unsigned int t)
|
sc_toggle_statusbar(girara_session_t* session, girara_argument_t* argument, unsigned int t)
|
||||||
{
|
{
|
||||||
if (session == NULL) {
|
g_return_val_if_fail(session != NULL, false);
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (GTK_WIDGET_VISIBLE(GTK_WIDGET(session->gtk.statusbar))) {
|
if (GTK_WIDGET_VISIBLE(GTK_WIDGET(session->gtk.statusbar))) {
|
||||||
gtk_widget_hide(GTK_WIDGET(session->gtk.statusbar));
|
gtk_widget_hide(GTK_WIDGET(session->gtk.statusbar));
|
||||||
|
@ -354,6 +401,8 @@ sc_toggle_statusbar(girara_session_t* session, girara_argument_t* argument, unsi
|
||||||
bool
|
bool
|
||||||
sc_quit(girara_session_t* session, girara_argument_t* argument, unsigned int t)
|
sc_quit(girara_session_t* session, girara_argument_t* argument, unsigned int t)
|
||||||
{
|
{
|
||||||
|
g_return_val_if_fail(session != NULL, false);
|
||||||
|
|
||||||
girara_argument_t arg = { GIRARA_HIDE, NULL };
|
girara_argument_t arg = { GIRARA_HIDE, NULL };
|
||||||
girara_isc_completion(session, &arg, 0);
|
girara_isc_completion(session, &arg, 0);
|
||||||
|
|
||||||
|
@ -367,12 +416,14 @@ sc_quit(girara_session_t* session, girara_argument_t* argument, unsigned int t)
|
||||||
bool
|
bool
|
||||||
sc_zoom(girara_session_t* session, girara_argument_t* argument, unsigned int t)
|
sc_zoom(girara_session_t* session, girara_argument_t* argument, unsigned int t)
|
||||||
{
|
{
|
||||||
if (session == NULL || argument == NULL || Zathura.document == NULL) {
|
g_return_val_if_fail(session != NULL, false);
|
||||||
return false;
|
g_return_val_if_fail(session->global.data != NULL, false);
|
||||||
}
|
zathura_t* zathura = session->global.data;
|
||||||
|
g_return_val_if_fail(argument != NULL, false);
|
||||||
|
g_return_val_if_fail(zathura->document != NULL, false);
|
||||||
|
|
||||||
/* retreive zoom step value */
|
/* retreive zoom step value */
|
||||||
int* value = girara_setting_get(Zathura.UI.session, "zoom-step");
|
int* value = girara_setting_get(zathura->UI.session, "zoom-step");
|
||||||
if (value == NULL) {
|
if (value == NULL) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -380,11 +431,11 @@ sc_zoom(girara_session_t* session, girara_argument_t* argument, unsigned int t)
|
||||||
float zoom_step = *value / 100.0f;
|
float zoom_step = *value / 100.0f;
|
||||||
|
|
||||||
if (argument->n == ZOOM_IN) {
|
if (argument->n == ZOOM_IN) {
|
||||||
Zathura.document->scale += zoom_step;
|
zathura->document->scale += zoom_step;
|
||||||
} else if (argument->n == ZOOM_OUT) {
|
} else if (argument->n == ZOOM_OUT) {
|
||||||
Zathura.document->scale -= zoom_step;
|
zathura->document->scale -= zoom_step;
|
||||||
} else {
|
} else {
|
||||||
Zathura.document->scale = 1.0;
|
zathura->document->scale = 1.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
render_all();
|
render_all();
|
||||||
|
|
Loading…
Add table
Reference in a new issue