Enlightenment CVS committal

Author  : kwo
Project : e16
Module  : e

Dir     : e16/e/src


Modified Files:
        ewin-ops.c iconify.c 


Log Message:
Iconbox shape and other fixes.
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/ewin-ops.c,v
retrieving revision 1.36
retrieving revision 1.37
diff -u -3 -r1.36 -r1.37
--- ewin-ops.c  14 May 2005 19:40:34 -0000      1.36
+++ ewin-ops.c  15 May 2005 18:29:45 -0000      1.37
@@ -660,10 +660,9 @@
    else
       MoveEwinToDesktopAt(ewin, DesksGetCurrent(), x, y);
 
-   ewin->iconified = 0;
-
    ModulesSignal(ESIGNAL_EWIN_DEICONIFY, ewin);
 
+   ewin->iconified = 0;
    ewin->st.showingdesk = 0;
 
    RaiseEwin(ewin);
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/iconify.c,v
retrieving revision 1.147
retrieving revision 1.148
diff -u -3 -r1.147 -r1.148
--- iconify.c   14 May 2005 19:40:34 -0000      1.147
+++ iconify.c   15 May 2005 18:29:45 -0000      1.148
@@ -378,11 +378,7 @@
                ButtonReleaseMask | PointerMotionMask);
 
    EMapWindow(ib->icon_win);
-   EMapWindow(ib->scroll_win);
-   EMapWindow(ib->arrow1_win);
-   EMapWindow(ib->arrow2_win);
    EMapWindow(ib->scrollbar_win);
-   EMapWindow(ib->scrollbarknob_win);
 
    ib->ewin = NULL;
    ib->num_objs = 0;
@@ -713,6 +709,7 @@
      {
        EobjsRepaint();
        IB_Animate(0, ewin, ib->ewin);
+       IconboxObjEwinDel(ib, ewin);
      }
 }
 
