2010-11-17 22:51:15 +01:00
|
|
|
/* See LICENSE file for license and copyright information */
|
|
|
|
|
|
|
|
#ifndef DOCUMENT_H
|
|
|
|
#define DOCUMENT_H
|
|
|
|
|
|
|
|
#include <stdbool.h>
|
2011-10-23 17:01:15 +02:00
|
|
|
#include <girara/types.h>
|
2012-03-27 13:30:04 +02:00
|
|
|
|
2012-03-27 11:19:39 +02:00
|
|
|
#include "types.h"
|
2010-12-24 16:21:54 +01:00
|
|
|
|
2011-03-12 11:32:24 +01:00
|
|
|
/**
|
|
|
|
* Open the document
|
|
|
|
*
|
2012-04-03 09:02:45 +02:00
|
|
|
* @param plugin_manager The plugin manager
|
2011-03-12 11:32:24 +01:00
|
|
|
* @param path Path to the document
|
|
|
|
* @param password Password of the document or NULL
|
2012-04-03 09:02:45 +02:00
|
|
|
* @param error Optional error parameter
|
2011-03-12 11:32:24 +01:00
|
|
|
* @return The document object
|
|
|
|
*/
|
2012-04-03 09:02:45 +02:00
|
|
|
zathura_document_t* zathura_document_open(zathura_plugin_manager_t*
|
|
|
|
plugin_manager, const char* path, const char* password, zathura_error_t*
|
|
|
|
error);
|
2011-03-12 11:32:24 +01:00
|
|
|
|
2012-03-27 21:59:35 +02:00
|
|
|
/**
|
|
|
|
* Free the document
|
|
|
|
*
|
|
|
|
* @param document
|
|
|
|
* @return ZATHURA_ERROR_OK when no error occured, otherwise see
|
|
|
|
* zathura_error_t
|
|
|
|
*/
|
|
|
|
zathura_error_t zathura_document_free(zathura_document_t* document);
|
|
|
|
|
2012-03-27 14:44:09 +02:00
|
|
|
/**
|
|
|
|
* Returns the path of the document
|
|
|
|
*
|
|
|
|
* @param document The document
|
|
|
|
* @return The file path of the document
|
|
|
|
*/
|
|
|
|
const char* zathura_document_get_path(zathura_document_t* document);
|
|
|
|
|
2013-07-22 15:01:05 +02:00
|
|
|
/**
|
|
|
|
* Returns the basename of the document
|
|
|
|
*
|
|
|
|
* @param document The document
|
|
|
|
* @return The basename of the document
|
|
|
|
*/
|
|
|
|
const char* zathura_document_get_basename(zathura_document_t* document);
|
|
|
|
|
2012-03-27 14:44:09 +02:00
|
|
|
/**
|
|
|
|
* Returns the password of the document
|
|
|
|
*
|
|
|
|
* @param document The document
|
|
|
|
* @return Returns the password of the document
|
|
|
|
*/
|
|
|
|
const char* zathura_document_get_password(zathura_document_t* document);
|
|
|
|
|
2011-03-12 11:32:24 +01:00
|
|
|
/**
|
2012-03-27 21:59:35 +02:00
|
|
|
* Returns the page at the given index
|
2012-03-27 14:44:09 +02:00
|
|
|
*
|
|
|
|
* @param document The document
|
2012-03-27 21:59:35 +02:00
|
|
|
* @param index The index of the page
|
|
|
|
* @return The page or NULL if an error occured
|
2012-03-27 14:44:09 +02:00
|
|
|
*/
|
2012-03-27 21:59:35 +02:00
|
|
|
zathura_page_t* zathura_document_get_page(zathura_document_t* document, unsigned int index);
|
2012-03-27 14:44:09 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Returns the number of pages
|
|
|
|
*
|
|
|
|
* @param document The document
|
|
|
|
* @return Number of pages
|
|
|
|
*/
|
|
|
|
unsigned int zathura_document_get_number_of_pages(zathura_document_t* document);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Sets the number of pages
|
|
|
|
*
|
|
|
|
* @param document The document
|
|
|
|
* @param number_of_pages Number of pages
|
|
|
|
*/
|
|
|
|
void zathura_document_set_number_of_pages(zathura_document_t* document, unsigned
|
|
|
|
int number_of_pages);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Returns the current page number
|
|
|
|
*
|
|
|
|
* @param document The document
|
|
|
|
* @return Current page
|
|
|
|
*/
|
2012-03-27 21:59:35 +02:00
|
|
|
unsigned int zathura_document_get_current_page_number(zathura_document_t* document);
|
2012-03-27 14:44:09 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Sets the number of pages
|
|
|
|
*
|
|
|
|
* @param document The document
|
|
|
|
* @param current_page The current page number
|
|
|
|
*/
|
2012-03-27 21:59:35 +02:00
|
|
|
void zathura_document_set_current_page_number(zathura_document_t* document, unsigned
|
2012-03-27 14:44:09 +02:00
|
|
|
int current_page);
|
|
|
|
|
2013-10-25 11:33:34 +02:00
|
|
|
/**
|
|
|
|
* Returns the X position, as a value relative to the document width (0=left,
|
|
|
|
* 1=right).
|
|
|
|
*
|
|
|
|
* @param document The document
|
|
|
|
* @return X adjustment
|
|
|
|
*/
|
|
|
|
double zathura_document_get_position_x(zathura_document_t* document);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Returns the Y position as value relative to the document height (0=top,
|
|
|
|
* 1=bottom)
|
|
|
|
*
|
|
|
|
* @param document The document
|
|
|
|
* @return Y adjustment
|
|
|
|
*/
|
|
|
|
double zathura_document_get_position_y(zathura_document_t* document);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Sets the X position as a value relative to the document width (0=left,
|
|
|
|
* 1=right)
|
|
|
|
*
|
|
|
|
* @param document The document
|
|
|
|
* @param position_x the X adjustment
|
|
|
|
*/
|
|
|
|
void zathura_document_set_position_x(zathura_document_t* document, double position_x);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Sets the Y position as a value relative to the document height (0=top,
|
|
|
|
* 1=bottom)
|
|
|
|
*
|
|
|
|
* @param document The document
|
|
|
|
* @param position_y the Y adjustment
|
|
|
|
*/
|
|
|
|
void zathura_document_set_position_y(zathura_document_t* document, double position_y);
|
|
|
|
|
2012-03-27 21:59:35 +02:00
|
|
|
/**
|
|
|
|
* Returns the current scale value of the document
|
|
|
|
*
|
|
|
|
* @param document The document
|
2012-08-17 14:14:57 +02:00
|
|
|
* @return The current scale value
|
2012-03-27 21:59:35 +02:00
|
|
|
*/
|
|
|
|
double zathura_document_get_scale(zathura_document_t* document);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Sets the new scale value of the document
|
|
|
|
*
|
|
|
|
* @param document The document
|
|
|
|
* @param scale The new scale value
|
|
|
|
*/
|
|
|
|
void zathura_document_set_scale(zathura_document_t* document, double scale);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Returns the rotation value of zathura (0..360)
|
|
|
|
*
|
|
|
|
* @param document The document
|
|
|
|
* @return The current rotation value
|
|
|
|
*/
|
|
|
|
unsigned int zathura_document_get_rotation(zathura_document_t* document);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Sets the new rotation value
|
|
|
|
*
|
|
|
|
* @param document The document
|
|
|
|
* @param rotation The new rotation value
|
|
|
|
*/
|
|
|
|
void zathura_document_set_rotation(zathura_document_t* document, unsigned int rotation);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Returns the adjust mode of the document
|
|
|
|
*
|
|
|
|
* @param document The document
|
2012-08-17 14:14:57 +02:00
|
|
|
* @return The adjust mode
|
2012-03-27 21:59:35 +02:00
|
|
|
*/
|
|
|
|
zathura_adjust_mode_t zathura_document_get_adjust_mode(zathura_document_t* document);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Sets the new adjust mode of the document
|
|
|
|
*
|
|
|
|
* @param document The document
|
|
|
|
* @param mode The new adjust mode
|
|
|
|
*/
|
|
|
|
void zathura_document_set_adjust_mode(zathura_document_t* document, zathura_adjust_mode_t mode);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Returns the page offset of the document
|
|
|
|
*
|
|
|
|
* @param document The document
|
|
|
|
* @return The page offset
|
|
|
|
*/
|
2013-05-08 18:28:32 +02:00
|
|
|
int zathura_document_get_page_offset(zathura_document_t* document);
|
2012-03-27 21:59:35 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Sets the new page offset of the document
|
|
|
|
*
|
|
|
|
* @param document The document
|
|
|
|
* @param page_offset The new page offset
|
|
|
|
*/
|
|
|
|
void zathura_document_set_page_offset(zathura_document_t* document, unsigned int page_offset);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Returns the private data of the document
|
|
|
|
*
|
|
|
|
* @param document The document
|
|
|
|
* @return The private data or NULL
|
|
|
|
*/
|
|
|
|
void* zathura_document_get_data(zathura_document_t* document);
|
|
|
|
|
2012-03-27 14:44:09 +02:00
|
|
|
/**
|
|
|
|
* Sets the private data of the document
|
|
|
|
*
|
|
|
|
* @param document The document
|
|
|
|
* @param data The new private data
|
|
|
|
*/
|
|
|
|
void zathura_document_set_data(zathura_document_t* document, void* data);
|
|
|
|
|
2012-12-13 12:43:48 +01:00
|
|
|
/**
|
2013-10-25 11:33:34 +02:00
|
|
|
* Sets the width of the viewport in pixels.
|
|
|
|
*
|
|
|
|
* @param[in] document The document instance
|
|
|
|
* @param[in] width The width of the viewport
|
|
|
|
*/
|
|
|
|
void
|
|
|
|
zathura_document_set_viewport_width(zathura_document_t* document, unsigned int width);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Sets the height of the viewport in pixels.
|
|
|
|
*
|
|
|
|
* @param[in] document The document instance
|
|
|
|
* @param[in] height The height of the viewport
|
|
|
|
*/
|
|
|
|
void
|
|
|
|
zathura_document_set_viewport_height(zathura_document_t* document, unsigned int height);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Return the size of the viewport in pixels.
|
|
|
|
*
|
|
|
|
* @param[in] document The document instance
|
|
|
|
* @param[out] height,width The width and height of the viewport
|
|
|
|
*/
|
|
|
|
void
|
|
|
|
zathura_document_get_viewport_size(zathura_document_t* document,
|
|
|
|
unsigned int *height, unsigned int* width);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Return the size of a cell from the document's layout table in pixels. Assumes
|
|
|
|
* that the table is homogeneous (i.e. every cell has the same dimensions). It
|
|
|
|
* takes the current scale into account.
|
2012-12-13 12:43:48 +01:00
|
|
|
*
|
|
|
|
* @param[in] document The document instance
|
|
|
|
* @param[out] height,width The computed height and width of the cell
|
|
|
|
*/
|
|
|
|
void zathura_document_get_cell_size(zathura_document_t* document,
|
|
|
|
unsigned int* height, unsigned int* width);
|
|
|
|
|
2013-10-20 16:40:56 +02:00
|
|
|
/**
|
2013-10-25 11:33:34 +02:00
|
|
|
* Compute the size of the entire document to be displayed in pixels. Takes into
|
|
|
|
* account the scale, the layout of the pages, and the padding between them. It
|
|
|
|
* should be equal to the allocation of zathura->ui.page_widget once it's shown.
|
2013-10-20 16:40:56 +02:00
|
|
|
*
|
|
|
|
* @param[in] document The document
|
|
|
|
* @param[out] height,width The height and width of the document
|
|
|
|
*/
|
|
|
|
void zathura_document_get_document_size(zathura_document_t* document,
|
|
|
|
unsigned int* height, unsigned int* width);
|
|
|
|
|
2013-10-20 17:05:15 +02:00
|
|
|
/**
|
|
|
|
* Sets the layout of the pages in the document
|
|
|
|
*
|
|
|
|
* @param[in] document The document instance
|
|
|
|
* @param[in] page_padding pixels of padding between pages
|
|
|
|
* @param[in] pages_per_row number of pages per row
|
|
|
|
* @param[in] first_page_column column of the first page (first column is 1)
|
|
|
|
*/
|
|
|
|
void zathura_document_set_page_layout(zathura_document_t* document, unsigned int page_padding,
|
|
|
|
unsigned int pages_per_row, unsigned int first_page_column);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Returns the padding in pixels betwen pages
|
|
|
|
*
|
|
|
|
* @param document The document
|
|
|
|
* @return The padding in pixels between pages
|
|
|
|
*/
|
|
|
|
unsigned int zathura_document_get_page_padding(zathura_document_t* document);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Returns the number of pages per row
|
|
|
|
*
|
|
|
|
* @param document The document
|
|
|
|
* @return The number of pages per row
|
|
|
|
*/
|
|
|
|
unsigned int zathura_document_get_pages_per_row(zathura_document_t* document);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Returns the column for the first page (first column = 1)
|
|
|
|
*
|
|
|
|
* @param document The document
|
|
|
|
* @return The column for the first page
|
|
|
|
*/
|
|
|
|
unsigned int zathura_document_get_first_page_column(zathura_document_t* document);
|
|
|
|
|
2011-03-12 11:32:24 +01:00
|
|
|
/**
|
|
|
|
* Save the document
|
|
|
|
*
|
|
|
|
* @param document The document object
|
|
|
|
* @param path Path for the saved file
|
2012-03-27 13:30:04 +02:00
|
|
|
* @return ZATHURA_ERROR_OK when no error occured, otherwise see
|
|
|
|
* zathura_error_t
|
2011-03-12 11:32:24 +01:00
|
|
|
*/
|
2012-03-27 13:30:04 +02:00
|
|
|
zathura_error_t zathura_document_save_as(zathura_document_t* document, const char* path);
|
2011-03-12 11:32:24 +01:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Generate the document index
|
|
|
|
*
|
|
|
|
* @param document The document object
|
2012-03-27 13:30:04 +02:00
|
|
|
* @param error Set to an error value (see \ref zathura_error_t) if an
|
2012-02-08 15:30:13 +01:00
|
|
|
* error occured
|
2011-03-12 11:32:24 +01:00
|
|
|
* @return Generated index
|
|
|
|
*/
|
|
|
|
|
2012-03-27 13:30:04 +02:00
|
|
|
girara_tree_node_t* zathura_document_index_generate(zathura_document_t* document, zathura_error_t* error);
|
2011-03-12 11:32:24 +01:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Get list of attachments
|
|
|
|
*
|
|
|
|
* @param document The document object
|
2012-03-27 13:30:04 +02:00
|
|
|
* @param error Set to an error value (see \ref zathura_error_t) if an
|
2012-02-08 15:30:13 +01:00
|
|
|
* error occured
|
2011-03-12 11:32:24 +01:00
|
|
|
* @return List of attachments
|
|
|
|
*/
|
2012-03-27 13:30:04 +02:00
|
|
|
girara_list_t* zathura_document_attachments_get(zathura_document_t* document, zathura_error_t* error);
|
2011-03-12 11:32:24 +01:00
|
|
|
|
|
|
|
/**
|
2012-01-22 22:00:40 +01:00
|
|
|
* Save document attachment
|
2011-03-12 11:32:24 +01:00
|
|
|
*
|
2012-01-13 18:25:17 +01:00
|
|
|
* @param document The document objects
|
|
|
|
* @param attachment name of the attachment
|
|
|
|
* @param file the target filename
|
2012-03-27 13:30:04 +02:00
|
|
|
* @return ZATHURA_ERROR_OK when no error occured, otherwise see
|
|
|
|
* zathura_error_t
|
2011-03-12 11:32:24 +01:00
|
|
|
*/
|
2012-03-27 13:30:04 +02:00
|
|
|
zathura_error_t zathura_document_attachment_save(zathura_document_t* document, const char* attachment, const char* file);
|
2010-11-17 23:15:08 +01:00
|
|
|
|
2011-10-01 23:29:40 +02:00
|
|
|
/**
|
|
|
|
* Returns a string of the requested information
|
|
|
|
*
|
|
|
|
* @param document The zathura document
|
2012-03-27 13:30:04 +02:00
|
|
|
* @param error Set to an error value (see \ref zathura_error_t) if an
|
2012-02-08 15:30:13 +01:00
|
|
|
* error occured
|
2012-03-30 18:24:00 +02:00
|
|
|
* @return List of document information entries or NULL if information could not be retreived
|
2011-10-01 23:29:40 +02:00
|
|
|
*/
|
2012-03-30 18:24:00 +02:00
|
|
|
girara_list_t* zathura_document_get_information(zathura_document_t* document, zathura_error_t* error);
|
2011-09-29 15:23:13 +02:00
|
|
|
|
2010-11-17 22:51:15 +01:00
|
|
|
#endif // DOCUMENT_H
|