zathura/commands.c

170 lines
4.1 KiB
C
Raw Normal View History

2010-11-10 20:31:15 +01:00
/* See LICENSE file for license and copyright information */
#include "commands.h"
2011-09-03 13:40:28 +02:00
#include "bookmarks.h"
#include "database.h"
2011-03-12 11:32:24 +01:00
#include "zathura.h"
2011-04-29 00:28:19 +02:00
#include "print.h"
2011-09-03 13:40:28 +02:00
#include "document.h"
2010-11-10 20:31:15 +01:00
bool
2011-09-21 00:46:03 +02:00
cmd_bookmark_create(girara_session_t* UNUSED(session), girara_list_t*
UNUSED(argument_list))
2010-11-10 20:31:15 +01:00
{
return true;
}
bool
cmd_bookmark_delete(girara_session_t* session, girara_list_t* argument_list)
2010-11-10 20:31:15 +01:00
{
2011-09-03 13:40:28 +02:00
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 (zathura->document == NULL) {
girara_notify(session, GIRARA_ERROR, "No document opened.");
return false;
}
const unsigned int argc = girara_list_size(argument_list);
if (argc != 1) {
girara_notify(session, GIRARA_ERROR, "Invalid number of arguments given.");
return false;
}
const char* bookmark = girara_list_nth(argument_list, 0);
if (zathura_bookmark_remove(zathura, bookmark)) {
girara_notify(session, GIRARA_INFO, "Removed bookmark: %s", bookmark);
} else {
girara_notify(session, GIRARA_ERROR, "Failed to remove bookmark: %s", bookmark);
}
2010-11-10 20:31:15 +01:00
return true;
}
bool
2011-09-21 00:46:03 +02:00
cmd_bookmark_open(girara_session_t* UNUSED(session), girara_list_t*
UNUSED(argument_list))
2010-11-10 20:31:15 +01:00
{
return true;
}
bool
2011-09-21 00:46:03 +02:00
cmd_close(girara_session_t* session, girara_list_t* UNUSED(argument_list))
2010-11-10 20:31:15 +01:00
{
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 (zathura->document == NULL) {
// nothing needs to be done
return true;
}
document_close(zathura);
2011-03-12 11:32:24 +01:00
2010-11-10 20:31:15 +01:00
return true;
}
bool
2011-09-21 00:46:03 +02:00
cmd_info(girara_session_t* UNUSED(session), girara_list_t*
UNUSED(argument_list))
2010-11-10 20:31:15 +01:00
{
return true;
}
2011-09-01 13:15:27 +02:00
bool
2011-09-21 00:46:03 +02:00
cmd_help(girara_session_t* UNUSED(session), girara_list_t*
UNUSED(argument_list))
2011-09-01 13:15:27 +02:00
{
return true;
}
2011-05-25 00:24:43 +02:00
bool
cmd_open(girara_session_t* session, girara_list_t* argument_list)
{
2011-08-31 00:08:33 +02:00
g_return_val_if_fail(session != NULL, false);
g_return_val_if_fail(session->global.data != NULL, false);
zathura_t* zathura = session->global.data;
const int argc = girara_list_size(argument_list);
if (argc > 2) {
2011-09-03 13:40:28 +02:00
girara_notify(session, GIRARA_ERROR, "Too many arguments.");
2011-08-31 00:08:33 +02:00
return false;
}
else if (argc >= 1) {
2011-09-03 13:40:28 +02:00
if (zathura->document) {
document_close(zathura);
}
2011-08-31 00:08:33 +02:00
document_open(zathura, girara_list_nth(argument_list, 0), (argc == 2) ? girara_list_nth(argument_list, 1) : NULL);
}
else {
2011-09-03 13:40:28 +02:00
girara_notify(session, GIRARA_ERROR, "No arguments given.");
2011-08-31 00:08:33 +02:00
return false;
}
2011-05-25 00:24:43 +02:00
return true;
}
2010-11-10 20:31:15 +01:00
bool
2011-09-21 00:46:03 +02:00
cmd_print(girara_session_t* session, girara_list_t* UNUSED(argument_list))
2010-11-10 20:31:15 +01:00
{
2011-04-29 00:28:19 +02:00
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 (zathura->document == NULL) {
2011-09-03 13:40:28 +02:00
girara_notify(session, GIRARA_ERROR, "No open document.");
return false;
}
2011-04-29 00:28:19 +02:00
print((zathura_t*) session->global.data);
2011-04-29 00:28:19 +02:00
2010-11-10 20:31:15 +01:00
return true;
}
bool
cmd_save(girara_session_t* session, girara_list_t* argument_list)
2010-11-10 20:31:15 +01:00
{
2011-09-01 11:51:49 +02:00
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 (zathura->document == NULL) {
girara_notify(session, GIRARA_ERROR, "No open document.");
return false;
}
2011-09-01 11:51:49 +02:00
if (girara_list_size(argument_list) == 1) {
document_save(zathura, girara_list_nth(argument_list, 0), false);
}
else {
2011-09-03 13:40:28 +02:00
girara_notify(session, GIRARA_ERROR, "Invalid number of arguments.");
2011-09-01 11:51:49 +02:00
return false;
}
return true;
}
bool
cmd_savef(girara_session_t* session, girara_list_t* argument_list)
{
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 (zathura->document == NULL) {
girara_notify(session, GIRARA_ERROR, "No open document.");
2011-09-03 13:40:28 +02:00
return false;
}
2011-09-01 11:51:49 +02:00
if (girara_list_size(argument_list) == 1) {
document_save(zathura, girara_list_nth(argument_list, 0), true);
}
else {
2011-09-03 13:40:28 +02:00
girara_notify(session, GIRARA_ERROR, "Invalid number of arguments.");
2011-09-01 11:51:49 +02:00
return false;
}
2010-11-10 20:31:15 +01:00
return true;
}