diff examples/menu/filebrowser.c @ 354:92e8f9965f9a

merge
author wycc
date Mon, 09 Mar 2009 01:30:19 +0800
parents 04d22dc38bc0
children 3e84458968ec
line wrap: on
line diff
--- a/examples/menu/filebrowser.c	Mon Mar 09 01:28:56 2009 +0800
+++ b/examples/menu/filebrowser.c	Mon Mar 09 01:30:19 2009 +0800
@@ -67,14 +67,23 @@
 
 void mypreview(MyAppData *data, char *path)
 {
-    mb_img_data_t *img = MB_IMG_LDR_LOAD(rdman_img_ldr(MBAPP_RDMAN(myApp)), path);
+    redraw_man_t *rdman = MBAPP_RDMAN(myApp);
+    mb_img_ldr_t *ldr = rdman_img_ldr(rdman);
+    mb_img_data_t *img = MB_IMG_LDR_LOAD(ldr, path);
     shape_t *obj = (shape_t *) MB_SPRITE_GET_OBJ(myApp->rootsprite, "previewimg");
+    mb_img_data_t *previewimg_img_data;
+    mb_img_data_t *old_img;
 
+    previewimg_img_data =
+	(mb_img_data_t *)MB_SPRITE_GET_OBJ(myApp->rootsprite,
+					   "previewimg_img_data");
     printf("Preview %s\n",path);
     if (img) {
 	    printf("image %d %d\n",img->w,img->h);
-	    sh_image_set_img_data(obj,img,0,0,img->w,img->h);
-	    sh_image_transform(obj);
+	    old_img = sh_image_get_img_data(obj);
+	    sh_image_set_img_data(obj,img);
+	    if(old_img != previewimg_img_data)
+		MB_IMG_DATA_FREE(old_img);
 	    rdman_shape_changed(MBAPP_RDMAN(myApp),obj);
             rdman_redraw_changed(MBAPP_RDMAN(myApp));
     }