static void ide_editor_frame_add_search_actions (IdeEditorFrame *self, GActionGroup *group) { GPropertyAction *prop_action; GtkSourceSearchContext *search_context; GtkSourceSearchSettings *search_settings; g_assert (IDE_IS_EDITOR_FRAME (self)); g_assert (G_IS_ACTION_GROUP (group)); search_context = ide_source_view_get_search_context (self->source_view); search_settings = gtk_source_search_context_get_settings (search_context); prop_action = g_property_action_new ("change-case-sensitive", search_settings, "case-sensitive"); g_action_map_add_action (G_ACTION_MAP (group), G_ACTION (prop_action)); g_object_unref (prop_action); prop_action = g_property_action_new ("change-word-boundaries", search_settings, "at-word-boundaries"); g_action_map_add_action (G_ACTION_MAP (group), G_ACTION (prop_action)); g_object_unref (prop_action); prop_action = g_property_action_new ("change-regex-enabled", search_settings, "regex-enabled"); g_action_map_add_action (G_ACTION_MAP (group), G_ACTION (prop_action)); g_object_unref (prop_action); prop_action = g_property_action_new ("change-wrap-around", search_settings, "wrap-around"); g_action_map_add_action (G_ACTION_MAP (group), G_ACTION (prop_action)); g_object_unref (prop_action); }
static void gt_twitch_chat_view_init(GtTwitchChatView* self) { GtTwitchChatViewPrivate* priv = gt_twitch_chat_view_get_instance_private(self); gtk_widget_init_template(GTK_WIDGET(self)); priv->action_group = g_simple_action_group_new(); priv->dark_theme_action = g_property_action_new("dark-theme", self, "dark-theme"); g_action_map_add_action(G_ACTION_MAP(priv->action_group), G_ACTION(priv->dark_theme_action)); priv->chat_css_provider = gtk_css_provider_new(); gtk_style_context_add_provider(gtk_widget_get_style_context(GTK_WIDGET(self)), GTK_STYLE_PROVIDER(priv->chat_css_provider), GTK_STYLE_PROVIDER_PRIORITY_USER); priv->chat_buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(priv->chat_view)); priv->tag_table = gtk_text_buffer_get_tag_table(priv->chat_buffer); priv->twitch_emotes = g_hash_table_new(g_direct_hash, g_direct_equal); gtk_text_buffer_get_end_iter(priv->chat_buffer, &priv->bottom_iter); priv->bottom_mark = gtk_text_buffer_create_mark(priv->chat_buffer, "end", &priv->bottom_iter, TRUE); priv->chat = gt_twitch_chat_client_new(); priv->cur_chan = NULL; priv->joined_channel = FALSE; g_signal_connect(priv->chat_entry, "key-press-event", G_CALLBACK(key_press_cb), self); g_signal_connect(self, "hierarchy-changed", G_CALLBACK(anchored_cb), self); g_source_set_callback((GSource*) priv->chat->source, (GSourceFunc) twitch_chat_source_cb, self, NULL); ADD_STYLE_CLASS(self, "gt-twitch-chat-view"); }
/** * egg_state_machine_create_action: * @self: An #EggStateMachine * @name: the name of the action. * * Creates a new #GAction with the name of @name. * * Setting the state of this action will toggle the state of the state machine. * You should use g_variant_new_string() or similar to create the state. * * Returns: (transfer full): A newly created #GAction. */ GAction * egg_state_machine_create_action (EggStateMachine *self, const gchar *name) { g_return_val_if_fail (EGG_IS_STATE_MACHINE (self), NULL); g_return_val_if_fail (name != NULL, NULL); return G_ACTION (g_property_action_new (name, self, "state")); }
static void gt_win_init(GtWin* self) { GtWinPrivate* priv = gt_win_get_instance_private(self); GPropertyAction* action; GT_TYPE_PLAYER; // Hack to load GtPlayer into the symbols table GT_TYPE_PLAYER_HEADER_BAR; GT_TYPE_BROWSE_HEADER_BAR; GT_TYPE_CHANNELS_VIEW; GT_TYPE_GAMES_VIEW; GT_TYPE_FOLLOWS_VIEW; GT_TYPE_CHAT; gtk_window_set_application(GTK_WINDOW(self), GTK_APPLICATION(main_app)); gtk_widget_init_template(GTK_WIDGET(self)); gtk_widget_realize(priv->player_header_bar); priv->cur_info_data = NULL; priv->info_queue = g_queue_new(); gtk_window_set_default_size(GTK_WINDOW(self), g_settings_get_int(main_app->settings, "window-width"), g_settings_get_int(main_app->settings, "window-height")); gtk_window_set_default_icon_name("gnome-twitch"); g_object_bind_property(priv->browse_stack, "visible-child", self, "visible-view", G_BINDING_DEFAULT | G_BINDING_SYNC_CREATE); GdkScreen* screen = gdk_screen_get_default(); GtkCssProvider* css = gtk_css_provider_new(); gtk_css_provider_load_from_resource(css, "/com/vinszent/GnomeTwitch/com.vinszent.GnomeTwitch.style.css"); gtk_style_context_add_provider_for_screen(screen, GTK_STYLE_PROVIDER(css), GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); g_signal_connect_after(self, "key-press-event", G_CALLBACK(key_press_cb), self); g_signal_connect(self, "delete-event", G_CALLBACK(delete_cb), self); g_signal_connect_after(priv->info_bar, "response", G_CALLBACK(close_info_bar_cb), self); g_action_map_add_action_entries(G_ACTION_MAP(self), win_actions, G_N_ELEMENTS(win_actions), self); action = g_property_action_new("toggle_fullscreen", self, "fullscreen"); g_action_map_add_action(G_ACTION_MAP(self), G_ACTION(action)); g_object_unref(action); GtkWindowGroup* window_group = gtk_window_group_new(); gtk_window_group_add_window(window_group, GTK_WINDOW(self)); g_object_unref(window_group); }
static void example_app_window_init (ExampleAppWindow *win) { ExampleAppWindowPrivate *priv; GtkBuilder *builder; GMenuModel *menu; GAction *action; priv = example_app_window_get_instance_private (win); gtk_widget_init_template (GTK_WIDGET (win)); priv->settings = g_settings_new ("com.lonelycactus.exampleapp"); g_settings_bind (priv->settings, "transition", priv->stack, "transition-type", G_SETTINGS_BIND_DEFAULT); g_settings_bind (priv->settings, "show-words", priv->sidebar, "reveal-child", G_SETTINGS_BIND_DEFAULT); g_object_bind_property (priv->search, "active", priv->searchbar, "search-mode-enabled", G_BINDING_BIDIRECTIONAL); g_signal_connect (priv->connect, "toggled", G_CALLBACK (toggle_server), win); g_signal_connect (priv->sidebar, "notify::reveal-child", G_CALLBACK (words_changed), win); builder = gtk_builder_new_from_resource ("/com/lonelycactus/exampleapp/gears-menu.ui"); menu = G_MENU_MODEL (gtk_builder_get_object (builder, "menu")); gtk_menu_button_set_menu_model (GTK_MENU_BUTTON (priv->gears), menu); g_object_unref (builder); action = g_settings_create_action (priv->settings, "show-words"); g_action_map_add_action (G_ACTION_MAP (win), action); g_object_unref (action); action = (GAction*) g_property_action_new ("show-lines", priv->lines, "visible"); g_action_map_add_action (G_ACTION_MAP (win), action); g_object_unref (action); g_object_bind_property (priv->lines, "visible", priv->lines_label, "visible", G_BINDING_DEFAULT); service_init(); service_start_accepting_new_connections(); g_object_set (gtk_settings_get_default (), "gtk-shell-shows-app-menu", FALSE, NULL); gtk_application_window_set_show_menubar (GTK_APPLICATION_WINDOW (win), TRUE); }
void ide_workbench_actions_init (IdeWorkbench *self) { GPropertyAction *action; const GActionEntry actions[] = { { "opacity", NULL, "i", "100", ide_workbench_actions_opacity }, { "open-with-dialog", ide_workbench_actions_open_with_dialog }, { "save-all", ide_workbench_actions_save_all }, { "save-all-quit", ide_workbench_actions_save_all_quit }, }; g_action_map_add_action_entries (G_ACTION_MAP (self), actions, G_N_ELEMENTS (actions), self); action = g_property_action_new ("perspective", self, "visible-perspective-name"); g_action_map_add_action (G_ACTION_MAP (self), G_ACTION (action)); g_object_unref (action); }
static void example_app_window_init (ExampleAppWindow *win) { ExampleAppWindowPrivate *priv; GtkBuilder *builder; GMenuModel *menu; GAction *action; priv = example_app_window_get_instance_private (win); gtk_widget_init_template (GTK_WIDGET (win)); priv->settings = g_settings_new ("org.gtk.exampleapp"); g_settings_bind (priv->settings, "transition", priv->stack, "transition-type", G_SETTINGS_BIND_DEFAULT); g_settings_bind (priv->settings, "show-words", priv->sidebar, "reveal-child", G_SETTINGS_BIND_DEFAULT); g_object_bind_property (priv->search, "active", priv->searchbar, "search-mode-enabled", G_BINDING_BIDIRECTIONAL); g_signal_connect (priv->sidebar, "notify::reveal-child", G_CALLBACK (words_changed), win); builder = gtk_builder_new_from_resource ("/org/gtk/exampleapp/gears-menu.ui"); menu = G_MENU_MODEL (gtk_builder_get_object (builder, "menu")); gtk_menu_button_set_menu_model (GTK_MENU_BUTTON (priv->gears), menu); g_object_unref (builder); action = g_settings_create_action (priv->settings, "show-words"); g_action_map_add_action (G_ACTION_MAP (win), action); g_object_unref (action); action = (GAction*) g_property_action_new ("show-lines", priv->lines, "visible"); g_action_map_add_action (G_ACTION_MAP (win), action); g_object_unref (action); g_object_bind_property (priv->lines, "visible", priv->lines_label, "visible", G_BINDING_DEFAULT); }
static gboolean create_window(void) { GError *error = NULL; builder = gtk_builder_new_from_resource("/org/chimara-if/player/chimara.ui"); window = GTK_WIDGET(load_object("chimara")); aboutwindow = GTK_WIDGET(load_object("aboutwindow")); prefswindow = GTK_WIDGET(load_object("prefswindow")); recentwindow = GTK_WIDGET(load_object("recentwindow")); glk = chimara_if_new(); g_object_set(glk, "ignore-errors", TRUE, /*"interpreter-number", CHIMARA_IF_ZMACHINE_TANDY_COLOR,*/ NULL); GBytes *css_bytes = g_resources_lookup_data("/org/chimara-if/player/style.css", G_RESOURCE_LOOKUP_FLAGS_NONE, &error); if (!css_bytes) return FALSE; size_t len; char *css = g_bytes_unref_to_data(css_bytes, &len); chimara_glk_set_css_from_string(CHIMARA_GLK(glk), css); g_free(css); /* DON'T UNCOMMENT THIS your eyes will burn but it is a good test of programmatically altering just one style chimara_glk_set_css_from_string(CHIMARA_GLK(glk), "buffer { font-family: 'Comic Sans MS'; }");*/ GtkBox *vbox = GTK_BOX( gtk_builder_get_object(builder, "vbox") ); if(vbox == NULL) return FALSE; create_app_actions(G_ACTION_MAP(app), glk); create_window_actions(G_ACTION_MAP(window), glk); GtkWidget *toolbar = GTK_WIDGET(gtk_builder_get_object(builder, "toolbar")); /* Set the default value of the "View/Toolbar" menu item upon creation of a new window to the "show-toolbar-default" setting, but bind the setting one-way only - we don't want toolbars to disappear suddenly */ GPropertyAction *toolbar_action = g_property_action_new("toolbar", toolbar, "visible"); g_action_map_add_action(G_ACTION_MAP(window), G_ACTION(toolbar_action)); if (g_settings_get_boolean(state_settings, "show-toolbar-default")) gtk_widget_show(toolbar); else gtk_widget_hide(toolbar); g_settings_bind(state_settings, "show-toolbar-default", toolbar, "visible", G_SETTINGS_BIND_SET); gtk_box_pack_end(vbox, glk, TRUE, TRUE, 0); gtk_box_pack_start(vbox, toolbar, FALSE, FALSE, 0); gtk_builder_connect_signals(builder, glk); g_signal_connect(glk, "notify::program-name", G_CALLBACK(change_window_title), window); g_signal_connect(glk, "notify::story-name", G_CALLBACK(change_window_title), window); /* Create preferences window */ preferences_create(CHIMARA_GLK(glk)); return TRUE; }