style: Remove GtkStylePropertyContext again

We need to solve this differently. I have no idea yet how, but I'll
invent something later.

This only affects win32 theming and that's broken anyway.
This commit is contained in:
Benjamin Otte 2012-01-02 19:22:30 +01:00
parent 32c8bbb575
commit 9181282d88
8 changed files with 61 additions and 181 deletions

View File

@ -1440,24 +1440,6 @@ gtk_style_context_get_property (GtkStyleContext *context,
gtk_style_properties_get_property (data->store, property, 0, value);
}
void
_gtk_style_context_get_valist (GtkStyleContext *context,
GtkStateFlags state,
GtkStylePropertyContext *property_context,
va_list args)
{
GtkStyleContextPrivate *priv;
StyleData *data;
g_return_if_fail (GTK_IS_STYLE_CONTEXT (context));
priv = context->priv;
g_return_if_fail (priv->widget_path != NULL);
data = style_data_lookup (context, state);
_gtk_style_properties_get_valist (data->store, 0, property_context, args);
}
/**
* gtk_style_context_get_valist:
* @context: a #GtkStyleContext

View File

@ -25,17 +25,6 @@
G_BEGIN_DECLS
typedef struct _GtkStylePropertyContext GtkStylePropertyContext;
struct _GtkStylePropertyContext
{
int width;
int height;
};
void _gtk_style_context_get_valist (GtkStyleContext *context,
GtkStateFlags state,
GtkStylePropertyContext *property_context,
va_list args);
const GValue * _gtk_style_context_peek_style_property (GtkStyleContext *context,
GType widget_type,
GtkStateFlags state,

View File

@ -628,12 +628,25 @@ _gtk_style_properties_peek_property (GtkStyleProperties *props,
return property_data_match_state (prop, state);
}
/**
* gtk_style_properties_get_property:
* @props: a #GtkStyleProperties
* @property: style property name
* @state: state to retrieve the property value for
* @value: (out) (transfer full): return location for the style property value.
*
* Gets a style property from @props for the given state. When done with @value,
* g_value_unset() needs to be called to free any allocated memory.
*
* Returns: %TRUE if the property exists in @props, %FALSE otherwise
*
* Since: 3.0
**/
gboolean
_gtk_style_properties_get_property (GtkStyleProperties *props,
const gchar *property,
GtkStateFlags state,
GtkStylePropertyContext *context,
GValue *value)
gtk_style_properties_get_property (GtkStyleProperties *props,
const gchar *property,
GtkStateFlags state,
GValue *value)
{
GtkStyleProperty *node;
@ -657,75 +670,6 @@ _gtk_style_properties_get_property (GtkStyleProperties *props,
return TRUE;
}
/**
* gtk_style_properties_get_property:
* @props: a #GtkStyleProperties
* @property: style property name
* @state: state to retrieve the property value for
* @value: (out) (transfer full): return location for the style property value.
*
* Gets a style property from @props for the given state. When done with @value,
* g_value_unset() needs to be called to free any allocated memory.
*
* Returns: %TRUE if the property exists in @props, %FALSE otherwise
*
* Since: 3.0
**/
gboolean
gtk_style_properties_get_property (GtkStyleProperties *props,
const gchar *property,
GtkStateFlags state,
GValue *value)
{
GtkStylePropertyContext context = { 100, 100};
g_return_val_if_fail (GTK_IS_STYLE_PROPERTIES (props), FALSE);
g_return_val_if_fail (property != NULL, FALSE);
g_return_val_if_fail (value != NULL, FALSE);
return _gtk_style_properties_get_property (props,
property,
state, &context, value);
}
void
_gtk_style_properties_get_valist (GtkStyleProperties *props,
GtkStateFlags state,
GtkStylePropertyContext *context,
va_list args)
{
const gchar *property_name;
g_return_if_fail (GTK_IS_STYLE_PROPERTIES (props));
property_name = va_arg (args, const gchar *);
while (property_name)
{
gchar *error = NULL;
GValue value = G_VALUE_INIT;
if (!_gtk_style_properties_get_property (props,
property_name,
state,
context,
&value))
break;
G_VALUE_LCOPY (&value, args, 0, &error);
g_value_unset (&value);
if (error)
{
g_warning ("Could not get style property \"%s\": %s", property_name, error);
g_free (error);
break;
}
property_name = va_arg (args, const gchar *);
}
}
/**
* gtk_style_properties_get_valist:
* @props: a #GtkStyleProperties
@ -741,24 +685,35 @@ gtk_style_properties_get_valist (GtkStyleProperties *props,
GtkStateFlags state,
va_list args)
{
GtkStylePropertyContext context = { 100, 100};
return _gtk_style_properties_get_valist (props, state, &context, args);
}
void
_gtk_style_properties_get (GtkStyleProperties *props,
GtkStateFlags state,
GtkStylePropertyContext *context,
...)
{
va_list args;
const gchar *property_name;
g_return_if_fail (GTK_IS_STYLE_PROPERTIES (props));
va_start (args, context);
_gtk_style_properties_get_valist (props, state, context, args);
va_end (args);
property_name = va_arg (args, const gchar *);
while (property_name)
{
gchar *error = NULL;
GValue value = G_VALUE_INIT;
if (!gtk_style_properties_get_property (props,
property_name,
state,
&value))
break;
G_VALUE_LCOPY (&value, args, 0, &error);
g_value_unset (&value);
if (error)
{
g_warning ("Could not get style property \"%s\": %s", property_name, error);
g_free (error);
break;
}
property_name = va_arg (args, const gchar *);
}
}
/**

View File

@ -27,17 +27,9 @@
G_BEGIN_DECLS
void _gtk_style_properties_get (GtkStyleProperties *props,
GtkStateFlags state,
GtkStylePropertyContext *context,
...);
void _gtk_style_properties_set_color_lookup_func (GtkStyleProperties *props,
GtkSymbolicColorLookupFunc func,
gpointer data);
void _gtk_style_properties_get_valist (GtkStyleProperties *props,
GtkStateFlags state,
GtkStylePropertyContext *context,
va_list args);
const GValue * _gtk_style_properties_peek_property (GtkStyleProperties *props,
GtkCssStyleProperty *property,

View File

@ -64,9 +64,9 @@ _gtk_theming_background_apply_running_transformation (GtkThemingBackground *bg,
other_flags = bg->flags | GTK_STATE_FLAG_PRELIGHT;
gtk_theming_engine_get_background_color (bg->engine, other_flags, &other_bg);
_gtk_theming_engine_get (bg->engine, other_flags, &bg->prop_context,
"background-image", &other_pattern,
NULL);
gtk_theming_engine_get (bg->engine, other_flags,
"background-image", &other_pattern,
NULL);
if (bg->pattern && other_pattern)
{
@ -258,8 +258,6 @@ _gtk_theming_background_apply_origin (GtkThemingBackground *bg)
}
bg->image_rect = image_rect;
bg->prop_context.width = image_rect.width;
bg->prop_context.height = image_rect.height;
}
static void
@ -389,9 +387,9 @@ _gtk_theming_background_init_engine (GtkThemingBackground *bg)
_gtk_theming_background_apply_clip (bg);
_gtk_theming_background_apply_origin (bg);
_gtk_theming_engine_get (bg->engine, bg->flags, &bg->prop_context,
"background-image", &bg->pattern,
NULL);
gtk_theming_engine_get (bg->engine, bg->flags,
"background-image", &bg->pattern,
NULL);
}
void

View File

@ -50,8 +50,6 @@ struct _GtkThemingBackground {
GtkBorder border;
GtkBorder padding;
GdkRGBA bg_color;
GtkStylePropertyContext prop_context;
};
void _gtk_theming_background_init (GtkThemingBackground *bg,

View File

@ -392,25 +392,6 @@ gtk_theming_engine_get_valist (GtkThemingEngine *engine,
gtk_style_context_get_valist (priv->context, state, args);
}
void
_gtk_theming_engine_get (GtkThemingEngine *engine,
GtkStateFlags state,
GtkStylePropertyContext *property_context,
...)
{
GtkThemingEnginePrivate *priv;
va_list args;
g_return_if_fail (GTK_IS_THEMING_ENGINE (engine));
priv = engine->priv;
va_start (args, property_context);
_gtk_style_context_get_valist (priv->context, state, property_context, args);
va_end (args);
}
/**
* gtk_theming_engine_get:
* @engine: a #GtkThemingEngine
@ -1556,19 +1537,15 @@ gtk_theming_engine_render_frame (GtkThemingEngine *engine,
GtkJunctionSides junction;
GtkBorderImage *border_image;
GtkBorder border;
GtkStylePropertyContext context;
flags = gtk_theming_engine_get_state (engine);
junction = gtk_theming_engine_get_junction_sides (engine);
gtk_theming_engine_get_border (engine, flags, &border);
context.width = width;
context.height = height;
_gtk_theming_engine_get (engine, flags, &context,
"border-image", &border_image,
"border-style", &border_style,
NULL);
gtk_theming_engine_get (engine, flags,
"border-image", &border_image,
"border-style", &border_style,
NULL);
if (border_image != NULL)
{
@ -1925,7 +1902,6 @@ gtk_theming_engine_render_frame_gap (GtkThemingEngine *engine,
GtkCssBorderCornerRadius *top_left_radius, *top_right_radius;
GtkCssBorderCornerRadius *bottom_left_radius, *bottom_right_radius;
gdouble x0, y0, x1, y1, xc, yc, wc, hc;
GtkStylePropertyContext context;
GtkBorderImage *border_image;
GtkBorder border;
@ -1933,17 +1909,14 @@ gtk_theming_engine_render_frame_gap (GtkThemingEngine *engine,
state = gtk_theming_engine_get_state (engine);
junction = gtk_theming_engine_get_junction_sides (engine);
context.width = width;
context.height = height;
gtk_theming_engine_get_border (engine, state, &border);
_gtk_theming_engine_get (engine, state, &context,
"border-image", &border_image,
"border-top-left-radius", &top_left_radius,
"border-top-right-radius", &top_right_radius,
"border-bottom-right-radius", &bottom_right_radius,
"border-bottom-left-radius", &bottom_left_radius,
NULL);
gtk_theming_engine_get (engine, state,
"border-image", &border_image,
"border-top-left-radius", &top_left_radius,
"border-top-right-radius", &top_right_radius,
"border-bottom-right-radius", &bottom_right_radius,
"border-bottom-left-radius", &bottom_left_radius,
NULL);
border_width = MIN (MIN (border.top, border.bottom),
MIN (border.left, border.right));

View File

@ -21,13 +21,6 @@
#define __GTK_THEMING_ENGINE_PRIVATE_H__
#include <gdk/gdk.h>
#include "gtkstylecontextprivate.h"
void _gtk_theming_engine_get (GtkThemingEngine *engine,
GtkStateFlags state,
GtkStylePropertyContext *property_context,
...) G_GNUC_NULL_TERMINATED;
void _gtk_theming_engine_paint_spinner (cairo_t *cr,
gdouble radius,