zathura/utils.h
2011-04-19 19:24:03 +02:00

81 lines
2 KiB
C

/* See LICENSE file for license and copyright information */
#ifndef UTILS_H
#define UTILS_H
#include <stdbool.h>
#include <gtk/gtk.h>
#include <girara.h>
#include "document.h"
typedef struct page_offset_s
{
int x;
int y;
} page_offset_t;
/**
* Checks if the given file exists
*
* @param path Path to the file
* @return true if the file exists, otherwise false
*/
bool file_exists(const char* path);
/**
* Returns the file extension of a path
*
* @param path Path to the file
* @return The file extension or NULL
*/
const char* file_get_extension(const char* path);
/**
* Executes a system command and saves its output into output
*
* @param argv The command
* @param output Pointer where the output will be saved
* @return true if no error occured, otherwise false
*/
bool execute_command(char* const argv[], char** output);
/**
* Creates a blank page
*
* @param width The width of the page
* @param height The height of the page
* @return The widget of the page or NULL if an error occured
*/
GtkWidget* page_blank(unsigned int width, unsigned int height);
/**
* Generates the document index based upon the list retreived from the document
* object.
*
* @param model The tree model
* @param tree_it The Tree iterator
* @param list_it The index list iterator
*/
void document_index_build(GtkTreeModel* model, GtkTreeIter* parent, girara_tree_node_t* tree);
/**
* This function is used to concatenate multiple strings. Argument list has to
* be ended with NULL. Returned string has to be freed with free().
*
* @param string1 First string
* @param ... Additional strings
* @return Concatenated string or NULL if an error occured
*/
char* string_concat(const char* string1, ...);
/**
* Calculates the offset of the page to the top of the viewing area as
* well as to the left side of it. The result has to be freed.
*
* @param page The Page
* @return The calculated offset or NULL if an error occured
*/
page_offset_t* page_calculate_offset(zathura_page_t* page);
#endif // UTILS_H