@@ -1212,14 +1209,18 @@
 IB_DrawScroll(Iconbox * ib)
 {
    ImageClass         *ic;
-   char                show_sb = 1;
+   int                 arrow_mode = ib->arrow_side;
+   int                 bs, bw, bx;
+   int                 state;
 
-   if (ib->orientation)
+   switch (ib->orientation)
      {
-       int                 bs, bw, bx;
+     default:
+       if (ib->h < 2 * ib->arrow_thickness + ib->knob_length)
+          arrow_mode = 3;      /* No arrows */
 
        ic = ImageclassFind("ICONBOX_SCROLLBAR_BASE_VERTICAL", 0);
-       if (ib->arrow_side < 3)
+       if (arrow_mode < 3)
           bs = ib->h - (ib->arrow_thickness * 2);
        else
           bs = ib->h;
@@ -1236,177 +1237,143 @@
        if (ic)
           bx += ic->padding.top;
        if ((ib->scrollbar_hide) && (bw == bs))
-          show_sb = 0;
+          goto do_hide_sb;
 
-       ic = ImageclassFind("ICONBOX_SCROLLKNOB_VERTICAL", 0);
-       if ((ic) && (bw > ib->knob_length))
-          EMoveResizeWindow(ib->scrollbarknob_win, 0,
-                            (bw - ib->knob_length) / 2, ib->bar_thickness,
-                            ib->knob_length);
+       EMapWindow(ib->scroll_win);
+       if (arrow_mode < 3)
+         {
+            EMapWindow(ib->arrow1_win);
+            EMapWindow(ib->arrow2_win);
+         }
        else
-          EMoveResizeWindow(ib->scrollbarknob_win, -9999, -9999,
-                            ib->bar_thickness, ib->knob_length);
+         {
+            EUnmapWindow(ib->arrow1_win);
+            EUnmapWindow(ib->arrow2_win);
+         }
 
-       if (show_sb)
+       /* fix this area */
+       if (ib->scrollbar_side == 1)
+          /* right */
          {
-            /* fix this area */
-            if (ib->scrollbar_side == 1)
-               /* right */
+            /* start */
+            if (arrow_mode == 0)
               {
-                 /* start */
-                 if (ib->arrow_side == 0)
-                   {
-                      EMapWindow(ib->arrow1_win);
-                      EMapWindow(ib->arrow2_win);
-                      EMoveResizeWindow(ib->arrow1_win,
-                                        ib->w - ib->scroll_thickness, 0,
-                                        ib->scroll_thickness,
-                                        ib->arrow_thickness);
-                      EMoveResizeWindow(ib->arrow2_win,
-                                        ib->w - ib->scroll_thickness,
-                                        ib->arrow_thickness,
-                                        ib->scroll_thickness,
-                                        ib->arrow_thickness);
-                      EMoveResizeWindow(ib->scroll_win,
-                                        ib->w - ib->scroll_thickness,
-                                        ib->arrow_thickness * 2,
-                                        ib->scroll_thickness,
-                                        ib->h - (ib->arrow_thickness * 2));
-                   }
-                 /* both ends */
-                 else if (ib->arrow_side == 1)
-                   {
-                      EMapWindow(ib->arrow1_win);
-                      EMapWindow(ib->arrow2_win);
-                      EMoveResizeWindow(ib->arrow1_win,
-                                        ib->w - ib->scroll_thickness, 0,
-                                        ib->scroll_thickness,
-                                        ib->arrow_thickness);
-                      EMoveResizeWindow(ib->arrow2_win,
-                                        ib->w - ib->scroll_thickness,
-                                        ib->h - ib->arrow_thickness,
-                                        ib->scroll_thickness,
-                                        ib->arrow_thickness);
-                      EMoveResizeWindow(ib->scroll_win,
-                                        ib->w - ib->scroll_thickness,
-                                        ib->arrow_thickness,
-                                        ib->scroll_thickness,
-                                        ib->h - (ib->arrow_thickness * 2));
-                   }
-                 /* end */
-                 else if (ib->arrow_side == 2)
-                   {
-                      EMapWindow(ib->arrow1_win);
-                      EMapWindow(ib->arrow2_win);
-                      EMoveResizeWindow(ib->arrow1_win,
-                                        ib->w - ib->scroll_thickness,
-                                        ib->h - (ib->arrow_thickness * 2),
-                                        ib->scroll_thickness,
-                                        ib->arrow_thickness);
-                      EMoveResizeWindow(ib->arrow2_win,
-                                        ib->w - ib->scroll_thickness,
-                                        ib->h - ib->arrow_thickness,
-                                        ib->scroll_thickness,
-                                        ib->arrow_thickness);
-                      EMoveResizeWindow(ib->scroll_win,
-                                        ib->w - ib->scroll_thickness, 0,
-                                        ib->scroll_thickness,
-                                        ib->h - (ib->arrow_thickness * 2));
-                   }
-                 /* no arrows */
-                 else
-                   {
-                      EUnmapWindow(ib->arrow1_win);
-                      EUnmapWindow(ib->arrow2_win);
-                      EMoveResizeWindow(ib->scroll_win,
-                                        ib->w - ib->scroll_thickness, 0,
-                                        ib->scroll_thickness, ib->h);
-                   }
+                 EMoveResizeWindow(ib->arrow1_win,
+                                   ib->w - ib->scroll_thickness, 0,
+                                   ib->scroll_thickness, ib->arrow_thickness);
+                 EMoveResizeWindow(ib->arrow2_win,
+                                   ib->w - ib->scroll_thickness,
+                                   ib->arrow_thickness,
+                                   ib->scroll_thickness, ib->arrow_thickness);
+                 EMoveResizeWindow(ib->scroll_win,
+                                   ib->w - ib->scroll_thickness,
+                                   ib->arrow_thickness * 2,
+                                   ib->scroll_thickness,
+                                   ib->h - (ib->arrow_thickness * 2));
+              }
+            /* both ends */
+            else if (arrow_mode == 1)
+              {
+                 EMoveResizeWindow(ib->arrow1_win,
+                                   ib->w - ib->scroll_thickness, 0,
+                                   ib->scroll_thickness, ib->arrow_thickness);
+                 EMoveResizeWindow(ib->arrow2_win,
+                                   ib->w - ib->scroll_thickness,
+                                   ib->h - ib->arrow_thickness,
+                                   ib->scroll_thickness, ib->arrow_thickness);
+                 EMoveResizeWindow(ib->scroll_win,
+                                   ib->w - ib->scroll_thickness,
+                                   ib->arrow_thickness,
+                                   ib->scroll_thickness,
+                                   ib->h - (ib->arrow_thickness * 2));
               }
+            /* end */
+            else if (arrow_mode == 2)
+              {
+                 EMoveResizeWindow(ib->arrow1_win,
+                                   ib->w - ib->scroll_thickness,
+                                   ib->h - (ib->arrow_thickness * 2),
+                                   ib->scroll_thickness, ib->arrow_thickness);
+                 EMoveResizeWindow(ib->arrow2_win,
+                                   ib->w - ib->scroll_thickness,
+                                   ib->h - ib->arrow_thickness,
+                                   ib->scroll_thickness, ib->arrow_thickness);
+                 EMoveResizeWindow(ib->scroll_win,
+                                   ib->w - ib->scroll_thickness, 0,
+                                   ib->scroll_thickness,
+                                   ib->h - (ib->arrow_thickness * 2));
+              }
+            /* no arrows */
             else
-               /* left */
               {
-                 /* start */
-                 if (ib->arrow_side == 0)
-                   {
-                      EMapWindow(ib->arrow1_win);
-                      EMapWindow(ib->arrow2_win);
-                      EMoveResizeWindow(ib->arrow1_win, 0, 0,
-                                        ib->scroll_thickness,
-                                        ib->arrow_thickness);
-                      EMoveResizeWindow(ib->arrow2_win, 0,
-                                        ib->arrow_thickness,
-                                        ib->scroll_thickness,
-                                        ib->arrow_thickness);
-                      EMoveResizeWindow(ib->scroll_win, 0,
-                                        ib->arrow_thickness * 2,
-                                        ib->scroll_thickness,
-                                        ib->h - (ib->arrow_thickness * 2));
-                   }
-                 /* both ends */
-                 else if (ib->arrow_side == 1)
-                   {
-                      EMapWindow(ib->arrow1_win);
-                      EMapWindow(ib->arrow2_win);
-                      EMoveResizeWindow(ib->arrow1_win, 0, 0,
-                                        ib->scroll_thickness,
-                                        ib->arrow_thickness);
-                      EMoveResizeWindow(ib->arrow2_win, 0,
-                                        ib->h - ib->arrow_thickness,
-                                        ib->scroll_thickness,
-                                        ib->arrow_thickness);
-                      EMoveResizeWindow(ib->scroll_win, 0,
-                                        ib->arrow_thickness,
-                                        ib->scroll_thickness,
-                                        ib->h - (ib->arrow_thickness * 2));
-                   }
-                 /* end */
-                 else if (ib->arrow_side == 2)
-                   {
-                      EMapWindow(ib->arrow1_win);
-                      EMapWindow(ib->arrow2_win);
-                      EMoveResizeWindow(ib->arrow1_win, 0,
-                                        ib->h - (ib->arrow_thickness * 2),
-                                        ib->scroll_thickness,
-                                        ib->arrow_thickness);
-                      EMoveResizeWindow(ib->arrow2_win, 0,
-                                        ib->h - ib->arrow_thickness,
-                                        ib->scroll_thickness,
-                                        ib->arrow_thickness);
-                      EMoveResizeWindow(ib->scroll_win, 0, 0,
-                                        ib->scroll_thickness,
-                                        ib->h - (ib->arrow_thickness * 2));
-                   }
-                 /* no arrows */
-                 else
-                   {
-                      EUnmapWindow(ib->arrow1_win);
-                      EUnmapWindow(ib->arrow2_win);
-                      EMoveResizeWindow(ib->scroll_win, 0, 0,
-                                        ib->scroll_thickness, ib->h);
-                   }
+                 EMoveResizeWindow(ib->scroll_win,
+                                   ib->w - ib->scroll_thickness, 0,
+                                   ib->scroll_thickness, ib->h);
               }
          }
        else
+          /* left */
          {
-            EMoveResizeWindow(ib->scroll_win, -9999, -9999, 2, 2);
-            EMoveResizeWindow(ib->arrow1_win, -9999, -9999, 2, 2);
-            EMoveResizeWindow(ib->arrow2_win, -9999, -9999, 2, 2);
+            /* start */
+            if (arrow_mode == 0)
+              {
+                 EMoveResizeWindow(ib->arrow1_win, 0, 0,
+                                   ib->scroll_thickness, ib->arrow_thickness);
+                 EMoveResizeWindow(ib->arrow2_win, 0,
+                                   ib->arrow_thickness,
+                                   ib->scroll_thickness, ib->arrow_thickness);
+                 EMoveResizeWindow(ib->scroll_win, 0,
+                                   ib->arrow_thickness * 2,
+                                   ib->scroll_thickness,
+                                   ib->h - (ib->arrow_thickness * 2));
+              }
+            /* both ends */
+            else if (arrow_mode == 1)
+              {
+                 EMoveResizeWindow(ib->arrow1_win, 0, 0,
+                                   ib->scroll_thickness, ib->arrow_thickness);
+                 EMoveResizeWindow(ib->arrow2_win, 0,
+                                   ib->h - ib->arrow_thickness,
+                                   ib->scroll_thickness, ib->arrow_thickness);
+                 EMoveResizeWindow(ib->scroll_win, 0,
+                                   ib->arrow_thickness,
+                                   ib->scroll_thickness,
+                                   ib->h - (ib->arrow_thickness * 2));
+              }
+            /* end */
+            else if (arrow_mode == 2)
+              {
+                 EMoveResizeWindow(ib->arrow1_win, 0,
+                                   ib->h - (ib->arrow_thickness * 2),
+                                   ib->scroll_thickness, ib->arrow_thickness);
+                 EMoveResizeWindow(ib->arrow2_win, 0,
+                                   ib->h - ib->arrow_thickness,
+                                   ib->scroll_thickness, ib->arrow_thickness);
+                 EMoveResizeWindow(ib->scroll_win, 0, 0,
+                                   ib->scroll_thickness,
+                                   ib->h - (ib->arrow_thickness * 2));
+              }
+            /* no arrows */
+            else
+              {
+                 EMoveResizeWindow(ib->scroll_win, 0, 0,
+                                   ib->scroll_thickness, ib->h);
+              }
          }
-       EMoveResizeWindow(ib->scrollbar_win,
-                         (ib->scroll_thickness - ib->bar_thickness) / 2, bx,
-                         ib->bar_thickness, bw);
 
        ic = ImageclassFind("ICONBOX_SCROLLBAR_BASE_VERTICAL", 0);
        if (ic)
           ImageclassApply(ic, ib->scroll_win, -1, -1, 0, 0, STATE_NORMAL, 0,
                           ST_ICONBOX);
 
+       EMoveResizeWindow(ib->scrollbar_win,
+                         (ib->scroll_thickness - ib->bar_thickness) / 2, bx,
+                         ib->bar_thickness, bw);
+
        ic = ImageclassFind("ICONBOX_SCROLLBAR_KNOB_VERTICAL", 0);
        if (ic)
          {
-            int                 state = STATE_NORMAL;
-
+            state = STATE_NORMAL;
             if (ib->scrollbar_hilited)
                state = STATE_HILITED;
             if (ib->scrollbar_clicked)
@@ -1416,10 +1383,14 @@
          }
 
        ic = ImageclassFind("ICONBOX_SCROLLKNOB_VERTICAL", 0);
-       if (ic)
+       if ((ic) && (bw > ib->knob_length))
          {
-            int                 state = STATE_NORMAL;
+            EMapWindow(ib->scrollbarknob_win);
+            EMoveResizeWindow(ib->scrollbarknob_win, 0,
+                              (bw - ib->knob_length) / 2, ib->bar_thickness,
+                              ib->knob_length);
 
+            state = STATE_NORMAL;
             if (ib->scrollbar_hilited)
                state = STATE_HILITED;
             if (ib->scrollbar_clicked)
@@ -1427,40 +1398,45 @@
             ImageclassApply(ic, ib->scrollbarknob_win, -1, -1, 0, 0, state, 0,
                             ST_ICONBOX);
          }
-
-       ic = ImageclassFind("ICONBOX_ARROW_UP", 0);
-       if (ic)
+       else
          {
-            int                 state = STATE_NORMAL;
-
-            if (ib->arrow1_hilited)
-               state = STATE_HILITED;
-            if (ib->arrow1_clicked)
-               state = STATE_CLICKED;
-            ImageclassApply(ic, ib->arrow1_win, -1, -1, 0, 0, state, 0,
-                            ST_ICONBOX);
+            EUnmapWindow(ib->scrollbarknob_win);
          }
 
-       ic = ImageclassFind("ICONBOX_ARROW_DOWN", 0);
-       if (ic)
+       if (arrow_mode < 3)
          {
-            int                 state = STATE_NORMAL;
+            ic = ImageclassFind("ICONBOX_ARROW_UP", 0);
+            if (ic)
+              {
+                 state = STATE_NORMAL;
+                 if (ib->arrow1_hilited)
+                    state = STATE_HILITED;
+                 if (ib->arrow1_clicked)
+                    state = STATE_CLICKED;
+                 ImageclassApply(ic, ib->arrow1_win, -1, -1, 0, 0, state, 0,
+                                 ST_ICONBOX);
+              }
 
-            if (ib->arrow2_hilited)
-               state = STATE_HILITED;
-            if (ib->arrow2_clicked)
-               state = STATE_CLICKED;
-            ImageclassApply(ic, ib->arrow2_win, -1, -1, 0, 0, state, 0,
-                            ST_ICONBOX);
+            ic = ImageclassFind("ICONBOX_ARROW_DOWN", 0);
+            if (ic)
+              {
+                 state = STATE_NORMAL;
+                 if (ib->arrow2_hilited)
+                    state = STATE_HILITED;
+                 if (ib->arrow2_clicked)
+                    state = STATE_CLICKED;
+                 ImageclassApply(ic, ib->arrow2_win, -1, -1, 0, 0, state, 0,
+                                 ST_ICONBOX);
+              }
          }
-       /* remove this coment when fixed */
-     }
-   else
-     {
-       int                 bs, bw, bx;
+       break;
+
+     case 0:
+       if (ib->w < 2 * ib->arrow_thickness + ib->knob_length)
+          arrow_mode = 3;      /* No arrows */
 
        ic = ImageclassFind("ICONBOX_SCROLLBAR_BASE_HORIZONTAL", 0);
-       if (ib->arrow_side < 3)
+       if (arrow_mode < 3)
           bs = ib->w - (ib->arrow_thickness * 2);
        else
           bs = ib->w;
@@ -1477,161 +1453,127 @@
        if (ic)
           bx += ic->padding.left;
        if ((ib->scrollbar_hide) && (bw == bs))
-          show_sb = 0;
+          goto do_hide_sb;
 
-       ic = ImageclassFind("ICONBOX_SCROLLKNOB_HORIZONTAL", 0);
-       if ((ic) && (bw > ib->knob_length))
-          EMoveResizeWindow(ib->scrollbarknob_win,
-                            (bw - ib->knob_length) / 2, 0, ib->knob_length,
-                            ib->bar_thickness);
+       EMapWindow(ib->scroll_win);
+       if (arrow_mode < 3)
+         {
+            EMapWindow(ib->arrow1_win);
+            EMapWindow(ib->arrow2_win);
+         }
        else
-          EMoveResizeWindow(ib->scrollbarknob_win, -9999, -9999,
-                            ib->knob_length, ib->bar_thickness);
+         {
+            EUnmapWindow(ib->arrow1_win);
+            EUnmapWindow(ib->arrow2_win);
+         }
 
-       if (show_sb)
+       if (ib->scrollbar_side == 1)
+          /* bottom */
          {
-            if (ib->scrollbar_side == 1)
-               /* bottom */
+            /* start */
+            if (arrow_mode == 0)
               {
-                 /* start */
-                 if (ib->arrow_side == 0)
-                   {
-                      EMapWindow(ib->arrow1_win);
-                      EMapWindow(ib->arrow2_win);
-                      EMoveResizeWindow(ib->arrow1_win, 0,
-                                        ib->h - ib->scroll_thickness,
-                                        ib->arrow_thickness,
-                                        ib->scroll_thickness);
-                      EMoveResizeWindow(ib->arrow2_win,
-                                        ib->arrow_thickness,
-                                        ib->h - ib->scroll_thickness,
-                                        ib->arrow_thickness,
-                                        ib->scroll_thickness);
-                      EMoveResizeWindow(ib->scroll_win,
-                                        ib->arrow_thickness * 2,
-                                        ib->h - ib->scroll_thickness,
-                                        ib->w - (ib->arrow_thickness * 2),
-                                        ib->scroll_thickness);
-                   }
-                 /* both ends */
-                 else if (ib->arrow_side == 1)
-                   {
-                      EMapWindow(ib->arrow1_win);
-                      EMapWindow(ib->arrow2_win);
-                      EMoveResizeWindow(ib->arrow1_win, 0,
-                                        ib->h - ib->scroll_thickness,
-                                        ib->arrow_thickness,
-                                        ib->scroll_thickness);
-                      EMoveResizeWindow(ib->arrow2_win,
-                                        ib->w - ib->arrow_thickness,
-                                        ib->h - ib->scroll_thickness,
-                                        ib->arrow_thickness,
-                                        ib->scroll_thickness);
-                      EMoveResizeWindow(ib->scroll_win,
-                                        ib->arrow_thickness,
-                                        ib->h - ib->scroll_thickness,
-                                        ib->w - (ib->arrow_thickness * 2),
-                                        ib->scroll_thickness);
-                   }
-                 /* end */
-                 else if (ib->arrow_side == 2)
-                   {
-                      EMapWindow(ib->arrow1_win);
-                      EMapWindow(ib->arrow2_win);
-                      EMoveResizeWindow(ib->arrow1_win,
-                                        ib->w - (ib->arrow_thickness * 2),
-                                        ib->h - ib->scroll_thickness,
-                                        ib->arrow_thickness,
-                                        ib->scroll_thickness);
-                      EMoveResizeWindow(ib->arrow2_win,
-                                        ib->w - ib->arrow_thickness,
-                                        ib->h - ib->scroll_thickness,
-                                        ib->arrow_thickness,
-                                        ib->scroll_thickness);
-                      EMoveResizeWindow(ib->scroll_win, 0,
-                                        ib->h - ib->scroll_thickness,
-                                        ib->w - (ib->arrow_thickness * 2),
-                                        ib->scroll_thickness);
-                   }
-                 /* no arrows */
-                 else
-                   {
-                      EUnmapWindow(ib->arrow1_win);
-                      EUnmapWindow(ib->arrow2_win);
-                      EMoveResizeWindow(ib->scroll_win, 0,
-                                        ib->h - ib->scroll_thickness, ib->w,
-                                        ib->scroll_thickness);
-                   }
+                 EMoveResizeWindow(ib->arrow1_win, 0,
+                                   ib->h - ib->scroll_thickness,
+                                   ib->arrow_thickness, ib->scroll_thickness);
+                 EMoveResizeWindow(ib->arrow2_win,
+                                   ib->arrow_thickness,
+                                   ib->h - ib->scroll_thickness,
+                                   ib->arrow_thickness, ib->scroll_thickness);
+                 EMoveResizeWindow(ib->scroll_win,
+                                   ib->arrow_thickness * 2,
+                                   ib->h - ib->scroll_thickness,
+                                   ib->w - (ib->arrow_thickness * 2),
+                                   ib->scroll_thickness);
               }
+            /* both ends */
+            else if (arrow_mode == 1)
+              {
+                 EMoveResizeWindow(ib->arrow1_win, 0,
+                                   ib->h - ib->scroll_thickness,
+                                   ib->arrow_thickness, ib->scroll_thickness);
+                 EMoveResizeWindow(ib->arrow2_win,
+                                   ib->w - ib->arrow_thickness,
+                                   ib->h - ib->scroll_thickness,
+                                   ib->arrow_thickness, ib->scroll_thickness);
+                 EMoveResizeWindow(ib->scroll_win,
+                                   ib->arrow_thickness,
+                                   ib->h - ib->scroll_thickness,
+                                   ib->w - (ib->arrow_thickness * 2),
+                                   ib->scroll_thickness);
+              }
+            /* end */
+            else if (arrow_mode == 2)
+              {
+                 EMoveResizeWindow(ib->arrow1_win,
+                                   ib->w - (ib->arrow_thickness * 2),
+                                   ib->h - ib->scroll_thickness,
+                                   ib->arrow_thickness, ib->scroll_thickness);
+                 EMoveResizeWindow(ib->arrow2_win,
+                                   ib->w - ib->arrow_thickness,
+                                   ib->h - ib->scroll_thickness,
+                                   ib->arrow_thickness, ib->scroll_thickness);
+                 EMoveResizeWindow(ib->scroll_win, 0,
+                                   ib->h - ib->scroll_thickness,
+                                   ib->w - (ib->arrow_thickness * 2),
+                                   ib->scroll_thickness);
+              }
+            /* no arrows */
             else
-               /* top */
               {
-                 /* start */
-                 if (ib->arrow_side == 0)
-                   {
-                      EMapWindow(ib->arrow1_win);
-                      EMapWindow(ib->arrow2_win);
-                      EMoveResizeWindow(ib->arrow1_win, 0, 0,
-                                        ib->arrow_thickness,
-                                        ib->scroll_thickness);
-                      EMoveResizeWindow(ib->arrow2_win,
-                                        ib->arrow_thickness, 0,
-                                        ib->arrow_thickness,
-                                        ib->scroll_thickness);
-                      EMoveResizeWindow(ib->scroll_win,
-                                        ib->arrow_thickness * 2, 0,
-                                        ib->w - (ib->arrow_thickness * 2),
-                                        ib->scroll_thickness);
-                   }
-                 /* both ends */
-                 else if (ib->arrow_side == 1)
-                   {
-                      EMapWindow(ib->arrow1_win);
-                      EMapWindow(ib->arrow2_win);
-                      EMoveResizeWindow(ib->arrow1_win, 0, 0,
-                                        ib->arrow_thickness,
-                                        ib->scroll_thickness);
-                      EMoveResizeWindow(ib->arrow2_win,
-                                        ib->w - ib->arrow_thickness, 0,
-                                        ib->arrow_thickness,
-                                        ib->scroll_thickness);
-                      EMoveResizeWindow(ib->scroll_win,
-                                        ib->arrow_thickness, 0,
-                                        ib->w - (ib->arrow_thickness * 2),
-                                        ib->scroll_thickness);
-                   }
-                 /* end */
-                 else if (ib->arrow_side == 2)
-                   {
-                      EMapWindow(ib->arrow1_win);
-                      EMapWindow(ib->arrow2_win);
-                      EMoveResizeWindow(ib->arrow1_win,
-                                        ib->w - (ib->arrow_thickness * 2), 0,
-                                        ib->arrow_thickness,
-                                        ib->scroll_thickness);
-                      EMoveResizeWindow(ib->arrow2_win,
-                                        ib->w - ib->arrow_thickness, 0,
-                                        ib->arrow_thickness,
-                                        ib->scroll_thickness);
-                      EMoveResizeWindow(ib->scroll_win, 0, 0,
-                                        ib->w - (ib->arrow_thickness * 2),
-                                        ib->scroll_thickness);
-                   }
-                 /* no arrows */
-                 else
-                   {
-                      EUnmapWindow(ib->arrow1_win);
-                      EUnmapWindow(ib->arrow2_win);
-                      EMoveResizeWindow(ib->scroll_win, 0, 0, ib->w,
-                                        ib->scroll_thickness);
-                   }
+                 EMoveResizeWindow(ib->scroll_win, 0,
+                                   ib->h - ib->scroll_thickness, ib->w,
+                                   ib->scroll_thickness);
               }
          }
        else
+          /* top */
          {
-            EMoveResizeWindow(ib->scroll_win, -9999, -9999, 2, 2);
-            EMoveResizeWindow(ib->arrow1_win, -9999, -9999, 2, 2);
-            EMoveResizeWindow(ib->arrow2_win, -9999, -9999, 2, 2);
+            /* start */
+            if (arrow_mode == 0)
+              {
+                 EMoveResizeWindow(ib->arrow1_win, 0, 0,
+                                   ib->arrow_thickness, ib->scroll_thickness);
+                 EMoveResizeWindow(ib->arrow2_win,
+                                   ib->arrow_thickness, 0,
+                                   ib->arrow_thickness, ib->scroll_thickness);
+                 EMoveResizeWindow(ib->scroll_win,
+                                   ib->arrow_thickness * 2, 0,
+                                   ib->w - (ib->arrow_thickness * 2),
+                                   ib->scroll_thickness);
+              }
+            /* both ends */
+            else if (arrow_mode == 1)
+              {
+                 EMoveResizeWindow(ib->arrow1_win, 0, 0,
+                                   ib->arrow_thickness, ib->scroll_thickness);
+                 EMoveResizeWindow(ib->arrow2_win,
+                                   ib->w - ib->arrow_thickness, 0,
+                                   ib->arrow_thickness, ib->scroll_thickness);
+                 EMoveResizeWindow(ib->scroll_win,
+                                   ib->arrow_thickness, 0,
+                                   ib->w - (ib->arrow_thickness * 2),
+                                   ib->scroll_thickness);
+              }
+            /* end */
+            else if (arrow_mode == 2)
+              {
+                 EMoveResizeWindow(ib->arrow1_win,
+                                   ib->w - (ib->arrow_thickness * 2), 0,
+                                   ib->arrow_thickness, ib->scroll_thickness);
+                 EMoveResizeWindow(ib->arrow2_win,
+                                   ib->w - ib->arrow_thickness, 0,
+                                   ib->arrow_thickness, ib->scroll_thickness);
+                 EMoveResizeWindow(ib->scroll_win, 0, 0,
+                                   ib->w - (ib->arrow_thickness * 2),
+                                   ib->scroll_thickness);
+              }
+            /* no arrows */
+            else
+              {
+                 EMoveResizeWindow(ib->scroll_win, 0, 0, ib->w,
+                                   ib->scroll_thickness);
+              }
          }
 
        EMoveResizeWindow(ib->scrollbar_win, bx,
@@ -1646,8 +1588,7 @@
        ic = ImageclassFind("ICONBOX_SCROLLBAR_KNOB_HORIZONTAL", 0);
        if (ic)
          {
-            int                 state = STATE_NORMAL;
-
+            state = STATE_NORMAL;
             if (ib->scrollbar_hilited)
                state = STATE_HILITED;
             if (ib->scrollbar_clicked)
@@ -1657,10 +1598,14 @@
          }
 
        ic = ImageclassFind("ICONBOX_SCROLLKNOB_HORIZONTAL", 0);
-       if (ic)
+       if ((ic) && (bw > ib->knob_length))
          {
-            int                 state = STATE_NORMAL;
+            EMapWindow(ib->scrollbarknob_win);
+            EMoveResizeWindow(ib->scrollbarknob_win,
+                              (bw - ib->knob_length) / 2, 0, ib->knob_length,
+                              ib->bar_thickness);
 
+            state = STATE_NORMAL;
             if (ib->scrollbar_hilited)
                state = STATE_HILITED;
             if (ib->scrollbar_clicked)
@@ -1668,33 +1613,46 @@
             ImageclassApply(ic, ib->scrollbarknob_win, -1, -1, 0, 0, state, 0,
                             ST_ICONBOX);
          }
-
-       ic = ImageclassFind("ICONBOX_ARROW_LEFT", 0);
-       if (ic)
+       else
          {
-            int                 state = STATE_NORMAL;
-
-            if (ib->arrow1_hilited)
-               state = STATE_HILITED;
-            if (ib->arrow1_clicked)
-               state = STATE_CLICKED;
-            ImageclassApply(ic, ib->arrow1_win, -1, -1, 0, 0, state, 0,
-                            ST_ICONBOX);
+            EUnmapWindow(ib->scrollbarknob_win);
          }
 
-       ic = ImageclassFind("ICONBOX_ARROW_RIGHT", 0);
-       if (ic)
+       if (arrow_mode < 3)
          {
-            int                 state = STATE_NORMAL;
+            ic = ImageclassFind("ICONBOX_ARROW_LEFT", 0);
+            if (ic)
+              {
+                 state = STATE_NORMAL;
+                 if (ib->arrow1_hilited)
+                    state = STATE_HILITED;
+                 if (ib->arrow1_clicked)
+                    state = STATE_CLICKED;
+                 ImageclassApply(ic, ib->arrow1_win, -1, -1, 0, 0, state, 0,
+                                 ST_ICONBOX);
+              }
 
-            if (ib->arrow2_hilited)
-               state = STATE_HILITED;
-            if (ib->arrow2_clicked)
-               state = STATE_CLICKED;
-            ImageclassApply(ic, ib->arrow2_win, -1, -1, 0, 0, state, 0,
-                            ST_ICONBOX);
+            ic = ImageclassFind("ICONBOX_ARROW_RIGHT", 0);
+            if (ic)
+              {
+                 state = STATE_NORMAL;
+                 if (ib->arrow2_hilited)
+                    state = STATE_HILITED;
+                 if (ib->arrow2_clicked)
+                    state = STATE_CLICKED;
+                 ImageclassApply(ic, ib->arrow2_win, -1, -1, 0, 0, state, 0,
+                                 ST_ICONBOX);
+              }
          }
+       break;
+
+      do_hide_sb:
+       EUnmapWindow(ib->scroll_win);
+       EUnmapWindow(ib->arrow1_win);
+       EUnmapWindow(ib->arrow2_win);
+       break;
      }
+
 #if 0                          /* FIXME - Remove? */
    PropagateShapes(ib->win);
    if (ib->ewin)
@@ -1868,9 +1826,12 @@
        EUnmapWindow(ib->cover_win);
      }
 
-   if (ib->ic_box &&
-       ((ib->type == IB_TYPE_ICONBOX && !ib->nobg) ||
-       (ib->type == IB_TYPE_SYSTRAY && (!ib->nobg || !ib->draw_icon_base))))
+   if (ib->nobg && ib->num_objs == 0)
+     {
+       im = NULL;
+     }
+   else if (ib->ic_box &&
+           (!ib->nobg || (ib->type == IB_TYPE_SYSTRAY && !ib->draw_icon_base)))
      {
        /* Start out with iconbox image class image */
        im2 = ImageclassGetImage(ib->ic_box, 0, 0, STATE_NORMAL);
@@ -1942,21 +1903,28 @@
          }
      }
 
