st: Add getter/setters for (almost) all properties

Traditionally, getter/setter functions have been considered a
C convenience, and we therefore didn't bother to add them for
many properties that are only consumed from JS.

However now that gjs optimizes property accesses by calling the
appropriate getter/setter instead, it makes sense to add them.

Leave out ScrollView's [vh]scrollbar-policy properties, as they
have a combined `set_policy()` setter that is consistent with
GTK's ScrolledWindow.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3620>
This commit is contained in:
Florian Müllner 2025-01-23 19:26:36 +01:00 committed by Marge Bot
parent dc1298565d
commit 4265b9c73f
16 changed files with 525 additions and 63 deletions

View File

@ -97,32 +97,16 @@ typedef struct _TransitionClosure
gulong completed_id;
} TransitionClosure;
static void st_adjustment_set_lower (StAdjustment *adjustment,
double lower);
static void st_adjustment_set_upper (StAdjustment *adjustment,
double upper);
static void st_adjustment_set_step_increment (StAdjustment *adjustment,
double step);
static void st_adjustment_set_page_increment (StAdjustment *adjustment,
double page);
static void st_adjustment_set_page_size (StAdjustment *adjustment,
double size);
static ClutterActor *
st_adjustment_get_actor (ClutterAnimatable *animatable)
animatable_get_actor (ClutterAnimatable *animatable)
{
StAdjustment *adjustment = ST_ADJUSTMENT (animatable);
StAdjustmentPrivate *priv = st_adjustment_get_instance_private (adjustment);
g_warn_if_fail (priv->actor);
return priv->actor;
return st_adjustment_get_actor (ST_ADJUSTMENT (animatable));
}
static void
animatable_iface_init (ClutterAnimatableInterface *iface)
{
iface->get_actor = st_adjustment_get_actor;
iface->get_actor = animatable_get_actor;
}
static void
@ -201,12 +185,40 @@ actor_destroyed (gpointer user_data,
g_object_notify_by_pspec (G_OBJECT (adj), props[PROP_ACTOR]);
}
static void
/**
* st_adjustment_get_actor:
* @adjustment: a #StAdjustment
*
* Retrieves the actor used for transitions.
*
* Returns: (transfer none):
*/
ClutterActor *
st_adjustment_get_actor (StAdjustment *adjustment)
{
StAdjustmentPrivate *priv;
g_return_val_if_fail (ST_IS_ADJUSTMENT (adjustment), NULL);
priv = st_adjustment_get_instance_private (adjustment);
return priv->actor;
}
/**
* st_adjustment_set_actor:
* @adjustment: a #StAdjustment
* @actor: a #ClutterActor
*
* Sets the actor used for transitions.
*/
void
st_adjustment_set_actor (StAdjustment *adj,
ClutterActor *actor)
{
StAdjustmentPrivate *priv;
g_return_if_fail (ST_IS_ADJUSTMENT (adj));
priv = st_adjustment_get_instance_private (adj);
if (priv->actor == actor)
@ -562,6 +574,25 @@ st_adjustment_clamp_page (StAdjustment *adjustment,
g_object_notify_by_pspec (G_OBJECT (adjustment), props[PROP_VALUE]);
}
/**
* st_adjustment_get_lower:
* @adjustment: a #StAdjustment
*
* Retrieves the minimum value of the adjustment.
*
* Returns: the minimum value
*/
double
st_adjustment_get_lower (StAdjustment *adjustment)
{
StAdjustmentPrivate *priv;
g_return_val_if_fail (ST_IS_ADJUSTMENT (adjustment), -1);
priv = st_adjustment_get_instance_private (adjustment);
return priv->lower;
}
/**
* st_adjustment_set_lower:
* @adjustment: a #StAdjustment
@ -579,11 +610,15 @@ st_adjustment_clamp_page (StAdjustment *adjustment,
* Alternatively, [method@St.Adjustment.set_values] can be used to compress
* #GObject::notify and [signal@St.Adjustment::changed] emissions.
*/
static void
void
st_adjustment_set_lower (StAdjustment *adjustment,
gdouble lower)
{
StAdjustmentPrivate *priv = st_adjustment_get_instance_private (adjustment);
StAdjustmentPrivate *priv;
g_return_if_fail (ST_IS_ADJUSTMENT (adjustment));
priv = st_adjustment_get_instance_private (adjustment);
if (priv->lower != lower)
{
@ -597,6 +632,25 @@ st_adjustment_set_lower (StAdjustment *adjustment,
}
}
/**
* st_adjustment_get_upper:
* @adjustment: a #StAdjustment
*
* Retrieves the maximum value of the adjustment.
*
* Returns: the maximum value
*/
double
st_adjustment_get_upper (StAdjustment *adjustment)
{
StAdjustmentPrivate *priv;
g_return_val_if_fail (ST_IS_ADJUSTMENT (adjustment), -1);
priv = st_adjustment_get_instance_private (adjustment);
return priv->upper;
}
/**
* st_adjustment_set_upper:
* @adjustment: a #StAdjustment
@ -610,11 +664,15 @@ st_adjustment_set_lower (StAdjustment *adjustment,
* See [method@St.Adjustment.set_lower] about how to compress multiple
* signal emissions when setting multiple adjustment properties.
*/
static void
void
st_adjustment_set_upper (StAdjustment *adjustment,
gdouble upper)
{
StAdjustmentPrivate *priv = st_adjustment_get_instance_private (adjustment);
StAdjustmentPrivate *priv;
g_return_if_fail (ST_IS_ADJUSTMENT (adjustment));
priv = st_adjustment_get_instance_private (adjustment);
if (priv->upper != upper)
{
@ -628,6 +686,25 @@ st_adjustment_set_upper (StAdjustment *adjustment,
}
}
/**
* st_adjustment_get_step_increment:
* @adjustment: a #StAdjustment
*
* Retrieves the step increment of the adjustment.
*
* Returns: the step increment
*/
double
st_adjustment_get_step_increment (StAdjustment *adjustment)
{
StAdjustmentPrivate *priv;
g_return_val_if_fail (ST_IS_ADJUSTMENT (adjustment), -1);
priv = st_adjustment_get_instance_private (adjustment);
return priv->step_increment;
}
/**
* st_adjustment_set_step_increment:
* @adjustment: a #StAdjustment
@ -638,11 +715,15 @@ st_adjustment_set_upper (StAdjustment *adjustment,
* See [method@St.Adjustment.set_lower] about how to compress multiple
* signal emissions when setting multiple adjustment properties.
*/
static void
void
st_adjustment_set_step_increment (StAdjustment *adjustment,
gdouble step)
{
StAdjustmentPrivate *priv = st_adjustment_get_instance_private (adjustment);
StAdjustmentPrivate *priv;
g_return_if_fail (ST_IS_ADJUSTMENT (adjustment));
priv = st_adjustment_get_instance_private (adjustment);
if (priv->step_increment != step)
{
@ -652,6 +733,25 @@ st_adjustment_set_step_increment (StAdjustment *adjustment,
}
}
/**
* st_adjustment_get_page_increment:
* @adjustment: a #StAdjustment
*
* Retrieves the page increment of the adjustment.
*
* Returns: the page increment
*/
double
st_adjustment_get_page_increment (StAdjustment *adjustment)
{
StAdjustmentPrivate *priv;
g_return_val_if_fail (ST_IS_ADJUSTMENT (adjustment), -1);
priv = st_adjustment_get_instance_private (adjustment);
return priv->page_increment;
}
/**
* st_adjustment_set_page_increment:
* @adjustment: a #StAdjustment
@ -662,11 +762,15 @@ st_adjustment_set_step_increment (StAdjustment *adjustment,
* See [method@St.Adjustment.set_lower] about how to compress multiple
* signal emissions when setting multiple adjustment properties.
*/
static void
void
st_adjustment_set_page_increment (StAdjustment *adjustment,
gdouble page)
{
StAdjustmentPrivate *priv = st_adjustment_get_instance_private (adjustment);
StAdjustmentPrivate *priv;
g_return_if_fail (ST_IS_ADJUSTMENT (adjustment));
priv = st_adjustment_get_instance_private (adjustment);
if (priv->page_increment != page)
{
@ -676,6 +780,25 @@ st_adjustment_set_page_increment (StAdjustment *adjustment,
}
}
/**
* st_adjustment_get_page_size:
* @adjustment: a #StAdjustment
*
* Retrieves the page size of the adjustment.
*
* Returns: the page size
*/
double
st_adjustment_get_page_size (StAdjustment *adjustment)
{
StAdjustmentPrivate *priv;
g_return_val_if_fail (ST_IS_ADJUSTMENT (adjustment), -1);
priv = st_adjustment_get_instance_private (adjustment);
return priv->page_size;
}
/**
* st_adjustment_set_page_size:
* @adjustment: a #StAdjustment
@ -686,11 +809,15 @@ st_adjustment_set_page_increment (StAdjustment *adjustment,
* See [method@St.Adjustment.set_lower] about how to compress multiple
* signal emissions when setting multiple adjustment properties.
*/
static void
void
st_adjustment_set_page_size (StAdjustment *adjustment,
gdouble size)
{
StAdjustmentPrivate *priv = st_adjustment_get_instance_private (adjustment);
StAdjustmentPrivate *priv;
g_return_if_fail (ST_IS_ADJUSTMENT (adjustment));
priv = st_adjustment_get_instance_private (adjustment);
if (priv->page_size != size)
{

View File

@ -57,6 +57,21 @@ StAdjustment *st_adjustment_new (ClutterActor *actor,
gdouble st_adjustment_get_value (StAdjustment *adjustment);
void st_adjustment_set_value (StAdjustment *adjustment,
gdouble value);
double st_adjustment_get_lower (StAdjustment *adjustment);
void st_adjustment_set_lower (StAdjustment *adjustment,
gdouble lower);
double st_adjustment_get_upper (StAdjustment *adjustment);
void st_adjustment_set_upper (StAdjustment *adjustment,
gdouble upper);
double st_adjustment_get_step_increment (StAdjustment *adjustment);
void st_adjustment_set_step_increment (StAdjustment *adjustment,
gdouble step);
double st_adjustment_get_page_increment (StAdjustment *adjustment);
void st_adjustment_set_page_increment (StAdjustment *adjustment,
gdouble page);
double st_adjustment_get_page_size (StAdjustment *adjustment);
void st_adjustment_set_page_size (StAdjustment *adjustment,
gdouble size);
void st_adjustment_clamp_page (StAdjustment *adjustment,
gdouble lower,
gdouble upper);
@ -86,4 +101,8 @@ void st_adjustment_add_transition (StAdjustment *adjustme
void st_adjustment_remove_transition (StAdjustment *adjustment,
const char *name);
ClutterActor * st_adjustment_get_actor (StAdjustment *adjustment);
void st_adjustment_set_actor (StAdjustment *adjustment,
ClutterActor *actor);
G_END_DECLS

View File

@ -449,7 +449,7 @@ st_button_get_property (GObject *gobject,
g_value_set_boolean (value, priv->is_checked);
break;
case PROP_PRESSED:
g_value_set_boolean (value, priv->pressed != 0 || priv->press_sequence != NULL);
g_value_set_boolean (value, st_button_get_pressed (ST_BUTTON (gobject)));
break;
@ -879,6 +879,25 @@ st_button_set_checked (StButton *button,
g_object_notify_by_pspec (G_OBJECT (button), props[PROP_CHECKED]);
}
/**
* st_button_get_pressed:
* @button: a #StButton
*
* Get the #StButton:pressed property of a #StButton
*
* Returns: %TRUE if the button is pressed, or %FALSE if not
*/
gboolean
st_button_get_pressed (StButton *button)
{
StButtonPrivate *priv;
g_return_val_if_fail (ST_IS_BUTTON (button), FALSE);
priv = st_button_get_instance_private (button);
return priv->pressed != 0 || priv->press_sequence != NULL;
}
/**
* st_button_fake_release:
* @button: an #StButton

View File

@ -56,6 +56,7 @@ gboolean st_button_get_toggle_mode (StButton *button);
void st_button_set_checked (StButton *button,
gboolean checked);
gboolean st_button_get_checked (StButton *button);
gboolean st_button_get_pressed (StButton *button);
void st_button_fake_release (StButton *button);

View File

@ -37,10 +37,15 @@ struct _StImageContent
enum
{
PROP_0,
PROP_PREFERRED_WIDTH,
PROP_PREFERRED_HEIGHT,
N_PROPS,
};
static GParamSpec *props[N_PROPS] = { NULL, };
static void clutter_content_interface_init (ClutterContentInterface *iface);
static void g_icon_interface_init (GIconIface *iface);
static void g_loadable_icon_interface_init (GLoadableIconIface *iface);
@ -103,11 +108,11 @@ st_image_content_set_property (GObject *object,
switch (prop_id)
{
case PROP_PREFERRED_WIDTH:
self->width = g_value_get_int (value);
st_image_content_set_preferred_width (self, g_value_get_int (value));
break;
case PROP_PREFERRED_HEIGHT:
self->height = g_value_get_int (value);
st_image_content_set_preferred_height (self, g_value_get_int (value));
break;
default:
@ -129,7 +134,6 @@ st_image_content_finalize (GObject *gobject)
static void
st_image_content_class_init (StImageContentClass *klass)
{
GParamSpec *pspec;
GObjectClass *object_class = G_OBJECT_CLASS (klass);
object_class->constructed = st_image_content_constructed;
@ -137,15 +141,17 @@ st_image_content_class_init (StImageContentClass *klass)
object_class->set_property = st_image_content_set_property;
object_class->finalize = st_image_content_finalize;
pspec = g_param_spec_int ("preferred-width", NULL, NULL,
-1, G_MAXINT, -1,
G_PARAM_CONSTRUCT_ONLY | ST_PARAM_READWRITE);
g_object_class_install_property (object_class, PROP_PREFERRED_WIDTH, pspec);
props[PROP_PREFERRED_WIDTH] =
g_param_spec_int ("preferred-width", NULL, NULL,
-1, G_MAXINT, -1,
G_PARAM_CONSTRUCT_ONLY | ST_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
pspec = g_param_spec_int ("preferred-height", NULL, NULL,
-1, G_MAXINT, -1,
G_PARAM_CONSTRUCT_ONLY | ST_PARAM_READWRITE);
g_object_class_install_property (object_class, PROP_PREFERRED_HEIGHT, pspec);
props[PROP_PREFERRED_HEIGHT] =
g_param_spec_int ("preferred-height", NULL, NULL,
-1, G_MAXINT, -1,
G_PARAM_CONSTRUCT_ONLY | ST_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
g_object_class_install_properties (object_class, N_PROPS, props);
}
static gboolean
@ -360,6 +366,48 @@ st_image_content_new_with_preferred_size (int width,
NULL);
}
void
st_image_content_set_preferred_width (StImageContent *content,
int width)
{
g_return_if_fail (ST_IS_IMAGE_CONTENT (content));
if (content->width == width)
return;
content->width = width;
g_object_notify_by_pspec (G_OBJECT (content), props[PROP_PREFERRED_WIDTH]);
}
int
st_image_content_get_preferred_width (StImageContent *content)
{
g_return_val_if_fail (ST_IS_IMAGE_CONTENT (content), -1);
return content->width;
}
void
st_image_content_set_preferred_height (StImageContent *content,
int height)
{
g_return_if_fail (ST_IS_IMAGE_CONTENT (content));
if (content->height == height)
return;
content->height = height;
g_object_notify_by_pspec (G_OBJECT (content), props[PROP_PREFERRED_HEIGHT]);
}
int
st_image_content_get_preferred_height (StImageContent *content)
{
g_return_val_if_fail (ST_IS_IMAGE_CONTENT (content), -1);
return content->height;
}
void
st_image_content_set_is_symbolic (StImageContent *content,
gboolean is_symbolic)

View File

@ -29,6 +29,14 @@ G_DECLARE_FINAL_TYPE (StImageContent, st_image_content,
ClutterContent *st_image_content_new_with_preferred_size (int width,
int height);
void st_image_content_set_preferred_width (StImageContent *content,
int width);
int st_image_content_get_preferred_width (StImageContent *content);
void st_image_content_set_preferred_height (StImageContent *content,
int height);
int st_image_content_get_preferred_height (StImageContent *content);
gboolean st_image_content_set_data (StImageContent *content,
CoglContext *cogl_context,
const guint8 *data,
@ -47,4 +55,4 @@ gboolean st_image_content_set_bytes (StImageContent *content,
guint row_stride,
GError **error);
CoglTexture * st_image_content_get_texture (StImageContent *content);
CoglTexture * st_image_content_get_texture (StImageContent *content);

View File

@ -253,10 +253,12 @@ st_scroll_view_fade_dispose (GObject *gobject)
G_OBJECT_CLASS (st_scroll_view_fade_parent_class)->dispose (gobject);
}
static void
st_scroll_view_set_fade_margins (StScrollViewFade *self,
ClutterMargin *fade_margins)
void
st_scroll_view_fade_set_fade_margins (StScrollViewFade *self,
ClutterMargin *fade_margins)
{
g_return_if_fail (ST_IS_SCROLL_VIEW_FADE (self));
if (self->fade_margins.left == fade_margins->left &&
self->fade_margins.right == fade_margins->right &&
self->fade_margins.top == fade_margins->top &&
@ -271,10 +273,25 @@ st_scroll_view_set_fade_margins (StScrollViewFade *self,
g_object_notify_by_pspec (G_OBJECT (self), props[PROP_FADE_MARGINS]);
}
static void
/**
* st_scroll_view_fade_get_fade_margins:
*
* Returns: (transfer none): The fade margins
*/
ClutterMargin *
st_scroll_view_fade_get_fade_margins (StScrollViewFade *self)
{
g_return_val_if_fail (ST_IS_SCROLL_VIEW_FADE (self), NULL);
return &self->fade_margins;
}
void
st_scroll_view_fade_set_fade_edges (StScrollViewFade *self,
gboolean fade_edges)
{
g_return_if_fail (ST_IS_SCROLL_VIEW_FADE (self));
if (self->fade_edges == fade_edges)
return;
@ -289,10 +306,20 @@ st_scroll_view_fade_set_fade_edges (StScrollViewFade *self,
g_object_thaw_notify (G_OBJECT (self));
}
static void
gboolean
st_scroll_view_fade_get_fade_edges (StScrollViewFade *self)
{
g_return_val_if_fail (ST_IS_SCROLL_VIEW_FADE (self), FALSE);
return self->fade_edges;
}
void
st_scroll_view_fade_set_extend_fade_area (StScrollViewFade *self,
gboolean extend_fade_area)
{
g_return_if_fail (ST_IS_SCROLL_VIEW_FADE (self));
if (self->extend_fade_area == extend_fade_area)
return;
@ -304,6 +331,14 @@ st_scroll_view_fade_set_extend_fade_area (StScrollViewFade *self,
g_object_notify_by_pspec (G_OBJECT (self), props[PROP_EXTEND_FADE_AREA]);
}
gboolean
st_scroll_view_fade_get_extend_fade_area (StScrollViewFade *self)
{
g_return_val_if_fail (ST_IS_SCROLL_VIEW_FADE (self), FALSE);
return self->extend_fade_area;
}
static void
st_scroll_view_fade_set_property (GObject *object,
guint prop_id,
@ -315,7 +350,7 @@ st_scroll_view_fade_set_property (GObject *object,
switch (prop_id)
{
case PROP_FADE_MARGINS:
st_scroll_view_set_fade_margins (self, g_value_get_boxed (value));
st_scroll_view_fade_set_fade_margins (self, g_value_get_boxed (value));
break;
case PROP_FADE_EDGES:
st_scroll_view_fade_set_fade_edges (self, g_value_get_boolean (value));

View File

@ -30,4 +30,16 @@ G_DECLARE_FINAL_TYPE (StScrollViewFade, st_scroll_view_fade,
ClutterEffect *st_scroll_view_fade_new (void);
void st_scroll_view_fade_set_fade_margins (StScrollViewFade *fade,
ClutterMargin *margins);
ClutterMargin * st_scroll_view_fade_get_fade_margins (StScrollViewFade *fade);
void st_scroll_view_fade_set_fade_edges (StScrollViewFade *fade,
gboolean fade_edges);
gboolean st_scroll_view_fade_get_fade_edges (StScrollViewFade *fade);
void st_scroll_view_fade_set_extend_fade_area (StScrollViewFade *fade,
gboolean extend_fade_area);
gboolean st_scroll_view_fade_get_extend_fade_area (StScrollViewFade *fade);
G_END_DECLS

View File

@ -1427,3 +1427,25 @@ st_scroll_view_get_bar_offsets (StScrollView *scroll,
: 0.;
}
}
gboolean
st_scroll_view_get_hscrollbar_visible (StScrollView *scroll)
{
StScrollViewPrivate *priv;
g_return_val_if_fail (ST_IS_SCROLL_VIEW (scroll), FALSE);
priv = st_scroll_view_get_instance_private (scroll);
return priv->hscrollbar_visible;
}
gboolean
st_scroll_view_get_vscrollbar_visible (StScrollView *scroll)
{
StScrollViewPrivate *priv;
g_return_val_if_fail (ST_IS_SCROLL_VIEW (scroll), FALSE);
priv = st_scroll_view_get_instance_private (scroll);
return priv->vscrollbar_visible;
}

View File

@ -56,6 +56,9 @@ void st_scroll_view_set_child (StScrollView *scroll,
StAdjustment *st_scroll_view_get_hadjustment (StScrollView *scroll);
StAdjustment *st_scroll_view_get_vadjustment (StScrollView *scroll);
gboolean st_scroll_view_get_hscrollbar_visible (StScrollView *scroll);
gboolean st_scroll_view_get_vscrollbar_visible (StScrollView *scroll);
gfloat st_scroll_view_get_column_size (StScrollView *scroll);
void st_scroll_view_set_column_size (StScrollView *scroll,
gfloat column_size);

View File

@ -82,17 +82,6 @@ G_DEFINE_TYPE (StSettings, st_settings, G_TYPE_OBJECT)
#define EPSILON (1e-10)
static void
st_settings_set_slow_down_factor (StSettings *settings,
double factor)
{
if (fabs (settings->slow_down_factor - factor) < EPSILON)
return;
settings->slow_down_factor = factor;
g_object_notify_by_pspec (G_OBJECT (settings), props[PROP_SLOW_DOWN_FACTOR]);
}
static gboolean
get_enable_animations (StSettings *settings)
{
@ -102,6 +91,107 @@ get_enable_animations (StSettings *settings)
return settings->enable_animations;
}
gboolean
st_settings_get_enable_animations (StSettings *settings)
{
g_return_val_if_fail (ST_IS_SETTINGS (settings), FALSE);
return get_enable_animations (settings);
}
gboolean
st_settings_get_primary_paste (StSettings *settings)
{
g_return_val_if_fail (ST_IS_SETTINGS (settings), FALSE);
return settings->primary_paste;
}
int
st_settings_get_drag_threshold (StSettings *settings)
{
g_return_val_if_fail (ST_IS_SETTINGS (settings), -1);
return settings->drag_threshold;
}
const char *
st_settings_get_font_name (StSettings *settings)
{
g_return_val_if_fail (ST_IS_SETTINGS (settings), NULL);
return settings->font_name;
}
const char *
st_settings_get_gtk_icon_theme (StSettings *settings)
{
g_return_val_if_fail (ST_IS_SETTINGS (settings), NULL);
return settings->gtk_icon_theme;
}
StSystemColorScheme
st_settings_get_color_scheme (StSettings *settings)
{
g_return_val_if_fail (ST_IS_SETTINGS (settings), ST_SYSTEM_COLOR_SCHEME_DEFAULT);
return settings->color_scheme;
}
StSystemAccentColor
st_settings_get_accent_color (StSettings *settings)
{
g_return_val_if_fail (ST_IS_SETTINGS (settings), ST_SYSTEM_ACCENT_COLOR_BLUE);
return settings->accent_color;
}
gboolean
st_settings_get_high_contrast (StSettings *settings)
{
g_return_val_if_fail (ST_IS_SETTINGS (settings), FALSE);
return settings->high_contrast;
}
gboolean
st_settings_get_magnifier_active (StSettings *settings)
{
g_return_val_if_fail (ST_IS_SETTINGS (settings), FALSE);
return settings->magnifier_active;
}
gboolean
st_settings_get_disable_show_password (StSettings *settings)
{
g_return_val_if_fail (ST_IS_SETTINGS (settings), FALSE);
return settings->disable_show_password;
}
double
st_settings_get_slow_down_factor (StSettings *settings)
{
g_return_val_if_fail (ST_SETTINGS (settings), -1);
return settings->slow_down_factor;
}
void
st_settings_set_slow_down_factor (StSettings *settings,
double factor)
{
g_return_if_fail (ST_IS_SETTINGS (settings));
if (fabs (settings->slow_down_factor - factor) < EPSILON)
return;
settings->slow_down_factor = factor;
g_object_notify_by_pspec (G_OBJECT (settings), props[PROP_SLOW_DOWN_FACTOR]);
}
void
st_settings_inhibit_animations (StSettings *settings)
{

View File

@ -55,4 +55,21 @@ void st_settings_inhibit_animations (StSettings *settings);
void st_settings_uninhibit_animations (StSettings *settings);
gboolean st_settings_get_enable_animations (StSettings *settings);
gboolean st_settings_get_primary_paste (StSettings *settings);
int st_settings_get_drag_threshold (StSettings *settings);
const char * st_settings_get_font_name (StSettings *settings);
const char * st_settings_get_gtk_icon_theme (StSettings *settings);
StSystemColorScheme st_settings_get_color_scheme (StSettings *settings);
StSystemAccentColor st_settings_get_accent_color (StSettings *settings);
gboolean st_settings_get_high_contrast (StSettings *settings);
gboolean st_settings_get_magnifier_active (StSettings *settings);
gboolean st_settings_get_disable_show_password (StSettings *settings);
double st_settings_get_slow_down_factor (StSettings *settings);
void st_settings_set_slow_down_factor (StSettings *settings,
double factor);
G_END_DECLS

View File

@ -1097,3 +1097,42 @@ _st_theme_resolve_url (StTheme *theme,
return resource;
}
/**
* st_theme_get_application_stylesheet:
*
* Returns: (transfer none): the stylesheet
*/
GFile *
st_theme_get_application_stylesheet (StTheme *theme)
{
g_return_val_if_fail (ST_IS_THEME (theme), NULL);
return theme->application_stylesheet;
}
/**
* st_theme_get_theme_stylesheet:
*
* Returns: (transfer none): the stylesheet
*/
GFile *
st_theme_get_theme_stylesheet (StTheme *theme)
{
g_return_val_if_fail (ST_IS_THEME (theme), NULL);
return theme->theme_stylesheet;
}
/**
* st_theme_get_default_stylesheet:
*
* Returns: (transfer none): the stylesheet
*/
GFile *
st_theme_get_default_stylesheet (StTheme *theme)
{
g_return_val_if_fail (ST_IS_THEME (theme), NULL);
return theme->default_stylesheet;
}

View File

@ -46,4 +46,8 @@ gboolean st_theme_load_stylesheet (StTheme *theme, GFile *file, GError *
void st_theme_unload_stylesheet (StTheme *theme, GFile *file);
GSList *st_theme_get_custom_stylesheets (StTheme *theme);
GFile * st_theme_get_application_stylesheet (StTheme *theme);
GFile * st_theme_get_theme_stylesheet (StTheme *theme);
GFile * st_theme_get_default_stylesheet (StTheme *theme);
G_END_DECLS

View File

@ -174,12 +174,15 @@ st_viewport_scrollable_interface_init (StScrollableInterface *iface)
iface->get_adjustments = scrollable_get_adjustments;
}
static void
void
st_viewport_set_clip_to_view (StViewport *viewport,
gboolean clip_to_view)
{
StViewportPrivate *priv =
st_viewport_get_instance_private (viewport);
StViewportPrivate *priv;
g_return_if_fail (ST_IS_VIEWPORT (viewport));
priv = st_viewport_get_instance_private (viewport);
if (!!priv->clip_to_view != !!clip_to_view)
{
@ -189,6 +192,17 @@ st_viewport_set_clip_to_view (StViewport *viewport,
}
}
gboolean
st_viewport_get_clip_to_view (StViewport *viewport)
{
StViewportPrivate *priv;
g_return_val_if_fail (ST_IS_VIEWPORT (viewport), FALSE);
priv = st_viewport_get_instance_private (viewport);
return priv->clip_to_view;
}
static void
st_viewport_get_property (GObject *object,
guint property_id,

View File

@ -37,4 +37,8 @@ struct _StViewportClass
StWidgetClass parent_class;
};
void st_viewport_set_clip_to_view (StViewport *viewport,
gboolean clip_to_view);
gboolean st_viewport_get_clip_to_view (StViewport *viewport);
G_END_DECLS