Enlightenment CVS committal

Author  : lordchaos
Project : e17
Module  : libs/ewl

Dir     : e17/libs/ewl/src/lib


Modified Files:
        ewl_iconbox.c ewl_iconbox.h 


Log Message:
Add some layout functions

===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/lib/ewl_iconbox.c,v
retrieving revision 1.38
retrieving revision 1.39
diff -u -3 -r1.38 -r1.39
--- ewl_iconbox.c       21 Oct 2005 12:51:34 -0000      1.38
+++ ewl_iconbox.c       22 Oct 2005 00:16:50 -0000      1.39
@@ -4,13 +4,6 @@
 #include "ewl_private.h"
 
 
-int mouse_state = 0;
-static int nextx=0;
-
-
-
-
-
 /*Ecore_List *ewl_iconbox_icon_list;*/
 
 /**
@@ -165,6 +158,9 @@
        ewl_object_fill_policy_set(EWL_OBJECT(ib->ewl_iconbox_menu_floater), 
EWL_FLAG_FILL_FILL);
 
 
+       /*Set the defaults to 0*/
+       ib->lx = ib->ly = ib->iw = ib->ih = 0;
+       
        
        /* Get the context menu ready */
        ib->ewl_iconbox_context_menu = ewl_imenu_new();
@@ -289,6 +285,11 @@
 
 
 
+void ewl_iconbox_icon_size_custom_set(Ewl_IconBox* ib, int w, int h) {
+       ib->iw = w;
+       ib->ih = h;
+}
+
 
 
 void ewl_iconbox_context_menu_item_add(Ewl_IconBox* ib, Ewl_Widget* item) {
@@ -605,13 +606,10 @@
 Ewl_IconBox_Icon* ewl_iconbox_icon_add(Ewl_IconBox* iconbox, char* name, char* 
icon_file)
 {
        Ewl_Widget* ib;
-       /*ib = malloc(sizeof(Ewl_IconBox_Icon));*/
-       /*printf ("Making an icon called '%s'\n", name);*/
+       int sw, sh;
 
        ib = ewl_iconbox_icon_new();
 
-
-
        EWL_ICONBOX_ICON(ib)->selected = 0;
        EWL_ICONBOX_ICON(ib)->floater = ewl_floater_new();
        ewl_floater_follow_set(EWL_FLOATER( EWL_ICONBOX_ICON(ib)->floater ),
@@ -643,9 +641,19 @@
         */
        
ewl_container_child_append(EWL_CONTAINER(iconbox->ewl_iconbox_pane_inner), 
EWL_WIDGET(EWL_ICONBOX_ICON(ib)->floater));
 
-       /* Find the enxt pos for this icon FIXME add this to layout engine */
-       ewl_floater_position_set(EWL_FLOATER(EWL_ICONBOX_ICON(ib)->floater), 
nextx, 0);
-       nextx += 75;
+       
+       /*----------------------*/
+       /*Get the icon next position*/
+       
ewl_object_current_size_get(EWL_OBJECT(iconbox->ewl_iconbox_scrollpane), 
&sw,&sh);
+       ewl_floater_position_set(EWL_FLOATER(EWL_ICONBOX_ICON(ib)->floater), 
iconbox->lx, iconbox->ly);
+
+       if (iconbox->lx + iconbox->iw + EWL_ICONBOX_ICON_PADDING > sw ) {
+               iconbox->ly += EWL_ICONBOX_ICON_PADDING + iconbox->ih;
+               iconbox->lx = 0;
+       } else {
+               iconbox->lx += EWL_ICONBOX_ICON_PADDING + iconbox->iw;  
+       }
+       /*----------------------*/
 
 
        /*Show*/
@@ -683,7 +691,6 @@
 void ewl_iconbox_clear(Ewl_IconBox* ib)
 {
        Ewl_IconBox_Icon* list_item;
-       nextx = 0;
 
        /*printf("*** Deleting all icons...\n");*/
 
@@ -703,6 +710,8 @@
        }
 
        ib->drag_icon = NULL;
+       ib->lx = 0;
+       ib->ly = 0;
        
 }
 
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/lib/ewl_iconbox.h,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -3 -r1.15 -r1.16
--- ewl_iconbox.h       21 Oct 2005 12:51:34 -0000      1.15
+++ ewl_iconbox.h       22 Oct 2005 00:16:50 -0000      1.16
@@ -78,6 +78,8 @@
        Ewl_IconBox_Icon* edit_icon;
        int xdown, ydown;                  /* Last icon button down x/y, for 
edge resistence */
        int dx, dy;                        /* Drag start x/y */
+       int lx, ly;                        /*Layout x, layout y */
+       int iw, ih;                        /*Custom icon width/height*/
 
        /*Background*/
        Evas_Object* background;
@@ -106,6 +108,7 @@
 
 
 /* External functions */
+void ewl_iconbox_icon_size_custom_set(Ewl_IconBox* ib, int w, int h);
 void ewl_iconbox_editable_set(Ewl_IconBox *ib, int edit);
 void ewl_iconbox_icon_arrange(Ewl_IconBox* ib);
 void ewl_iconbox_deselect_all(Ewl_IconBox* ib);




-------------------------------------------------------
This SF.Net email is sponsored by:
Power Architecture Resource Center: Free content, downloads, discussions,
and more. http://solutions.newsforge.com/ibmarch.tmpl
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to