davemds pushed a commit to branch master.

http://git.enlightenment.org/enlightenment/modules/packagekit.git/commit/?id=273e1a2e9a662992ab88f5d8e2b422ecf08d1a4b

commit 273e1a2e9a662992ab88f5d8e2b422ecf08d1a4b
Author: davemds <d...@gurumeditation.it>
Date:   Mon Nov 4 21:35:00 2013 +0100

    Actually show the number of available updates inside the icon
---
 e-module-packagekit.edc       |  14 ++++++++++++++
 images/packagekit_updates.png | Bin 2595 -> 2440 bytes
 src/e_mod_packagekit.c        |  17 +++++++++++------
 src/e_mod_packagekit.h        |   2 +-
 4 files changed, 26 insertions(+), 7 deletions(-)

diff --git a/e-module-packagekit.edc b/e-module-packagekit.edc
index 2ca5f6c..03ad9e9 100644
--- a/e-module-packagekit.edc
+++ b/e-module-packagekit.edc
@@ -1,4 +1,9 @@
 
+#define FN     "Sans"
+#define FNBD   "Sans:style=Bold"
+#define FNIT   "Sans:style=Oblique"
+#define FNBDIT "Sans:style=Bold Italic"
+
 images {
    image: "packagekit_base.png" COMP;
    image: "packagekit_info_bugfix.png" COMP;
@@ -138,6 +143,15 @@ collections {
                image.normal: "packagekit_error.png";
             }
          }
+         part { name: "num_updates"; type: TEXT;
+            effect: SHADOW;
+            description { state: "default" 0.0;
+               text {
+                  font: FNBD;
+                  size: 9;
+               }
+            }
+         }
       }
       programs {
          program {
diff --git a/images/packagekit_updates.png b/images/packagekit_updates.png
index 4f90c6e..9d77593 100644
Binary files a/images/packagekit_updates.png and 
b/images/packagekit_updates.png differ
diff --git a/src/e_mod_packagekit.c b/src/e_mod_packagekit.c
index d63f73d..0d16d22 100644
--- a/src/e_mod_packagekit.c
+++ b/src/e_mod_packagekit.c
@@ -5,13 +5,18 @@
 
 /* GUI */
 void
-packagekit_icon_update(E_PackageKit_Module_Context *ctxt, const char *state)
+packagekit_icon_update(E_PackageKit_Module_Context *ctxt, const char *state, 
unsigned num)
 {
    E_PackageKit_Instance *inst;
+   char buf[16];
    Eina_List *l;
 
+   if (num) snprintf(buf, sizeof(buf), "%d", num);
    EINA_LIST_FOREACH(ctxt->instances, l, inst)
-     edje_object_signal_emit(inst->gadget, state, "e");
+     {
+        edje_object_signal_emit(inst->gadget, state, "e");
+        edje_object_part_text_set(inst->gadget, "num_updates", num ? buf : "");
+     }
 }
 
 static void
@@ -155,7 +160,7 @@ static void
 _store_error(E_PackageKit_Module_Context *ctxt, const char *err)
 {
    ERR("PKGKIT ERROR: %s", err);
-   packagekit_icon_update(ctxt, "packagekit,state,error");
+   packagekit_icon_update(ctxt, "packagekit,state,error", 0);
    if (ctxt->error)
       eina_stringshare_replace(&ctxt->error, err);
    else
@@ -333,9 +338,9 @@ _signal_finished_cb(void *data, const Eldbus_Message *msg)
      }
    DBG("PKGKIT: PackageFinished, %d updates available", num_updates);
    if (num_updates > 0)
-     packagekit_icon_update(ctxt, "packagekit,state,updates");
+     packagekit_icon_update(ctxt, "packagekit,state,updates", num_updates);
    else
-     packagekit_icon_update(ctxt, "packagekit,state,updated");
+     packagekit_icon_update(ctxt, "packagekit,state,updated", 0);
 }
 
 void
@@ -425,7 +430,7 @@ 
packagekit_create_transaction_and_exec(E_PackageKit_Module_Context *ctxt,
      }
    eldbus_pending_data_set(pending, "func", func);
 
-   packagekit_icon_update(ctxt, "packagekit,state,working");
+   packagekit_icon_update(ctxt, "packagekit,state,working", 0);
 }
 
 
diff --git a/src/e_mod_packagekit.h b/src/e_mod_packagekit.h
index c710389..eec8749 100644
--- a/src/e_mod_packagekit.h
+++ b/src/e_mod_packagekit.h
@@ -92,7 +92,7 @@ void      
packagekit_create_transaction_and_exec(E_PackageKit_Module_Context *ct
 void      packagekit_get_updates(E_PackageKit_Module_Context *ctxt, const char 
*transaction);
 void      packagekit_refresh_cache(E_PackageKit_Module_Context *ctxt, const 
char *transaction);
 
-void      packagekit_icon_update(E_PackageKit_Module_Context *ctxt, const char 
*state);
+void      packagekit_icon_update(E_PackageKit_Module_Context *ctxt, const char 
*state, unsigned num);
 void      packagekit_popup_new(E_PackageKit_Instance *inst);
 void      packagekit_popup_del(E_PackageKit_Instance *inst);
 void      packagekit_popup_update(E_PackageKit_Instance *inst);

-- 


Reply via email to