[StWidget] add list-like methods for style_class and pseudo_class

Since style_class and pseudo_class are space-separated lists of names,
add new methods to add and remove individual names rather than just
re-setting the entire name.

Update existing code to use the new pseudo-class methods where
appropriate. In some cases, this may result in actors having multiple
pseudoclasses where previously they only had one at a time, but there
don't seem to be any visible differences.

(There are some places that could usefully use the new style_class
methods as well, but this patch doesn't change them.)

Also, update test-theme.c to test the new methods.

https://bugzilla.gnome.org/show_bug.cgi?id=604943
This commit is contained in:
Dan Winship
2010-03-19 11:37:04 -04:00
parent 7c37e94eda
commit 909b5ec43c
14 changed files with 367 additions and 88 deletions

View File

@ -84,11 +84,25 @@ struct _StWidgetClass
GType st_widget_get_type (void) G_GNUC_CONST;
void st_widget_set_style_pseudo_class (StWidget *actor,
const gchar *pseudo_class_list);
void st_widget_add_style_pseudo_class (StWidget *actor,
const gchar *pseudo_class);
void st_widget_remove_style_pseudo_class (StWidget *actor,
const gchar *pseudo_class);
G_CONST_RETURN gchar *st_widget_get_style_pseudo_class (StWidget *actor);
gboolean st_widget_has_style_pseudo_class (StWidget *actor,
const gchar *pseudo_class);
void st_widget_set_style_class_name (StWidget *actor,
const gchar *style_class_list);
void st_widget_add_style_class_name (StWidget *actor,
const gchar *style_class);
void st_widget_remove_style_class_name (StWidget *actor,
const gchar *style_class);
G_CONST_RETURN gchar *st_widget_get_style_class_name (StWidget *actor);
gboolean st_widget_has_style_class_name (StWidget *actor,
const gchar *style_class);
void st_widget_set_style (StWidget *actor,
const gchar *style);
G_CONST_RETURN gchar *st_widget_get_style (StWidget *actor);