Enlightenment CVS committal

Author  : titan
Project : e17
Module  : proto

Dir     : e17/proto/ephoto/src


Modified Files:
        ephoto.c ephoto.h ephoto_callbacks.c 


Log Message:
More rewrite.. still not quite usable.. for an idea visit.. 
www.ecoding.org/files/images/ephoto_better.png

===================================================================
RCS file: /cvs/e/e17/proto/ephoto/src/ephoto.c,v
retrieving revision 1.67
retrieving revision 1.68
diff -u -3 -r1.67 -r1.68
--- ephoto.c    5 Sep 2006 18:57:30 -0000       1.67
+++ ephoto.c    5 Sep 2006 22:28:38 -0000       1.68
@@ -1,5 +1,5 @@
 #include "ephoto.h"
-Main *m = NULL;
+Main *m;
 
 int
 main(int argc, char **argv)
@@ -8,18 +8,12 @@
  char *home;
  char ephoto_path[PATH_MAX];
  char ephoto_complete[PATH_MAX];
- int argint = 1;
- int i = 0;
-
+ m = NULL;
+ 
  if (!ewl_init(&argc, argv))
  {
   printf("Unable to init ewl\n");
   return 1;
- }
-
- while ( argint < argc ) 
- {
-  argint++;
  }
 
  home = getenv("HOME");
===================================================================
RCS file: /cvs/e/e17/proto/ephoto/src/ephoto.h,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -3 -r1.31 -r1.32
--- ephoto.h    5 Sep 2006 18:57:30 -0000       1.31
+++ ephoto.h    5 Sep 2006 22:28:38 -0000       1.32
@@ -3,13 +3,17 @@
 
 #include <Ecore_File.h>
 #include <Ewl.h>
+#include <fnmatch.h>
+#include <libgen.h>
 #include <limits.h>
 #include <stdio.h>
 #include <stdlib.h>
+#include <strings.h>
 
 void destroy_cb(Ewl_Widget *w, void *event, void *data);
 void populate_albums(Ewl_Widget *w, void *event, void *data);
 void populate_browser(Ewl_Widget *w, void *event, void *data);
+void populate_images(Ewl_Widget *w, void *event, void *data);
 
 typedef struct _Main Main;
 
===================================================================
RCS file: /cvs/e/e17/proto/ephoto/src/ephoto_callbacks.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -3 -r1.9 -r1.10
--- ephoto_callbacks.c  5 Sep 2006 18:57:30 -0000       1.9
+++ ephoto_callbacks.c  5 Sep 2006 22:28:38 -0000       1.10
@@ -15,6 +15,8 @@
  char *album;
  char *home;
  char path[PATH_MAX];
+ char full_path[PATH_MAX];
+ const char *image_path;
  Ecore_List *albums;
  Ewl_Widget *hbox;
  Ewl_Widget *image;
@@ -23,7 +25,7 @@
  Ewl_Widget *row;
  
  home = getenv("HOME");
- snprintf(path, PATH_MAX, "%s/.ephoto/", home);
+ snprintf(path, PATH_MAX, "%s/.ephoto", home);
 
  if (!ecore_file_exists(path)) ecore_file_mkdir(path);
 
@@ -33,14 +35,18 @@
  while(!ecore_list_is_empty(albums))
  {
   album = ecore_list_remove_first(albums);
+  snprintf(full_path, PATH_MAX, "%s/%s", path, album);
   
   hbox = ewl_hbox_new();
   ewl_object_alignment_set(EWL_OBJECT(hbox), EWL_FLAG_ALIGN_CENTER);
   ewl_object_fill_policy_set(EWL_OBJECT(hbox), EWL_FLAG_FILL_ALL);
   ewl_box_spacing_set(EWL_BOX(hbox), 5);
   ewl_widget_show(hbox);
-                                                               
+
+  image_path = ewl_icon_theme_icon_path_get(EWL_ICON_IMAGE_X_GENERIC,
+                                            EWL_ICON_SIZE_LARGE);  
   image = ewl_image_new();
+  ewl_image_file_set(EWL_IMAGE(image), image_path, NULL);
   ewl_container_child_append(EWL_CONTAINER(hbox), image);
   ewl_widget_show(image);
                                                                                
  text = ewl_text_new();
@@ -54,8 +60,8 @@
   children[1] = NULL;
   
   row = ewl_tree_row_add(EWL_TREE(m->albums), NULL, children);
-  ewl_widget_name_set(row, album);
-  //ewl_callback_append(row, EWL_CALLBACK_CLICKED, NULL, NULL);
+  ewl_callback_append(row, EWL_CALLBACK_CLICKED, populate_images, NULL);
+  ewl_widget_name_set(row, full_path);
  }
 }
 
