forked from AuroraMiddleware/gtk
themingengine: Draw icons for spinners
If the -gtk-icon-source property is not set to "none" (the default), draw it as the spinner icon. Otherwise fall back to previous methods.
This commit is contained in:
parent
226e1cd2b2
commit
a56637b330
@ -31,6 +31,7 @@
|
||||
#include "gtkcssarrayvalueprivate.h"
|
||||
#include "gtkcsscornervalueprivate.h"
|
||||
#include "gtkcssenumvalueprivate.h"
|
||||
#include "gtkcssimagevalueprivate.h"
|
||||
#include "gtkcssnumbervalueprivate.h"
|
||||
#include "gtkcssrgbavalueprivate.h"
|
||||
#include "gtkcssshadowsvalueprivate.h"
|
||||
@ -1021,6 +1022,26 @@ gtk_theming_engine_get_screen (GtkThemingEngine *engine)
|
||||
return gtk_style_context_get_screen (priv->context);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
render_icon_image (GtkThemingEngine *engine,
|
||||
cairo_t *cr,
|
||||
double x,
|
||||
double y,
|
||||
double width,
|
||||
double height)
|
||||
{
|
||||
GtkCssImage *image;
|
||||
|
||||
image = _gtk_css_image_value_get_image (_gtk_theming_engine_peek_property (engine, GTK_CSS_PROPERTY_ICON_SOURCE));
|
||||
if (image == NULL)
|
||||
return FALSE;
|
||||
|
||||
cairo_translate (cr, x, y);
|
||||
_gtk_css_image_draw (image, cr, width, height);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/* Paint method implementations */
|
||||
static void
|
||||
gtk_theming_engine_render_check (GtkThemingEngine *engine,
|
||||
@ -2571,6 +2592,9 @@ gtk_theming_engine_render_activity (GtkThemingEngine *engine,
|
||||
{
|
||||
GtkThemingBackground bg;
|
||||
|
||||
if (render_icon_image (engine, cr, x, y, width, height))
|
||||
return;
|
||||
|
||||
_gtk_theming_background_init (&bg, engine, x, y, width, height, 0);
|
||||
|
||||
if (gtk_theming_engine_has_class (engine, GTK_STYLE_CLASS_SPINNER) &&
|
||||
|
Loading…
Reference in New Issue
Block a user