okra pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=ae9966970b3a7cd19197d009056fb5a6eb69aa6d

commit ae9966970b3a7cd19197d009056fb5a6eb69aa6d
Author: Stephen 'Okra' Houston <smhousto...@gmail.com>
Date:   Wed Aug 23 15:27:39 2017 -0500

    Pager gadget: Take advantage of new theme. For this to work, you must 
update EFL first.
---
 src/modules/pager/gadget/pager.c | 120 ++++++++++++++++++++++++++++++++++++++-
 1 file changed, 118 insertions(+), 2 deletions(-)

diff --git a/src/modules/pager/gadget/pager.c b/src/modules/pager/gadget/pager.c
index e3f8f8a96..23c7726d6 100644
--- a/src/modules/pager/gadget/pager.c
+++ b/src/modules/pager/gadget/pager.c
@@ -140,6 +140,108 @@ static Eina_List *pagers = NULL;
 static E_Action *act_popup_show = NULL;
 static E_Action *act_popup_switch = NULL;
 
+static const char *
+_pager_location_get(Instance *inst)
+{
+   const char *s = "float";
+
+   if (!inst) return NULL;
+
+   E_Gadget_Site_Orient orient = 
e_gadget_site_orient_get(e_gadget_site_get(inst->o_pager));
+   E_Gadget_Site_Anchor anchor = 
e_gadget_site_anchor_get(e_gadget_site_get(inst->o_pager));
+
+   if (anchor & E_GADGET_SITE_ANCHOR_LEFT)
+     {
+        if (anchor & E_GADGET_SITE_ANCHOR_TOP)
+          {
+             switch (orient)
+               {
+                case E_GADGET_SITE_ORIENT_HORIZONTAL:
+                  s = "top";
+                  break;
+                case E_GADGET_SITE_ORIENT_VERTICAL:
+                  s = "left";
+                  break;
+                case E_GADGET_SITE_ORIENT_NONE:
+                  s = "left";
+                  break;
+               }
+          }
+        else if (anchor & E_GADGET_SITE_ANCHOR_BOTTOM)
+          {
+             switch (orient)
+               {
+                case E_GADGET_SITE_ORIENT_HORIZONTAL:
+                  s = "bottom";
+                  break;
+                case E_GADGET_SITE_ORIENT_VERTICAL:
+                  s = "left";
+                  break;
+                case E_GADGET_SITE_ORIENT_NONE:
+                  s = "left";
+                  break;
+               }
+          }
+        else
+          s = "left";
+     }
+   else if (anchor & E_GADGET_SITE_ANCHOR_RIGHT)
+     {
+        if (anchor & E_GADGET_SITE_ANCHOR_TOP)
+          {
+             switch (orient)
+               {
+                case E_GADGET_SITE_ORIENT_HORIZONTAL:
+                  s = "top";
+                  break;
+                case E_GADGET_SITE_ORIENT_VERTICAL:
+                  s = "right";
+                  break;
+                case E_GADGET_SITE_ORIENT_NONE:
+                  s = "right";
+                  break;
+               }
+          }
+        else if (anchor & E_GADGET_SITE_ANCHOR_BOTTOM)
+          {
+             switch (orient)
+               {
+                case E_GADGET_SITE_ORIENT_HORIZONTAL:
+                  s = "bottom";
+                  break;
+                case E_GADGET_SITE_ORIENT_VERTICAL:
+                  s = "right";
+                  break;
+                case E_GADGET_SITE_ORIENT_NONE:
+                  s = "right";
+                  break;
+               }
+          }
+        else
+          s = "right";
+     }
+   else if (anchor & E_GADGET_SITE_ANCHOR_TOP)
+     s = "top";
+   else if (anchor & E_GADGET_SITE_ANCHOR_BOTTOM)
+     s = "bottom";
+   else
+     {
+        switch (orient)
+          {
+           case E_GADGET_SITE_ORIENT_HORIZONTAL:
+             s = "bottom";
+             break;
+           case E_GADGET_SITE_ORIENT_VERTICAL:
+             s = "left";
+             break;
+           default:
+             s = "bottom";
+             break;
+          }
+     }
+   return s;
+}
+
 static Eina_Bool
 _pager_check_modifiers(Evas_Modifier *modifiers)
 {
@@ -502,6 +604,8 @@ _pager_desk_free(Pager_Desk *pd)
 static void
 _pager_desk_select(Pager_Desk *pd)
 {
+   char ori[32];
+   const char *s = _pager_location_get(pd->pager->inst);
    if (pd->current) return;
    if (pd->pager->active_pd)
      {
@@ -510,7 +614,11 @@ _pager_desk_select(Pager_Desk *pd)
      }
    pd->current = 1;
    evas_object_raise(pd->o_desk);
-   edje_object_signal_emit(pd->o_desk, "e,state,selected", "e");
+   if (s) 
+     snprintf(ori, sizeof(ori), "e,state,selected,%s", s);
+   else
+     snprintf(ori, sizeof(ori), "e,state,selected,bottom");
+   edje_object_signal_emit(pd->o_desk, ori, "e");
    pd->pager->active_pd = pd;
 }
 
@@ -859,7 +967,15 @@ _pager_cb_config_gadget_updated(void)
      EINA_LIST_FOREACH(p->desks, ll, pd)
        {
           if (pd->current)
-            edje_object_signal_emit(pd->o_desk, "e,state,selected", "e");
+            {
+               char ori[32];
+              const char *s = _pager_location_get(pd->pager->inst);
+               if (s)
+                 snprintf(ori, sizeof(ori), "e,state,selected,%s", s);
+               else
+                 snprintf(ori, sizeof(ori), "e,state,selected,bottom");
+               edje_object_signal_emit(pd->o_desk, ori, "e");
+            }
           else
             edje_object_signal_emit(pd->o_desk, "e,state,unselected", "e");
           if (pager_config->show_desk_names)

-- 


Reply via email to