static void activate (GtkApplication *app) { GList *list; GSList* actions; gboolean hidden = FALSE; list = gtk_application_get_windows (app); AppShellData* app_data = appshelldata_new("matecc.menu", GTK_ICON_SIZE_DND, FALSE, TRUE, 0); generate_categories(app_data); actions = get_actions_list(); layout_shell(app_data, _("Filter"), _("Groups"), _("Common Tasks"), actions, handle_static_action_clicked); if (list) { gtk_window_present (GTK_WINDOW (list->data)); } else { create_main_window(app_data, "MyControlCenter", _("Control Center"), "preferences-desktop", 975, 600, hidden); gtk_application_add_window (app, GTK_WINDOW(app_data->main_app)); } }
int main(int argc, char* argv[]) { gboolean hidden = FALSE; UniqueApp* unique_app; AppShellData* app_data; GSList* actions; GError* error; GOptionEntry options[] = { {"hide", 0, 0, G_OPTION_ARG_NONE, &hidden, N_("Hide on start (useful to preload the shell)"), NULL}, {NULL} }; #ifdef ENABLE_NLS bindtextdomain(GETTEXT_PACKAGE, MATELOCALEDIR); bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8"); textdomain(GETTEXT_PACKAGE); #endif error = NULL; if (!gtk_init_with_args(&argc, &argv, NULL, options, GETTEXT_PACKAGE, &error)) { g_printerr("%s\n", error->message); g_error_free(error); return 1; } unique_app = unique_app_new("org.mate.mate-control-center.shell", NULL); if (unique_app_is_running(unique_app)) { int retval = 0; if (!hidden) { UniqueResponse response; response = unique_app_send_message(unique_app, UNIQUE_ACTIVATE, NULL); retval = (response != UNIQUE_RESPONSE_OK); } g_object_unref(unique_app); return retval; } app_data = appshelldata_new("matecc.menu", GTK_ICON_SIZE_DND, FALSE, TRUE, 0); generate_categories(app_data); actions = get_actions_list(); layout_shell(app_data, _("Filter"), _("Groups"), _("Common Tasks"), actions, handle_static_action_clicked); create_main_window(app_data, "MyControlCenter", _("Control Center"), "preferences-desktop", 975, 600, hidden); unique_app_watch_window(unique_app, GTK_WINDOW(app_data->main_app)); g_signal_connect(unique_app, "message-received", G_CALLBACK(message_received_cb), app_data); gtk_main(); g_object_unref(unique_app); return 0; }