zathura
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros
database.h
Go to the documentation of this file.
1 /* See LICENSE file for license and copyright information */
2 
3 #ifndef DATABASE_H
4 #define DATABASE_H
5 
6 #include <stdbool.h>
7 #include <girara/types.h>
8 #include <glib-object.h>
9 
10 #include "bookmarks.h"
11 
12 typedef struct zathura_fileinfo_s {
13  unsigned int current_page;
14  unsigned int page_offset;
15  double scale;
16  unsigned int rotation;
17  unsigned int pages_per_row;
18  unsigned int first_page_column;
19  double position_x;
20  double position_y;
22 
23 #define ZATHURA_TYPE_DATABASE \
24  (zathura_database_get_type ())
25 #define ZATHURA_DATABASE(obj) \
26  (G_TYPE_CHECK_INSTANCE_CAST ((obj), ZATHURA_TYPE_DATABASE, ZathuraDatabase))
27 #define ZATHURA_IS_DATABASE(obj) \
28  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ZATHURA_TYPE_DATABASE))
29 #define ZATHURA_DATABASE_GET_INTERFACE(obj) \
30  (G_TYPE_INSTANCE_GET_INTERFACE ((obj), ZATHURA_TYPE_DATABASE, ZathuraDatabaseInterface))
31 
32 typedef struct _ZathuraDatabase ZathuraDatabase;
33 typedef struct _ZathuraDatabaseInterface ZathuraDatabaseInterface;
34 
36 {
37  GTypeInterface parent_iface;
38 
39  /* interface methords */
40  bool (*add_bookmark)(ZathuraDatabase* db, const char* file, zathura_bookmark_t* bookmark);
41 
42  bool (*remove_bookmark)(ZathuraDatabase* db, const char* file, const char* id);
43 
44  girara_list_t* (*load_bookmarks)(ZathuraDatabase* db, const char* file);
45 
46  bool (*set_fileinfo)(ZathuraDatabase* db, const char* file, zathura_fileinfo_t* file_info);
47 
48  bool (*get_fileinfo)(ZathuraDatabase* db, const char* file, zathura_fileinfo_t* file_info);
49 };
50 
51 GType zathura_database_get_type(void);
52 
61 bool zathura_db_add_bookmark(zathura_database_t* db, const char* file,
62  zathura_bookmark_t* bookmark);
63 
72 bool zathura_db_remove_bookmark(zathura_database_t* db, const char* file, const
73  char* id);
74 
82 girara_list_t* zathura_db_load_bookmarks(zathura_database_t* db, const char*
83  file);
84 
93 bool zathura_db_set_fileinfo(zathura_database_t* db, const char* file,
94  zathura_fileinfo_t* file_info);
95 
96 /* Get file info (last site, ...) from the database.
97  *
98  * @param db The database instance
99  * @param file The file to which the file info belongs to.
100  * @param file_info The file info
101  * @return true on success, false otherwise.
102  */
103 bool zathura_db_get_fileinfo(zathura_database_t* db, const char* file,
104  zathura_fileinfo_t* file_info);
105 
106 #endif // DATABASE_H