Enlightenment CVS committal

Author  : kwo
Project : e16
Module  : e

Dir     : e16/e/src


Modified Files:
        E.h buttons.c desktops.c ewins.c ewins.h finders.c tooltips.c 


Log Message:
Tooltip related cleanups.
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/E.h,v
retrieving revision 1.482
retrieving revision 1.483
diff -u -3 -r1.482 -r1.483
--- E.h 15 Aug 2005 17:15:18 -0000      1.482
+++ E.h 20 Aug 2005 08:17:22 -0000      1.483
@@ -1059,7 +1059,6 @@
 int                 ButtonGetRefcount(const Button * b);
 int                 ButtonGetDesk(const Button * b);
 int                 ButtonGetInfo(const Button * b, RectBox * r, int desk);
-ActionClass        *ButtonGetAClass(const Button * b);
 Window              ButtonGetWin(const Button * b);
 int                 ButtonGetWidth(const Button * b);
 int                 ButtonGetHeight(const Button * b);
@@ -1070,6 +1069,8 @@
 int                 ButtonEmbedWindow(Button * ButtonToUse,
                                      Window WindowToEmbed);
 
+int                 ButtonsCheckAclass(Window win, ActionClass ** pac);
+
 /* cmclass.c */
 #if ENABLE_COLOR_MODIFIERS
 void                CreateCurve(ModCurve * c);
@@ -1159,6 +1160,7 @@
 int                 DesksGetNumber(void);
 int                 DesksGetCurrent(void);
 void                DesksSetCurrent(int desk);
+int                 DesksCheckAclass(Window win, ActionClass ** pac);
 void                DesksClear(void);
 void                DesksResize(int w, int h);
 void                DesksEventsConfigure(int mode);
@@ -1380,8 +1382,6 @@
 EWin               *EwinFindByChildren(Window win);
 EWin               *EwinFindByString(const char *win, int type);
 
-Button             *FindButton(Window win);
-ActionClass        *FindActionClass(Window win);
 Group             **ListWinGroups(EWin * ewin, char group_select, int *num);
 EWin              **ListWinGroupMembersForEwin(EWin * ewin, int action,
                                               char nogroup, int *num);
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/buttons.c,v
retrieving revision 1.70
retrieving revision 1.71
diff -u -3 -r1.70 -r1.71
--- buttons.c   15 Aug 2005 16:57:13 -0000      1.70
+++ buttons.c   20 Aug 2005 08:17:22 -0000      1.71
@@ -397,12 +397,6 @@
    return 0;
 }
 
-ActionClass        *
-ButtonGetAClass(const Button * b)
-{
-   return b->aclass;
-}
-
 Window
 ButtonGetWin(const Button * b)
 {
@@ -505,34 +499,6 @@
 }
 
 /*
- * Functions operating on all buttons
- */
-
-Button             *
-FindButton(Window win)
-{
-   Button             *b;
-   Button            **buttons;
-   int                 i, num;
-
-   buttons = (Button **) ListItemType(&num, LIST_TYPE_BUTTON);
-   for (i = 0; i < num; i++)
-     {
-       if ((win == EoGetWin(buttons[i])) || (win == buttons[i]->inside_win)
-           || (win == buttons[i]->event_win))
-         {
-            b = buttons[i];
-            Efree(buttons);
-            return b;
-         }
-     }
-   if (buttons)
-      Efree(buttons);
-
-   return NULL;
-}
-
-/*
  * Button event handlers
  */
 
