okra pushed a commit to branch master.

http://git.enlightenment.org/apps/ephoto.git/commit/?id=c93ec61058c8d51d604e1778834ecd2a0c0fc7ad

commit c93ec61058c8d51d604e1778834ecd2a0c0fc7ad
Author: Stephen Houston <smhousto...@gmail.com>
Date:   Mon Jan 19 15:26:13 2015 -0600

    Ephoto: Add an information label with resolution, size, and type for single 
images.
---
 src/bin/ephoto_single_browser.c | 51 +++++++++++++++++++++++++++++++++++++++--
 1 file changed, 49 insertions(+), 2 deletions(-)

diff --git a/src/bin/ephoto_single_browser.c b/src/bin/ephoto_single_browser.c
index 0a7ebff..396c5c1 100644
--- a/src/bin/ephoto_single_browser.c
+++ b/src/bin/ephoto_single_browser.c
@@ -15,6 +15,7 @@ struct _Ephoto_Single_Browser
    Evas_Object *table;
    Evas_Object *panel;
    Evas_Object *viewer;
+   Evas_Object *infolabel;
    Evas_Object *nolabel;
    const char *pending_path;
    Ephoto_Entry *entry;
@@ -468,6 +469,8 @@ _ephoto_single_browser_recalc(Ephoto_Single_Browser *sb)
      {
         evas_object_del(sb->viewer);
         sb->viewer = NULL;
+        evas_object_del(sb->infolabel);
+        sb->infolabel = NULL;
      }
    if (sb->nolabel)
      {
@@ -483,10 +486,54 @@ _ephoto_single_browser_recalc(Ephoto_Single_Browser *sb)
         sb->viewer = _viewer_add(sb->main, sb->entry->path);
         if (sb->viewer)
           {
+             char image_info[PATH_MAX];
+             char isize[PATH_MAX];
+             Evas_Coord w, h;
+             Ephoto_Viewer *v = evas_object_data_get(sb->viewer, "viewer");
+             Eina_File *f = eina_file_open(sb->entry->path, EINA_FALSE);
+             size_t size = eina_file_size_get(f);
+             eina_file_close(f);
+
+             double dsize = (double)size;
+             if (dsize < 1024.0) snprintf(isize, sizeof(isize), "%'.0f bytes", 
dsize);
+             else
+               {
+                  dsize /= 1024.0;
+                  if (dsize < 1024) snprintf(isize, sizeof(isize), "%'.0f KB", 
dsize);
+                  else
+                    {
+                       dsize /= 1024.0;
+                       if (dsize < 1024) snprintf(isize, sizeof(isize), "%'.1f 
MB", dsize);
+                       else
+                         {
+                            dsize /= 1024.0;
+                            if (dsize < 1024) snprintf(isize, sizeof(isize), 
"%'.1f GB", dsize);
+                            else
+                              {
+                                 dsize /= 1024.0;
+                                 snprintf(isize, sizeof(isize), "%'.1f TB", 
dsize);
+                              }
+                         }
+                    }
+               }
+             evas_object_image_size_get(elm_image_object_get(v->image), &w, 
&h);
+             snprintf(image_info, PATH_MAX, 
+                      "<b>Type:</b> %s        <b>Resolution:</b> %dx%d        
<b>File Size: </b>%s", 
+                      efreet_mime_type_get(sb->entry->path), w, h, isize);
+
              elm_table_pack(sb->table, sb->viewer, 0, 0, 4, 1);
              evas_object_show(sb->viewer);
              evas_object_event_callback_add
                (sb->viewer, EVAS_CALLBACK_MOUSE_WHEEL, _mouse_wheel, sb);
+
+             sb->infolabel = elm_label_add(sb->table);
+             elm_label_line_wrap_set(sb->infolabel, ELM_WRAP_NONE);
+             elm_object_text_set(sb->infolabel, image_info);
+             evas_object_size_hint_weight_set(sb->infolabel, EVAS_HINT_EXPAND, 
EVAS_HINT_FILL);
+             evas_object_size_hint_align_set(sb->infolabel, EVAS_HINT_FILL, 
EVAS_HINT_FILL);
+             elm_table_pack(sb->table, sb->infolabel, 0, 1, 4, 1);
+             evas_object_show(sb->infolabel);
+
              ephoto_title_set(sb->ephoto, bname);
           }
         else
@@ -500,7 +547,7 @@ _ephoto_single_browser_recalc(Ephoto_Single_Browser *sb)
              evas_object_show(sb->nolabel);
              ephoto_title_set(sb->ephoto, "Bad Image");
           }
-        elm_table_pack(sb->table, sb->panel, 0, 0, 1, 1);
+        elm_table_pack(sb->table, sb->panel, 0, 0, 1, 2);
      }
 
    elm_object_focus_set(sb->main, EINA_TRUE);
@@ -856,7 +903,7 @@ ephoto_single_browser_add(Ephoto *ephoto, Evas_Object 
*parent)
      elm_panel_hidden_set(sb->panel, EINA_TRUE);
    else
      elm_panel_hidden_set(sb->panel, EINA_FALSE);
-   elm_table_pack(sb->table, sb->panel, 0, 0, 1, 1);
+   elm_table_pack(sb->table, sb->panel, 0, 0, 1, 2);
    evas_object_show(sb->panel);
    
    sb->bar = elm_toolbar_add(sb->panel);

-- 


Reply via email to