static void gtk_check_menu_item_direction_changed (GtkWidget *widget, GtkTextDirection previous_dir) { GtkCheckMenuItem *check_menu_item = GTK_CHECK_MENU_ITEM (widget); GtkCheckMenuItemPrivate *priv = check_menu_item->priv; GtkCssNode *widget_node, *node; widget_node = gtk_widget_get_css_node (widget); if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL) { gtk_css_node_remove_class (priv->indicator_node, g_quark_from_static_string (GTK_STYLE_CLASS_LEFT)); gtk_css_node_add_class (priv->indicator_node, g_quark_from_static_string (GTK_STYLE_CLASS_RIGHT)); node = gtk_css_node_get_last_child (widget_node); if (node != priv->indicator_node) gtk_css_node_insert_after (widget_node, priv->indicator_node, node); } else { gtk_css_node_add_class (priv->indicator_node, g_quark_from_static_string (GTK_STYLE_CLASS_LEFT)); gtk_css_node_remove_class (priv->indicator_node, g_quark_from_static_string (GTK_STYLE_CLASS_RIGHT)); node = gtk_css_node_get_first_child (widget_node); if (node != priv->indicator_node) gtk_css_node_insert_before (widget_node, priv->indicator_node, node); } GTK_WIDGET_CLASS (gtk_check_menu_item_parent_class)->direction_changed (widget, previous_dir); }
static void gtk_css_node_clear_classes (GtkCssNode *cssnode) { GList *list, *l; list = gtk_css_node_declaration_list_classes (cssnode->decl); for (l = list; l; l = l->next) { gtk_css_node_remove_class (cssnode, GPOINTER_TO_UINT (l->data)); } g_list_free (list); }
void gtk_icon_size_set_style_classes (GtkCssNode *cssnode, GtkIconSize icon_size) { struct { GtkIconSize icon_size; const char *class_name; } class_names[] = { { GTK_ICON_SIZE_NORMAL, "normal-icons" }, { GTK_ICON_SIZE_LARGE, "large-icons" } }; guint i; for (i = 0; i < G_N_ELEMENTS (class_names); i++) { if (icon_size == class_names[i].icon_size) gtk_css_node_add_class (cssnode, g_quark_from_static_string (class_names[i].class_name)); else gtk_css_node_remove_class (cssnode, g_quark_from_static_string (class_names[i].class_name)); } }