static void activate_toggle_action (GSimpleAction *action, GVariant *parameter, gpointer data) { GVariant *state = g_action_get_state (G_ACTION (action)); gboolean value = g_variant_get_boolean (state); GAction *win_action; win_action = get_corresponding_window_action (GTK_APPLICATION (data), G_ACTION (action)); g_action_change_state (win_action, g_variant_new_boolean (!value)); g_action_change_state (G_ACTION (action), g_variant_new_boolean (!value)); g_variant_unref (state); }
static void set_auto_spell_from_metadata (GeditSpellPlugin *plugin, GeditView *view) { gboolean active = FALSE; gchar *active_str; GeditDocument *doc; GeditDocument *active_doc; doc = GEDIT_DOCUMENT (gtk_text_view_get_buffer (GTK_TEXT_VIEW (view))); active_str = gedit_document_get_metadata (doc, GEDIT_METADATA_ATTRIBUTE_SPELL_ENABLED); if (active_str) { active = *active_str == '1'; g_free (active_str); } set_auto_spell (plugin->priv->window, view, active); /* In case that the doc is the active one we mark the spell action */ active_doc = gedit_window_get_active_document (plugin->priv->window); if (active_doc == doc) { GAction *action; action = g_action_map_lookup_action (G_ACTION_MAP (plugin->priv->window), "auto-spell"); g_action_change_state (action, g_variant_new_boolean (active)); } }
static void on_activate_toggle (GSimpleAction *action, GVariant *parameter, gpointer data) { GVariant *state = g_action_get_state (G_ACTION (action)); g_action_change_state (G_ACTION (action), g_variant_new_boolean (!g_variant_get_boolean (state))); g_variant_unref (state); }
void libbalsa_radio_activated(GSimpleAction * action, GVariant * parameter, gpointer user_data) { g_action_change_state(G_ACTION(action), parameter); }
static void photos_searchbar_enable_search (PhotosSearchbar *self, gboolean enable) { GVariant *state; state = g_variant_new ("b", enable); g_action_change_state (self->priv->search, state); }
static void activate_radio (GSimpleAction *action, GVariant *parameter, gpointer user_data) { show_action_infobar (action, parameter, user_data); g_action_change_state (G_ACTION (action), parameter); }
static void update_ui (GeditSpellPlugin *plugin) { GeditSpellPluginPrivate *priv; GeditView *view; GAction *check_spell_action; GAction *config_spell_action; GAction *auto_spell_action; gedit_debug (DEBUG_PLUGINS); priv = plugin->priv; view = gedit_window_get_active_view (priv->window); check_spell_action = g_action_map_lookup_action (G_ACTION_MAP (priv->window), "check-spell"); g_simple_action_set_enabled (G_SIMPLE_ACTION (check_spell_action), (view != NULL) && gtk_text_view_get_editable (GTK_TEXT_VIEW (view))); config_spell_action = g_action_map_lookup_action (G_ACTION_MAP (priv->window), "config-spell"); g_simple_action_set_enabled (G_SIMPLE_ACTION (config_spell_action), (view != NULL) && gtk_text_view_get_editable (GTK_TEXT_VIEW (view))); auto_spell_action = g_action_map_lookup_action (G_ACTION_MAP (priv->window), "auto-spell"); g_simple_action_set_enabled (G_SIMPLE_ACTION (auto_spell_action), (view != NULL) && gtk_text_view_get_editable (GTK_TEXT_VIEW (view))); if (view != NULL) { GeditDocument *doc; GeditTab *tab; GeditTabState state; gboolean autospell; doc = GEDIT_DOCUMENT (gtk_text_view_get_buffer (GTK_TEXT_VIEW (view))); tab = gedit_window_get_active_tab (priv->window); state = gedit_tab_get_state (tab); autospell = (doc != NULL && gedit_automatic_spell_checker_get_from_document (doc) != NULL); /* If the document is loading we can't get the metadata so we endup with an useless speller */ if (state == GEDIT_TAB_STATE_NORMAL) { g_action_change_state (auto_spell_action, g_variant_new_boolean (autospell)); } g_simple_action_set_enabled (G_SIMPLE_ACTION (check_spell_action), gtk_text_buffer_get_char_count (GTK_TEXT_BUFFER (doc)) > 0); } }
static void action_toggle_state_cb (GSimpleAction *saction, GVariant *parameter, gpointer user_data) { GAction *action = G_ACTION (saction); GVariant *state = g_action_get_state (action); g_action_change_state (action, g_variant_new_boolean (!g_variant_get_boolean (state))); g_variant_unref (state); }
static void photos_searchbar_enable_search (PhotosSearchbar *self, gboolean enable) { PhotosSearchbarPrivate *priv; GVariant *state; priv = photos_searchbar_get_instance_private (self); state = g_variant_new ("b", enable); g_action_change_state (priv->search, state); }
static void activate_action (GSimpleAction *action, GVariant *parameter, gpointer data) { GAction *win_action = get_corresponding_window_action (GTK_APPLICATION (data), G_ACTION (action)); g_action_activate (win_action, parameter); if (parameter) g_action_change_state (G_ACTION (action), parameter); }
void libbalsa_toggle_activated(GSimpleAction * action, GVariant * parameter, gpointer user_data) { GVariant *action_state; gboolean state; action_state = g_action_get_state(G_ACTION(action)); state = g_variant_get_boolean(action_state); g_action_change_state(G_ACTION(action), g_variant_new_boolean(!state)); g_variant_unref(action_state); }
static void ring_notify_show_cm(NotifyNotification*, char *, ContactMethod *cm) { /* show the main window in case its hidden */ if (auto action = g_action_map_lookup_action(G_ACTION_MAP(g_application_get_default()), "show-main-window")) { g_action_change_state(action, g_variant_new_boolean(TRUE)); } /* select the relevant cm */ auto idx = RecentModel::instance().getIndex(cm); if (idx.isValid()) { RecentModel::instance().selectionModel()->setCurrentIndex(idx, QItemSelectionModel::ClearAndSelect); } }
static void photos_application_action_toggle (GSimpleAction *simple, GVariant *parameter, gpointer user_data) { GVariant *state; GVariant *new_state; state = g_action_get_state (G_ACTION (simple)); if (state == NULL) return; new_state = g_variant_new ("b", !g_variant_get_boolean (state)); g_action_change_state (G_ACTION (simple), new_state); g_variant_unref (state); }
static void action_toggle_state (GSimpleAction *action, GVariant *parameter, gpointer user_data) { GVariant *state; gboolean new_state; state = g_action_get_state (G_ACTION (action)); new_state = !g_variant_get_boolean (state); g_action_change_state (G_ACTION (action), g_variant_new_boolean (new_state)); g_variant_unref (state); }
static void on_activate_search (GSimpleAction *action, GVariant *parameter, gpointer data) { GsmApplication *app = (GsmApplication *) data; GVariant *state = g_action_get_state (G_ACTION (action)); gboolean is_search_shortcut = g_variant_get_boolean (parameter); gboolean is_search_bar = gtk_search_bar_get_search_mode (app->search_bar); gtk_widget_set_visible (GTK_WIDGET (app->search_bar), is_search_bar || is_search_shortcut); if (is_search_shortcut && is_search_bar) { gtk_widget_grab_focus (GTK_WIDGET (app->search_entry)); } else { g_action_change_state (G_ACTION (action), g_variant_new_boolean (!g_variant_get_boolean (state))); } g_variant_unref (state); }
void gt_player_open_channel(GtPlayer* self, GtChannel* chan) { gchar* status; gchar* name; gchar* display_name; gchar* token; gchar* sig; GtTwitchStreamData* stream_data; GVariant* default_quality; GtTwitchStreamQuality _default_quality; GAction* quality_action; GtWin* win; g_object_set(self, "open-channel", chan, NULL); g_object_get(chan, "display-name", &display_name, "name", &name, "status", &status, NULL); default_quality = g_settings_get_value(main_app->settings, "default-quality"); _default_quality = g_settings_get_enum(main_app->settings, "default-quality"); g_message("{GtPlayer} Opening channel '%s' with quality '%d'", name, _default_quality); win = GT_WIN(gtk_widget_get_toplevel(GTK_WIDGET(self))); quality_action = g_action_map_lookup_action(G_ACTION_MAP(win), "player_set_quality"); g_action_change_state(quality_action, default_quality); gt_twitch_stream_access_token(main_app->twitch, name, &token, &sig); stream_data = gt_twitch_stream_by_quality(main_app->twitch, name, _default_quality, token, sig); GT_PLAYER_GET_IFACE(self)->set_uri(self, stream_data->url); GT_PLAYER_GET_IFACE(self)->play(self); gt_twitch_stream_data_free(stream_data); g_free(name); g_free(status); g_free(token); g_free(sig); }
static void on_activate_priority (GSimpleAction *action, GVariant *parameter, gpointer data) { GsmApplication *app = (GsmApplication *) data; g_action_change_state (G_ACTION (action), parameter); const gint32 priority = g_variant_get_int32 (parameter); switch (priority) { case 32: procdialog_create_renice_dialog (app); break; default: renice (app, priority); break; } }
void gth_window_change_action_state (GthWindow *window, const char *action_name, gboolean value) { GAction *action; GVariant *old_state; GVariant *new_state; action = g_action_map_lookup_action (G_ACTION_MAP (window), action_name); g_return_if_fail (action != NULL); old_state = g_action_get_state (action); new_state = g_variant_new_boolean (value); if ((old_state == NULL) || ! g_variant_equal (old_state, new_state)) g_action_change_state (action, new_state); if (old_state != NULL) g_variant_unref (old_state); }
static void on_activate_radio (GSimpleAction *action, GVariant *parameter, gpointer data) { g_action_change_state (G_ACTION (action), parameter); }
static void on_menu_mode(GSimpleAction *action, GVariant *parameter, gpointer user_data) { g_action_change_state (G_ACTION(action), parameter); }
static void photos_import_dialog_initialize_index_and_popover (PhotosImportDialog *self) { GHashTableIter iter; GList *extra_collections = NULL; GList *l; PhotosBaseItem *collection; guint n_buttons = 0; g_clear_pointer (&self->index, (GDestroyNotify) dzl_fuzzy_mutable_index_unref); g_clear_pointer (&self->recent_collections, (GDestroyNotify) photos_utils_object_list_free_full); gtk_container_foreach (GTK_CONTAINER (self->collections_popover_grid), (GtkCallback) gtk_widget_destroy, NULL); gtk_dialog_set_response_sensitive (GTK_DIALOG (self), GTK_RESPONSE_OK, FALSE); photos_import_dialog_enable_create_new (self, FALSE); photos_import_dialog_show_add_existing (self, FALSE); self->index = dzl_fuzzy_mutable_index_new_with_free_func (FALSE, g_object_unref); dzl_fuzzy_mutable_index_begin_bulk_insert (self->index); g_hash_table_iter_init (&iter, self->collections); while (g_hash_table_iter_next (&iter, NULL, (gpointer *) &collection)) { const gchar *name; name = photos_base_item_get_name (collection); dzl_fuzzy_mutable_index_insert (self->index, name, g_object_ref (collection)); self->recent_collections = g_list_prepend (self->recent_collections, g_object_ref (collection)); } dzl_fuzzy_mutable_index_end_bulk_insert (self->index); self->recent_collections = g_list_sort_with_data (self->recent_collections, photos_import_dialog_sort_func, self); for (l = self->recent_collections; l != NULL && n_buttons < MAX_MATCHES; l = l->next) { GtkWidget *collection_button; collection = PHOTOS_BASE_ITEM (l->data); collection_button = photos_import_dialog_create_collection_button (collection); gtk_container_add (GTK_CONTAINER (self->collections_popover_grid), collection_button); gtk_widget_show_all (collection_button); n_buttons++; } if (self->recent_collections != NULL) { GVariant *state; const gchar *id; if (l != NULL) { l->prev->next = NULL; l->prev = NULL; extra_collections = g_steal_pointer (&l); } collection = PHOTOS_BASE_ITEM (self->recent_collections->data); id = photos_filterable_get_id (PHOTOS_FILTERABLE (collection)); state = g_variant_new_string (id); g_action_change_state (G_ACTION (self->add_existing_action), state); photos_import_dialog_show_add_existing (self, TRUE); } photos_import_dialog_enable_create_new (self, TRUE); photos_import_dialog_update_response_sensitivity (self); g_list_free_full (extra_collections, g_object_unref); g_return_if_fail (g_list_length (self->recent_collections) <= MAX_MATCHES); }
void create_main_window (GsmApplication *app) { GtkApplicationWindow *main_window; GtkStack *stack; GtkMenuButton *process_menu_button; GMenuModel *process_menu_model; GdkDisplay *display; GdkMonitor *monitor; GdkRectangle monitor_geometry; const char* session; int width, height, xpos, ypos; GtkBuilder *builder = gtk_builder_new(); gtk_builder_add_from_resource (builder, "/org/gnome/gnome-system-monitor/data/interface.ui", NULL); gtk_builder_add_from_resource (builder, "/org/gnome/gnome-system-monitor/data/menus.ui", NULL); main_window = GTK_APPLICATION_WINDOW (gtk_builder_get_object (builder, "main_window")); gtk_window_set_application (GTK_WINDOW (main_window), app->gobj()); gtk_widget_set_name (GTK_WIDGET (main_window), "gnome-system-monitor"); app->main_window = main_window; session = g_getenv ("XDG_CURRENT_DESKTOP"); if (session && !strstr (session, "GNOME")){ GtkBox *mainbox; GtkHeaderBar *headerbar; mainbox = GTK_BOX (gtk_builder_get_object (builder, "main_box")); headerbar = GTK_HEADER_BAR (gtk_builder_get_object (builder, "header_bar")); gtk_style_context_remove_class (gtk_widget_get_style_context (GTK_WIDGET (headerbar)), "titlebar"); gtk_window_set_titlebar (GTK_WINDOW (main_window), NULL); gtk_header_bar_set_show_close_button (headerbar, FALSE); gtk_box_pack_start (mainbox, GTK_WIDGET (headerbar), FALSE, FALSE, 0); } g_settings_get (app->settings->gobj(), GSM_SETTING_WINDOW_STATE, "(iiii)", &width, &height, &xpos, &ypos); display = gdk_display_get_default (); monitor = gdk_display_get_monitor_at_point (display, xpos, ypos); if (monitor == NULL) { monitor = gdk_display_get_monitor (display, 0); } gdk_monitor_get_geometry (monitor, &monitor_geometry); width = CLAMP (width, 50, monitor_geometry.width); height = CLAMP (height, 50, monitor_geometry.height); xpos = CLAMP (xpos, 0, monitor_geometry.width - width); ypos = CLAMP (ypos, 0, monitor_geometry.height - height); gtk_window_set_default_size (GTK_WINDOW (main_window), width, height); gtk_window_move (GTK_WINDOW (main_window), xpos, ypos); if (app->settings->get_boolean (GSM_SETTING_MAXIMIZED)) gtk_window_maximize (GTK_WINDOW (main_window)); app->process_menu_button = process_menu_button = GTK_MENU_BUTTON (gtk_builder_get_object (builder, "process_menu_button")); process_menu_model = G_MENU_MODEL (gtk_builder_get_object (builder, "process-window-menu")); gtk_menu_button_set_menu_model (process_menu_button, process_menu_model); app->end_process_button = GTK_BUTTON (gtk_builder_get_object (builder, "end_process_button")); app->search_button = GTK_BUTTON (gtk_builder_get_object (builder, "search_button")); GActionEntry win_action_entries[] = { { "about", on_activate_about, NULL, NULL, NULL }, { "search", on_activate_search, "b", "false", NULL }, { "send-signal-stop", on_activate_send_signal, "i", NULL, NULL }, { "send-signal-cont", on_activate_send_signal, "i", NULL, NULL }, { "send-signal-end", on_activate_send_signal, "i", NULL, NULL }, { "send-signal-kill", on_activate_send_signal, "i", NULL, NULL }, { "priority", on_activate_priority, "i", "@i 0", change_priority_state }, { "memory-maps", on_activate_memory_maps, NULL, NULL, NULL }, { "open-files", on_activate_open_files, NULL, NULL, NULL }, { "process-properties", on_activate_process_properties, NULL, NULL, NULL }, { "refresh", on_activate_refresh, NULL, NULL, NULL }, { "show-page", on_activate_radio, "s", "'resources'", change_show_page_state }, { "show-whose-processes", on_activate_radio, "s", "'all'", change_show_processes_state }, { "show-dependencies", on_activate_toggle, NULL, "false", change_show_dependencies_state } }; g_action_map_add_action_entries (G_ACTION_MAP (main_window), win_action_entries, G_N_ELEMENTS (win_action_entries), app); GdkScreen* screen = gtk_widget_get_screen(GTK_WIDGET (main_window)); GdkVisual* visual = gdk_screen_get_rgba_visual(screen); /* use visual, if available */ if (visual) gtk_widget_set_visual(GTK_WIDGET (main_window), visual); /* create the main stack */ app->stack = stack = GTK_STACK (gtk_builder_get_object (builder, "stack")); create_proc_view(app, builder); create_sys_view (app, builder); create_disk_view (app, builder); g_settings_bind (app->settings->gobj (), GSM_SETTING_CURRENT_TAB, stack, "visible-child-name", G_SETTINGS_BIND_DEFAULT); g_signal_connect (G_OBJECT (stack), "notify::visible-child", G_CALLBACK (cb_change_current_page), app); g_signal_connect (G_OBJECT (main_window), "delete_event", G_CALLBACK (cb_main_window_delete), app); g_signal_connect (G_OBJECT (main_window), "window-state-event", G_CALLBACK (cb_main_window_state_changed), app); GAction *action; action = g_action_map_lookup_action (G_ACTION_MAP (main_window), "show-dependencies"); g_action_change_state (action, g_settings_get_value (app->settings->gobj (), GSM_SETTING_SHOW_DEPENDENCIES)); action = g_action_map_lookup_action (G_ACTION_MAP (main_window), "show-whose-processes"); g_action_change_state (action, g_settings_get_value (app->settings->gobj (), GSM_SETTING_SHOW_WHOSE_PROCESSES)); gtk_widget_show (GTK_WIDGET (main_window)); update_page_activities (app); g_object_unref (G_OBJECT (builder)); }