-   imlib_context_set_drawable(ib->icon_win);
-   imlib_context_set_image(im);
-   imlib_image_set_has_alpha(1);
-   pmap = mask = None;
-   imlib_render_pixmaps_for_whole_image(&pmap, &mask);
-   ESetWindowBackgroundPixmap(ib->icon_win, pmap);
-   EShapeCombineMask(ib->icon_win, ShapeBounding, 0, 0, mask, ShapeSet);
-   if (ib->nobg && ib->num_objs == 0)
-      EMoveWindow(ib->icon_win, -ib->w, -ib->h);
-   imlib_free_pixmap_and_mask(pmap);
-   imlib_free_image();
-   EClearWindow(ib->icon_win);
+   if (im)
+     {
+       EMapWindow(ib->icon_win);
+       imlib_context_set_drawable(ib->icon_win);
+       imlib_context_set_image(im);
+       imlib_image_set_has_alpha(1);
+       pmap = mask = None;
+       imlib_render_pixmaps_for_whole_image(&pmap, &mask);
+       ESetWindowBackgroundPixmap(ib->icon_win, pmap);
+       EShapeCombineMask(ib->icon_win, ShapeBounding, 0, 0, mask, ShapeSet);
+       imlib_free_pixmap_and_mask(pmap);
+       imlib_free_image();
+       EClearWindow(ib->icon_win);
 
-   if (ib->type == IB_TYPE_SYSTRAY && ib->nobg && !ib->draw_icon_base)
-      PropagateShapes(ib->icon_win);
+       if (ib->type == IB_TYPE_SYSTRAY && ib->nobg && !ib->draw_icon_base)
+          PropagateShapes(ib->icon_win);
+     }
+   else
+     {
+       /* Transparent and no objects */
+       EUnmapWindow(ib->icon_win);
+     }
    PropagateShapes(ib->win);
    ICCCM_GetShapeInfo(ib->ewin);
    ib->ewin->shapedone = 0;
@@ -2884,7 +2852,6 @@
        break;
      case ESIGNAL_EWIN_DEICONIFY:
        ewin = (EWin *) prm;
-       RemoveMiniIcon(ewin);
        IconboxesEwinDeIconify(ewin);
        break;
      case ESIGNAL_EWIN_DESTROY:




-------------------------------------------------------
This SF.Net email is sponsored by Oracle Space Sweepstakes
Want to be the first software developer in space?
Enter now for the Oracle Space Sweepstakes!
http://ads.osdn.com/?ad_id=7393&alloc_id=16281&op=click
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to