Первое что нужно сделать, это создать приложение, которое будет видно на dbus шине. GtkApplication *app;
static void app_activate_cb ( GtkApplication *app, gpointer user_data ) {
}
int main ( int argc, char **argv ) {
app = gtk_application_new ( "com.xverizex.configurator", G_APPLICATION_FLAGS_NONE );
g_application_register ( ( GApplication * ) app, NULL, NULL );
g_signal_connect ( app, "activate", G_CALLBACK ( app_activate_cb ), NULL );
return g_application_run ( ( GApplication * ) app, argc, argv );
} После того, как приложение активировалось, нужно наполнить его виджетами. Я создаю в этом файле структуру, которая будет хранить все виджеты, которые будут изменяться в оформлении, если указать другую цветовую схему.
Вот структура: struct widgets {
GtkWidget *main_window;
GtkWidget *notebook;
GtkWidget *tree_view_sources;
GtkWidget *label_tab_sources;
GtkWidget *header_bar;
GtkWidget *search_entry;
GtkWidget *button_add_item;
GtkWidget *tree_view_reactions;
GtkWidget *la