Ewl_Container: Widgets Holding Other Widgets
Detailed Description
Define the Ewl_Container class which inherits from Ewl_Widget and adds the ability to nest Ewl_Widget's inside.
- Remarks:
- Inherits from Ewl_Widget.
Tutorial
Data Structures | |
struct | Ewl_Container |
Inherits from the Ewl_Widget and expands to allow for placing child widgets within the available space. Also adds notifiers for various child events. More... | |
Defines | |
#define | EWL_CONTAINER(widget) ((Ewl_Container *) widget) |
Typecast a poiner to an Ewl_Container pointer. | |
#define | EWL_CONTAINER_IS(w) (ewl_widget_type_is(EWL_WIDGET(w), EWL_CONTAINER_TYPE)) |
#define | EWL_CONTAINER_TYPE "container" |
Typedefs | |
typedef void(*) | Ewl_Child_Add (Ewl_Container *c, Ewl_Widget *w) |
typedef void(*) | Ewl_Child_Hide (Ewl_Container *c, Ewl_Widget *w) |
typedef void(*) | Ewl_Child_Remove (Ewl_Container *c, Ewl_Widget *w, int idx) |
typedef void(*) | Ewl_Child_Resize (Ewl_Container *c, Ewl_Widget *w, int size, Ewl_Orientation o) |
typedef void(*) | Ewl_Child_Show (Ewl_Container *c, Ewl_Widget *w) |
typedef Ewl_Container | Ewl_Container |
typedef Ewl_Widget *(*) | Ewl_Container_Iterator (Ewl_Container *c) |
Functions | |
void | ewl_container_add_notify_set (Ewl_Container *container, Ewl_Child_Add add) |
Set the function to be called when adding children. | |
void | ewl_container_callback_intercept (Ewl_Container *c, unsigned int t) |
Receive a callback in place of children. | |
void | ewl_container_callback_nointercept (Ewl_Container *c, unsigned int t) |
Remove a callback interception from children. | |
void | ewl_container_callback_nonotify (Ewl_Container *c, unsigned int t) |
receive a callback of a child | |
void | ewl_container_callback_notify (Ewl_Container *c, unsigned int t) |
receive a callback of a child | |
void | ewl_container_cb_configure (Ewl_Widget *w, void *ev_data, void *user_data) |
void | ewl_container_cb_container_focus_out (Ewl_Widget *w, void *ev_data, void *user_data) |
void | ewl_container_cb_obscure (Ewl_Widget *w, void *ev_data, void *user_data) |
void | ewl_container_cb_realize (Ewl_Widget *w, void *ev_data, void *user_data) |
void | ewl_container_cb_reparent (Ewl_Widget *w, void *ev_data, void *user_data) |
void | ewl_container_cb_state_change (Ewl_Widget *w, void *ev_data, void *user_data) |
void | ewl_container_cb_unrealize (Ewl_Widget *w, void *ev_data, void *user_data) |
void | ewl_container_child_add_call (Ewl_Container *c, Ewl_Widget *w) |
Triggers the child_add callback for the container c. | |
void | ewl_container_child_append (Ewl_Container *parent, Ewl_Widget *child) |
Add a child at the end of the container. | |
Ewl_Widget * | ewl_container_child_at_get (Ewl_Container *widget, int x, int y) |
Find the child at the given coordinates. | |
Ewl_Widget * | ewl_container_child_at_recursive_get (Ewl_Container *widget, int x, int y) |
Find child that intersects coordinates. | |
int | ewl_container_child_count_get (Ewl_Container *c) |
Returns the number of child widgets in the container. | |
int | ewl_container_child_count_internal_get (Ewl_Container *c) |
Returns the number of child widgets in the container. | |
int | ewl_container_child_count_visible_get (Ewl_Container *c) |
Returns the number of visible child widgets in the container. | |
Ewl_Widget * | ewl_container_child_get (Ewl_Container *parent, int index) |
Retrieve the child at the given index in the container. | |
void | ewl_container_child_hide_call (Ewl_Container *c, Ewl_Widget *w) |
Triggers the child_hide callback for the container c. | |
int | ewl_container_child_index_get (Ewl_Container *parent, Ewl_Widget *child) |
Retrieves the index of the given child in the container or -1 if not found. | |
int | ewl_container_child_index_internal_get (Ewl_Container *parent, Ewl_Widget *child) |
Retrieves the index of the given child in the container taking internal widgets into account or -1 if not found. | |
void | ewl_container_child_insert (Ewl_Container *parent, Ewl_Widget *child, int index) |
Add a child at an index of the container. | |
void | ewl_container_child_insert_internal (Ewl_Container *parent, Ewl_Widget *child, int index) |
Add a child at an index of the container. | |
Ewl_Widget * | ewl_container_child_internal_get (Ewl_Container *parent, int index) |
Retrieves the child at the given index in the container taking internal widgets into account. | |
void | ewl_container_child_iterate_begin (Ewl_Container *c) |
Prepare the container to iterate over it's children. | |
void | ewl_container_child_iterator_set (Ewl_Container *c, Ewl_Container_Iterator i) |
Changes the iterator function for a container. | |
Ewl_Widget * | ewl_container_child_next (Ewl_Container *c) |
Retrieve the next elligible child in a container. | |
void | ewl_container_child_prepend (Ewl_Container *parent, Ewl_Widget *child) |
Add a child at the beginning of the container. | |
void | ewl_container_child_remove (Ewl_Container *parent, Ewl_Widget *child) |
Remove the specified child from the container. | |
void | ewl_container_child_remove_call (Ewl_Container *c, Ewl_Widget *w, int idx) |
Triggers the child_remove callback for the container c. | |
void | ewl_container_child_resize (Ewl_Widget *w, int size, Ewl_Orientation o) |
Notify a container of a child pref size change. | |
void | ewl_container_child_show_call (Ewl_Container *c, Ewl_Widget *w) |
Triggers the child_show callback for the container c. | |
void | ewl_container_children_show (Ewl_Container *c) |
A convenience function to recursively show the children of a container. | |
void | ewl_container_destroy (Ewl_Container *c) |
Destroy all the sub-children of the container. | |
Ewl_Container * | ewl_container_end_redirect_get (Ewl_Container *c) |
Searches for the last redirected container of the container. | |
void | ewl_container_hide_notify_set (Ewl_Container *container, Ewl_Child_Hide show) |
Set the function to be called when hideing children. | |
int | ewl_container_init (Ewl_Container *container) |
Initialize a containers default fields and callbacks. | |
void | ewl_container_largest_prefer (Ewl_Container *c, Ewl_Orientation o) |
Set preferred size to widest child. | |
Ewl_Widget * | ewl_container_new (void) |
Allocate a new container. | |
Ewl_Container * | ewl_container_redirect_get (Ewl_Container *c) |
Retrieves for the redirected container of the container. | |
void | ewl_container_redirect_set (Ewl_Container *c, Ewl_Container *rc) |
Changes the redirected container of the container. | |
void | ewl_container_remove_notify_set (Ewl_Container *container, Ewl_Child_Remove remove) |
Set the function to be called when removing children. | |
void | ewl_container_reset (Ewl_Container *c) |
Destroy all children of the container. | |
void | ewl_container_resize_notify_set (Ewl_Container *container, Ewl_Child_Resize resize) |
Set function to be called when children resize. | |
void | ewl_container_show_notify_set (Ewl_Container *container, Ewl_Child_Show show) |
Set the function to be called when showing children. | |
void | ewl_container_sum_prefer (Ewl_Container *c, Ewl_Orientation o) |
Set the sum orientation of the container. |
Define Documentation
#define EWL_CONTAINER | ( | widget | ) | ((Ewl_Container *) widget) |
Typecast a poiner to an Ewl_Container pointer.
#define EWL_CONTAINER_IS | ( | w | ) | (ewl_widget_type_is(EWL_WIDGET(w), EWL_CONTAINER_TYPE)) |
Returns TRUE if the widget is an Ewl_Container, FALSE otherwise
#define EWL_CONTAINER_TYPE "container" |
The type name for the Ewl_Container widget
Typedef Documentation
typedef void(*) Ewl_Child_Add(Ewl_Container *c, Ewl_Widget *w) |
A typedef to shorten the definition of the child_add callbacks. This callback is container specific and is triggered when an Ewl_Widget is added to the Ewl_Container.
typedef void(*) Ewl_Child_Hide(Ewl_Container *c, Ewl_Widget *w) |
A typedef to shorten the definition of the child_hide callbacks. This callback is container specific and is triggered when an Ewl_Widget is hidden from the Ewl_Container.
typedef void(*) Ewl_Child_Remove(Ewl_Container *c, Ewl_Widget *w, int idx) |
A typedef to shorten the definition of the child_remove callbacks. This callback is container specific and is triggered when an Ewl_Widget is removed from the Ewl_Container.
typedef void(*) Ewl_Child_Resize(Ewl_Container *c, Ewl_Widget *w, int size, Ewl_Orientation o) |
A typedef to shorten the definition of the child_resize callbacks. This callback is container specific and is triggered when an Ewl_Widget is resized in the Ewl_Container.
typedef void(*) Ewl_Child_Show(Ewl_Container *c, Ewl_Widget *w) |
A typedef to shorten the definition of the child_show callbacks. This callback is container specific and is triggered when an Ewl_Widget is shown to the Ewl_Container.
typedef struct Ewl_Container Ewl_Container |
This class inherits from Ewl_Widget and provides the capabilities necessary for nesting other widgets inside.
typedef Ewl_Widget*(*) Ewl_Container_Iterator(Ewl_Container *c) |
A typedef to shorten the definition of the child iterator callbacks. This callback is container specific and is usually set in the container's init function. This is used to pick the next child in the list of children for the container.
Function Documentation
void ewl_container_add_notify_set | ( | Ewl_Container * | container, | |
Ewl_Child_Add | add | |||
) |
Set the function to be called when adding children.
- Parameters:
-
container,: the container to change the add notifier add,: the new add notifier for the container
- Returns:
- Returns no value.
void ewl_container_callback_intercept | ( | Ewl_Container * | c, | |
unsigned int | t | |||
) |
Receive a callback in place of children.
- Parameters:
-
c,: the container to intercept the callback t,: the type of callback to intercept
- Returns:
- Returns no value.
void ewl_container_callback_nointercept | ( | Ewl_Container * | c, | |
unsigned int | t | |||
) |
Remove a callback interception from children.
- Parameters:
-
c,: the container to remove the interception t,: the type of callback to not intercept
- Returns:
- Returns no value.
void ewl_container_callback_nonotify | ( | Ewl_Container * | c, | |
unsigned int | t | |||
) |
receive a callback of a child
- Parameters:
-
c,: the container to not notify the callback t,: the type of callback to not notify
- Returns:
- Returns no value.
void ewl_container_callback_notify | ( | Ewl_Container * | c, | |
unsigned int | t | |||
) |
receive a callback of a child
- Parameters:
-
c,: the container to notify the callback t,: the type of callback to notify
- Returns:
- Returns no value.
void ewl_container_cb_configure | ( | Ewl_Widget * | w, | |
void * | ev_data, | |||
void * | user_data | |||
) |
void ewl_container_cb_container_focus_out | ( | Ewl_Widget * | w, | |
void * | ev_data, | |||
void * | user_data | |||
) |
void ewl_container_cb_obscure | ( | Ewl_Widget * | w, | |
void * | ev_data, | |||
void * | user_data | |||
) |
void ewl_container_cb_realize | ( | Ewl_Widget * | w, | |
void * | ev_data, | |||
void * | user_data | |||
) |
void ewl_container_cb_reparent | ( | Ewl_Widget * | w, | |
void * | ev_data, | |||
void * | user_data | |||
) |
void ewl_container_cb_state_change | ( | Ewl_Widget * | w, | |
void * | ev_data, | |||
void * | user_data | |||
) |
void ewl_container_cb_unrealize | ( | Ewl_Widget * | w, | |
void * | ev_data, | |||
void * | user_data | |||
) |
void ewl_container_child_add_call | ( | Ewl_Container * | c, | |
Ewl_Widget * | w | |||
) |
Triggers the child_add callback for the container c.
- Parameters:
-
c,: the container receiving a new child widget w,: the child widget added to the container
- Returns:
- Returns no value.
void ewl_container_child_append | ( | Ewl_Container * | pc, | |
Ewl_Widget * | child | |||
) |
Add a child at the end of the container.
- Parameters:
-
pc,: the parent container that will hold the child child,: the child to add to the container
- Returns:
- Returns no value.
Ewl_Widget* ewl_container_child_at_get | ( | Ewl_Container * | widget, | |
int | x, | |||
int | y | |||
) |
Find the child at the given coordinates.
- Parameters:
-
widget,: the searched container x,: the x coordinate to search for y,: the y coordinate to search for
- Returns:
- Returns the found widget on success, NULL on failure.
Ewl_Widget* ewl_container_child_at_recursive_get | ( | Ewl_Container * | widget, | |
int | x, | |||
int | y | |||
) |
Find child that intersects coordinates.
- Parameters:
-
widget,: the widget to search for intersecting child x,: the x coordinate of the intersection point y,: the y coordinate of the intersection point
- Returns:
- Returns the intersecting widget on success, NULL on failure.
int ewl_container_child_count_get | ( | Ewl_Container * | c | ) |
Returns the number of child widgets in the container.
- Parameters:
-
c,: The container to get the child count from
- Returns:
- Returns the number of child widgets
int ewl_container_child_count_internal_get | ( | Ewl_Container * | c | ) |
Returns the number of child widgets in the container.
- Parameters:
-
c,: The container to get the child count from
- Returns:
- Returns the number of child widgets
int ewl_container_child_count_visible_get | ( | Ewl_Container * | c | ) |
Returns the number of visible child widgets in the container.
- Parameters:
-
c,: The container to get the child count from
- Returns:
- Returns the number of visible child widgets
- Note:
- Other than ewl_container_count_get() and ewl_container_count_internal_get() it does not return the number of children in the redirection end container.
Ewl_Widget* ewl_container_child_get | ( | Ewl_Container * | parent, | |
int | index | |||
) |
Retrieve the child at the given index in the container.
- Parameters:
-
parent,: The container to get the child from index,: The child index to return
- Returns:
- Returns the widget at the given index, or NULL if not found
void ewl_container_child_hide_call | ( | Ewl_Container * | c, | |
Ewl_Widget * | w | |||
) |
Triggers the child_hide callback for the container c.
- Parameters:
-
c,: the container receiving a new child widget w,: the child widget hidden in the container
- Returns:
- Returns no value.
int ewl_container_child_index_get | ( | Ewl_Container * | parent, | |
Ewl_Widget * | w | |||
) |
Retrieves the index of the given child in the container or -1 if not found.
- Parameters:
-
parent,: The container to search w,: The child to search for
- Returns:
- Returns the index of the child in the parent or -1 if not found
int ewl_container_child_index_internal_get | ( | Ewl_Container * | parent, | |
Ewl_Widget * | w | |||
) |
Retrieves the index of the given child in the container taking internal widgets into account or -1 if not found.
- Parameters:
-
parent,: The container to search w,: The child to search for
- Returns:
- Returns the index of the child in the parent including internal widgets or -1 if not found
void ewl_container_child_insert | ( | Ewl_Container * | pc, | |
Ewl_Widget * | child, | |||
int | index | |||
) |
Add a child at an index of the container.
- Parameters:
-
pc,: the parent container that will hold the child child,: the child to add to the container index,: the position in the child list to add the child (not including internal widgets
- Returns:
- Returns no value.
void ewl_container_child_insert_internal | ( | Ewl_Container * | pc, | |
Ewl_Widget * | child, | |||
int | index | |||
) |
Add a child at an index of the container.
- Parameters:
-
pc,: the parent container that will hold the child child,: the child to add to the container index,: the position in the child list to add the cihld
- Returns:
- Returns no value.
Ewl_Widget* ewl_container_child_internal_get | ( | Ewl_Container * | parent, | |
int | index | |||
) |
Retrieves the child at the given index in the container taking internal widgets into account.
- Parameters:
-
parent,: The container to get the child from index,: The child index to return
- Returns:
- Returns the widget at the given index including internal widgets, or NULL if not found
void ewl_container_child_iterate_begin | ( | Ewl_Container * | c | ) |
Prepare the container to iterate over it's children.
- Parameters:
-
c,: the container to begin iterating over it's children
- Returns:
- Returns no value.
void ewl_container_child_iterator_set | ( | Ewl_Container * | c, | |
Ewl_Container_Iterator | i | |||
) |
Changes the iterator function for a container.
- Parameters:
-
c,: the container to change child iterator functions i,: the iterator function for the container
- Returns:
- Returns no value.
Ewl_Widget* ewl_container_child_next | ( | Ewl_Container * | c | ) |
Retrieve the next elligible child in a container.
- Parameters:
-
c,: the container to retrieve the next usable child
- Returns:
- Returns the next valid child on success, NULL on failure.
void ewl_container_child_prepend | ( | Ewl_Container * | pc, | |
Ewl_Widget * | child | |||
) |
Add a child at the beginning of the container.
- Parameters:
-
pc,: the parent container that will hold the child child,: the child to add to the container
- Returns:
- Returns no value.
void ewl_container_child_remove | ( | Ewl_Container * | pc, | |
Ewl_Widget * | child | |||
) |
Remove the specified child from the container.
- Parameters:
-
pc,: the container to search for the child to remove child,: the child to remove from the container
- Returns:
- Returns no value.
void ewl_container_child_remove_call | ( | Ewl_Container * | c, | |
Ewl_Widget * | w, | |||
int | idx | |||
) |
Triggers the child_remove callback for the container c.
- Parameters:
-
c,: the container removing a child widget w,: the child widget removed from the container idx,: The index that the child was in when it was removed
- Returns:
- Returns no value.
void ewl_container_child_resize | ( | Ewl_Widget * | w, | |
int | size, | |||
Ewl_Orientation | o | |||
) |
Notify a container of a child pref size change.
- Parameters:
-
w,: the child widget that has had it's preferred size changed size,: the amount of change in size o,: the orientation of the size change
- Returns:
- Returns no value.
void ewl_container_child_show_call | ( | Ewl_Container * | c, | |
Ewl_Widget * | w | |||
) |
Triggers the child_show callback for the container c.
- Parameters:
-
c,: the container receiving a new child widget w,: the child widget shown in the container
- Returns:
- Returns no value.
void ewl_container_children_show | ( | Ewl_Container * | c | ) |
A convenience function to recursively show the children of a container.
- Parameters:
-
c,: The container to work with
- Returns:
- Returns no value
void ewl_container_destroy | ( | Ewl_Container * | c | ) |
Destroy all the sub-children of the container.
- Parameters:
-
c,: the container to destroy children
- Returns:
- Returns no value.
Ewl_Container* ewl_container_end_redirect_get | ( | Ewl_Container * | c | ) |
Searches for the last redirected container of the container.
- Parameters:
-
c,: the container to retrieve it's redirection end container
- Returns:
- Returns the container children are placed in, NULL if none.
void ewl_container_hide_notify_set | ( | Ewl_Container * | container, | |
Ewl_Child_Hide | hide | |||
) |
Set the function to be called when hideing children.
- Parameters:
-
container,: the container to change the hide notifier hide,: the new show notifier for the container
- Returns:
- Returns no value.
int ewl_container_init | ( | Ewl_Container * | c | ) |
Initialize a containers default fields and callbacks.
- Parameters:
-
c,: the container to initialize
- Returns:
- Returns TRUE on success, otherwise FALSE.
void ewl_container_largest_prefer | ( | Ewl_Container * | c, | |
Ewl_Orientation | o | |||
) |
Set preferred size to widest child.
- Parameters:
-
c,: the container to change preferred size o,: the orientation/direction to prefer the largest widget
- Returns:
- Returns no value.
Ewl_Widget* ewl_container_new | ( | void | ) |
Allocate a new container.
- Returns:
- Returns a newly allocated container on success, NULL on failure.
Ewl_Container* ewl_container_redirect_get | ( | Ewl_Container * | c | ) |
Retrieves for the redirected container of the container.
- Parameters:
-
c,: the container to retrieve it's redirection container
- Returns:
- Returns the container children are placed in, NULL if none.
void ewl_container_redirect_set | ( | Ewl_Container * | c, | |
Ewl_Container * | rc | |||
) |
Changes the redirected container of the container.
- Parameters:
-
c,: the container to change it's redirection container rc,: the new container to redirect children to
- Returns:
- Returns no value.
void ewl_container_remove_notify_set | ( | Ewl_Container * | container, | |
Ewl_Child_Remove | remove | |||
) |
Set the function to be called when removing children.
- Parameters:
-
container,: the container to change the add notifier remove,: the new remove notifier for the container
- Returns:
- Returns no value.
void ewl_container_reset | ( | Ewl_Container * | c | ) |
Destroy all children of the container.
- Parameters:
-
c,: the container to reset
- Returns:
- Returns no value.
void ewl_container_resize_notify_set | ( | Ewl_Container * | container, | |
Ewl_Child_Resize | resize | |||
) |
Set function to be called when children resize.
- Parameters:
-
container,: the container to change the resize notifier resize,: the new resizenotifier for the container
- Returns:
- Returns no value.
void ewl_container_show_notify_set | ( | Ewl_Container * | container, | |
Ewl_Child_Show | show | |||
) |
Set the function to be called when showing children.
- Parameters:
-
container,: the container to change the show notifier show,: the new show notifier for the container
- Returns:
- Returns no value.
void ewl_container_sum_prefer | ( | Ewl_Container * | c, | |
Ewl_Orientation | o | |||
) |
Set the sum orientation of the container.
- Parameters:
-
c,: the container to use the child size sum in a specified direction o,: the orientation direction of the sum to use
- Returns:
- Returns no value