@@ -63,7 +69,10 @@
 {
  char *directory;
  char *file;
- Ecore_List *files;
+ char full_path[PATH_MAX];
+ const char *image_path;
+ Ecore_List *ls;
+ Ecore_List *directories;
  Ewl_Widget *hbox;
  Ewl_Widget *image;
  Ewl_Widget *text;
@@ -72,20 +81,33 @@
  
  directory = data;
  
- files = ecore_list_new();
- files = ecore_file_ls(directory);
+ ls = ecore_list_new();
+ directories = ecore_list_new();
+ 
+ ls = ecore_file_ls(directory);
  
- while (!ecore_list_is_empty(files))
+ while (!ecore_list_is_empty(ls))
  {
-  file = ecore_list_remove_first(files);
+  file = ecore_list_remove_first(ls);
+  if (ecore_file_is_dir(file) && strncmp(file, ".", 1)) 
+         ecore_list_append(directories, file);
+ }
 
+ while (!ecore_list_is_empty(directories))
+ {
+  file = ecore_list_remove_first(directories);
+  snprintf(full_path, PATH_MAX, "%s/%s", directory, file);
+  
   hbox = ewl_hbox_new();
   ewl_object_alignment_set(EWL_OBJECT(hbox), EWL_FLAG_ALIGN_CENTER);
   ewl_object_fill_policy_set(EWL_OBJECT(hbox), EWL_FLAG_FILL_ALL);
   ewl_box_spacing_set(EWL_BOX(hbox), 5);
   ewl_widget_show(hbox);
 
+  image_path = ewl_icon_theme_icon_path_get(EWL_ICON_FOLDER, 
+                                           EWL_ICON_SIZE_LARGE);
   image = ewl_image_new();
+  ewl_image_file_set(EWL_IMAGE(image), image_path, NULL);
   ewl_container_child_append(EWL_CONTAINER(hbox), image);
   ewl_widget_show(image);
 
@@ -100,6 +122,78 @@
   children[1] = NULL;
 
   row = ewl_tree_row_add(EWL_TREE(m->browser), NULL, children);
-  ewl_widget_name_set(row, file);
+  ewl_callback_append(row, EWL_CALLBACK_CLICKED, populate_images, NULL);
+  ewl_widget_name_set(row, full_path);
+ }
+}
+
+void populate_images(Ewl_Widget *w, void *event, void *data)
+{
+ FILE *file_ptr;
+ const char *dir;
+ char *image;
+ char full_path[PATH_MAX];
+ char text[PATH_MAX];
+ Ecore_List *ls;
+ Ecore_List *images;
+
+ ls = ecore_list_new();
+ images = ecore_list_new();
+ dir = ewl_widget_name_get(w);
+ 
+ if (ecore_file_is_dir(dir))
+ {
+  ls = ecore_file_ls(dir);
+  while(!ecore_list_is_empty(ls))
+  {
+   snprintf(full_path, PATH_MAX, "%s/%s", dir, ecore_list_remove_first(ls));
+   image = strdup(full_path);
+   if (fnmatch("*.[Jj][Pp][Ee][Gg]", image, 0) == 0)
+   {
+    ecore_list_append(images, image);
+   }
+   if (fnmatch("*.[Jj][Pp][Gg]", image, 0) == 0)
+   {
+    ecore_list_append(images, image);
+   }
+   if (fnmatch("*.[Pp][Nn][Gg]", image, 0) == 0)
+   {
+    ecore_list_append(images, image);
+   }
+   if (fnmatch("*.[Gg][Ii][Ff]", image, 0) == 0)
+   {
+    ecore_list_append(images, image);
+   }
+   if (fnmatch("*.[Ss][Vv][Gg]", image, 0) == 0)
+   {
+    ecore_list_append(images, image);
+   }
+   free(image);
+  }
+ }
+ else
+ {
+  file_ptr = fopen(dir, "r");
+  if (file_ptr != NULL)
+  {
+   while(fgets(text,PATH_MAX,file_ptr) != NULL)
+   {
+    if (strncmp(text, "#", 1)) ecore_list_append(images, strdup(text));
+   }
+   fclose(file_ptr);
+  }
+ }
+ 
+ while(!ecore_list_is_empty(images))
+ {
+  image = ecore_list_remove_first(images);
+  
+  m->icon = ewl_icon_new();
+  ewl_box_orientation_set(EWL_BOX(m->icon), EWL_ORIENTATION_VERTICAL);
+  ewl_icon_image_set(EWL_ICON(m->icon), full_path, NULL);
+  //ewl_icon_label_set(EWL_ICON(m->icon), image);
+  ewl_icon_constrain_set(EWL_ICON(m->icon), 64);
+  ewl_container_child_append(EWL_CONTAINER(m->viewer_freebox), m->icon);
+  ewl_widget_show(m->icon);
  }
 }



-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to