static void gtk_assistant_class_init (GtkAssistantClass *class);
static void gtk_assistant_init (GtkAssistant *assistant);
static void gtk_assistant_destroy (GtkWidget *widget);
-static void gtk_assistant_style_set (GtkWidget *widget,
- GtkStyle *old_style);
+static void gtk_assistant_style_updated (GtkWidget *widget);
static void gtk_assistant_get_preferred_width (GtkWidget *widget,
gint *minimum,
gint *natural);
container_class = (GtkContainerClass *) class;
widget_class->destroy = gtk_assistant_destroy;
- widget_class->style_set = gtk_assistant_style_set;
+ widget_class->style_updated = gtk_assistant_style_updated;
widget_class->get_preferred_width = gtk_assistant_get_preferred_width;
widget_class->get_preferred_height = gtk_assistant_get_preferred_height;
widget_class->size_allocate = gtk_assistant_size_allocate;
gtk_assistant_init (GtkAssistant *assistant)
{
GtkAssistantPrivate *priv;
+ GtkStyleContext *context;
assistant->priv = G_TYPE_INSTANCE_GET_PRIVATE (assistant,
GTK_TYPE_ASSISTANT,
gtk_widget_set_parent (priv->header_image, GTK_WIDGET (assistant));
gtk_widget_show (priv->header_image);
+ context = gtk_widget_get_style_context (priv->header_image);
+ gtk_style_context_add_class (context, GTK_STYLE_CLASS_HIGHLIGHT);
+
/* Sidebar */
priv->sidebar_image = gtk_image_new ();
gtk_misc_set_alignment (GTK_MISC (priv->sidebar_image), 0., 0.);
gtk_widget_set_parent (priv->sidebar_image, GTK_WIDGET (assistant));
gtk_widget_show (priv->sidebar_image);
+ context = gtk_widget_get_style_context (priv->sidebar_image);
+ gtk_style_context_add_class (context, GTK_STYLE_CLASS_HIGHLIGHT);
+
/* Action area */
priv->action_area = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6);
return NULL;
}
-static void
-set_title_colors (GtkWidget *assistant,
- GtkWidget *title_label)
-{
- GtkStyle *style;
-
- gtk_widget_ensure_style (assistant);
- style = gtk_widget_get_style (assistant);
-
- /* change colors schema, for making the header text visible */
- gtk_widget_modify_bg (title_label, GTK_STATE_NORMAL, &style->bg[GTK_STATE_SELECTED]);
- gtk_widget_modify_fg (title_label, GTK_STATE_NORMAL, &style->fg[GTK_STATE_SELECTED]);
-}
-
static void
set_title_font (GtkWidget *assistant,
GtkWidget *title_label)
{
PangoFontDescription *desc;
+ GtkStyleContext *context;
gint size;
desc = pango_font_description_new ();
- size = pango_font_description_get_size (gtk_widget_get_style (assistant)->font_desc);
+ context = gtk_widget_get_style_context (title_label);
+ size = pango_font_description_get_size (gtk_style_context_get_font (context, 0));
pango_font_description_set_weight (desc, PANGO_WEIGHT_ULTRABOLD);
pango_font_description_set_size (desc, size * PANGO_SCALE_XX_LARGE);
}
static void
-gtk_assistant_style_set (GtkWidget *widget,
- GtkStyle *old_style)
+gtk_assistant_style_updated (GtkWidget *widget)
{
GtkAssistant *assistant = GTK_ASSISTANT (widget);
GtkAssistantPrivate *priv = assistant->priv;
{
GtkAssistantPage *page = list->data;
- set_title_colors (widget, page->title);
set_title_font (widget, page->title);
-
list = list->next;
}
}
GtkAssistant *assistant = GTK_ASSISTANT (widget);
GtkAssistantPrivate *priv = assistant->priv;
GtkAllocation allocation, action_area_allocation, header_image_allocation;
- GtkStyle *style;
+ GtkStyleContext *context;
+ GtkStateFlags state;
+ GdkRGBA color;
gint border_width, header_padding, content_padding;
gint content_x, content_width;
gboolean rtl;
"content-padding", &content_padding,
NULL);
- style = gtk_widget_get_style (widget);
+ context = gtk_widget_get_style_context (widget);
+ state = gtk_widget_get_state_flags (widget);
+
gtk_widget_get_allocation (widget, &allocation);
gtk_widget_get_allocation (priv->action_area, &action_area_allocation);
gtk_widget_get_allocation (priv->header_image, &header_image_allocation);
/* colored box */
- gdk_cairo_set_source_color (cr, &style->bg[GTK_STATE_SELECTED]);
+ gtk_style_context_save (context);
+ gtk_style_context_add_class (context, GTK_STYLE_CLASS_HIGHLIGHT);
+
+ gtk_style_context_get_background_color (context, state, &color);
+ gdk_cairo_set_source_rgba (cr, &color);
+
cairo_rectangle (cr,
border_width,
border_width,
content_width -= sidebar_image_allocation.width;
}
- gdk_cairo_set_source_color (cr, &style->bg[GTK_STATE_NORMAL]);
+ gtk_style_context_restore (context);
+
+ gtk_style_context_get_background_color (context, state, &color);
+ gdk_cairo_set_source_rgba (cr, &color);
cairo_rectangle (cr,
content_x,
{
GtkAssistantPrivate *priv;
GtkAssistantPage *page_info;
+ GtkStyleContext *context;
gint n_pages;
g_return_val_if_fail (GTK_IS_ASSISTANT (assistant), 0);
G_CALLBACK (on_page_notify_visibility), assistant);
gtk_misc_set_alignment (GTK_MISC (page_info->title), 0.,0.5);
- set_title_colors (GTK_WIDGET (assistant), page_info->title);
set_title_font (GTK_WIDGET (assistant), page_info->title);
gtk_widget_show (page_info->title);
+ context = gtk_widget_get_style_context (page_info->title);
+ gtk_style_context_add_class (context, GTK_STYLE_CLASS_HIGHLIGHT);
+
n_pages = g_list_length (priv->pages);
if (position < 0 || position > n_pages)