]> git.cworth.org Git - grrobot/blobdiff - src/grr_icon.c
Remove generated file ltmain.sh
[grrobot] / src / grr_icon.c
index d34ab4b3d489fc2fefefee40c9cd1775f4f087e5..827d5b8b46e3388050aced2685dae2ed9d605943 100644 (file)
@@ -127,7 +127,7 @@ grr_icon_create (char *name)
 static rr_status_t
 _grr_icon_init (grr_icon_t *icon, char *name)
 {
-    xsvg_status_t status;
+    svg_cairo_status_t status;
     char *file, *buf;
     int buflen;
 
@@ -135,15 +135,15 @@ _grr_icon_init (grr_icon_t *icon, char *name)
     icon->surface_width = 0;
     icon->surface_height = 0;
 
-    status = xsvg_create (&icon->xsvg);
+    status = svg_cairo_create (&icon->svg_cairo);
     if (status)
        return RR_STATUS_NO_MEMORY;
 
     file = _grr_icon_find_file (name);
 
     if (file) {
-       status = xsvg_parse_file (icon->xsvg, file);
-       if (status == XSVG_STATUS_SUCCESS) {
+       status = svg_cairo_parse (icon->svg_cairo, file);
+       if (status == SVG_CAIRO_STATUS_SUCCESS) {
            free (file);
            return RR_STATUS_SUCCESS;
        }
@@ -152,7 +152,7 @@ _grr_icon_init (grr_icon_t *icon, char *name)
     }
 
     _grr_icon_find_buffer (name, &buf, &buflen);
-    status = xsvg_parse_buffer (icon->xsvg, buf, buflen);
+    status = svg_cairo_parse_buffer (icon->svg_cairo, buf, buflen);
     if (status) {
        fprintf (stderr, "Error parsing built-in SVG icon for: %s\n", name);
        return RR_STATUS_PARSE_ERROR;
@@ -225,11 +225,11 @@ grr_icon_target_name (rr_target_t target)
 void
 grr_icon_draw (grr_icon_t *icon, cairo_t *xrs)
 {
-    xsvg_status_t status;
+    svg_cairo_status_t status;
 
-    status =  xsvg_render (icon->xsvg, xrs);
+    status =  svg_cairo_render (icon->svg_cairo, xrs);
     if (status) {
-       fprintf (stderr, "xsvg_render error\n");
+       fprintf (stderr, "svg_cairo_render error\n");
        return;
     }
 }
@@ -237,25 +237,28 @@ grr_icon_draw (grr_icon_t *icon, cairo_t *xrs)
 void
 grr_icon_predraw (grr_icon_t *icon, cairo_t *xrs, int width, int height)
 {
+    cairo_t *xrs2;
+
     if (icon->surface_width != width || icon->surface_height != height) {
        if (icon->surface)
            cairo_surface_destroy (icon->surface);
        icon->surface_width = width;
        icon->surface_height = height;
-       icon->surface = cairo_surface_create_similar (cairo_get_target_surface (xrs),
+       icon->surface = cairo_surface_create_similar (cairo_get_target (xrs),
                                                      CAIRO_FORMAT_ARGB32,
                                                      width, height);
     }
 
-    cairo_save (xrs);
-    cairo_set_target_surface (xrs, icon->surface);
-    grr_icon_draw (icon, xrs);
-    cairo_restore (xrs);
+    xrs2 = cairo_create (icon->surface);
+    grr_icon_draw (icon, xrs2);
+    cairo_destroy (xrs2);
 }
 
 void
-grr_icon_draw_predrawn (grr_icon_t *icon, cairo_t *xrs)
+grr_icon_draw_predrawn (grr_icon_t *icon, cairo_t *xrs, double alpha)
 {
-    if (icon->surface)
-       cairo_show_surface (xrs, icon->surface, icon->surface_width, icon->surface_height);
+    if (icon->surface) {
+       cairo_set_source_surface (xrs, icon->surface, 0.0, 0.0);
+       cairo_paint (xrs);
+    }
 }