Enlightenment CVS committal

Author  : kwo
Project : e16
Module  : e

Dir     : e16/e/src


Modified Files:
        backgrounds.c 


Log Message:
Add simple background load command.
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/backgrounds.c,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -3 -r1.11 -r1.12
--- backgrounds.c       25 Jan 2005 21:56:12 -0000      1.11
+++ backgrounds.c       29 Jan 2005 00:07:20 -0000      1.12
@@ -684,14 +684,20 @@
    int                 maxw = 48, maxh = 48;
    int                 justx = 512, justy = 512;
 
-   Esnprintf(thumb, thlen, "%s/cached/img/%s", EDirUserCache(), bgid);
-
    bg = FindItem(bgid, 0, LIST_FINDBY_NAME, LIST_TYPE_BACKGROUND);
 
-   if (bg && exists(thumb) && moddate(thumb) > moddate(file))
-      return bg;
-
-   /* The thumbnail is gone or outdated - regererate */
+   if (thumb)
+     {
+       Esnprintf(thumb, thlen, "%s/cached/img/%s", EDirUserCache(), bgid);
+       if (bg && exists(thumb) && moddate(thumb) > moddate(file))
+          return bg;
+       /* The thumbnail is gone or outdated - regererate */
+     }
+   else
+     {
+       if (bg)
+          return bg;
+     }
 
    im = imlib_load_image(file);
    if (!im)
@@ -700,19 +706,23 @@
    imlib_context_set_image(im);
    width = imlib_image_get_width();
    height = imlib_image_get_height();
-   h2 = maxh;
-   w2 = (width * h2) / height;
-   if (w2 > maxw)
-     {
-       w2 = maxw;
-       h2 = (height * w2) / width;
-     }
-   im2 = imlib_create_cropped_scaled_image(0, 0, width, height, w2, h2);
-   imlib_free_image_and_decache();
-   imlib_context_set_image(im2);
-   imlib_image_set_format("png");
-   imlib_save_image(thumb);
-   imlib_free_image_and_decache();
+
+   if (thumb)
+     {
+       h2 = maxh;
+       w2 = (width * h2) / height;
+       if (w2 > maxw)
+         {
+            w2 = maxw;
+            h2 = (height * w2) / width;
+         }
+       im2 = imlib_create_cropped_scaled_image(0, 0, width, height, w2, h2);
+       imlib_free_image_and_decache();
+       imlib_context_set_image(im2);
+       imlib_image_set_format("png");
+       imlib_save_image(thumb);
+       imlib_free_image_and_decache();
+     }
 
    /* Quit if the background itself already exists */
    if (bg)
@@ -2550,6 +2560,18 @@
        if (lst)
           Efree(lst);
      }
+   else if (!strncmp(cmd, "load", 2))
+     {
+       bg = FindItem(prm, 0, LIST_FINDBY_NAME, LIST_TYPE_BACKGROUND);
+       if (bg)
+         {
+            IpcPrintf("Background already defined\n");
+         }
+       else
+         {
+            bg = BrackgroundCreateFromImage(prm, p, NULL, 0);
+         }
+     }
    else if (!strncmp(cmd, "xset", 2))
      {
        BackgroundSet1(prm, p);
@@ -2663,6 +2685,7 @@
     "  background cfg                   Configure backgrounds\n"
     "  background del <name>            Delete background\n"
     "  background list                  Show all background\n"
+    "  background load <name> <file>    Load new wallpaper from file\n"
     "  background set <name> ...        Set background parameters\n"
     "  background show <name>           Show background info\n"
     "  background use <name> <desks...> Switch to background <name>\n"




-------------------------------------------------------
This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting
Tool for open source databases. Create drag-&-drop reports. Save time
by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc.
Download a FREE copy at http://www.intelliview.com/go/osdn_nl
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to