st/settings: Add :accent-color
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2715>
This commit is contained in:
parent
1bab7b32e5
commit
ec9217bc0d
@ -28,7 +28,7 @@ gjs_req = '>= 1.73.1'
|
|||||||
gtk_req = '>= 4.0'
|
gtk_req = '>= 4.0'
|
||||||
mutter_req = '>= 46.0'
|
mutter_req = '>= 46.0'
|
||||||
polkit_req = '>= 0.100'
|
polkit_req = '>= 0.100'
|
||||||
schemas_req = '>= 46.beta'
|
schemas_req = '>= 47.alpha'
|
||||||
systemd_req = '>= 246'
|
systemd_req = '>= 246'
|
||||||
ibus_req = '>= 1.5.19'
|
ibus_req = '>= 1.5.19'
|
||||||
gnome_desktop_req = '>= 40'
|
gnome_desktop_req = '>= 40'
|
||||||
|
@ -33,6 +33,7 @@
|
|||||||
#define KEY_DRAG_THRESHOLD "drag-threshold"
|
#define KEY_DRAG_THRESHOLD "drag-threshold"
|
||||||
#define KEY_FONT_NAME "font-name"
|
#define KEY_FONT_NAME "font-name"
|
||||||
#define KEY_COLOR_SCHEME "color-scheme"
|
#define KEY_COLOR_SCHEME "color-scheme"
|
||||||
|
#define KEY_ACCENT_COLOR "accent-color"
|
||||||
#define KEY_HIGH_CONTRAST "high-contrast"
|
#define KEY_HIGH_CONTRAST "high-contrast"
|
||||||
#define KEY_GTK_ICON_THEME "icon-theme"
|
#define KEY_GTK_ICON_THEME "icon-theme"
|
||||||
#define KEY_MAGNIFIER_ACTIVE "screen-magnifier-enabled"
|
#define KEY_MAGNIFIER_ACTIVE "screen-magnifier-enabled"
|
||||||
@ -45,6 +46,7 @@ enum {
|
|||||||
PROP_DRAG_THRESHOLD,
|
PROP_DRAG_THRESHOLD,
|
||||||
PROP_FONT_NAME,
|
PROP_FONT_NAME,
|
||||||
PROP_COLOR_SCHEME,
|
PROP_COLOR_SCHEME,
|
||||||
|
PROP_ACCENT_COLOR,
|
||||||
PROP_HIGH_CONTRAST,
|
PROP_HIGH_CONTRAST,
|
||||||
PROP_GTK_ICON_THEME,
|
PROP_GTK_ICON_THEME,
|
||||||
PROP_MAGNIFIER_ACTIVE,
|
PROP_MAGNIFIER_ACTIVE,
|
||||||
@ -75,6 +77,7 @@ struct _StSettings
|
|||||||
gint drag_threshold;
|
gint drag_threshold;
|
||||||
double slow_down_factor;
|
double slow_down_factor;
|
||||||
StSystemColorScheme color_scheme;
|
StSystemColorScheme color_scheme;
|
||||||
|
StSystemAccentColor accent_color;
|
||||||
};
|
};
|
||||||
|
|
||||||
G_DEFINE_TYPE (StSettings, st_settings, G_TYPE_OBJECT)
|
G_DEFINE_TYPE (StSettings, st_settings, G_TYPE_OBJECT)
|
||||||
@ -192,6 +195,9 @@ st_settings_get_property (GObject *object,
|
|||||||
case PROP_COLOR_SCHEME:
|
case PROP_COLOR_SCHEME:
|
||||||
g_value_set_enum (value, settings->color_scheme);
|
g_value_set_enum (value, settings->color_scheme);
|
||||||
break;
|
break;
|
||||||
|
case PROP_ACCENT_COLOR:
|
||||||
|
g_value_set_enum (value, settings->accent_color);
|
||||||
|
break;
|
||||||
case PROP_MAGNIFIER_ACTIVE:
|
case PROP_MAGNIFIER_ACTIVE:
|
||||||
g_value_set_boolean (value, settings->magnifier_active);
|
g_value_set_boolean (value, settings->magnifier_active);
|
||||||
break;
|
break;
|
||||||
@ -294,6 +300,18 @@ st_settings_class_init (StSettingsClass *klass)
|
|||||||
ST_SYSTEM_COLOR_SCHEME_DEFAULT,
|
ST_SYSTEM_COLOR_SCHEME_DEFAULT,
|
||||||
ST_PARAM_READABLE);
|
ST_PARAM_READABLE);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* StSettings:accent-color:
|
||||||
|
*
|
||||||
|
* The current accent color.
|
||||||
|
*/
|
||||||
|
props[PROP_ACCENT_COLOR] = g_param_spec_enum ("accent-color",
|
||||||
|
"accent color",
|
||||||
|
"accent color",
|
||||||
|
ST_TYPE_SYSTEM_ACCENT_COLOR,
|
||||||
|
ST_SYSTEM_ACCENT_COLOR_BLUE,
|
||||||
|
ST_PARAM_READABLE);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* StSettings:magnifier-active:
|
* StSettings:magnifier-active:
|
||||||
*
|
*
|
||||||
@ -364,6 +382,11 @@ on_interface_settings_changed (GSettings *g_settings,
|
|||||||
g_object_notify_by_pspec (G_OBJECT (settings),
|
g_object_notify_by_pspec (G_OBJECT (settings),
|
||||||
props[PROP_COLOR_SCHEME]);
|
props[PROP_COLOR_SCHEME]);
|
||||||
}
|
}
|
||||||
|
else if (g_str_equal (key, KEY_ACCENT_COLOR))
|
||||||
|
{
|
||||||
|
settings->accent_color = g_settings_get_enum (g_settings, key);
|
||||||
|
g_object_notify_by_pspec (G_OBJECT (settings), props[PROP_ACCENT_COLOR]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -447,6 +470,8 @@ st_settings_init (StSettings *settings)
|
|||||||
KEY_GTK_ICON_THEME);
|
KEY_GTK_ICON_THEME);
|
||||||
settings->color_scheme = g_settings_get_enum (settings->interface_settings,
|
settings->color_scheme = g_settings_get_enum (settings->interface_settings,
|
||||||
KEY_COLOR_SCHEME);
|
KEY_COLOR_SCHEME);
|
||||||
|
settings->accent_color = g_settings_get_enum (settings->interface_settings,
|
||||||
|
KEY_ACCENT_COLOR);
|
||||||
settings->drag_threshold = g_settings_get_int (settings->mouse_settings,
|
settings->drag_threshold = g_settings_get_int (settings->mouse_settings,
|
||||||
KEY_DRAG_THRESHOLD);
|
KEY_DRAG_THRESHOLD);
|
||||||
settings->magnifier_active = g_settings_get_boolean (settings->a11y_applications_settings,
|
settings->magnifier_active = g_settings_get_boolean (settings->a11y_applications_settings,
|
||||||
|
@ -35,6 +35,18 @@ typedef enum {
|
|||||||
ST_SYSTEM_COLOR_SCHEME_PREFER_LIGHT = G_DESKTOP_COLOR_SCHEME_PREFER_LIGHT,
|
ST_SYSTEM_COLOR_SCHEME_PREFER_LIGHT = G_DESKTOP_COLOR_SCHEME_PREFER_LIGHT,
|
||||||
} StSystemColorScheme;
|
} StSystemColorScheme;
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
ST_SYSTEM_ACCENT_COLOR_BLUE = G_DESKTOP_ACCENT_COLOR_BLUE,
|
||||||
|
ST_SYSTEM_ACCENT_COLOR_TEAL = G_DESKTOP_ACCENT_COLOR_TEAL,
|
||||||
|
ST_SYSTEM_ACCENT_COLOR_GREEN = G_DESKTOP_ACCENT_COLOR_GREEN,
|
||||||
|
ST_SYSTEM_ACCENT_COLOR_YELLOW = G_DESKTOP_ACCENT_COLOR_YELLOW,
|
||||||
|
ST_SYSTEM_ACCENT_COLOR_ORANGE = G_DESKTOP_ACCENT_COLOR_ORANGE,
|
||||||
|
ST_SYSTEM_ACCENT_COLOR_RED = G_DESKTOP_ACCENT_COLOR_RED,
|
||||||
|
ST_SYSTEM_ACCENT_COLOR_PINK = G_DESKTOP_ACCENT_COLOR_PINK,
|
||||||
|
ST_SYSTEM_ACCENT_COLOR_PURPLE = G_DESKTOP_ACCENT_COLOR_PURPLE,
|
||||||
|
ST_SYSTEM_ACCENT_COLOR_SLATE = G_DESKTOP_ACCENT_COLOR_SLATE,
|
||||||
|
} StSystemAccentColor;
|
||||||
|
|
||||||
#define ST_TYPE_SETTINGS (st_settings_get_type ())
|
#define ST_TYPE_SETTINGS (st_settings_get_type ())
|
||||||
G_DECLARE_FINAL_TYPE (StSettings, st_settings, ST, SETTINGS, GObject)
|
G_DECLARE_FINAL_TYPE (StSettings, st_settings, ST, SETTINGS, GObject)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user