GtkWidget * hitori_create_interface (Hitori *hitori) { GtkBuilder *builder; GtkStyleContext *style_context; GtkCssProvider *css_provider; const PangoFontDescription *font; GAction *action; builder = gtk_builder_new_from_resource ("/org/gnome/Hitori/ui/hitori.ui"); gtk_builder_set_translation_domain (builder, PACKAGE); gtk_builder_connect_signals (builder, hitori); /* Setup the main window */ hitori->window = GTK_WIDGET (gtk_builder_get_object (builder, "hitori_main_window")); hitori->drawing_area = GTK_WIDGET (gtk_builder_get_object (builder, "hitori_drawing_area")); hitori->timer_label = GTK_LABEL (gtk_builder_get_object (builder, "hitori_timer")); g_object_unref (builder); /* Set up actions */ g_action_map_add_action_entries (G_ACTION_MAP (hitori), app_entries, G_N_ELEMENTS (app_entries), hitori); g_action_map_add_action_entries (G_ACTION_MAP (hitori->window), win_entries, G_N_ELEMENTS (win_entries), hitori); action = g_settings_create_action (hitori->settings, "board-size"); g_action_map_add_action (G_ACTION_MAP (hitori), action); g_signal_connect (G_OBJECT (action), "notify::state", (GCallback) board_size_change_cb, hitori); g_object_unref (action); hitori->undo_action = G_SIMPLE_ACTION (g_action_map_lookup_action (G_ACTION_MAP (hitori->window), "undo")); hitori->redo_action = G_SIMPLE_ACTION (g_action_map_lookup_action (G_ACTION_MAP (hitori->window), "redo")); hitori->hint_action = G_SIMPLE_ACTION (g_action_map_lookup_action (G_ACTION_MAP (hitori->window), "hint")); /* Set up font descriptions for the drawing area */ style_context = gtk_widget_get_style_context (hitori->drawing_area); gtk_style_context_get (style_context, gtk_style_context_get_state (style_context), GTK_STYLE_PROPERTY_FONT, &font, NULL); hitori->normal_font_desc = pango_font_description_copy (font); hitori->painted_font_desc = pango_font_description_copy (font); /* Load CSS for the drawing area */ css_provider = gtk_css_provider_new (); gtk_css_provider_load_from_resource (css_provider, "/org/gnome/Hitori/ui/hitori.css"); gtk_style_context_add_provider (style_context, GTK_STYLE_PROVIDER (css_provider), GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); g_object_unref (css_provider); /* Reset the timer */ hitori_reset_timer (hitori); /* Disable undo/redo until a cell has been clicked. */ g_simple_action_set_enabled (hitori->undo_action, FALSE); g_simple_action_set_enabled (hitori->redo_action, FALSE); return hitori->window; }
static void ide_keybindings_load_plugin (IdeKeybindings *self, PeasPluginInfo *plugin_info, PeasEngine *engine) { g_autofree gchar *path = NULL; const gchar *module_name; g_autoptr(GBytes) bytes = NULL; g_autoptr(GtkCssProvider) provider = NULL; g_assert (IDE_IS_KEYBINDINGS (self)); g_assert (plugin_info != NULL); g_assert (PEAS_IS_ENGINE (engine)); if (!self->mode || !self->plugin_providers) return; module_name = peas_plugin_info_get_module_name (plugin_info); path = g_strdup_printf ("/org/gnome/builder/plugins/%s/keybindings/%s.css", module_name, self->mode); bytes = g_resources_lookup_data (path, 0, NULL); if (bytes == NULL) return; IDE_TRACE_MSG ("Loading %s keybindings for \"%s\" plugin", self->mode, module_name); provider = gtk_css_provider_new (); gtk_css_provider_load_from_resource (provider, path); gtk_style_context_add_provider_for_screen (gdk_screen_get_default (), GTK_STYLE_PROVIDER (provider), GTK_STYLE_PROVIDER_PRIORITY_APPLICATION + 1); g_hash_table_insert (self->plugin_providers, g_strdup (module_name), g_steal_pointer (&provider)); }
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); }
void gnc_add_css_file (void) { GtkCssProvider *provider_user, *provider_app, *provider_fallback; GdkDisplay *display; GdkScreen *screen; const gchar *var; GError *error = 0; provider_user = gtk_css_provider_new (); provider_app = gtk_css_provider_new (); provider_fallback = gtk_css_provider_new (); display = gdk_display_get_default (); screen = gdk_display_get_default_screen (display); gtk_style_context_add_provider_for_screen (screen, GTK_STYLE_PROVIDER (provider_fallback), GTK_STYLE_PROVIDER_PRIORITY_FALLBACK); gtk_style_context_add_provider_for_screen (screen, GTK_STYLE_PROVIDER (provider_app), GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); gtk_style_context_add_provider_for_screen (screen, GTK_STYLE_PROVIDER (provider_user), GTK_STYLE_PROVIDER_PRIORITY_USER); #if GTK_CHECK_VERSION(3,20,0) gtk_css_provider_load_from_resource (provider_app, "/org/gnucash/gnucash-320.css"); #else gtk_css_provider_load_from_resource (provider_app, "/org/gnucash/gnucash-310.css"); #endif gtk_css_provider_load_from_resource (provider_fallback, "/org/gnucash/gnucash-fallback-310.css"); var = g_get_home_dir (); if (var) { gchar *str; str = g_build_filename (var, ".gtk-3.0-gnucash.css", (char *)NULL); gtk_css_provider_load_from_path (provider_user, str, &error); g_free (str); } g_object_unref (provider_user); g_object_unref (provider_app); g_object_unref (provider_fallback); }
/** * anaconda_widget_apply_stylesheet: * @widget: The widget to apply the style data to. * @name: The name of the widget's stylesheet. * * Apply CSS data to a widget's #GtkStyleContext. The data will not affect any * other widgets, including children of this widget. * * The CSS data lives in the resource bundle, the advantage of which is that * the stylesheet is just a normal stylesheet in the source tree with normal * syntax highlighting and no weird C string stuff or anything. The * disadvantage is that the stylesheet can only be applied to one widget at a * time so there's a bunch of tiny little stylesheets in the resources * directory, but that's the world we live in. * * The stylesheet should live in the resources/ directory in the source tree * and will be fetched as /org/fedoraproject/anaconda/widgets/<name>.css. * * The stylesheet is added to the style context at one less than * #GTK_STYLE_PROVIDER_PRIORITY_APPLICATION so that the style will not * overridden by a sloppy wildcard in a theme somewhere, but it will be * overridden by the application-level stylesheet, which may include * product-specific customizations. * */ void anaconda_widget_apply_stylesheet(GtkWidget *widget, const gchar *name) { GtkCssProvider *style_provider; GtkStyleContext *style_context; gchar *resource_path; resource_path = g_strdup_printf("/org/fedoraproject/anaconda/widgets/%s.css", name); style_provider = gtk_css_provider_new(); gtk_css_provider_load_from_resource(style_provider, resource_path); g_free(resource_path); style_context = gtk_widget_get_style_context(widget); gtk_style_context_add_provider(style_context, GTK_STYLE_PROVIDER(style_provider), GTK_STYLE_PROVIDER_PRIORITY_APPLICATION - 1); }
static void gis_password_page_init (GisPasswordPage *page) { GtkCssProvider *provider; g_resources_register (password_get_resource ()); provider = gtk_css_provider_new (); gtk_css_provider_load_from_resource (provider, "/org/gnome/initial-setup/gis-password-page.css"); gtk_style_context_add_provider_for_screen (gdk_screen_get_default (), GTK_STYLE_PROVIDER (provider), GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); g_object_unref (provider); gtk_widget_init_template (GTK_WIDGET (page)); }
static void fsearch_application_window_init (FsearchApplicationWindow *self) { g_assert (FSEARCH_WINDOW_IS_WINDOW (self)); gtk_widget_init_template (GTK_WIDGET (self)); GtkCssProvider *provider = gtk_css_provider_new (); gtk_css_provider_load_from_resource (provider, "/org/fsearch/fsearch/shared.css"); gtk_style_context_add_provider_for_screen (gdk_screen_get_default (), GTK_STYLE_PROVIDER (provider), GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); g_object_unref (provider); create_view_and_model (self); //self->selection_popover = create_popover (self->selection_toggle_button); //g_signal_connect (self->selection_popover, // "closed", // G_CALLBACK (set_toggle_button), // (gpointer)self->selection_toggle_button); self->database_popover = create_popover (self->database_toggle_button); fill_database_popover (self->database_popover); g_signal_connect (self->database_popover, "closed", G_CALLBACK (set_toggle_button), (gpointer)self->database_toggle_button); FsearchApplication *app = FSEARCH_APPLICATION_DEFAULT; g_signal_connect (app, "database-update", G_CALLBACK (update_database_cb), self); g_signal_connect (app, "database-updated", G_CALLBACK (updated_database_cb), self); g_signal_connect (gtk_icon_theme_get_default (), "changed", G_CALLBACK (icon_theme_changed_cb), self); GtkBuilder *builder = gtk_builder_new_from_resource ("/org/fsearch/fsearch/overlay.ui"); // Overlay when no search results are found self->no_search_results_overlay = GTK_WIDGET (gtk_builder_get_object (builder, "no_search_results")); gtk_overlay_add_overlay (GTK_OVERLAY (self->search_overlay), self->no_search_results_overlay); // Overlay when database is empty self->empty_database_overlay = GTK_WIDGET (gtk_builder_get_object (builder, "empty_database")); gtk_overlay_add_overlay (GTK_OVERLAY (self->search_overlay), self->empty_database_overlay); // Overlay when search query is empty self->empty_search_query_overlay = GTK_WIDGET (gtk_builder_get_object (builder, "empty_search_query")); gtk_overlay_add_overlay (GTK_OVERLAY (self->search_overlay), self->empty_search_query_overlay); // Overlay when database is updating self->database_updating_overlay = GTK_WIDGET (gtk_builder_get_object (builder, "database_updating")); gtk_overlay_add_overlay (GTK_OVERLAY (self->search_overlay), self->database_updating_overlay); self->database_updating_label = GTK_WIDGET (gtk_builder_get_object (builder, "database_updating_label")); g_object_unref (builder); }
static void cc_night_light_dialog_init (CcNightLightDialog *self) { g_autoptr(GtkCssProvider) provider = NULL; g_autoptr(GError) error = NULL; gtk_widget_init_template (GTK_WIDGET (self)); gtk_scale_add_mark (GTK_SCALE (self->scale_color_temperature), 3000, GTK_POS_BOTTOM, _("More Warm")); gtk_scale_add_mark (GTK_SCALE (self->scale_color_temperature), 4000, GTK_POS_BOTTOM, NULL); gtk_scale_add_mark (GTK_SCALE (self->scale_color_temperature), 5000, GTK_POS_BOTTOM, NULL); gtk_scale_add_mark (GTK_SCALE (self->scale_color_temperature), 6000, GTK_POS_BOTTOM, _("Less Warm")); self->cancellable = g_cancellable_new (); self->settings_display = g_settings_new (DISPLAY_SCHEMA); g_signal_connect (self->settings_display, "changed", G_CALLBACK (dialog_settings_changed_cb), self); g_settings_bind_writable (self->settings_display, "night-light-schedule-from", self->spinbutton_from_hours, "sensitive", FALSE); g_settings_bind_writable (self->settings_display, "night-light-schedule-from", self->spinbutton_from_minutes, "sensitive", FALSE); g_settings_bind_writable (self->settings_display, "night-light-schedule-to", self->spinbutton_to_minutes, "sensitive", FALSE); g_settings_bind_writable (self->settings_display, "night-light-schedule-to", self->spinbutton_to_minutes, "sensitive", FALSE); /* use custom CSS */ provider = gtk_css_provider_new (); gtk_css_provider_load_from_resource (provider, "/org/gnome/control-center/display/night-light.css"); gtk_style_context_add_provider_for_screen (gdk_screen_get_default (), GTK_STYLE_PROVIDER (provider), GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); cc_object_storage_create_dbus_proxy (G_BUS_TYPE_SESSION, G_DBUS_PROXY_FLAGS_NONE, "org.gnome.SettingsDaemon.Color", "/org/gnome/SettingsDaemon/Color", "org.gnome.SettingsDaemon.Color", self->cancellable, dialog_got_proxy_cb, self); cc_object_storage_create_dbus_proxy (G_BUS_TYPE_SESSION, G_DBUS_PROXY_FLAGS_NONE, "org.gnome.SettingsDaemon.Color", "/org/gnome/SettingsDaemon/Color", "org.freedesktop.DBus.Properties", self->cancellable, dialog_got_proxy_props_cb, self); /* clock settings_display */ self->settings_clock = g_settings_new (CLOCK_SCHEMA); self->clock_format = g_settings_get_enum (self->settings_clock, CLOCK_FORMAT_KEY); dialog_update_adjustments (self); g_signal_connect (self->settings_clock, "changed::" CLOCK_FORMAT_KEY, G_CALLBACK (dialog_clock_settings_changed_cb), self); dialog_update_state (self); }