@@ -701,6 +667,35 @@
 }
 
 /*
+ * Functions operating on all buttons
+ */
+
+int
+ButtonsCheckAclass(Window win, ActionClass ** pac)
+{
+   ActionClass        *ac;
+   Button             *b, **lst;
+   int                 i, num;
+
+   ac = NULL;
+   lst = (Button **) ListItemType(&num, LIST_TYPE_BUTTON);
+   for (i = 0; i < num; i++)
+     {
+       b = lst[i];
+       if (win == EoGetWin(b) || win == b->inside_win || win == b->event_win)
+         {
+            ac = b->aclass;
+            break;
+         }
+     }
+   if (lst)
+      Efree(lst);
+
+   *pac = ac;
+   return ac != NULL;
+}
+
+/*
  * Configuration load/save
  */
 #include "conf.h"
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/desktops.c,v
retrieving revision 1.167
retrieving revision 1.168
diff -u -3 -r1.167 -r1.168
--- desktops.c  15 Aug 2005 16:57:13 -0000      1.167
+++ desktops.c  20 Aug 2005 08:17:22 -0000      1.168
@@ -615,6 +615,24 @@
    desks.current = desk;
 }
 
+int
+DesksCheckAclass(Window win, ActionClass ** pac)
+{
+   Desk               *d;
+   int                 i;
+
+   for (i = 0; i < Conf.desks.num; i++)
+     {
+       d = _DeskGet(i);
+       if (win != EoGetWin(d))
+          continue;
+       *pac = FindItem("DESKBINDINGS", 0, LIST_FINDBY_NAME, LIST_TYPE_ACLASS);
+       return 1;
+     }
+
+   return 0;
+}
+
 void
 DesksClear(void)
 {
@@ -969,7 +987,7 @@
 
    for (i = 0; i < Conf.desks.num; i++)
      {
-       d = DeskGet(i);
+       d = _DeskGet(i);
        if (i && !d->viewable)
           continue;
        if (!d->dirty_stack)
@@ -1272,7 +1290,7 @@
 void
 StackDesktop(int desk)
 {
-   Desk               *d = DeskGet(desk);
+   Desk               *d = _DeskGet(desk);
    Window             *wl;
    int                 i, num, tot;
    EObj               *const *lst, *eo;
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/ewins.c,v
retrieving revision 1.96
retrieving revision 1.97
diff -u -3 -r1.96 -r1.97
--- ewins.c     15 Aug 2005 16:57:13 -0000      1.96
+++ ewins.c     20 Aug 2005 08:17:22 -0000      1.97
@@ -1581,6 +1581,28 @@
    EWinChanges.flags = 0;
 }
 
+int
+EwinsCheckAclass(Window win, ActionClass ** pac)
+{
+   EWin               *ewin, *const *lst;
+   int                 i, j, num;
+
+   lst = EwinListGetAll(&num);
+   for (i = 0; i < num; i++)
+     {
+       ewin = lst[i];
+       for (j = 0; j < ewin->border->num_winparts; j++)
+         {
+            if (win != ewin->bits[j].win)
+               continue;
+            *pac = ewin->border->part[j].aclass;
+            return 1;
+         }
+     }
+
+   return 0;
+}
+
 void
 EwinsEventsConfigure(int mode)
 {
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/ewins.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -3 -r1.6 -r1.7
--- ewins.h     15 Aug 2005 16:57:13 -0000      1.6
+++ ewins.h     20 Aug 2005 08:17:22 -0000      1.7
@@ -260,6 +260,7 @@
 
 void                EwinChange(EWin * ewin, unsigned int flag);
 
+int                 EwinsCheckAclass(Window win, ActionClass ** pac);
 void                EwinsEventsConfigure(int mode);
 void                EwinsSetFree(void);
 void                EwinsShowDesktop(int on);
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/finders.c,v
retrieving revision 1.39
retrieving revision 1.40
diff -u -3 -r1.39 -r1.40
--- finders.c   4 Aug 2005 16:01:54 -0000       1.39
+++ finders.c   20 Aug 2005 08:17:22 -0000      1.40
@@ -140,59 +140,6 @@
    return ewin;
 }
 
-static EWin        *
-FindEwinByDecoration(Window win)
-{
-   EWin               *const *ewins;
-   int                 i, j, num;
-
-   ewins = EwinListGetAll(&num);
-   for (i = 0; i < num; i++)
-     {
-       for (j = 0; j < ewins[i]->border->num_winparts; j++)
-         {
-            if (win == ewins[i]->bits[j].win)
-               return ewins[i];
-         }
-     }
-
-   return NULL;
-}
-
-ActionClass        *
-FindActionClass(Window win)
-{
-   Button             *b;
-   EWin               *ewin;
-   int                 i;
-
-   b = FindButton(win);
-   if (b)
-      return ButtonGetAClass(b);
-
-   ewin = FindEwinByDecoration(win);
-   if (ewin)
-     {
-       for (i = 0; i < ewin->border->num_winparts; i++)
-          if (win == ewin->bits[i].win)
-             return ewin->border->part[i].aclass;
-     }
-
-   for (i = 0; i < Conf.desks.num; i++)
-     {
-       ActionClass        *ac;
-
-       if (win == DeskGetWin(i))
-         {
-            ac = FindItem("DESKBINDINGS", 0, LIST_FINDBY_NAME,
-                          LIST_TYPE_ACLASS);
-            return ac;
-         }
-     }
-
-   return NULL;
-}
-
 Group             **
 ListWinGroups(EWin * ewin, char group_select, int *num)
 {
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/tooltips.c,v
retrieving revision 1.82
retrieving revision 1.83
diff -u -3 -r1.82 -r1.83
--- tooltips.c  14 Aug 2005 21:25:46 -0000      1.82
+++ tooltips.c  20 Aug 2005 08:17:22 -0000      1.83
@@ -710,6 +710,30 @@
 
 static ToolTip     *ttip = NULL;
 
+static ActionClass *
+FindActionClass(Window win, int root_ok)
+{
+   ActionClass        *ac;
+   int                 found;
+
+   found = ButtonsCheckAclass(win, &ac);
+   if (found)
+      return ac;
+
+   found = EwinsCheckAclass(win, &ac);
+   if (found)
+      return ac;
+
+   if (!root_ok)
+      return NULL;
+
+   found = DesksCheckAclass(win, &ac);
+   if (found)
+      return ac;
+
+   return NULL;
+}
+
 static void
 ToolTipTimeout(int val __UNUSED__, void *data __UNUSED__)
 {
@@ -719,6 +743,11 @@
    ActionClass        *ac;
    const char         *tts;
 
+   if (!ttip)
+      ttip = FindItem("DEFAULT", 0, LIST_FINDBY_NAME, LIST_TYPE_TOOLTIP);
+   if (!ttip)
+      return;
+
    /* In the case of multiple screens, check to make sure
     * the root window is still where the mouse is... */
    if (!EQueryPointer(VRoot.win, &x, &y, NULL, &mask))
@@ -734,36 +763,15 @@
       return;
 
    win = WindowAtXY(x, y);
-   ac = FindActionClass(win);
+   ac = FindActionClass(win, Conf_tooltips.showroottooltip);
    if (!ac)
       return;
 
-   if (!ttip)
-      ttip = FindItem("DEFAULT", 0, LIST_FINDBY_NAME, LIST_TYPE_TOOLTIP);
-
    tts = ActionclassGetTooltipString(ac);
-   if (tts)
-     {
-       tts = _(tts);
+   if (!tts)
+      return;
 
-       if (Conf_tooltips.showroottooltip)
-         {
-            TooltipShow(ttip, tts, ac, x, y);
-         }
-       else
-         {
-            int                 i;
-            int                 show = 1;
-
-            for (i = 0; i < Conf.desks.num; i++)
-              {
-                 if (win == DeskGetWin(i))
-                    show = 0;
-              }
-            if (show)
-               TooltipShow(ttip, tts, ac, x, y);
-         }
-     }
+   TooltipShow(ttip, _(tts), ac, x, y);
 }
 
 /*




-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices
Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to