diff --git a/zathura/database-plain.c b/zathura/database-plain.c index 49cbe2c..11646ef 100644 --- a/zathura/database-plain.c +++ b/zathura/database-plain.c @@ -48,6 +48,18 @@ file_lock_set(int fd, short cmd) static void zathura_database_interface_init(ZathuraDatabaseInterface* iface); static void io_interface_init(GiraraInputHistoryIOInterface* iface); +typedef struct zathura_plaindatabase_private_s { + char* bookmark_path; + GKeyFile* bookmarks; + GFileMonitor* bookmark_monitor; + + char* history_path; + GKeyFile* history; + GFileMonitor* history_monitor; + + char* input_history_path; +} ZathuraPlainDatabasePrivate; + G_DEFINE_TYPE_WITH_CODE(ZathuraPlainDatabase, zathura_plaindatabase, G_TYPE_OBJECT, G_IMPLEMENT_INTERFACE(ZATHURA_TYPE_DATABASE, zathura_database_interface_init) G_IMPLEMENT_INTERFACE(GIRARA_TYPE_INPUT_HISTORY_IO, io_interface_init)) @@ -72,21 +84,6 @@ static GKeyFile* zathura_db_read_key_file_from_file(const char* path); static void zathura_db_write_key_file_to_file(const char* file, GKeyFile* key_file); static void cb_zathura_db_watch_file(GFileMonitor* monitor, GFile* file, GFile* other_file, GFileMonitorEvent event, zathura_database_t* database); -typedef struct zathura_plaindatabase_private_s { - char* bookmark_path; - GKeyFile* bookmarks; - GFileMonitor* bookmark_monitor; - - char* history_path; - GKeyFile* history; - GFileMonitor* history_monitor; - - char* input_history_path; -} zathura_plaindatabase_private_t; - -#define ZATHURA_PLAINDATABASE_GET_PRIVATE(obj) \ - (G_TYPE_INSTANCE_GET_PRIVATE ((obj), ZATHURA_TYPE_PLAINDATABASE, zathura_plaindatabase_private_t)) - enum { PROP_0, PROP_PATH @@ -131,9 +128,6 @@ io_interface_init(GiraraInputHistoryIOInterface* iface) static void zathura_plaindatabase_class_init(ZathuraPlainDatabaseClass* class) { - /* add private members */ - g_type_class_add_private(class, sizeof(zathura_plaindatabase_private_t)); - /* override methods */ GObjectClass* object_class = G_OBJECT_CLASS(class); object_class->dispose = plain_dispose; @@ -148,7 +142,7 @@ zathura_plaindatabase_class_init(ZathuraPlainDatabaseClass* class) static void zathura_plaindatabase_init(ZathuraPlainDatabase* db) { - zathura_plaindatabase_private_t* priv = ZATHURA_PLAINDATABASE_GET_PRIVATE(db); + ZathuraPlainDatabasePrivate* priv = zathura_plaindatabase_get_instance_private(db); priv->bookmark_path = NULL; priv->bookmark_monitor = NULL; @@ -165,7 +159,7 @@ zathura_plaindatabase_new(const char* path) g_return_val_if_fail(path != NULL && strlen(path) != 0, NULL); zathura_database_t* db = g_object_new(ZATHURA_TYPE_PLAINDATABASE, "path", path, NULL); - zathura_plaindatabase_private_t* priv = ZATHURA_PLAINDATABASE_GET_PRIVATE(db); + ZathuraPlainDatabasePrivate* priv = zathura_plaindatabase_get_instance_private(ZATHURA_PLAINDATABASE(db)); if (priv->bookmark_path == NULL) { g_object_unref(db); return NULL; @@ -177,7 +171,7 @@ zathura_plaindatabase_new(const char* path) static void plain_db_init(ZathuraPlainDatabase* db, const char* dir) { - zathura_plaindatabase_private_t* priv = ZATHURA_PLAINDATABASE_GET_PRIVATE(db); + ZathuraPlainDatabasePrivate* priv = zathura_plaindatabase_get_instance_private(db); /* bookmarks */ priv->bookmark_path = g_build_filename(dir, BOOKMARKS, NULL); @@ -288,7 +282,7 @@ static void plain_dispose(GObject* object) { ZathuraPlainDatabase* db = ZATHURA_PLAINDATABASE(object); - zathura_plaindatabase_private_t* priv = ZATHURA_PLAINDATABASE_GET_PRIVATE(db); + ZathuraPlainDatabasePrivate* priv = zathura_plaindatabase_get_instance_private(db); g_clear_object(&priv->bookmark_monitor); g_clear_object(&priv->history_monitor); @@ -300,7 +294,7 @@ static void plain_finalize(GObject* object) { ZathuraPlainDatabase* db = ZATHURA_PLAINDATABASE(object); - zathura_plaindatabase_private_t* priv = ZATHURA_PLAINDATABASE_GET_PRIVATE(db); + ZathuraPlainDatabasePrivate* priv = zathura_plaindatabase_get_instance_private(db); /* bookmarks */ g_free(priv->bookmark_path); @@ -326,7 +320,8 @@ static bool plain_add_bookmark(zathura_database_t* db, const char* file, zathura_bookmark_t* bookmark) { - zathura_plaindatabase_private_t* priv = ZATHURA_PLAINDATABASE_GET_PRIVATE(db); + ZathuraPlainDatabase* plaindb = ZATHURA_PLAINDATABASE(db); + ZathuraPlainDatabasePrivate* priv = zathura_plaindatabase_get_instance_private(plaindb); if (priv->bookmarks == NULL || priv->bookmark_path == NULL || bookmark->id == NULL) { return false; @@ -364,7 +359,8 @@ plain_add_bookmark(zathura_database_t* db, const char* file, static bool plain_remove_bookmark(zathura_database_t* db, const char* file, const char* id) { - zathura_plaindatabase_private_t* priv = ZATHURA_PLAINDATABASE_GET_PRIVATE(db); + ZathuraPlainDatabase* plaindb = ZATHURA_PLAINDATABASE(db); + ZathuraPlainDatabasePrivate* priv = zathura_plaindatabase_get_instance_private(plaindb); if (priv->bookmarks == NULL || priv->bookmark_path == NULL) { return false; } @@ -387,7 +383,8 @@ plain_remove_bookmark(zathura_database_t* db, const char* file, const char* id) static girara_list_t* plain_load_bookmarks(zathura_database_t* db, const char* file) { - zathura_plaindatabase_private_t* priv = ZATHURA_PLAINDATABASE_GET_PRIVATE(db); + ZathuraPlainDatabase* plaindb = ZATHURA_PLAINDATABASE(db); + ZathuraPlainDatabasePrivate* priv = zathura_plaindatabase_get_instance_private(plaindb); if (priv->bookmarks == NULL) { return NULL; } @@ -498,9 +495,10 @@ plain_load_jumplist(zathura_database_t* db, const char* file) { g_return_val_if_fail(db != NULL && file != NULL, NULL); - zathura_plaindatabase_private_t* priv = ZATHURA_PLAINDATABASE_GET_PRIVATE(db); - char* str_value = g_key_file_get_string(priv->history, file, KEY_JUMPLIST, NULL); + ZathuraPlainDatabase* plaindb = ZATHURA_PLAINDATABASE(db); + ZathuraPlainDatabasePrivate* priv = zathura_plaindatabase_get_instance_private(plaindb); + char* str_value = g_key_file_get_string(priv->history, file, KEY_JUMPLIST, NULL); if (str_value == NULL) { return girara_list_new2(g_free); } @@ -533,7 +531,8 @@ plain_save_jumplist(zathura_database_t* db, const char* file, girara_list_t* jum GString* str_val = g_string_new(NULL); girara_list_foreach(jumplist, jump_to_str, str_val); - zathura_plaindatabase_private_t* priv = ZATHURA_PLAINDATABASE_GET_PRIVATE(db); + ZathuraPlainDatabase* plaindb = ZATHURA_PLAINDATABASE(db); + ZathuraPlainDatabasePrivate* priv = zathura_plaindatabase_get_instance_private(plaindb); g_key_file_set_string(priv->history, file, KEY_JUMPLIST, str_val->str); zathura_db_write_key_file_to_file(priv->history_path, priv->history); @@ -546,7 +545,8 @@ static bool plain_set_fileinfo(zathura_database_t* db, const char* file, zathura_fileinfo_t* file_info) { - zathura_plaindatabase_private_t* priv = ZATHURA_PLAINDATABASE_GET_PRIVATE(db); + ZathuraPlainDatabase* plaindb = ZATHURA_PLAINDATABASE(db); + ZathuraPlainDatabasePrivate* priv = zathura_plaindatabase_get_instance_private(plaindb); if (priv->history == NULL || file_info == NULL || file == NULL) { return false; } @@ -578,7 +578,8 @@ plain_get_fileinfo(zathura_database_t* db, const char* file, zathura_fileinfo_t* return false; } - zathura_plaindatabase_private_t* priv = ZATHURA_PLAINDATABASE_GET_PRIVATE(db); + ZathuraPlainDatabase* plaindb = ZATHURA_PLAINDATABASE(db); + ZathuraPlainDatabasePrivate* priv = zathura_plaindatabase_get_instance_private(plaindb); if (priv->history == NULL) { return false; } @@ -742,7 +743,8 @@ cb_zathura_db_watch_file(GFileMonitor* UNUSED(monitor), GFile* file, GFile* UNUS return; } - zathura_plaindatabase_private_t* priv = ZATHURA_PLAINDATABASE_GET_PRIVATE(database); + ZathuraPlainDatabase* plaindb = ZATHURA_PLAINDATABASE(database); + ZathuraPlainDatabasePrivate* priv = zathura_plaindatabase_get_instance_private(plaindb); if (priv->bookmark_path && strcmp(priv->bookmark_path, path) == 0) { if (priv->bookmarks != NULL) { g_key_file_free(priv->bookmarks); @@ -763,7 +765,8 @@ cb_zathura_db_watch_file(GFileMonitor* UNUSED(monitor), GFile* file, GFile* UNUS static girara_list_t* plain_io_read(GiraraInputHistoryIO* db) { - zathura_plaindatabase_private_t* priv = ZATHURA_PLAINDATABASE_GET_PRIVATE(db); + ZathuraPlainDatabase* plaindb = ZATHURA_PLAINDATABASE(db); + ZathuraPlainDatabasePrivate* priv = zathura_plaindatabase_get_instance_private(plaindb); /* open file */ FILE* file = fopen(priv->input_history_path, "r"); @@ -794,7 +797,8 @@ plain_io_read(GiraraInputHistoryIO* db) static void plain_io_append(GiraraInputHistoryIO* db, const char* input) { - zathura_plaindatabase_private_t* priv = ZATHURA_PLAINDATABASE_GET_PRIVATE(db); + ZathuraPlainDatabase* plaindb = ZATHURA_PLAINDATABASE(db); + ZathuraPlainDatabasePrivate* priv = zathura_plaindatabase_get_instance_private(plaindb); /* open file */ FILE* file = fopen(priv->input_history_path, "r+"); @@ -859,7 +863,8 @@ compare_time(const void* l, const void* r, void* data) static girara_list_t* plain_get_recent_files(zathura_database_t* db, int max, const char* basepath) { - zathura_plaindatabase_private_t* priv = ZATHURA_PLAINDATABASE_GET_PRIVATE(db); + ZathuraPlainDatabase* plaindb = ZATHURA_PLAINDATABASE(db); + ZathuraPlainDatabasePrivate* priv = zathura_plaindatabase_get_instance_private(plaindb); girara_list_t* result = girara_list_new2(g_free); if (result == NULL) { diff --git a/zathura/database-sqlite.c b/zathura/database-sqlite.c index 45c0191..e550073 100644 --- a/zathura/database-sqlite.c +++ b/zathura/database-sqlite.c @@ -19,9 +19,14 @@ sqlite3_column_text_dup(sqlite3_stmt* stmt, int col) static void zathura_database_interface_init(ZathuraDatabaseInterface* iface); static void io_interface_init(GiraraInputHistoryIOInterface* iface); +typedef struct zathura_sqldatabase_private_s { + sqlite3* session; +} ZathuraSQLDatabasePrivate; + G_DEFINE_TYPE_WITH_CODE(ZathuraSQLDatabase, zathura_sqldatabase, G_TYPE_OBJECT, G_IMPLEMENT_INTERFACE(ZATHURA_TYPE_DATABASE, zathura_database_interface_init) - G_IMPLEMENT_INTERFACE(GIRARA_TYPE_INPUT_HISTORY_IO, io_interface_init)) + G_IMPLEMENT_INTERFACE(GIRARA_TYPE_INPUT_HISTORY_IO, io_interface_init) + G_ADD_PRIVATE(ZathuraSQLDatabase)) static bool check_column(sqlite3* session, const char* table, const char* col, bool* result); static bool check_column_type(sqlite3* session, const char* table, const char* col, const char* type, bool* result); @@ -38,13 +43,6 @@ static void sqlite_io_append(GiraraInputHistoryIO* db, const char*); static girara_list_t* sqlite_io_read(GiraraInputHistoryIO* db); static girara_list_t* sqlite_get_recent_files(zathura_database_t* db, int max, const char* basepath); -typedef struct zathura_sqldatabase_private_s { - sqlite3* session; -} zathura_sqldatabase_private_t; - -#define ZATHURA_SQLDATABASE_GET_PRIVATE(obj) \ - (G_TYPE_INSTANCE_GET_PRIVATE ((obj), ZATHURA_TYPE_SQLDATABASE, zathura_sqldatabase_private_t)) - enum { PROP_0, PROP_PATH @@ -75,9 +73,6 @@ io_interface_init(GiraraInputHistoryIOInterface* iface) static void zathura_sqldatabase_class_init(ZathuraSQLDatabaseClass* class) { - /* add private members */ - g_type_class_add_private(class, sizeof(zathura_sqldatabase_private_t)); - /* override methods */ GObjectClass* object_class = G_OBJECT_CLASS(class); object_class->finalize = sqlite_finalize; @@ -91,7 +86,7 @@ zathura_sqldatabase_class_init(ZathuraSQLDatabaseClass* class) static void zathura_sqldatabase_init(ZathuraSQLDatabase* db) { - zathura_sqldatabase_private_t* priv = ZATHURA_SQLDATABASE_GET_PRIVATE(db); + ZathuraSQLDatabasePrivate* priv = zathura_sqldatabase_get_instance_private(db); priv->session = NULL; } @@ -101,7 +96,7 @@ zathura_sqldatabase_new(const char* path) g_return_val_if_fail(path != NULL && strlen(path) != 0, NULL); zathura_database_t* db = g_object_new(ZATHURA_TYPE_SQLDATABASE, "path", path, NULL); - zathura_sqldatabase_private_t* priv = ZATHURA_SQLDATABASE_GET_PRIVATE(db); + ZathuraSQLDatabasePrivate* priv = zathura_sqldatabase_get_instance_private(ZATHURA_SQLDATABASE(db)); if (priv->session == NULL) { g_object_unref(G_OBJECT(db)); return NULL; @@ -114,7 +109,7 @@ static void sqlite_finalize(GObject* object) { ZathuraSQLDatabase* db = ZATHURA_SQLDATABASE(object); - zathura_sqldatabase_private_t* priv = ZATHURA_SQLDATABASE_GET_PRIVATE(db); + ZathuraSQLDatabasePrivate* priv = zathura_sqldatabase_get_instance_private(db); if (priv->session) { sqlite3_exec(priv->session, "VACUUM;", NULL, 0, NULL); sqlite3_close(priv->session); @@ -126,7 +121,7 @@ sqlite_finalize(GObject* object) static void sqlite_db_init(ZathuraSQLDatabase* db, const char* path) { - zathura_sqldatabase_private_t* priv = ZATHURA_SQLDATABASE_GET_PRIVATE(db); + ZathuraSQLDatabasePrivate* priv = zathura_sqldatabase_get_instance_private(db); /* create bookmarks table */ static const char SQL_BOOKMARK_INIT[] = @@ -296,8 +291,8 @@ sqlite_db_init(ZathuraSQLDatabase* db, const char* path) static void sqlite_set_property(GObject* object, guint prop_id, const GValue* value, GParamSpec* pspec) { - ZathuraSQLDatabase* db = ZATHURA_SQLDATABASE(object); - zathura_sqldatabase_private_t* priv = ZATHURA_SQLDATABASE_GET_PRIVATE(db); + ZathuraSQLDatabase* db = ZATHURA_SQLDATABASE(object); + ZathuraSQLDatabasePrivate* priv = zathura_sqldatabase_get_instance_private(db); switch (prop_id) { case PROP_PATH: @@ -406,7 +401,8 @@ static bool sqlite_add_bookmark(zathura_database_t* db, const char* file, zathura_bookmark_t* bookmark) { - zathura_sqldatabase_private_t* priv = ZATHURA_SQLDATABASE_GET_PRIVATE(db); + ZathuraSQLDatabase* sqldb = ZATHURA_SQLDATABASE(db); + ZathuraSQLDatabasePrivate* priv = zathura_sqldatabase_get_instance_private(sqldb); static const char SQL_BOOKMARK_ADD[] = "REPLACE INTO bookmarks (file, id, page, hadj_ratio, vadj_ratio) VALUES (?, ?, ?, ?, ?);"; @@ -436,7 +432,8 @@ static bool sqlite_remove_bookmark(zathura_database_t* db, const char* file, const char* id) { - zathura_sqldatabase_private_t* priv = ZATHURA_SQLDATABASE_GET_PRIVATE(db); + ZathuraSQLDatabase* sqldb = ZATHURA_SQLDATABASE(db); + ZathuraSQLDatabasePrivate* priv = zathura_sqldatabase_get_instance_private(sqldb); static const char SQL_BOOKMARK_ADD[] = "DELETE FROM bookmarks WHERE file = ? AND id = ?;"; @@ -462,7 +459,8 @@ sqlite_remove_bookmark(zathura_database_t* db, const char* file, const char* static girara_list_t* sqlite_load_bookmarks(zathura_database_t* db, const char* file) { - zathura_sqldatabase_private_t* priv = ZATHURA_SQLDATABASE_GET_PRIVATE(db); + ZathuraSQLDatabase* sqldb = ZATHURA_SQLDATABASE(db); + ZathuraSQLDatabasePrivate* priv = zathura_sqldatabase_get_instance_private(sqldb); static const char SQL_BOOKMARK_SELECT[] = "SELECT id, page, hadj_ratio, vadj_ratio FROM bookmarks WHERE file = ?;"; @@ -513,9 +511,11 @@ sqlite_save_jumplist(zathura_database_t* db, const char* file, girara_list_t* ju static const char SQL_INSERT_JUMP[] = "INSERT INTO jumplist (file, page, hadj_ratio, vadj_ratio) VALUES (?, ?, ?, ?);"; static const char SQL_REMOVE_JUMPLIST[] = "DELETE FROM jumplist WHERE file = ?;"; - zathura_sqldatabase_private_t* priv = ZATHURA_SQLDATABASE_GET_PRIVATE(db); - sqlite3_stmt* stmt = NULL; - int res = 0; + ZathuraSQLDatabase* sqldb = ZATHURA_SQLDATABASE(db); + ZathuraSQLDatabasePrivate* priv = zathura_sqldatabase_get_instance_private(sqldb); + + sqlite3_stmt* stmt = NULL; + int res = 0; if (sqlite3_exec(priv->session, "BEGIN;", NULL, 0, NULL) != SQLITE_OK) { return false; @@ -591,9 +591,10 @@ sqlite_load_jumplist(zathura_database_t* db, const char* file) static const char SQL_GET_JUMPLIST[] = "SELECT page, hadj_ratio, vadj_ratio FROM jumplist WHERE file = ? ORDER BY id ASC;"; - zathura_sqldatabase_private_t* priv = ZATHURA_SQLDATABASE_GET_PRIVATE(db); - sqlite3_stmt* stmt = prepare_statement(priv->session, SQL_GET_JUMPLIST); + ZathuraSQLDatabase* sqldb = ZATHURA_SQLDATABASE(db); + ZathuraSQLDatabasePrivate* priv = zathura_sqldatabase_get_instance_private(sqldb); + sqlite3_stmt* stmt = prepare_statement(priv->session, SQL_GET_JUMPLIST); if (stmt == NULL) { return NULL; } @@ -643,7 +644,8 @@ sqlite_set_fileinfo(zathura_database_t* db, const char* file, return false; } - zathura_sqldatabase_private_t* priv = ZATHURA_SQLDATABASE_GET_PRIVATE(db); + ZathuraSQLDatabase* sqldb = ZATHURA_SQLDATABASE(db); + ZathuraSQLDatabasePrivate* priv = zathura_sqldatabase_get_instance_private(sqldb); static const char SQL_FILEINFO_SET[] = "REPLACE INTO fileinfo (file, page, offset, zoom, rotation, pages_per_row, first_page_column, position_x, position_y, time) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, DATETIME('now'));"; @@ -682,7 +684,8 @@ sqlite_get_fileinfo(zathura_database_t* db, const char* file, return false; } - zathura_sqldatabase_private_t* priv = ZATHURA_SQLDATABASE_GET_PRIVATE(db); + ZathuraSQLDatabase* sqldb = ZATHURA_SQLDATABASE(db); + ZathuraSQLDatabasePrivate* priv = zathura_sqldatabase_get_instance_private(sqldb); static const char SQL_FILEINFO_GET[] = "SELECT page, offset, zoom, rotation, pages_per_row, first_page_column, position_x, position_y FROM fileinfo WHERE file = ?;"; @@ -724,7 +727,9 @@ sqlite_io_append(GiraraInputHistoryIO* db, const char* input) static const char SQL_HISTORY_SET[] = "REPLACE INTO history (line, time) VALUES (?, DATETIME('now'));"; - zathura_sqldatabase_private_t* priv = ZATHURA_SQLDATABASE_GET_PRIVATE(db); + ZathuraSQLDatabase* sqldb = ZATHURA_SQLDATABASE(db); + ZathuraSQLDatabasePrivate* priv = zathura_sqldatabase_get_instance_private(sqldb); + sqlite3_stmt* stmt = prepare_statement(priv->session, SQL_HISTORY_SET); if (stmt == NULL) { return; @@ -746,7 +751,9 @@ sqlite_io_read(GiraraInputHistoryIO* db) static const char SQL_HISTORY_GET[] = "SELECT line FROM history ORDER BY time"; - zathura_sqldatabase_private_t* priv = ZATHURA_SQLDATABASE_GET_PRIVATE(db); + ZathuraSQLDatabase* sqldb = ZATHURA_SQLDATABASE(db); + ZathuraSQLDatabasePrivate* priv = zathura_sqldatabase_get_instance_private(sqldb); + sqlite3_stmt* stmt = prepare_statement(priv->session, SQL_HISTORY_GET); if (stmt == NULL) { return NULL; @@ -774,7 +781,9 @@ sqlite_get_recent_files(zathura_database_t* db, int max, const char* basepath) static const char SQL_HISTORY_GET_WITH_BASEPATH[] = "SELECT file FROM fileinfo WHERE file LIKE ? || '%' ORDER BY time DESC LIMIT ?"; - zathura_sqldatabase_private_t* priv = ZATHURA_SQLDATABASE_GET_PRIVATE(db); + ZathuraSQLDatabase* sqldb = ZATHURA_SQLDATABASE(db); + ZathuraSQLDatabasePrivate* priv = zathura_sqldatabase_get_instance_private(sqldb); + sqlite3_stmt* stmt = prepare_statement(priv->session, basepath == NULL ? SQL_HISTORY_GET : SQL_HISTORY_GET_WITH_BASEPATH); if (stmt == NULL) { return NULL; diff --git a/zathura/dbus-interface.c b/zathura/dbus-interface.c index 7e9544d..a9bd878 100644 --- a/zathura/dbus-interface.c +++ b/zathura/dbus-interface.c @@ -30,7 +30,15 @@ static GBytes* load_xml_data(void) return NULL; } -G_DEFINE_TYPE(ZathuraDbus, zathura_dbus, G_TYPE_OBJECT) +typedef struct private_s { + zathura_t* zathura; + GDBusNodeInfo* introspection_data; + GDBusConnection* connection; + guint owner_id; + guint registration_id; +} ZathuraDbusPrivate; + +G_DEFINE_TYPE_WITH_CODE(ZathuraDbus, zathura_dbus, G_TYPE_OBJECT, G_ADD_PRIVATE(ZathuraDbus)) /* template for bus name */ static const char DBUS_NAME_TEMPLATE[] = "org.pwmt.zathura.PID-%d"; @@ -39,24 +47,13 @@ static const char DBUS_OBJPATH[] = "/org/pwmt/zathura"; /* interface name */ static const char DBUS_INTERFACE[] = "org.pwmt.zathura"; -typedef struct private_s { - zathura_t* zathura; - GDBusNodeInfo* introspection_data; - GDBusConnection* connection; - guint owner_id; - guint registration_id; -} private_t; - -#define GET_PRIVATE(obj) \ - (G_TYPE_INSTANCE_GET_PRIVATE((obj), ZATHURA_TYPE_DBUS, private_t)) - static const GDBusInterfaceVTable interface_vtable; static void finalize(GObject* object) { - ZathuraDbus* dbus = ZATHURA_DBUS(object); - private_t* priv = GET_PRIVATE(dbus); + ZathuraDbus* dbus = ZATHURA_DBUS(object); + ZathuraDbusPrivate* priv = zathura_dbus_get_instance_private(dbus); if (priv->connection != NULL && priv->registration_id > 0) { g_dbus_connection_unregister_object(priv->connection, priv->registration_id); @@ -76,9 +73,6 @@ finalize(GObject* object) static void zathura_dbus_class_init(ZathuraDbusClass* class) { - /* add private members */ - g_type_class_add_private(class, sizeof(private_t)); - /* overwrite methods */ GObjectClass* object_class = G_OBJECT_CLASS(class); object_class->finalize = finalize; @@ -87,7 +81,7 @@ zathura_dbus_class_init(ZathuraDbusClass* class) static void zathura_dbus_init(ZathuraDbus* dbus) { - private_t* priv = GET_PRIVATE(dbus); + ZathuraDbusPrivate* priv = zathura_dbus_get_instance_private(dbus); priv->zathura = NULL; priv->introspection_data = NULL; priv->connection = NULL; @@ -113,8 +107,8 @@ bus_acquired(GDBusConnection* connection, const gchar* name, void* data) g_signal_connect(G_OBJECT(connection), "closed", G_CALLBACK(gdbus_connection_closed), NULL); - ZathuraDbus* dbus = data; - private_t* priv = GET_PRIVATE(dbus); + ZathuraDbus* dbus = data; + ZathuraDbusPrivate* priv = zathura_dbus_get_instance_private(dbus); GError* error = NULL; priv->registration_id = g_dbus_connection_register_object( @@ -154,7 +148,7 @@ zathura_dbus_new(zathura_t* zathura) } ZathuraDbus* dbus = ZATHURA_DBUS(obj); - private_t* priv = GET_PRIVATE(dbus); + ZathuraDbusPrivate* priv = zathura_dbus_get_instance_private(dbus); priv->zathura = zathura; GBytes* xml_data = load_xml_data(); @@ -187,7 +181,7 @@ zathura_dbus_new(zathura_t* zathura) void zathura_dbus_edit(ZathuraDbus* edit, unsigned int page, unsigned int x, unsigned int y) { - private_t* priv = GET_PRIVATE(edit); + ZathuraDbusPrivate* priv = zathura_dbus_get_instance_private(edit); const char* filename = zathura_document_get_path(priv->zathura->document); @@ -393,7 +387,7 @@ handle_method_call(GDBusConnection* UNUSED(connection), void* data) { ZathuraDbus* dbus = data; - private_t* priv = GET_PRIVATE(dbus); + ZathuraDbusPrivate* priv = zathura_dbus_get_instance_private(dbus); girara_debug("Handling call '%s.%s' on '%s'.", interface_name, method_name, object_path); @@ -434,8 +428,8 @@ handle_get_property(GDBusConnection* UNUSED(connection), const gchar* UNUSED(interface_name), const gchar* property_name, GError** error, void* data) { - ZathuraDbus* dbus = data; - private_t* priv = GET_PRIVATE(dbus); + ZathuraDbus* dbus = data; + ZathuraDbusPrivate* priv = zathura_dbus_get_instance_private(dbus); if (priv->zathura->document == NULL) { g_set_error(error, G_IO_ERROR, G_IO_ERROR_FAILED, "No document open."); diff --git a/zathura/file-monitor.c b/zathura/file-monitor.c index c64c200..e14c673 100644 --- a/zathura/file-monitor.c +++ b/zathura/file-monitor.c @@ -9,14 +9,11 @@ #include -G_DEFINE_TYPE(ZathuraFileMonitor, zathura_filemonitor, G_TYPE_OBJECT) - typedef struct private_s { char* file_path; -} private_t; +} ZathuraFileMonitorPrivate; -#define GET_PRIVATE(obj) \ - (G_TYPE_INSTANCE_GET_PRIVATE((obj), ZATHURA_TYPE_FILEMONITOR, private_t)) +G_DEFINE_TYPE_WITH_CODE(ZathuraFileMonitor, zathura_filemonitor, G_TYPE_OBJECT, G_ADD_PRIVATE(ZathuraFileMonitor)) enum { PROP_0, @@ -34,7 +31,7 @@ static void finalize(GObject* object) { ZathuraFileMonitor* file_monitor = ZATHURA_FILEMONITOR(object); - private_t* private = GET_PRIVATE(file_monitor); + ZathuraFileMonitorPrivate* private = zathura_filemonitor_get_instance_private(file_monitor); if (private->file_path != NULL) { g_free(private->file_path); @@ -47,7 +44,7 @@ static void set_property(GObject* object, guint prop_id, const GValue* value, GParamSpec* pspec) { ZathuraFileMonitor* file_monitor = ZATHURA_FILEMONITOR(object); - private_t* private = GET_PRIVATE(file_monitor); + ZathuraFileMonitorPrivate* private = zathura_filemonitor_get_instance_private(file_monitor); switch (prop_id) { case PROP_FILE_PATH: @@ -65,7 +62,7 @@ static void get_property(GObject* object, guint prop_id, GValue* value, GParamSpec* pspec) { ZathuraFileMonitor* file_monitor = ZATHURA_FILEMONITOR(object); - private_t* private = GET_PRIVATE(file_monitor); + ZathuraFileMonitorPrivate* private = zathura_filemonitor_get_instance_private(file_monitor); switch (prop_id) { case PROP_FILE_PATH: @@ -79,9 +76,6 @@ get_property(GObject* object, guint prop_id, GValue* value, GParamSpec* pspec) static void zathura_filemonitor_class_init(ZathuraFileMonitorClass* class) { - /* add private members */ - g_type_class_add_private(class, sizeof(private_t)); - /* set up methods */ class->start = NULL; class->stop = NULL; @@ -107,14 +101,13 @@ zathura_filemonitor_class_init(ZathuraFileMonitorClass* class) static void zathura_filemonitor_init(ZathuraFileMonitor* file_monitor) { - private_t* private = GET_PRIVATE(file_monitor); - private->file_path = NULL; + ZathuraFileMonitorPrivate* private = zathura_filemonitor_get_instance_private(file_monitor); + private->file_path = NULL; } const char* zathura_filemonitor_get_filepath(ZathuraFileMonitor* file_monitor) { - private_t* private = GET_PRIVATE(file_monitor); - + ZathuraFileMonitorPrivate* private = zathura_filemonitor_get_instance_private(file_monitor); return private->file_path; } diff --git a/zathura/page-widget.c b/zathura/page-widget.c index 11a9531..5dd8b1b 100644 --- a/zathura/page-widget.c +++ b/zathura/page-widget.c @@ -16,8 +16,6 @@ #include "shortcuts.h" #include "zathura.h" -G_DEFINE_TYPE(ZathuraPage, zathura_page_widget, GTK_TYPE_DRAWING_AREA) - typedef struct zathura_page_widget_private_s { zathura_page_t* page; /**< Page object */ zathura_t* zathura; /**< Zathura object */ @@ -54,11 +52,9 @@ typedef struct zathura_page_widget_private_s { } selection_basepoint; gboolean over_link; } mouse; -} zathura_page_widget_private_t; +} ZathuraPagePrivate; -#define ZATHURA_PAGE_GET_PRIVATE(obj) \ - (G_TYPE_INSTANCE_GET_PRIVATE((obj), ZATHURA_TYPE_PAGE, \ - zathura_page_widget_private_t)) +G_DEFINE_TYPE_WITH_CODE(ZathuraPage, zathura_page_widget, GTK_TYPE_DRAWING_AREA, G_ADD_PRIVATE(ZathuraPage)) static gboolean zathura_page_widget_draw(GtkWidget* widget, cairo_t* cairo); static void zathura_page_widget_finalize(GObject* object); @@ -110,9 +106,6 @@ static guint signals[LAST_SIGNAL] = { 0 }; static void zathura_page_widget_class_init(ZathuraPageClass* class) { - /* add private members */ - g_type_class_add_private(class, sizeof(zathura_page_widget_private_t)); - /* overwrite methods */ GtkWidgetClass* widget_class = GTK_WIDGET_CLASS(class); widget_class->draw = zathura_page_widget_draw; @@ -207,12 +200,12 @@ zathura_page_widget_class_init(ZathuraPageClass* class) static void zathura_page_widget_init(ZathuraPage* widget) { - zathura_page_widget_private_t* priv = ZATHURA_PAGE_GET_PRIVATE(widget); - priv->page = NULL; - priv->surface = NULL; - priv->thumbnail = NULL; - priv->render_request = NULL; - priv->cached = false; + ZathuraPagePrivate* priv = zathura_page_widget_get_instance_private(widget); + priv->page = NULL; + priv->surface = NULL; + priv->thumbnail = NULL; + priv->render_request = NULL; + priv->cached = false; priv->links.list = NULL; priv->links.retrieved = false; @@ -249,7 +242,7 @@ zathura_page_widget_new(zathura_t* zathura, zathura_page_t* page) } ZathuraPage* widget = ZATHURA_PAGE(ret); - zathura_page_widget_private_t* priv = ZATHURA_PAGE_GET_PRIVATE(widget); + ZathuraPagePrivate* priv = zathura_page_widget_get_instance_private(widget); priv->render_request = zathura_render_request_new(zathura->sync.render_thread, page); g_signal_connect_object(priv->render_request, "completed", G_CALLBACK(cb_update_surface), widget, 0); @@ -265,7 +258,7 @@ static void zathura_page_widget_dispose(GObject* object) { ZathuraPage* widget = ZATHURA_PAGE(object); - zathura_page_widget_private_t* priv = ZATHURA_PAGE_GET_PRIVATE(widget); + ZathuraPagePrivate* priv = zathura_page_widget_get_instance_private(widget); g_clear_object(&priv->render_request); @@ -276,7 +269,7 @@ static void zathura_page_widget_finalize(GObject* object) { ZathuraPage* widget = ZATHURA_PAGE(object); - zathura_page_widget_private_t* priv = ZATHURA_PAGE_GET_PRIVATE(widget); + ZathuraPagePrivate* priv = zathura_page_widget_get_instance_private(widget); if (priv->surface != NULL) { cairo_surface_destroy(priv->surface); @@ -377,7 +370,7 @@ static void zathura_page_widget_set_property(GObject* object, guint prop_id, const GValue* value, GParamSpec* pspec) { ZathuraPage* pageview = ZATHURA_PAGE(object); - zathura_page_widget_private_t* priv = ZATHURA_PAGE_GET_PRIVATE(pageview); + ZathuraPagePrivate* priv = zathura_page_widget_get_instance_private(pageview); cairo_text_extents_t text; @@ -473,7 +466,7 @@ static void zathura_page_widget_get_property(GObject* object, guint prop_id, GValue* value, GParamSpec* pspec) { ZathuraPage* pageview = ZATHURA_PAGE(object); - zathura_page_widget_private_t* priv = ZATHURA_PAGE_GET_PRIVATE(pageview); + ZathuraPagePrivate* priv = zathura_page_widget_get_instance_private(pageview); switch (prop_id) { case PROP_LINKS_NUMBER: @@ -515,7 +508,8 @@ get_safe_device_factors(cairo_surface_t* surface) static gboolean zathura_page_widget_draw(GtkWidget* widget, cairo_t* cairo) { - zathura_page_widget_private_t* priv = ZATHURA_PAGE_GET_PRIVATE(widget); + ZathuraPage* page = ZATHURA_PAGE(widget); + ZathuraPagePrivate* priv = zathura_page_widget_get_instance_private(page); zathura_document_t* document = zathura_page_get_document(priv->page); const unsigned int page_height = gtk_widget_get_allocated_height(widget); @@ -754,7 +748,7 @@ draw_thumbnail_image(cairo_surface_t* surface, size_t max_size) void zathura_page_widget_update_surface(ZathuraPage* widget, cairo_surface_t* surface, bool keep_thumbnail) { - zathura_page_widget_private_t* priv = ZATHURA_PAGE_GET_PRIVATE(widget); + ZathuraPagePrivate* priv = zathura_page_widget_get_instance_private(widget); int thumbnail_size = 0; girara_setting_get(priv->zathura->ui.session, "page-thumbnail-size", &thumbnail_size); if (thumbnail_size <= 0) { @@ -804,7 +798,7 @@ cb_cache_added(ZathuraRenderRequest* UNUSED(request), void* data) ZathuraPage* widget = data; g_return_if_fail(ZATHURA_IS_PAGE(widget)); - zathura_page_widget_private_t* priv = ZATHURA_PAGE_GET_PRIVATE(widget); + ZathuraPagePrivate* priv = zathura_page_widget_get_instance_private(widget); priv->cached = true; } @@ -814,7 +808,7 @@ cb_cache_invalidated(ZathuraRenderRequest* UNUSED(request), void* data) ZathuraPage* widget = data; g_return_if_fail(ZATHURA_IS_PAGE(widget)); - zathura_page_widget_private_t* priv = ZATHURA_PAGE_GET_PRIVATE(widget); + ZathuraPagePrivate* priv = zathura_page_widget_get_instance_private(widget); if (zathura_page_widget_have_surface(widget) == true && priv->cached == true && zathura_page_get_visibility(priv->page) == false) { @@ -850,7 +844,7 @@ redraw_rect(ZathuraPage* widget, zathura_rectangle_t* rectangle) static void redraw_all_rects(ZathuraPage* widget, girara_list_t* rectangles) { - zathura_page_widget_private_t* priv = ZATHURA_PAGE_GET_PRIVATE(widget); + ZathuraPagePrivate* priv = zathura_page_widget_get_instance_private(widget); GIRARA_LIST_FOREACH_BODY(rectangles, zathura_rectangle_t*, rect, zathura_rectangle_t rectangle = recalc_rectangle(priv->page, *rect); @@ -862,7 +856,7 @@ zathura_link_t* zathura_page_widget_link_get(ZathuraPage* widget, unsigned int index) { g_return_val_if_fail(widget != NULL, NULL); - zathura_page_widget_private_t* priv = ZATHURA_PAGE_GET_PRIVATE(widget); + ZathuraPagePrivate* priv = zathura_page_widget_get_instance_private(widget); g_return_val_if_fail(priv != NULL, NULL); if (priv->links.list != NULL && index >= priv->links.offset && @@ -879,7 +873,8 @@ cb_zathura_page_widget_button_press_event(GtkWidget* widget, GdkEventButton* but g_return_val_if_fail(widget != NULL, false); g_return_val_if_fail(button != NULL, false); - zathura_page_widget_private_t* priv = ZATHURA_PAGE_GET_PRIVATE(widget); + ZathuraPage* page = ZATHURA_PAGE(widget); + ZathuraPagePrivate* priv = zathura_page_widget_get_instance_private(page); if (girara_callback_view_button_press_event(widget, button, priv->zathura->ui.session) == true) { return true; @@ -928,15 +923,16 @@ cb_zathura_page_widget_button_release_event(GtkWidget* widget, GdkEventButton* b const int oldx = button->x; const int oldy = button->y; - zathura_page_widget_private_t* priv = ZATHURA_PAGE_GET_PRIVATE(widget); - zathura_document_t* document = zathura_page_get_document(priv->page); + ZathuraPage* page = ZATHURA_PAGE(widget); + ZathuraPagePrivate* priv = zathura_page_widget_get_instance_private(page); - const double scale = zathura_document_get_scale(document); + zathura_document_t* document = zathura_page_get_document(priv->page); + const double scale = zathura_document_get_scale(document); button->x /= scale; button->y /= scale; - g_signal_emit(ZATHURA_PAGE(widget), signals[BUTTON_RELEASE], 0, button); + g_signal_emit(page, signals[BUTTON_RELEASE], 0, button); button->x = oldx; button->y = oldy; @@ -999,8 +995,10 @@ cb_zathura_page_widget_motion_notify(GtkWidget* widget, GdkEventMotion* event) g_return_val_if_fail(widget != NULL, false); g_return_val_if_fail(event != NULL, false); + ZathuraPage* page = ZATHURA_PAGE(widget); + ZathuraPagePrivate* priv = zathura_page_widget_get_instance_private(page); + if ((event->state & GDK_BUTTON1_MASK) == 0) { - zathura_page_widget_private_t* priv = ZATHURA_PAGE_GET_PRIVATE(widget); if (priv->links.retrieved == false) { priv->links.list = zathura_page_links_get(priv->page, NULL); priv->links.retrieved = true; @@ -1030,7 +1028,6 @@ cb_zathura_page_widget_motion_notify(GtkWidget* widget, GdkEventMotion* event) return false; } - zathura_page_widget_private_t* priv = ZATHURA_PAGE_GET_PRIVATE(widget); zathura_rectangle_t tmp = priv->mouse.selection; if (event->x < priv->mouse.selection_basepoint.x) { tmp.x1 = event->x; @@ -1059,7 +1056,8 @@ cb_zathura_page_widget_leave_notify(GtkWidget* widget, GdkEventCrossing* UNUSED( { g_return_val_if_fail(widget != NULL, false); - zathura_page_widget_private_t* priv = ZATHURA_PAGE_GET_PRIVATE(widget); + ZathuraPage* page = ZATHURA_PAGE(widget); + ZathuraPagePrivate* priv = zathura_page_widget_get_instance_private(page); if (priv->mouse.over_link == true) { g_signal_emit(ZATHURA_PAGE(widget), signals[LEAVE_LINK], 0); priv->mouse.over_link = false; @@ -1076,7 +1074,8 @@ zathura_page_widget_popup_menu(GtkWidget* widget, GdkEventButton* event) return; } - zathura_page_widget_private_t* priv = ZATHURA_PAGE_GET_PRIVATE(widget); + ZathuraPage* page = ZATHURA_PAGE(widget); + ZathuraPagePrivate* priv = zathura_page_widget_get_instance_private(page); if (priv->images.retrieved == false) { priv->images.list = zathura_page_images_get(priv->page, NULL); @@ -1144,7 +1143,7 @@ cb_menu_image_copy(GtkMenuItem* item, ZathuraPage* page) { g_return_if_fail(item != NULL); g_return_if_fail(page != NULL); - zathura_page_widget_private_t* priv = ZATHURA_PAGE_GET_PRIVATE(page); + ZathuraPagePrivate* priv = zathura_page_widget_get_instance_private(page); g_return_if_fail(priv->images.current != NULL); cairo_surface_t* surface = zathura_page_image_get_cairo(priv->page, priv->images.current, NULL); @@ -1169,7 +1168,7 @@ cb_menu_image_save(GtkMenuItem* item, ZathuraPage* page) { g_return_if_fail(item != NULL); g_return_if_fail(page != NULL); - zathura_page_widget_private_t* priv = ZATHURA_PAGE_GET_PRIVATE(page); + ZathuraPagePrivate* priv = zathura_page_widget_get_instance_private(page); g_return_if_fail(priv->images.current != NULL); g_return_if_fail(priv->images.list != NULL); @@ -1199,7 +1198,7 @@ void zathura_page_widget_update_view_time(ZathuraPage* widget) { g_return_if_fail(ZATHURA_IS_PAGE(widget)); - zathura_page_widget_private_t* priv = ZATHURA_PAGE_GET_PRIVATE(widget); + ZathuraPagePrivate* priv = zathura_page_widget_get_instance_private(widget); if (zathura_page_get_visibility(priv->page) == true) { zathura_render_request_update_view_time(priv->render_request); @@ -1210,7 +1209,7 @@ bool zathura_page_widget_have_surface(ZathuraPage* widget) { g_return_val_if_fail(ZATHURA_IS_PAGE(widget), false); - zathura_page_widget_private_t* priv = ZATHURA_PAGE_GET_PRIVATE(widget); + ZathuraPagePrivate* priv = zathura_page_widget_get_instance_private(widget); return priv->surface != NULL; } @@ -1218,7 +1217,7 @@ void zathura_page_widget_abort_render_request(ZathuraPage* widget) { g_return_if_fail(ZATHURA_IS_PAGE(widget)); - zathura_page_widget_private_t* priv = ZATHURA_PAGE_GET_PRIVATE(widget); + ZathuraPagePrivate* priv = zathura_page_widget_get_instance_private(widget); zathura_render_request_abort(priv->render_request); /* Make sure that if we are not cached and invisible, that there is no @@ -1234,7 +1233,7 @@ zathura_page_widget_abort_render_request(ZathuraPage* widget) zathura_page_t* zathura_page_widget_get_page(ZathuraPage* widget) { g_return_val_if_fail(ZATHURA_IS_PAGE(widget), NULL); - zathura_page_widget_private_t* priv = ZATHURA_PAGE_GET_PRIVATE(widget); + ZathuraPagePrivate* priv = zathura_page_widget_get_instance_private(widget); return priv->page; } diff --git a/zathura/render.c b/zathura/render.c index 9504ffb..e0bcf42 100644 --- a/zathura/render.c +++ b/zathura/render.c @@ -13,23 +13,6 @@ #include "page-widget.h" #include "utils.h" -/* define the two types */ -G_DEFINE_TYPE(ZathuraRenderer, zathura_renderer, G_TYPE_OBJECT) -G_DEFINE_TYPE(ZathuraRenderRequest, zathura_render_request, G_TYPE_OBJECT) - -/* private methods for ZathuraRenderer */ -static void renderer_finalize(GObject* object); -/* private methods for ZathuraRenderRequest */ -static void render_request_dispose(GObject* object); -static void render_request_finalize(GObject* object); - -static void render_job(void* data, void* user_data); -static gint render_thread_sort(gconstpointer a, gconstpointer b, gpointer data); -static ssize_t page_cache_lru_invalidate(ZathuraRenderer* renderer); -static void page_cache_invalidate_all(ZathuraRenderer* renderer); -static bool page_cache_is_full(ZathuraRenderer* renderer, bool* result); - - /* private data for ZathuraRenderer */ typedef struct private_s { GThreadPool* pool; /**< Pool of threads */ @@ -59,7 +42,7 @@ typedef struct private_s { /* render requests */ girara_list_t* requests; -} private_t; +} ZathuraRendererPrivate; /* private data for ZathuraRenderRequest */ typedef struct request_private_s { @@ -68,13 +51,23 @@ typedef struct request_private_s { gint64 last_view_time; girara_list_t* active_jobs; GMutex jobs_mutex; -} request_private_t; +} ZathuraRenderRequestPrivate; -#define GET_PRIVATE(obj) \ - (G_TYPE_INSTANCE_GET_PRIVATE((obj), ZATHURA_TYPE_RENDERER, private_t)) -#define REQUEST_GET_PRIVATE(obj) \ - (G_TYPE_INSTANCE_GET_PRIVATE((obj), ZATHURA_TYPE_RENDER_REQUEST, \ - request_private_t)) +/* define the two types */ +G_DEFINE_TYPE_WITH_CODE(ZathuraRenderer, zathura_renderer, G_TYPE_OBJECT, G_ADD_PRIVATE(ZathuraRenderer)) +G_DEFINE_TYPE_WITH_CODE(ZathuraRenderRequest, zathura_render_request, G_TYPE_OBJECT, G_ADD_PRIVATE(ZathuraRenderRequest)) + +/* private methods for ZathuraRenderer */ +static void renderer_finalize(GObject* object); +/* private methods for ZathuraRenderRequest */ +static void render_request_dispose(GObject* object); +static void render_request_finalize(GObject* object); + +static void render_job(void* data, void* user_data); +static gint render_thread_sort(gconstpointer a, gconstpointer b, gpointer data); +static ssize_t page_cache_lru_invalidate(ZathuraRenderer* renderer); +static void page_cache_invalidate_all(ZathuraRenderer* renderer); +static bool page_cache_is_full(ZathuraRenderer* renderer, bool* result); /* job descritption for render thread */ typedef struct render_job_s { @@ -87,9 +80,6 @@ typedef struct render_job_s { static void zathura_renderer_class_init(ZathuraRendererClass* class) { - /* add private members */ - g_type_class_add_private(class, sizeof(private_t)); - /* overwrite methods */ GObjectClass* object_class = G_OBJECT_CLASS(class); object_class->finalize = renderer_finalize; @@ -98,7 +88,7 @@ zathura_renderer_class_init(ZathuraRendererClass* class) static void zathura_renderer_init(ZathuraRenderer* renderer) { - private_t* priv = GET_PRIVATE(renderer); + ZathuraRendererPrivate* priv = zathura_renderer_get_instance_private(renderer); priv->pool = g_thread_pool_new(render_job, renderer, 1, TRUE, NULL); priv->about_to_close = false; g_thread_pool_set_sort_function(priv->pool, render_thread_sort, NULL); @@ -122,7 +112,7 @@ zathura_renderer_init(ZathuraRenderer* renderer) static bool page_cache_init(ZathuraRenderer* renderer, size_t cache_size) { - private_t* priv = GET_PRIVATE(renderer); + ZathuraRendererPrivate* priv = zathura_renderer_get_instance_private(renderer); priv->page_cache.size = cache_size; priv->page_cache.cache = g_try_malloc0(cache_size * sizeof(int)); @@ -154,7 +144,7 @@ static void renderer_finalize(GObject* object) { ZathuraRenderer* renderer = ZATHURA_RENDERER(object); - private_t* priv = GET_PRIVATE(renderer); + ZathuraRendererPrivate* priv = zathura_renderer_get_instance_private(renderer); zathura_renderer_stop(renderer); if (priv->pool != NULL) { @@ -172,7 +162,7 @@ static void renderer_unregister_request(ZathuraRenderer* renderer, ZathuraRenderRequest* request) { - private_t* priv = GET_PRIVATE(renderer); + ZathuraRendererPrivate* priv = zathura_renderer_get_instance_private(renderer); girara_list_remove(priv->requests, request); } @@ -180,7 +170,7 @@ static void renderer_register_request(ZathuraRenderer* renderer, ZathuraRenderRequest* request) { - private_t* priv = GET_PRIVATE(renderer); + ZathuraRendererPrivate* priv = zathura_renderer_get_instance_private(renderer); if (girara_list_contains(priv->requests, request) == false) { girara_list_append(priv->requests, request); } @@ -200,9 +190,6 @@ static guint request_signals[REQUEST_LAST_SIGNAL] = { 0 }; static void zathura_render_request_class_init(ZathuraRenderRequestClass* class) { - /* add private members */ - g_type_class_add_private(class, sizeof(request_private_t)); - /* overwrite methods */ GObjectClass* object_class = G_OBJECT_CLASS(class); object_class->dispose = render_request_dispose; @@ -243,7 +230,7 @@ zathura_render_request_class_init(ZathuraRenderRequestClass* class) static void zathura_render_request_init(ZathuraRenderRequest* request) { - request_private_t* priv = REQUEST_GET_PRIVATE(request); + ZathuraRenderRequestPrivate* priv = zathura_render_request_get_instance_private(request); priv->renderer = NULL; priv->page = NULL; } @@ -259,7 +246,7 @@ zathura_render_request_new(ZathuraRenderer* renderer, zathura_page_t* page) } ZathuraRenderRequest* request = ZATHURA_RENDER_REQUEST(obj); - request_private_t* priv = REQUEST_GET_PRIVATE(request); + ZathuraRenderRequestPrivate* priv = zathura_render_request_get_instance_private(request); /* we want to make sure that renderer lives long enough */ priv->renderer = g_object_ref(renderer); priv->page = page; @@ -276,7 +263,7 @@ static void render_request_dispose(GObject* object) { ZathuraRenderRequest* request = ZATHURA_RENDER_REQUEST(object); - request_private_t* priv = REQUEST_GET_PRIVATE(request); + ZathuraRenderRequestPrivate* priv = zathura_render_request_get_instance_private(request); if (priv->renderer != NULL) { /* unregister the request */ @@ -292,7 +279,7 @@ static void render_request_finalize(GObject* object) { ZathuraRenderRequest* request = ZATHURA_RENDER_REQUEST(object); - request_private_t* priv = REQUEST_GET_PRIVATE(request); + ZathuraRenderRequestPrivate* priv = zathura_render_request_get_instance_private(request); if (girara_list_size(priv->active_jobs) != 0) { girara_error("This should not happen!"); @@ -310,7 +297,8 @@ zathura_renderer_recolor_enabled(ZathuraRenderer* renderer) { g_return_val_if_fail(ZATHURA_IS_RENDERER(renderer), false); - return GET_PRIVATE(renderer)->recolor.enabled; + ZathuraRendererPrivate* priv = zathura_renderer_get_instance_private(renderer); + return priv->recolor.enabled; } void @@ -318,7 +306,8 @@ zathura_renderer_enable_recolor(ZathuraRenderer* renderer, bool enable) { g_return_if_fail(ZATHURA_IS_RENDERER(renderer)); - GET_PRIVATE(renderer)->recolor.enabled = enable; + ZathuraRendererPrivate* priv = zathura_renderer_get_instance_private(renderer); + priv->recolor.enabled = enable; } bool @@ -326,7 +315,8 @@ zathura_renderer_recolor_hue_enabled(ZathuraRenderer* renderer) { g_return_val_if_fail(ZATHURA_IS_RENDERER(renderer), false); - return GET_PRIVATE(renderer)->recolor.hue; + ZathuraRendererPrivate* priv = zathura_renderer_get_instance_private(renderer); + return priv->recolor.hue; } void @@ -334,7 +324,8 @@ zathura_renderer_enable_recolor_hue(ZathuraRenderer* renderer, bool enable) { g_return_if_fail(ZATHURA_IS_RENDERER(renderer)); - GET_PRIVATE(renderer)->recolor.hue = enable; + ZathuraRendererPrivate* priv = zathura_renderer_get_instance_private(renderer); + priv->recolor.hue = enable; } bool @@ -342,7 +333,8 @@ zathura_renderer_recolor_reverse_video_enabled(ZathuraRenderer* renderer) { g_return_val_if_fail(ZATHURA_IS_RENDERER(renderer), false); - return GET_PRIVATE(renderer)->recolor.reverse_video; + ZathuraRendererPrivate* priv = zathura_renderer_get_instance_private(renderer); + return priv->recolor.reverse_video; } void @@ -350,7 +342,8 @@ zathura_renderer_enable_recolor_reverse_video(ZathuraRenderer* renderer, bool en { g_return_if_fail(ZATHURA_IS_RENDERER(renderer)); - GET_PRIVATE(renderer)->recolor.reverse_video = enable; + ZathuraRendererPrivate* priv = zathura_renderer_get_instance_private(renderer); + priv->recolor.reverse_video = enable; } void zathura_renderer_set_recolor_colors(ZathuraRenderer* renderer, @@ -358,7 +351,7 @@ zathura_renderer_set_recolor_colors(ZathuraRenderer* renderer, { g_return_if_fail(ZATHURA_IS_RENDERER(renderer)); - private_t* priv = GET_PRIVATE(renderer); + ZathuraRendererPrivate* priv = zathura_renderer_get_instance_private(renderer); if (light != NULL) { memcpy(&priv->recolor.light, light, sizeof(GdkRGBA)); } @@ -393,7 +386,7 @@ zathura_renderer_get_recolor_colors(ZathuraRenderer* renderer, { g_return_if_fail(ZATHURA_IS_RENDERER(renderer)); - private_t* priv = GET_PRIVATE(renderer); + ZathuraRendererPrivate* priv = zathura_renderer_get_instance_private(renderer); if (light != NULL) { memcpy(light, &priv->recolor.light, sizeof(GdkRGBA)); } @@ -407,7 +400,7 @@ zathura_renderer_lock(ZathuraRenderer* renderer) { g_return_if_fail(ZATHURA_IS_RENDERER(renderer)); - private_t* priv = GET_PRIVATE(renderer); + ZathuraRendererPrivate* priv = zathura_renderer_get_instance_private(renderer); g_mutex_lock(&priv->mutex); } @@ -416,7 +409,7 @@ zathura_renderer_unlock(ZathuraRenderer* renderer) { g_return_if_fail(ZATHURA_IS_RENDERER(renderer)); - private_t* priv = GET_PRIVATE(renderer); + ZathuraRendererPrivate* priv = zathura_renderer_get_instance_private(renderer); g_mutex_unlock(&priv->mutex); } @@ -424,7 +417,8 @@ void zathura_renderer_stop(ZathuraRenderer* renderer) { g_return_if_fail(ZATHURA_IS_RENDERER(renderer)); - GET_PRIVATE(renderer)->about_to_close = true; + ZathuraRendererPrivate* priv = zathura_renderer_get_instance_private(renderer); + priv->about_to_close = true; } @@ -435,7 +429,7 @@ zathura_render_request(ZathuraRenderRequest* request, gint64 last_view_time) { g_return_if_fail(ZATHURA_IS_RENDER_REQUEST(request)); - request_private_t* request_priv = REQUEST_GET_PRIVATE(request); + ZathuraRenderRequestPrivate* request_priv = zathura_render_request_get_instance_private(request); g_mutex_lock(&request_priv->jobs_mutex); bool unfinished_jobs = false; @@ -460,7 +454,7 @@ zathura_render_request(ZathuraRenderRequest* request, gint64 last_view_time) job->aborted = false; girara_list_append(request_priv->active_jobs, job); - private_t* priv = GET_PRIVATE(request_priv->renderer); + ZathuraRendererPrivate* priv = zathura_renderer_get_instance_private(request_priv->renderer); g_thread_pool_push(priv->pool, job, NULL); } @@ -472,7 +466,7 @@ zathura_render_request_abort(ZathuraRenderRequest* request) { g_return_if_fail(ZATHURA_IS_RENDER_REQUEST(request)); - request_private_t* request_priv = REQUEST_GET_PRIVATE(request); + ZathuraRenderRequestPrivate* request_priv = zathura_render_request_get_instance_private(request); g_mutex_lock(&request_priv->jobs_mutex); GIRARA_LIST_FOREACH_BODY(request_priv->active_jobs, render_job_t*, job, job->aborted = true; @@ -485,7 +479,7 @@ zathura_render_request_update_view_time(ZathuraRenderRequest* request) { g_return_if_fail(ZATHURA_IS_RENDER_REQUEST(request)); - request_private_t* request_priv = REQUEST_GET_PRIVATE(request); + ZathuraRenderRequestPrivate* request_priv = zathura_render_request_get_instance_private(request); request_priv->last_view_time = g_get_real_time(); } @@ -494,7 +488,7 @@ zathura_render_request_update_view_time(ZathuraRenderRequest* request) static void remove_job_and_free(render_job_t* job) { - request_private_t* request_priv = REQUEST_GET_PRIVATE(job->request); + ZathuraRenderRequestPrivate* request_priv = zathura_render_request_get_instance_private(job->request); g_mutex_lock(&request_priv->jobs_mutex); girara_list_remove(request_priv->active_jobs, job); @@ -515,8 +509,8 @@ emit_completed_signal(void* data) { emit_completed_signal_t* ecs = data; render_job_t* job = ecs->job; - request_private_t* request_priv = REQUEST_GET_PRIVATE(job->request); - private_t* priv = GET_PRIVATE(request_priv->renderer); + ZathuraRenderRequestPrivate* request_priv = zathura_render_request_get_instance_private(job->request); + ZathuraRendererPrivate* priv = zathura_renderer_get_instance_private(request_priv->renderer); if (priv->about_to_close == false && job->aborted == false) { /* emit the signal */ @@ -568,7 +562,7 @@ colorumax(const double h[3], double l, double l1, double l2) } static void -recolor(private_t* priv, zathura_page_t* page, unsigned int page_width, +recolor(ZathuraRendererPrivate* priv, zathura_page_t* page, unsigned int page_width, unsigned int page_height, cairo_surface_t* surface) { /* uses a representation of a rgb color as follows: @@ -708,8 +702,8 @@ recolor(private_t* priv, zathura_page_t* page, unsigned int page_width, static bool render(render_job_t* job, ZathuraRenderRequest* request, ZathuraRenderer* renderer) { - private_t* priv = GET_PRIVATE(renderer); - request_private_t* request_priv = REQUEST_GET_PRIVATE(request); + ZathuraRendererPrivate* priv = zathura_renderer_get_instance_private(renderer); + ZathuraRenderRequestPrivate* request_priv = zathura_render_request_get_instance_private(request); zathura_page_t* page = request_priv->page; /* create cairo surface */ @@ -812,14 +806,14 @@ render_job(void* data, void* user_data) g_return_if_fail(ZATHURA_IS_RENDER_REQUEST(request)); g_return_if_fail(ZATHURA_IS_RENDERER(renderer)); - private_t* priv = GET_PRIVATE(renderer); + ZathuraRendererPrivate* priv = zathura_renderer_get_instance_private(renderer); if (priv->about_to_close == true || job->aborted == true) { /* back out early */ remove_job_and_free(job); return; } - request_private_t* request_priv = REQUEST_GET_PRIVATE(request); + ZathuraRenderRequestPrivate* request_priv = zathura_render_request_get_instance_private(request); girara_debug("Rendering page %d ...", zathura_page_get_index(request_priv->page) + 1); if (render(job, request, renderer) != true) { @@ -866,8 +860,8 @@ render_thread_sort(gconstpointer a, gconstpointer b, gpointer UNUSED(data)) const render_job_t* job_a = a; const render_job_t* job_b = b; if (job_a->aborted == job_b->aborted) { - request_private_t* priv_a = REQUEST_GET_PRIVATE(job_a->request); - request_private_t* priv_b = REQUEST_GET_PRIVATE(job_b->request); + ZathuraRenderRequestPrivate* priv_a = zathura_render_request_get_instance_private(job_a->request); + ZathuraRenderRequestPrivate* priv_b = zathura_render_request_get_instance_private(job_b->request); return priv_a->last_view_time < priv_b->last_view_time ? -1 : (priv_a->last_view_time > priv_b->last_view_time ? 1 : 0); @@ -883,7 +877,7 @@ static bool page_cache_is_cached(ZathuraRenderer* renderer, unsigned int page_index) { g_return_val_if_fail(renderer != NULL, false); - private_t* priv = GET_PRIVATE(renderer); + ZathuraRendererPrivate* priv = zathura_renderer_get_instance_private(renderer); if (priv->page_cache.num_cached_pages != 0) { for (size_t i = 0; i < priv->page_cache.size; ++i) { @@ -902,10 +896,10 @@ page_cache_is_cached(ZathuraRenderer* renderer, unsigned int page_index) static int find_request_by_page_index(const void* req, const void* data) { - const ZathuraRenderRequest* request = req; + ZathuraRenderRequest* request = (void*) req; const unsigned int page_index = *((const int*)data); - request_private_t* priv = REQUEST_GET_PRIVATE(request); + ZathuraRenderRequestPrivate* priv = zathura_render_request_get_instance_private(request); if (zathura_page_get_index(priv->page) == page_index) { return 0; } @@ -916,7 +910,7 @@ static ssize_t page_cache_lru_invalidate(ZathuraRenderer* renderer) { g_return_val_if_fail(renderer != NULL, -1); - private_t* priv = GET_PRIVATE(renderer); + ZathuraRendererPrivate* priv = zathura_renderer_get_instance_private(renderer); g_return_val_if_fail(priv->page_cache.size != 0, -1); ssize_t lru_index = 0; @@ -926,7 +920,7 @@ page_cache_lru_invalidate(ZathuraRenderer* renderer) ZathuraRenderRequest* tmp_request = girara_list_find(priv->requests, find_request_by_page_index, &priv->page_cache.cache[i]); g_return_val_if_fail(tmp_request != NULL, -1); - request_private_t* request_priv = REQUEST_GET_PRIVATE(tmp_request); + ZathuraRenderRequestPrivate* request_priv = zathura_render_request_get_instance_private(tmp_request); if (request_priv->last_view_time < lru_view_time) { lru_view_time = request_priv->last_view_time; @@ -935,7 +929,7 @@ page_cache_lru_invalidate(ZathuraRenderer* renderer) } } - request_private_t* request_priv = REQUEST_GET_PRIVATE(request); + ZathuraRenderRequestPrivate* request_priv = zathura_render_request_get_instance_private(request); /* emit the signal */ g_signal_emit(request, request_signals[REQUEST_CACHE_INVALIDATED], 0); @@ -952,7 +946,7 @@ page_cache_is_full(ZathuraRenderer* renderer, bool* result) { g_return_val_if_fail(ZATHURA_IS_RENDERER(renderer) && result != NULL, false); - private_t* priv = GET_PRIVATE(renderer); + ZathuraRendererPrivate* priv = zathura_renderer_get_instance_private(renderer); *result = priv->page_cache.num_cached_pages == priv->page_cache.size; return true; @@ -963,7 +957,7 @@ page_cache_invalidate_all(ZathuraRenderer* renderer) { g_return_if_fail(ZATHURA_IS_RENDERER(renderer)); - private_t* priv = GET_PRIVATE(renderer); + ZathuraRendererPrivate* priv = zathura_renderer_get_instance_private(renderer); for (size_t i = 0; i < priv->page_cache.size; ++i) { priv->page_cache.cache[i] = -1; } @@ -979,7 +973,7 @@ zathura_renderer_page_cache_add(ZathuraRenderer* renderer, return; } - private_t* priv = GET_PRIVATE(renderer); + ZathuraRendererPrivate* priv = zathura_renderer_get_instance_private(renderer); bool full = false; if (page_cache_is_full(renderer, &full) == false) { return;