Enlightenment CVS committal
Author : moom
Project : e17
Module : proto
Dir : e17/proto/etk/src/lib
Modified Files:
etk_box.c etk_box.h etk_button.c etk_dialog.c
etk_message_dialog.c etk_toolbar.c
Log Message:
** BIG API BREAK **
The API of Etk_Box has been changed, etk_box_pack_start() and
etk_box_pack_end() doesn't exist anymore and have been replaced by a
bunch of other functions.
Most (probably all) of the apps are broken, you need to fix them! :)
===================================================================
RCS file: /cvs/e/e17/proto/etk/src/lib/etk_box.c,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -3 -r1.12 -r1.13
--- etk_box.c 13 May 2006 23:44:40 -0000 1.12
+++ etk_box.c 15 Aug 2006 15:59:01 -0000 1.13
@@ -11,10 +11,9 @@
typedef struct Etk_Box_Cell
{
Etk_Widget *child;
+ Etk_Box_Group group;
+ Etk_Box_Fill_Policy fill_policy;
int padding;
- Etk_Bool expand;
- Etk_Bool fill;
- Etk_Bool pack_end;
} Etk_Box_Cell;
enum Etk_Box_Property_Id
@@ -30,7 +29,6 @@
static void _etk_box_child_add(Etk_Container *container, Etk_Widget *widget);
static void _etk_box_child_remove(Etk_Container *container, Etk_Widget
*widget);
static Evas_List *_etk_box_children_get(Etk_Container *container);
-static void _etk_box_pack_full(Etk_Box *box, Etk_Widget *child, Etk_Bool
expand, Etk_Bool fill, int padding, Etk_Bool pack_end);
static void _etk_hbox_constructor(Etk_HBox *hbox);
static void _etk_hbox_size_request(Etk_Widget *widget, Etk_Size *size);
@@ -40,6 +38,10 @@
static void _etk_vbox_size_request(Etk_Widget *widget, Etk_Size *size);
static void _etk_vbox_size_allocate(Etk_Widget *widget, Etk_Geometry geometry);
+static void _etk_box_insert_after_cell(Etk_Box *box, Etk_Widget *child,
Etk_Box_Group group, Etk_Box_Cell *after, Etk_Box_Fill_Policy fill_policy, int
padding);
+static Etk_Box_Cell *_etk_box_cell_get(Etk_Box *box, Etk_Widget *widget);
+
+
/**************************
*
* Implementation
@@ -126,123 +128,228 @@
}
/**
- * @brief Adds the child at the start of the box. @n
- * Repeated calls to etk_box_pack_start() will pack widgets from start to end
- * (left to right for an Etk_HBbox, top to bottom for an Etk_VBox)
+ * @brief Packs a widget at the start of one of the two groups of children of
the box
* @param box a box
- * @param child the child to add
- * @param expand if @a expand == ETK_TRUE, the cell that contains the child
will take all the available space
- * @param fill if @a fill == ETK_TRUE, the child will fill all the available
space in its cell
- * @param padding the amount of free space on the two sides of the child
+ * @param child the widget to pack
+ * @param group the group in which the child will be packed
+ * @param fill_policy the fill policy of the child
+ * @param padding the amount of free space on the two sides of the child, in
pixels
*/
-void etk_box_pack_start(Etk_Box *box, Etk_Widget *child, Etk_Bool expand,
Etk_Bool fill, int padding)
+void etk_box_prepend(Etk_Box *box, Etk_Widget *child, Etk_Box_Group group,
Etk_Box_Fill_Policy fill_policy, int padding)
{
- _etk_box_pack_full(box, child, expand, fill, padding, ETK_FALSE);
+ if (!box || !child)
+ return;
+ _etk_box_insert_after_cell(box, child, group, NULL, fill_policy, padding);
}
/**
- * @brief Adds the child at the end of the box. @n
- * Repeated calls to etk_box_pack_end() will pack widgets from end to start
- * (right to left for Etk_HBbox, bottom to top for Etk_VBox)
+ * @brief Packs a widget at the end of one of the groups of children of the box
* @param box a box
- * @param child the child to add
- * @param expand if @a expand == ETK_TRUE, the cell that contains the child
will take all the available space
- * @param fill if @a fill == ETK_TRUE, the child will fill all the available
space in its cell
- * @param padding the amount of free space on the two sides of the child
- * @note To pack several widgets in a specific order, at the end of a box, you
have to call etk_box_pack_end() in
- * the reverse order
+ * @param child the widget to pack
+ * @param group the group in which the child will be packed
+ * @param fill_policy the fill policy of the child
+ * @param padding the amount of free space on the two sides of the child, in
pixels
*/
-void etk_box_pack_end(Etk_Box *box, Etk_Widget *child, Etk_Bool expand,
Etk_Bool fill, int padding)
+void etk_box_append(Etk_Box *box, Etk_Widget *child, Etk_Box_Group group,
Etk_Box_Fill_Policy fill_policy, int padding)
{
- _etk_box_pack_full(box, child, expand, fill, padding, ETK_TRUE);
+ Etk_Box_Cell *after_cell;
+
+ if (!box || !child)
+ return;
+
+ after_cell = evas_list_data(evas_list_last(box->cells[group]));
+ _etk_box_insert_after_cell(box, child, group, after_cell, fill_policy,
padding);
}
/**
- * @brief Sets the packing settings of a child of the box
+ * @brief Packs a widget after another widget, in one of the groups of
children of the box
* @param box a box
- * @param child a child of the box. If @a child is not packed in the box, this
function has no effect
- * @param padding the padding to set to the child. See etk_box_pack_start()
for more information
- * @param expand the expand setting to set to the child. See
etk_box_pack_start() for more information
- * @param fill the fill setting to set to the child. See etk_box_pack_start()
for more information
- * @param pack_end whether or not the child is packed at the end of the box.
- * See etk_box_pack_start() for more information
- * @see etk_box_pack_start()
+ * @param child the widget to pack
+ * @param group the group in which the child will be packed
+ * @param after the child after which @a child will be packed. If @a after is
NULL, @a child will be packed at the start
+ * of the group
+ * @param fill_policy the fill policy of the child
+ * @param padding the amount of free space on the two sides of the child, in
pixels
+ * @warning @a after has to be packed in the group @a group, or it'll have no
effect
+ */
+void etk_box_insert(Etk_Box *box, Etk_Widget *child, Etk_Box_Group group,
Etk_Widget *after, Etk_Box_Fill_Policy fill_policy, int padding)
+{
+ Etk_Box_Cell *after_cell;
+
+ if (!box || !child)
+ return;
+
+ after_cell = _etk_box_cell_get(box, after);
+ _etk_box_insert_after_cell(box, child, group, after_cell, fill_policy,
padding);
+}
+
+/**
+ * @brief Packs a widget at a given position, in one of the groups of children
of the box
+ * @param box a box
+ * @param child the widget to pack
+ * @param group the group in which the child will be packed
+ * @param pos the position where to pack @a child (starting from 0). If @a pos
<= 0, @a child will be packed at the
+ * start of the group of children, and if @a pos is greater than the number of
children in the group, it will be packed
+ * at the end
+ * @param fill_policy the fill policy of the child
+ * @param padding the amount of free space on the two sides of the child, in
pixels
+ */
+void etk_box_insert_at(Etk_Box *box, Etk_Widget *child, Etk_Box_Group group,
int pos, Etk_Box_Fill_Policy fill_policy, int padding)
+{
+ Etk_Box_Cell *after_cell;
+
+ if (!box || !child)
+ return;
+
+ if (pos <= 0)
+ after_cell = NULL;
+ else if (pos >= evas_list_count(box->cells[group]))
+ after_cell = evas_list_data(evas_list_last(box->cells[group]));
+ else
+ after_cell = evas_list_nth(box->cells[group], pos - 1);
+
+ _etk_box_insert_after_cell(box, child, group, after_cell, fill_policy,
padding);
+}
+
+/**
+ * @brief Gets the child at a given position in the box
+ * @param box a box
+ * @param group the group in which the child you want to get is
+ * @param pos the position of the child you want to get (starting from 0)
+ * @return Returns the child at the given position, or NULL on failure
*/
-void etk_box_child_packing_set(Etk_Box *box, Etk_Widget *child, int padding,
Etk_Bool expand, Etk_Bool fill, Etk_Bool pack_end)
+Etk_Widget *etk_box_child_get_at(Etk_Box *box, Etk_Box_Group group, int pos)
+{
+ Etk_Box_Cell *cell;
+
+ if (!box)
+ return NULL;
+
+ if (!(cell = evas_list_nth(box->cells[group], pos)))
+ return NULL;
+ else
+ return cell->child;
+}
+
+/**
+ * @brief Sets the position of a child of the box
+ * @param box a box
+ * @param child the child you want to change the position of
+ * @param group the group in which the child will be repacked
+ * @param pos the position where to repack @a child (starting from 0). If @a
pos <= 0, @a child will be packed at the
+ * start of the group of children, and if @a pos is greater than the number of
children in the group, it will be packed
+ * at the end
+ */
+void etk_box_child_position_set(Etk_Box *box, Etk_Widget *child, Etk_Box_Group
group, int pos)
+{
+ Etk_Box_Cell *cell;
+ Evas_List *l;
+
+ if (!box || !child || !(cell = _etk_box_cell_get(box, child)))
+ return;
+
+ box->cells[cell->group] = evas_list_remove(box->cells[cell->group], cell);
+ if (pos <= 0)
+ box->cells[group] = evas_list_prepend(box->cells[group], cell);
+ else if (pos >= evas_list_count(box->cells[group]))
+ box->cells[group] = evas_list_append(box->cells[group], cell);
+ else
+ {
+ l = evas_list_nth_list(box->cells[group], pos - 1);
+ box->cells[group] = evas_list_append_relative_list(box->cells[group],
cell, l);
+ }
+ etk_widget_redraw_queue(ETK_WIDGET(box));
+}
+
+/**
+ * @brief Gets the position of a child of the box
+ * @param box a box
+ * @param child the child you want to get the position of
+ * @param group the location where to store the group in which the child is
+ * @param pos the location where to store the position of the child
+ * @return Returns ETK_TRUE on success, ETK_FALSE on failure (because @a child
is not a child of the box)
+ */
+Etk_Bool etk_box_child_position_get(Etk_Box *box, Etk_Widget *child,
Etk_Box_Group *group, int *pos)
{
Evas_List *l;
Etk_Box_Cell *cell;
+ int i;
if (!box || !child)
- return;
+ return ETK_FALSE;
- for (l = box->cells; l; l = l->next)
+ if (!(cell = _etk_box_cell_get(box, child)))
+ return ETK_FALSE;
+ else
{
- cell = l->data;
-
- if (cell->child == child)
+ for (i = 0, l = box->cells[cell->group]; l; i++, l = l->next)
{
- cell->padding = padding;
- cell->expand = expand;
- cell->fill = fill;
- cell->pack_end = pack_end;
- etk_widget_size_recalc_queue(ETK_WIDGET(box));
- return;
+ if (cell == (Etk_Box_Cell *)l->data)
+ {
+ if (group)
+ *group = cell->group;
+ if (pos)
+ *pos = i;
+ return ETK_TRUE;
+ }
}
+ return ETK_FALSE;
}
}
/**
- * @brief Gets the packing settings of a child of the box
+ * @brief Sets the packing settings of a child of the box
* @param box a box
- * @param child a child of the box. It has to be packed in the box.
- * @param padding the location to store the padding of the child. See
etk_box_pack_start() for more information
- * @param expand the location to store the expand setting of the child. See
etk_box_pack_start() for more information
- * @param fill the location to store the fill setting of the child. See
etk_box_pack_start() for more information
- * @param pack_end the location to store whether or not the child is packed at
the end of the box.
- * See etk_box_pack_start() for more information
- * @see etk_box_pack_start()
+ * @param child a child of the box. If @a child is not packed in the box, this
function has no effect
+ * @param fill policy the fill policy of the child
+ * @param padding the amount of free space on the two sides of the child, in
pixels
*/
-void etk_box_child_packing_get(Etk_Box *box, Etk_Widget *child, int *padding,
Etk_Bool *expand, Etk_Bool *fill, Etk_Bool *pack_end)
+void etk_box_child_packing_set(Etk_Box *box, Etk_Widget *child,
Etk_Box_Fill_Policy fill_policy, int padding)
{
- Evas_List *l;
Etk_Box_Cell *cell;
if (!box || !child)
return;
- for (l = box->cells; l; l = l->next)
+ if ((cell = _etk_box_cell_get(box, child)))
{
- cell = l->data;
-
- if (cell->child == child)
- {
- if (padding)
- *padding = cell->padding;
- if (expand)
- *expand = cell->expand;
- if (fill)
- *fill = cell->fill;
- if (pack_end)
- *pack_end = cell->pack_end;
- return;
- }
+ cell->fill_policy = fill_policy;
+ cell->padding = padding;
+ etk_widget_size_recalc_queue(ETK_WIDGET(box));
+ }
+}
+
+/**
+ * @brief Gets the packing settings of a child of the box
+ * @param box a box
+ * @param child a child of the box
+ * @param fill policy the location where to store the fill policy of the child
+ * @param padding the location where to store the padding of the child
+ * @param Returns ETK_TRUE on success, and ETK_FALSE on failure (because @a
child is not packed in @a box)
+ */
+Etk_Bool etk_box_child_packing_get(Etk_Box *box, Etk_Widget *child,
Etk_Box_Fill_Policy *fill_policy, int *padding)
+{
+ Etk_Box_Cell *cell;
+
+ if (!box || !child)
+ return ETK_FALSE;
+
+ if ((cell = _etk_box_cell_get(box, child)))
+ {
+ if (fill_policy)
+ *fill_policy = cell->fill_policy;
+ if (padding)
+ *padding = cell->padding;
+ return ETK_TRUE;
}
- if (padding)
- *padding = 0;
- if (expand)
- *expand = ETK_FALSE;
- if (fill)
- *fill = ETK_FALSE;
- if (pack_end)
- *pack_end = ETK_FALSE;
+ return ETK_FALSE;
}
/**
* @brief Sets the amount of free space between two cells
* @param box a box
- * @param spacing the amount of free space between two cells
+ * @param spacing the amount of free space between two cells, in pixels
*/
void etk_box_spacing_set(Etk_Box *box, int spacing)
{
@@ -257,7 +364,7 @@
/**
* @brief Gets the amount of free space between two cells
* @param box a box
- * @return Returns the amount of free space between two cells
+ * @return Returns the amount of free space between two cells, in pixels
*/
int etk_box_spacing_get(Etk_Box *box)
{
@@ -269,7 +376,7 @@
/**
* @brief Sets whether or not all the cells of the box should have the same
size
* @param box a box
- * @param homogeneous if @a homogeneous == ETK_TRUE, all the cells will have
the same size
+ * @param homogeneous if @a homogeneous is ETK_TRUE, all the cells will have
the same size
*/
void etk_box_homogeneous_set(Etk_Box *box, Etk_Bool homogeneous)
{
@@ -309,10 +416,12 @@
if (!box)
return;
- box->cells = NULL;
+ box->cells[ETK_BOX_START] = NULL;
+ box->cells[ETK_BOX_END] = NULL;
+ box->request_sizes[ETK_BOX_START] = NULL;
+ box->request_sizes[ETK_BOX_END] = NULL;
box->spacing = 0;
box->homogeneous = ETK_FALSE;
- box->requested_sizes = NULL;
ETK_CONTAINER(box)->child_add = _etk_box_child_add;
ETK_CONTAINER(box)->child_remove = _etk_box_child_remove;
@@ -323,15 +432,20 @@
/* Destroys the box */
static void _etk_box_destructor(Etk_Box *box)
{
+ int i;
+
if (!box)
return;
- while (box->cells)
+ for (i = 0; i < 2; i++)
{
- free(box->cells->data);
- box->cells = evas_list_remove_list(box->cells, box->cells);
+ while (box->cells[i])
+ {
+ free(box->cells[i]->data);
+ box->cells[i] = evas_list_remove_list(box->cells[i], box->cells[i]);
+ }
+ free(box->request_sizes[i]);
}
- free(box->requested_sizes);
}
/* Sets the property whose id is "property_id" to the value "value" */
@@ -379,31 +493,27 @@
/* Adds a child to the box */
static void _etk_box_child_add(Etk_Container *container, Etk_Widget *widget)
{
- etk_box_pack_start(ETK_BOX(container), widget, ETK_TRUE, ETK_TRUE, 0);
+ etk_box_append(ETK_BOX(container), widget, ETK_BOX_START, ETK_BOX_NONE, 0);
}
/* Removes the child from the box */
static void _etk_box_child_remove(Etk_Container *container, Etk_Widget *widget)
{
+ Etk_Widget *box_widget;
Etk_Box *box;
- Evas_List *l;
Etk_Box_Cell *cell;
- if (!(box = ETK_BOX(container)) || !widget || (widget->parent !=
ETK_WIDGET(container)))
+ if (!(box_widget = ETK_WIDGET(container)) || !widget || (widget->parent !=
box_widget))
return;
-
- for (l = box->cells; l; l = l->next)
+
+ box = ETK_BOX(box_widget);
+ if ((cell = _etk_box_cell_get(box, widget)))
{
- cell = l->data;
- if (cell->child == widget)
- {
- etk_widget_parent_set_full(widget, NULL, ETK_FALSE);
- free(cell);
- box->cells = evas_list_remove_list(box->cells, l);
- ETK_WIDGET(box)->focus_order =
evas_list_remove(ETK_WIDGET(box)->focus_order, widget);
- etk_widget_size_recalc_queue(ETK_WIDGET(box));
- return;
- }
+ box->cells[cell->group] = evas_list_remove(box->cells[cell->group],
cell);
+ box_widget->focus_order = evas_list_remove(box_widget->focus_order,
widget);
+ etk_widget_parent_set_full(widget, NULL, ETK_FALSE);
+ etk_widget_size_recalc_queue(box_widget);
+ free(cell);
}
}
@@ -413,15 +523,19 @@
Etk_Box *box;
Evas_List *children, *l;
Etk_Box_Cell *cell;
+ int i;
if (!(box = ETK_BOX(container)))
return NULL;
children = NULL;
- for (l = box->cells; l; l = l->next)
+ for (i = 0; i < 2; i++)
{
- cell = l->data;
- children = evas_list_append(children, cell->child);
+ for (l = box->cells[i]; l; l = l->next)
+ {
+ cell = l->data;
+ children = evas_list_append(children, cell->child);
+ }
}
return children;
@@ -452,7 +566,7 @@
Etk_Widget *child;
Etk_Size child_size;
int num_children, num_visible_children;
- int i;
+ int i, j;
if (!(hbox = ETK_HBOX(widget)) || !size)
return;
@@ -461,41 +575,48 @@
container = ETK_CONTAINER(hbox);
size->w = 0;
size->h = 0;
- num_children = evas_list_count(box->cells);
num_visible_children = 0;
- box->requested_sizes = realloc(box->requested_sizes, num_children *
sizeof(int));
-
- for (l = box->cells, i = 0; l; l = l->next, i++)
+
+ for (i = 0; i < 2; i++)
{
- cell = l->data;
- child = cell->child;
- box->requested_sizes[i] = 0;
-
- if (!etk_widget_is_visible(child))
- continue;
-
- etk_widget_size_request(child, &child_size);
-
- if (box->homogeneous)
+ num_children = evas_list_count(box->cells[i]);
+ box->request_sizes[i] = realloc(box->request_sizes[i], num_children *
sizeof(int));
+ for (l = box->cells[i], j = 0; l; l = l->next, j++)
{
- if (size->w < child_size.w + 2 * cell->padding)
- size->w = child_size.w + 2 * cell->padding;
- }
- else
- {
- box->requested_sizes[i] = child_size.w + 2 * cell->padding;
- size->w += box->requested_sizes[i];
- }
+ cell = l->data;
+ child = cell->child;
+ box->request_sizes[i][j] = 0;
+
+ if (!etk_widget_is_visible(child))
+ continue;
+
+ etk_widget_size_request(child, &child_size);
+
+ if (box->homogeneous)
+ {
+ if (size->w < child_size.w + 2 * cell->padding)
+ size->w = child_size.w + 2 * cell->padding;
+ }
+ else
+ {
+ box->request_sizes[i][j] = child_size.w + 2 * cell->padding;
+ size->w += box->request_sizes[i][j];
+ }
- if (size->h < child_size.h)
- size->h = child_size.h;
-
- num_visible_children++;
+ if (size->h < child_size.h)
+ size->h = child_size.h;
+
+ num_visible_children++;
+ }
}
if (box->homogeneous)
{
- for (i = 0; i < num_children; i++)
- box->requested_sizes[i] = size->w;
+ for (i = 0; i < 2; i++)
+ {
+ num_children = evas_list_count(box->cells[i]);
+ for (j = 0; j < num_children; j++)
+ box->request_sizes[i][j] = size->w;
+ }
size->w *= num_visible_children;
}
if (num_visible_children > 1)
@@ -517,7 +638,8 @@
Etk_Size requested_size;
Etk_Size allocated_size;
Etk_Geometry child_geometry;
- int num_children_to_expand = 0, i;
+ int num_children_to_expand = 0;
+ int i, j;
float start_offset, end_offset;
if (!(hbox = ETK_HBOX(widget)))
@@ -531,7 +653,7 @@
requested_size.h -= 2 * container->border_width;
allocated_size.w = geometry.w - 2 * container->border_width;
allocated_size.h = geometry.h - 2 * container->border_width;
-
+
start_offset = container->border_width;
end_offset = container->border_width;
@@ -540,50 +662,61 @@
float ratio;
ratio = (float)allocated_size.w / requested_size.w;
- for (l = box->cells, i = 0; l; l = l->next, i++)
+ for (i = 0; i < 2; i++)
{
- cell = l->data;
- child = cell->child;
-
- if (!etk_widget_is_visible(child))
- continue;
-
- child_geometry.y = geometry.y + container->border_width;
- child_geometry.w = box->requested_sizes[i] * ratio;
- child_geometry.h = allocated_size.h;
-
- if (!cell->pack_end)
- {
- child_geometry.x = geometry.x + start_offset;
- start_offset += child_geometry.w + box->spacing;
- }
- else
+ j = 0;
+ l = (i == ETK_BOX_START) ? box->cells[i] :
evas_list_last(box->cells[i]);
+ while (l)
{
- child_geometry.x = geometry.x + geometry.w - end_offset -
child_geometry.w;
- end_offset += child_geometry.w + box->spacing;
+ cell = l->data;
+ child = cell->child;
+
+ if (etk_widget_is_visible(child))
+ {
+ child_geometry.y = geometry.y + container->border_width;
+ child_geometry.w = box->request_sizes[i][j] * ratio;
+ child_geometry.h = allocated_size.h;
+
+ if (cell->group == ETK_BOX_START)
+ {
+ child_geometry.x = geometry.x + start_offset;
+ start_offset += child_geometry.w + box->spacing;
+ }
+ else
+ {
+ child_geometry.x = geometry.x + geometry.w - end_offset -
child_geometry.w;
+ end_offset += child_geometry.w + box->spacing;
+ }
+
+ child_geometry.x += cell->padding;
+ child_geometry.w -= 2 * cell->padding;
+
+ etk_container_child_space_fill(child, &child_geometry,
cell->fill_policy & ETK_BOX_FILL, ETK_TRUE, 0.5, 0.5);
+ etk_widget_size_allocate(child, child_geometry);
+ }
+
+ l = (i == ETK_BOX_START) ? l->next : l->prev;
+ j = (i == ETK_BOX_START) ? (j + 1) : (j - 1);
}
-
- child_geometry.x += cell->padding;
- child_geometry.w -= 2 * cell->padding;
-
- etk_container_child_space_fill(child, &child_geometry, cell->fill,
ETK_TRUE, 0.5, 0.5);
- etk_widget_size_allocate(child, child_geometry);
}
}
else
{
float free_space;
- for (l = box->cells; l; l = l->next)
+ for (i = 0; i < 2; i++)
{
- cell = l->data;
- child = cell->child;
-
- if (!etk_widget_is_visible(child))
- continue;
-
- if (cell->expand)
- num_children_to_expand++;
+ for (l = box->cells[i]; l; l = l->next)
+ {
+ cell = l->data;
+ child = cell->child;
+
+ if (!etk_widget_is_visible(child))
+ continue;
+
+ if (cell->fill_policy & ETK_BOX_EXPAND)
+ num_children_to_expand++;
+ }
}
if (num_children_to_expand <= 0)
@@ -591,36 +724,44 @@
else
free_space = (float)(allocated_size.w - requested_size.w) /
num_children_to_expand;
- for (l = box->cells, i = 0; l; l = l->next, i++)
+ for (i = 0; i < 2; i++)
{
- cell = l->data;
- child = cell->child;
-
- if (!etk_widget_is_visible(child))
- continue;
-
- child_geometry.y = geometry.y + container->border_width;
- child_geometry.w = box->requested_sizes[i];
- if (cell->expand)
- child_geometry.w += free_space;
- child_geometry.h = allocated_size.h;
-
- if (!cell->pack_end)
- {
- child_geometry.x = geometry.x + start_offset;
- start_offset += child_geometry.w + box->spacing;
- }
- else
+ j = (i == ETK_BOX_START) ? 0 : (evas_list_count(box->cells[i]) - 1);
+ l = (i == ETK_BOX_START) ? box->cells[i] :
evas_list_last(box->cells[i]);
+ while (l)
{
- child_geometry.x = geometry.x + geometry.w - end_offset -
child_geometry.w;
- end_offset += child_geometry.w + box->spacing;
+ cell = l->data;
+ child = cell->child;
+
+ if (etk_widget_is_visible(child))
+ {
+ child_geometry.y = geometry.y + container->border_width;
+ child_geometry.w = box->request_sizes[i][j];
+ child_geometry.h = allocated_size.h;
+ if (cell->fill_policy & ETK_BOX_EXPAND)
+ child_geometry.w += free_space;
+
+ if (cell->group == ETK_BOX_START)
+ {
+ child_geometry.x = geometry.x + start_offset;
+ start_offset += child_geometry.w + box->spacing;
+ }
+ else
+ {
+ child_geometry.x = geometry.x + geometry.w - end_offset -
child_geometry.w;
+ end_offset += child_geometry.w + box->spacing;
+ }
+
+ child_geometry.x += cell->padding;
+ child_geometry.w -= 2 * cell->padding;
+
+ etk_container_child_space_fill(child, &child_geometry,
cell->fill_policy & ETK_BOX_FILL, ETK_TRUE, 0.5, 0.5);
+ etk_widget_size_allocate(child, child_geometry);
+ }
+
+ l = (i == ETK_BOX_START) ? l->next : l->prev;
+ j = (i == ETK_BOX_START) ? (j + 1) : (j - 1);
}
-
- child_geometry.x += cell->padding;
- child_geometry.w -= 2 * cell->padding;
-
- etk_container_child_space_fill(child, &child_geometry, cell->fill,
ETK_TRUE, 0.5, 0.5);
- etk_widget_size_allocate(child, child_geometry);
}
}
}
@@ -650,7 +791,7 @@
Etk_Widget *child;
Etk_Size child_size;
int num_children, num_visible_children;
- int i;
+ int i, j;
if (!(vbox = ETK_VBOX(widget)) || !size)
return;
@@ -659,41 +800,48 @@
container = ETK_CONTAINER(vbox);
size->w = 0;
size->h = 0;
- num_children = evas_list_count(box->cells);
num_visible_children = 0;
- box->requested_sizes = realloc(box->requested_sizes, num_children *
sizeof(int));
-
- for (l = box->cells, i = 0; l; l = l->next, i++)
+
+ for (i = 0; i < 2; i++)
{
- cell = l->data;
- child = cell->child;
- box->requested_sizes[i] = 0;
-
- if (!etk_widget_is_visible(child))
- continue;
-
- etk_widget_size_request(child, &child_size);
-
- if (box->homogeneous)
+ num_children = evas_list_count(box->cells[i]);
+ box->request_sizes[i] = realloc(box->request_sizes[i], num_children *
sizeof(int));
+ for (l = box->cells[i], j = 0; l; l = l->next, j++)
{
- if (size->h < child_size.h + 2 * cell->padding)
- size->h = child_size.h + 2 * cell->padding;
- }
- else
- {
- box->requested_sizes[i] = child_size.h + 2 * cell->padding;
- size->h += box->requested_sizes[i];
- }
+ cell = l->data;
+ child = cell->child;
+ box->request_sizes[i][j] = 0;
+
+ if (!etk_widget_is_visible(child))
+ continue;
+
+ etk_widget_size_request(child, &child_size);
+
+ if (box->homogeneous)
+ {
+ if (size->h < child_size.h + 2 * cell->padding)
+ size->h = child_size.h + 2 * cell->padding;
+ }
+ else
+ {
+ box->request_sizes[i][j] = child_size.h + 2 * cell->padding;
+ size->h += box->request_sizes[i][j];
+ }
- if (size->w < child_size.w)
- size->w = child_size.w;
-
- num_visible_children++;
+ if (size->w < child_size.w)
+ size->w = child_size.w;
+
+ num_visible_children++;
+ }
}
if (box->homogeneous)
{
- for (i = 0; i < num_children; i++)
- box->requested_sizes[i] = size->h;
+ for (i = 0; i < 2; i++)
+ {
+ num_children = evas_list_count(box->cells[i]);
+ for (j = 0; j < num_children; j++)
+ box->request_sizes[i][j] = size->h;
+ }
size->h *= num_visible_children;
}
if (num_visible_children > 1)
@@ -715,7 +863,8 @@
Etk_Size requested_size;
Etk_Size allocated_size;
Etk_Geometry child_geometry;
- int num_children_to_expand = 0, i;
+ int num_children_to_expand = 0;
+ int i, j;
float start_offset, end_offset;
if (!(vbox = ETK_VBOX(widget)))
@@ -732,56 +881,67 @@
start_offset = container->border_width;
end_offset = container->border_width;
-
+
if (allocated_size.h <= requested_size.h)
{
float ratio;
ratio = (float)allocated_size.h / requested_size.h;
- for (l = box->cells, i = 0; l; l = l->next, i++)
+ for (i = 0; i < 2; i++)
{
- cell = l->data;
- child = cell->child;
-
- if (!etk_widget_is_visible(child))
- continue;
-
- child_geometry.x = geometry.x + container->border_width;
- child_geometry.w = allocated_size.w;
- child_geometry.h = box->requested_sizes[i] * ratio;
-
- if (!cell->pack_end)
- {
- child_geometry.y = geometry.y + start_offset;
- start_offset += child_geometry.h + box->spacing;
- }
- else
+ j = 0;
+ l = (i == ETK_BOX_START) ? box->cells[i] :
evas_list_last(box->cells[i]);
+ while (l)
{
- child_geometry.y = geometry.y + geometry.h - end_offset -
child_geometry.h;
- end_offset += child_geometry.h + box->spacing;
+ cell = l->data;
+ child = cell->child;
+
+ if (etk_widget_is_visible(child))
+ {
+ child_geometry.x = geometry.x + container->border_width;
+ child_geometry.w = allocated_size.w;
+ child_geometry.h = box->request_sizes[i][j] * ratio;
+
+ if (cell->group == ETK_BOX_START)
+ {
+ child_geometry.y = geometry.y + start_offset;
+ start_offset += child_geometry.h + box->spacing;
+ }
+ else
+ {
+ child_geometry.y = geometry.y + geometry.h - end_offset -
child_geometry.h;
+ end_offset += child_geometry.h + box->spacing;
+ }
+
+ child_geometry.y += cell->padding;
+ child_geometry.h -= 2 * cell->padding;
+
+ etk_container_child_space_fill(child, &child_geometry,
ETK_TRUE, cell->fill_policy & ETK_BOX_FILL, 0.5, 0.5);
+ etk_widget_size_allocate(child, child_geometry);
+ }
+
+ l = (i == ETK_BOX_START) ? l->next : l->prev;
+ j = (i == ETK_BOX_START) ? (j + 1) : (j - 1);
}
-
- child_geometry.y += cell->padding;
- child_geometry.h -= 2 * cell->padding;
-
- etk_container_child_space_fill(child, &child_geometry, ETK_TRUE,
cell->fill, 0.5, 0.5);
- etk_widget_size_allocate(child, child_geometry);
}
}
else
{
float free_space;
- for (l = box->cells; l; l = l->next)
+ for (i = 0; i < 2; i++)
{
- cell = l->data;
- child = cell->child;
-
- if (!etk_widget_is_visible(child))
- continue;
-
- if (cell->expand)
- num_children_to_expand++;
+ for (l = box->cells[i]; l; l = l->next)
+ {
+ cell = l->data;
+ child = cell->child;
+
+ if (!etk_widget_is_visible(child))
+ continue;
+
+ if (cell->fill_policy & ETK_BOX_EXPAND)
+ num_children_to_expand++;
+ }
}
if (num_children_to_expand <= 0)
@@ -789,36 +949,44 @@
else
free_space = (float)(allocated_size.h - requested_size.h) /
num_children_to_expand;
- for (l = box->cells, i = 0; l; l = l->next, i++)
+ for (i = 0; i < 2; i++)
{
- cell = l->data;
- child = cell->child;
-
- if (!etk_widget_is_visible(child))
- continue;
-
- child_geometry.x = geometry.x + container->border_width;
- child_geometry.w = allocated_size.w;
- child_geometry.h = box->requested_sizes[i];
- if (cell->expand)
- child_geometry.h += free_space;
-
- if (!cell->pack_end)
+ j = 0;
+ l = (i == ETK_BOX_START) ? box->cells[i] :
evas_list_last(box->cells[i]);
+ while (l)
{
- child_geometry.y = geometry.y + start_offset;
- start_offset += child_geometry.h + box->spacing;
+ cell = l->data;
+ child = cell->child;
+
+ if (etk_widget_is_visible(child))
+ {
+ child_geometry.x = geometry.x + container->border_width;
+ child_geometry.w = allocated_size.w;
+ child_geometry.h = box->request_sizes[i][j];
+ if (cell->fill_policy & ETK_BOX_EXPAND)
+ child_geometry.h += free_space;
+
+ if (cell->group == ETK_BOX_START)
+ {
+ child_geometry.y = geometry.y + start_offset;
+ start_offset += child_geometry.h + box->spacing;
+ }
+ else
+ {
+ child_geometry.y = geometry.y + geometry.h - end_offset -
child_geometry.h;
+ end_offset += child_geometry.h + box->spacing;
+ }
+
+ child_geometry.y += cell->padding;
+ child_geometry.h -= 2 * cell->padding;
+
+ etk_container_child_space_fill(child, &child_geometry,
ETK_TRUE, cell->fill_policy & ETK_BOX_FILL, 0.5, 0.5);
+ etk_widget_size_allocate(child, child_geometry);
+ }
+
+ l = (i == ETK_BOX_START) ? l->next : l->prev;
+ j = (i == ETK_BOX_START) ? (j + 1) : (j - 1);
}
- else
- {
- child_geometry.y = geometry.y + geometry.h - end_offset -
child_geometry.h;
- end_offset += child_geometry.h + box->spacing;
- }
-
- child_geometry.y += cell->padding;
- child_geometry.h -= 2 * cell->padding;
-
- etk_container_child_space_fill(child, &child_geometry, ETK_TRUE,
cell->fill, 0.5, 0.5);
- etk_widget_size_allocate(child, child_geometry);
}
}
}
@@ -829,36 +997,71 @@
*
**************************/
-/* Adds the "child" to the "box" : "expand" and "fill" describe its fill
policy, "padding" is the amount of space
- * on the sides of the child and. If "pack_end" == ETK_TRUE, the child will be
packed at the end of the box */
-static void _etk_box_pack_full(Etk_Box *box, Etk_Widget *child, Etk_Bool
expand, Etk_Bool fill, int padding, Etk_Bool pack_end)
+/* Adds a child to the box, after the child contained in the cell "after" */
+static void _etk_box_insert_after_cell(Etk_Box *box, Etk_Widget *child,
Etk_Box_Group group, Etk_Box_Cell *after, Etk_Box_Fill_Policy fill_policy, int
padding)
{
- Etk_Box_Cell *cell, *last_cell;
+ Etk_Box_Cell *cell, *c;
+ Etk_Widget *box_widget;
if (!box || !child)
return;
+ if (after && after->group != group)
+ {
+ ETK_WARNING("The child to pack and the widget after which the child
should be packed "
+ "do not belong to the same start/end-group");
+ return;
+ }
+
+ box_widget = ETK_WIDGET(box);
cell = malloc(sizeof(Etk_Box_Cell));
- cell->expand = expand;
- cell->fill = fill;
- cell->padding = padding;
- cell->pack_end = pack_end;
cell->child = child;
+ cell->group = group;
+ cell->fill_policy = fill_policy;
+ cell->padding = padding;
- /* Adds the child in the focus_order list, at the right place */
- last_cell = evas_list_data(evas_list_last(box->cells));
- if (!last_cell || !evas_list_find(ETK_WIDGET(box)->focus_order,
last_cell->child))
- ETK_WIDGET(box)->focus_order =
evas_list_append(ETK_WIDGET(box)->focus_order, child);
- else
+ if (!after)
{
- if (last_cell->pack_end)
- ETK_WIDGET(box)->focus_order =
evas_list_prepend_relative(ETK_WIDGET(box)->focus_order, child,
last_cell->child);
+ box->cells[group] = evas_list_prepend(box->cells[group], cell);
+ if (group == ETK_BOX_START)
+ box_widget->focus_order = evas_list_prepend(box_widget->focus_order,
child);
else
- ETK_WIDGET(box)->focus_order =
evas_list_append_relative(ETK_WIDGET(box)->focus_order, child,
last_cell->child);
+ {
+ if ((c = evas_list_data(box->cells[ETK_BOX_END])))
+ box_widget->focus_order =
evas_list_prepend_relative(box_widget->focus_order, child, c->child);
+ else
+ box_widget->focus_order =
evas_list_append(box_widget->focus_order, child);
+ }
+ }
+ else
+ {
+ box->cells[group] = evas_list_append_relative(box->cells[group], cell,
after);
+ box_widget->focus_order =
evas_list_append_relative(box_widget->focus_order, child, after->child);
}
- box->cells = evas_list_append(box->cells, cell);
etk_widget_parent_set(child, ETK_WIDGET(box));
+}
+
+/* Gets the cell of the box containing the widget */
+static Etk_Box_Cell *_etk_box_cell_get(Etk_Box *box, Etk_Widget *widget)
+{
+ int i;
+ Evas_List *l;
+ Etk_Box_Cell *cell;
+
+ if (!box || !widget)
+ return NULL;
+
+ for (i = 0; i < 2; i++)
+ {
+ for (l = box->cells[i]; l; l = l->next)
+ {
+ cell = l->data;
+ if (cell->child == widget)
+ return cell;
+ }
+ }
+ return NULL;
}
/** @} */
===================================================================
RCS file: /cvs/e/e17/proto/etk/src/lib/etk_box.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -3 -r1.5 -r1.6
--- etk_box.h 13 May 2006 23:44:40 -0000 1.5
+++ etk_box.h 15 Aug 2006 15:59:01 -0000 1.6
@@ -9,7 +9,7 @@
/**
* @defgroup Etk_Box Etk_Box
* @brief The Etk_Box widget is a container that can contain several children
- * packed in one direction (horizontal of vertical)
+ * packed in one direction (horizontal or vertical)
* @{
*/
@@ -34,6 +34,24 @@
/** Checks if the object is an Etk_VBox */
#define ETK_IS_VBOX(obj) (ETK_OBJECT_CHECK_TYPE((obj), ETK_VBOX_TYPE))
+/** @brief The two groups where the children could be packed: the start-group
and the end-group */
+typedef enum Etk_Box_Group
+{
+ ETK_BOX_START, /**< The start-group of children: the children in this
group are displayed
+ * at the start (left or top) of the box */
+ ETK_BOX_END, /**< The end-group of children: the children in this
group are displayed
+ * at the end (right or bottom) of the box */
+} Etk_Box_Group;
+
+/** @brief Describes how a child of the box expands and fills the space */
+typedef enum Etk_Box_Fill_Policy
+{
+ ETK_BOX_NONE = 1 << 0, /**< The child does not fill or expand */
+ ETK_BOX_EXPAND = 1 << 1, /**< The child will fill all the available
space in its cell */
+ ETK_BOX_FILL = 1 << 2, /**< The cell containing the child will expand
to take all the available space */
+ ETK_BOX_EXPAND_FILL = ETK_BOX_EXPAND | ETK_BOX_FILL, /**< Equivalent to
ETK_BOX_EXPAND | ETK_BOX_FILL */
+} Etk_Box_Fill_Policy;
+
/**
* @brief @widget The structure of a box
* @structinfo
@@ -46,8 +64,8 @@
int spacing;
Etk_Bool homogeneous;
- Evas_List *cells;
- int *requested_sizes;
+ Evas_List *cells[2];
+ int *request_sizes[2];
};
/**
@@ -79,14 +97,20 @@
Etk_Widget *etk_hbox_new(Etk_Bool homogeneous, int spacing);
Etk_Widget *etk_vbox_new(Etk_Bool homogeneous, int spacing);
-void etk_box_pack_start(Etk_Box *box, Etk_Widget *child, Etk_Bool expand,
Etk_Bool fill, int padding);
-void etk_box_pack_end(Etk_Box *box, Etk_Widget *child, Etk_Bool expand,
Etk_Bool fill, int padding);
-void etk_box_child_packing_set(Etk_Box *box, Etk_Widget *child, int padding,
Etk_Bool expand, Etk_Bool fill, Etk_Bool pack_end);
-void etk_box_child_packing_get(Etk_Box *box, Etk_Widget *child, int *padding,
Etk_Bool *expand, Etk_Bool *fill, Etk_Bool *pack_end);
-
-void etk_box_spacing_set(Etk_Box *box, int spacing);
-int etk_box_spacing_get(Etk_Box *box);
-void etk_box_homogeneous_set(Etk_Box *box, Etk_Bool homogeneous);
+void etk_box_prepend(Etk_Box *box, Etk_Widget *child, Etk_Box_Group group,
Etk_Box_Fill_Policy fill_policy, int padding);
+void etk_box_append(Etk_Box *box, Etk_Widget *child, Etk_Box_Group group,
Etk_Box_Fill_Policy fill_policy, int padding);
+void etk_box_insert(Etk_Box *box, Etk_Widget *child, Etk_Box_Group group,
Etk_Widget *after, Etk_Box_Fill_Policy fill_policy, int padding);
+void etk_box_insert_at(Etk_Box *box, Etk_Widget *child, Etk_Box_Group group,
int pos, Etk_Box_Fill_Policy fill_policy, int padding);
+
+Etk_Widget *etk_box_child_get_at(Etk_Box *box, Etk_Box_Group group, int pos);
+void etk_box_child_position_set(Etk_Box *box, Etk_Widget *child,
Etk_Box_Group group, int pos);
+Etk_Bool etk_box_child_position_get(Etk_Box *box, Etk_Widget *child,
Etk_Box_Group *group, int *pos);
+void etk_box_child_packing_set(Etk_Box *box, Etk_Widget *child,
Etk_Box_Fill_Policy fill_policy, int padding);
+Etk_Bool etk_box_child_packing_get(Etk_Box *box, Etk_Widget *child,
Etk_Box_Fill_Policy *fill_policy, int *padding);
+
+void etk_box_spacing_set(Etk_Box *box, int spacing);
+int etk_box_spacing_get(Etk_Box *box);
+void etk_box_homogeneous_set(Etk_Box *box, Etk_Bool homogeneous);
Etk_Bool etk_box_homogeneous_get(Etk_Box *box);
/** @} */
===================================================================
RCS file: /cvs/e/e17/proto/etk/src/lib/etk_button.c,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -3 -r1.23 -r1.24
--- etk_button.c 13 Aug 2006 22:42:23 -0000 1.23
+++ etk_button.c 15 Aug 2006 15:59:01 -0000 1.24
@@ -613,10 +613,10 @@
etk_signal_connect("child_removed", ETK_OBJECT(button->box),
ETK_CALLBACK(_etk_button_image_removed_cb), button);
etk_label_alignment_set(ETK_LABEL(button->label), 0.0, 0.5);
- etk_box_pack_end(ETK_BOX(button->box), button->label, ETK_FALSE,
ETK_FALSE, 0);
+ etk_box_append(ETK_BOX(button->box), button->label, ETK_BOX_END,
ETK_BOX_NONE, 0);
}
- etk_box_pack_start(ETK_BOX(button->box), ETK_WIDGET(button->image),
ETK_FALSE, ETK_FALSE, 0);
+ etk_box_append(ETK_BOX(button->box), ETK_WIDGET(button->image),
ETK_BOX_START, ETK_BOX_NONE, 0);
etk_widget_pass_mouse_events_set(ETK_WIDGET(button->image), ETK_TRUE);
}
else
===================================================================
RCS file: /cvs/e/e17/proto/etk/src/lib/etk_dialog.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -3 -r1.10 -r1.11
--- etk_dialog.c 25 May 2006 21:07:00 -0000 1.10
+++ etk_dialog.c 15 Aug 2006 15:59:01 -0000 1.11
@@ -14,6 +14,9 @@
* @{
*/
+#define ETK_DIALOG_FILL_POLICY(fill, expand) \
+ (((fill) ? ETK_BOX_FILL : ETK_BOX_NONE) | (((expand) ? ETK_BOX_EXPAND :
ETK_BOX_NONE)))
+
enum Etk_Dialog_Signal_Id
{
ETK_DIALOG_RESPONSE_SIGNAL,
@@ -90,9 +93,9 @@
return;
if (pack_at_end)
- etk_box_pack_end(ETK_BOX(dialog->main_area_vbox), widget, expand, fill,
padding);
+ etk_box_prepend(ETK_BOX(dialog->main_area_vbox), widget, ETK_BOX_END,
ETK_DIALOG_FILL_POLICY(fill, padding), padding);
else
- etk_box_pack_start(ETK_BOX(dialog->main_area_vbox), widget, expand,
fill, padding);
+ etk_box_append(ETK_BOX(dialog->main_area_vbox), widget, ETK_BOX_START,
ETK_DIALOG_FILL_POLICY(fill, padding), padding);
}
/**
@@ -112,9 +115,9 @@
return;
if (pack_at_end)
- etk_box_pack_end(ETK_BOX(dialog->action_area_hbox), widget, expand,
fill, padding);
+ etk_box_prepend(ETK_BOX(dialog->action_area_hbox), widget, ETK_BOX_END,
ETK_DIALOG_FILL_POLICY(fill, padding), padding);
else
- etk_box_pack_start(ETK_BOX(dialog->action_area_hbox), widget, expand,
fill, padding);
+ etk_box_append(ETK_BOX(dialog->action_area_hbox), widget, ETK_BOX_START,
ETK_DIALOG_FILL_POLICY(fill, padding), padding);
}
/**
@@ -139,9 +142,9 @@
etk_object_data_set_full(ETK_OBJECT(button), "_Etk_Dialog::response_id",
id, free);
if (pack_at_end)
- etk_box_pack_end(ETK_BOX(dialog->action_area_hbox), ETK_WIDGET(button),
fill, expand, padding);
+ etk_box_prepend(ETK_BOX(dialog->action_area_hbox), ETK_WIDGET(button),
ETK_BOX_END, ETK_DIALOG_FILL_POLICY(fill, padding), padding);
else
- etk_box_pack_start(ETK_BOX(dialog->action_area_hbox),
ETK_WIDGET(button), fill, expand, padding);
+ etk_box_append(ETK_BOX(dialog->action_area_hbox), ETK_WIDGET(button),
ETK_BOX_START, ETK_DIALOG_FILL_POLICY(fill, padding), padding);
etk_signal_connect("clicked", ETK_OBJECT(button),
ETK_CALLBACK(_etk_dialog_button_clicked_cb), dialog);
}
@@ -241,17 +244,17 @@
dialog->main_area_vbox = etk_vbox_new(ETK_FALSE, 0);
etk_widget_visibility_locked_set(dialog->main_area_vbox, ETK_TRUE);
- etk_box_pack_start(ETK_BOX(dialog->dialog_vbox), dialog->main_area_vbox,
ETK_TRUE, ETK_TRUE, 0);
+ etk_box_append(ETK_BOX(dialog->dialog_vbox), dialog->main_area_vbox,
ETK_BOX_START, ETK_BOX_EXPAND_FILL, 0);
etk_widget_show(dialog->main_area_vbox);
dialog->separator = etk_hseparator_new();
etk_widget_visibility_locked_set(dialog->separator, ETK_TRUE);
- etk_box_pack_start(ETK_BOX(dialog->dialog_vbox), dialog->separator,
ETK_FALSE, ETK_TRUE, 6);
+ etk_box_append(ETK_BOX(dialog->dialog_vbox), dialog->separator,
ETK_BOX_START, ETK_BOX_FILL, 6);
etk_widget_show(dialog->separator);
dialog->action_area_hbox = etk_hbox_new(ETK_FALSE, 6);
etk_widget_visibility_locked_set(dialog->action_area_hbox, ETK_TRUE);
- etk_box_pack_end(ETK_BOX(dialog->dialog_vbox), dialog->action_area_hbox,
ETK_FALSE, ETK_TRUE, 0);
+ etk_box_append(ETK_BOX(dialog->dialog_vbox), dialog->action_area_hbox,
ETK_BOX_END, ETK_BOX_FILL, 0);
etk_widget_show(dialog->action_area_hbox);
dialog->has_separator = ETK_TRUE;
===================================================================
RCS file: /cvs/e/e17/proto/etk/src/lib/etk_message_dialog.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -3 -r1.4 -r1.5
--- etk_message_dialog.c 25 May 2006 21:07:00 -0000 1.4
+++ etk_message_dialog.c 15 Aug 2006 15:59:01 -0000 1.5
@@ -221,12 +221,12 @@
etk_widget_show(dialog->main_area_hbox);
dialog->image = etk_image_new_from_stock(ETK_STOCK_DIALOG_INFORMATION,
ETK_STOCK_BIG);
- etk_box_pack_start(ETK_BOX(dialog->main_area_hbox), dialog->image,
ETK_FALSE, ETK_FALSE, 3);
+ etk_box_append(ETK_BOX(dialog->main_area_hbox), dialog->image,
ETK_BOX_START, ETK_BOX_NONE, 3);
etk_widget_visibility_locked_set(dialog->image, ETK_TRUE);
etk_widget_show(dialog->image);
dialog->label = etk_label_new(NULL);
- etk_box_pack_start(ETK_BOX(dialog->main_area_hbox), dialog->label,
ETK_FALSE, ETK_FALSE, 2);
+ etk_box_append(ETK_BOX(dialog->main_area_hbox), dialog->label,
ETK_BOX_START, ETK_BOX_NONE, 2);
etk_widget_visibility_locked_set(dialog->label, ETK_TRUE);
etk_widget_show(dialog->label);
===================================================================
RCS file: /cvs/e/e17/proto/etk/src/lib/etk_toolbar.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -3 -r1.1 -r1.2
--- etk_toolbar.c 13 Aug 2006 15:33:17 -0000 1.1
+++ etk_toolbar.c 15 Aug 2006 15:59:01 -0000 1.2
@@ -69,7 +69,7 @@
if (!toolbar || !widget)
return;
- etk_box_pack_start(ETK_BOX(toolbar->box), widget, ETK_FALSE, ETK_FALSE, 0);
+ etk_box_append(ETK_BOX(toolbar->box), widget, ETK_BOX_START, ETK_BOX_NONE,
0);
}
/**
@@ -82,7 +82,7 @@
if (!toolbar || !widget)
return;
- etk_box_pack_end(ETK_BOX(toolbar->box), widget, ETK_FALSE, ETK_FALSE, 0);
+ etk_box_prepend(ETK_BOX(toolbar->box), widget, ETK_BOX_START, ETK_BOX_NONE,
0);
}
/**************************
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
enlightenment-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs