*
* The selection can be toggle by just clicking on the day.
*
- * Dayselector also provides the functionality to check whether a day is
+ * Dayselector also provides the functionality to check whether a day is
* selected or not.
*
- * First day of the week is taken from config settings by default. It can be
+ * First day of the week is taken from config settings by default. It can be
* altered by using the API elm_dayselector_week_start_set() API.
*
- * APIs are provided for setting the duration of weekend
+ * APIs are provided for setting the duration of weekend
* elm_dayselector_weekend_start_set() and elm_dayselector_weekend_length_set()
* does this job.
*
* Two styles of weekdays and weekends are supported in Dayselector.
- * Application can emit signals on individual check objects for setting the
+ * Application can emit signals on individual check objects for setting the
* weekday, weekend styles.
*
- * Once the weekend start day or weekend length changes, all the weekday &
- * weekend styles will be reset to default style. It's the application's
+ * Once the weekend start day or weekend length changes, all the weekday &
+ * weekend styles will be reset to default style. It's the application's
* responsibility to set the styles again by sending corresponding signals.
*
* Supported elm_object_item common APIs.
if (size_str) button_min_height = (Evas_Coord)atoi(size_str);
wd->end_type = MULTIBUTTONENTRY_CLOSED_IMAGE;
- evas_object_size_hint_min_set(wd->end,
- button_min_width * _elm_config->scale,
+ evas_object_size_hint_min_set(wd->end,
+ button_min_width * _elm_config->scale,
button_min_height * _elm_config->scale);
elm_widget_sub_object_add(obj, wd->end);
}
/**
* @defgroup Multibuttonentry Multibuttonentry
*
- * A Multibuttonentry is a widget to allow a user enter text and manage it as a number
- * of buttons. Each text button is inserted by pressing the "return" key.
- * If there is no space in the current row, a new button is added to the next row.
+ * A Multibuttonentry is a widget to allow a user enter text and manage it as a number
+ * of buttons. Each text button is inserted by pressing the "return" key.
+ * If there is no space in the current row, a new button is added to the next row.
* When a text button is pressed, it will become focused.
* Backspace removes the focus.
- * When the Multibuttonentry loses focus items longer than one line are shrunk
+ * When the Multibuttonentry loses focus items longer than one line are shrunk
* to one line.
*
* Typical use case of multibuttonentry is, composing emails/messages to a group
*
* @param obj The parent object
* @param item_label The label corresponding to the added item.
- * @param item_data data specific to this item.
+ * @param item_data data specific to this item.
* @param data data specific to the multibuttonentry.
*
* @return EINA_TRUE
*
* @param obj The multibuttonentry object
* @param expanded the value of expanded state.
- * Set this to EINA_TRUE for expanded state.
+ * Set this to EINA_TRUE for expanded state.
* Set this to EINA_FALSE for single line state.
*
* @ingroup Multibuttonentry
if (navi_it->title_next_btn)
elm_object_signal_emit(VIEW(navi_it), "elm,state,next_btn,show", "elm");
-// why does this forcibly enable title? isnt that separate to style?
+// why does this forcibly enable title? isnt that separate to style?
// navi_it->title_visible = EINA_TRUE;
_sizing_eval(WIDGET(navi_it));
* Since each item could keep the different styles, users could keep the
* same look & feel for the pages or different styles for the items in it's
* application.
- *
+ *
* Default content parts of the naviframe that you can use content hooks for
* are:
* @li "default" - The main content of the current page
* @li "icon" - An icon in the title area of the current page
* @li "prev_btn" - A button of the current page to go to the previous page
* @li "next_btn" - A button of the current page to go to the next page
- *
+ *
* Default text parts of the naviframe that you can use for are:
* @li "default" - Title label in the title area of the current page
* @li "subtitle" - Sub-title label in the title area of the current page
* Supported elm_object common APIs.
* @li elm_object_part_text_set
* @li elm_object_part_text_get
- *
+ *
* See an example of actionslider usage @ref actionslider_example_page "here"
* @{
*/
* @author Hyunsil Park <hyunsil.park@samsung.com>
* @author Goun Lee <gouni.lee@samsung.com>
* @author Mikael Sans <sans.mikael@gmail.com>
- *
+ *
* Please contact <enlightenment-devel@lists.sourceforge.net> to get in
* contact with the developers and maintainers.
*/
Evas_Object *base, *rect, *img, *overlay;
const char *file, *group;
Elm_Bg_Option option;
- struct {
- Evas_Coord w, h;
- } load_opts;
+ struct
+ {
+ Evas_Coord w, h;
+ } load_opts;
};
static const char *widtype = NULL;
{NULL, NULL}
};
-static const char *corner_string[] =
+static const char *corner_string[] =
{
"top_left",
"top_right",
/**
* Defines the corner values for a bubble.
*
- * The corner will be used to determine where the arrow of the
+ * The corner will be used to determine where the arrow of the
* bubble points to.
*/
typedef enum
* continuous look across its options.
* @li hoversel_vertical_entry: Another internal for @ref Hoversel.
* @li naviframe: Internally used by @ref Naviframe for its back button.
- * @li colorselector: Internally used by @ref Colorselector
+ * @li colorselector: Internally used by @ref Colorselector
* for its left and right buttons.
*
* Default content parts of the button widget that you can use for are:
* This is a Calendar widget. Calender widget helps applications to flexibly
* display a calender with day of the week, day, year and month. Applications will be
* able to choose a specific date that will be reported in the smart_callbacks for
- * the calendar widget. The APIs of calendar widget let the applications perform
+ * the calendar widget. The APIs of calendar widget let the applications perform
* other functions like,
* placing marks on specific dates
* Setting the bounds for the calendar (minimum and maximum years)
* @li elm_object_signal_callback_del
*
* @ref tutorial_check should give you a firm grasp of how to use this widget.
- *
+ *
* @{
*/
*
* @param obj Colorselector object
* @param mode Elm_Colorselector_Mode
- *
+ *
* Colorselector supports three modes palette only, selector only and both.
*
* @ingroup Colorselector
*
* @param obj Colorselector object
* @return mode The current mode of colorselector
- *
+ *
* @ingroup Colorselector
*/
EAPI Elm_Colorselector_Mode elm_colorselector_mode_get(const Evas_Object *obj);
* @param g integer pointer for g-value of color
* @param b integer pointer for b-value of color
* @param a integer pointer for a-value of color
- *
+ *
* @ingroup Colorselector
*/
EAPI void elm_colorselector_palette_item_color_get(const Elm_Object_Item *it, int *r, int *g, int *b, int *a);
* @param obj The Colorselector object
* @return Name of palette
*
- * Returns the currently set palette name using which colors will be
+ * Returns the currently set palette name using which colors will be
* saved/loaded in to config.
*
* @ingroup Colorselector
return _elm_config->font_cache;
}
-EAPI void
+EAPI void
elm_config_cache_font_cache_size_set(int size)
{
if (_elm_config->font_cache == size) return;
/**
* Flush all config settings then apply those settings to all applications
* using elementary on the current display.
- *
+ *
* @ingroup Config
*/
EAPI void elm_config_all_flush(void);
/**
* Set the duration after which tooltip will be shown.
*
- * @return EINA_TRUE if value is set.
+ * @return EINA_TRUE if value is set.
*/
EAPI void elm_config_tooltip_delay_set(double delay);
* This gets the "show last" setting of password mode which might be
* enabled or disabled.
*
- * @return @c EINA_TRUE, if the "show last" setting is enabled,
+ * @return @c EINA_TRUE, if the "show last" setting is enabled,
* @c EINA_FALSE if it's disabled.
*
* @ingroup Password_last_show
* Set the enable status of the focus highlight
*
* @param enable Enable highlight if EINA_TRUE, disable otherwise
- *
+ *
* Set whether to show or not the highlight on focused objects
*
* Note that it will take effect only to Elementary windows created after
* Get the enable status of the highlight animation
*
* @return The focus highlight mode set
- *
+ *
* Get whether the focus highlight, if enabled, will animate its switch from
* one object to the next
- *
+ *
* @ingroup Focus
*/
EAPI Eina_Bool elm_config_focus_highlight_animate_get(void);
* Set the enable status of the highlight animation
*
* @param animate Enable animation if EINA_TRUE, disable otherwise
- *
+ *
* Set whether the focus highlight, if enabled, will animate its switch from
* one object to the next
- *
+ *
* Note that it will take effect only to Elementary windows created after
* this is called.
*
Elm_Input_Panel_Return_Key_Type input_panel_return_key_type;
void *input_panel_imdata;
int input_panel_imdata_len;
- struct {
+ struct
+ {
Evas_Object *hover_parent;
Evas_Object *pop, *hover;
const char *hover_style;
- } anchor_hover;
+ } anchor_hover;
Eina_Bool changed : 1;
Eina_Bool single_line : 1;
Eina_Bool password : 1;
while (EINA_TRUE)
{
const char *temp = eina_strbuf_string_get(buf);
-
+
char *startTag = NULL;
char *endTag = NULL;
{
Widget_Data *wd = elm_widget_data_get(obj);
char *str = NULL;
-
+
if (wd->cnp_mode == ELM_CNP_MODE_NO_IMAGE)
{
str = _remove_item_tags(entry);
* @typedef Elm_Text_Format
*
* Text Format types.
- *
+ *
* @see elm_entry_file_set()
*/
typedef enum
* @typedef Elm_Wrap_Type
*
* Line wrapping types.
- *
+ *
* @see elm_entry_line_wrap_set()
*/
typedef enum
* @typedef Elm_Input_Panel_Layout
*
* Input panel (virtual keyboard) layout types.
- *
+ *
* @see elm_entry_input_panel_layout_set()
*/
typedef enum
* @typedef Elm_Input_Panel_Lang
*
* Input panel (virtual keyboard) language modes.
- *
+ *
* @see elm_entry_input_panel_language_set()
*/
typedef enum
* @typedef Elm_Autocapital_Type
*
* Autocapitalization Types.
- *
+ *
* @see elm_entry_autocapital_type_set()
*/
typedef enum
* @typedef Elm_Input_Panel_Return_Key_Type
*
* "Return" Key types on the input panel (virtual keyboard).
- *
+ *
* @see elm_entry_input_panel_return_key_type_set()
*/
typedef enum
* Append the given callback to the list. This functions will be called
* whenever any text is inserted into the entry, with the text to be inserted
* as a parameter. The type of given text is always markup.
- * The callback function is free to alter the text in any way it wants, but
+ * The callback function is free to alter the text in any way it wants, but
* it must remember to free the given pointer and update it.
* If the new text is to be discarded, the function can free it and set its
* text parameter to NULL. This will also prevent any following filters from
/**
* Set the language mode of the input panel.
*
- * This API can be used if you want to show the alphabet keyboard mode.
+ * This API can be used if you want to show the alphabet keyboard mode.
*
* @param obj The entry object
* @param lang language to be set to the input panel.
/**
* Get the specific data of the current input panel.
*
- * See @ref elm_entry_input_panel_imdata_set for more details.
+ * See @ref elm_entry_input_panel_imdata_set for more details.
*
* @param obj The entry object
* @param data The specific data to be got from the input panel
*
* @param obj The entry object
* @param disabled The state to put in in: @c EINA_TRUE for
- * disabled, @c EINA_FALSE for enabled
+ * disabled, @c EINA_FALSE for enabled
*/
EAPI void elm_entry_input_panel_return_key_disabled_set(Evas_Object *obj, Eina_Bool disabled);
EAPI void elm_entry_input_panel_return_key_autoenabled_set(Evas_Object *obj, Eina_Bool enabled);
/**
- * Reset the input method context of the entry if needed.
+ * Reset the input method context of the entry if needed.
*
* This can be necessary in the case where modifying the buffer would confuse on-going input method behavior
* @param obj The entry object
Elm_Flip_Mode mode;
Evas_Object *clip;
Evas_Object *event[4];
- struct {
- Evas_Object *content, *clip;
- } front, back;
+ struct
+ {
+ Evas_Object *content, *clip;
+ } front, back;
Ecore_Job *job;
Evas_Coord down_x, down_y, x, y, ox, oy, w, h;
Elm_Flip_Interaction intmode;
* "animate,done" - when a flip animation is finished
*
* Default content parts of the flip widget that you can use for are:
- * @li "front" - A front content of the flip
- * @li "back" - A back content of the flip
+ * @li "front" - A front content of the flip
+ * @li "back" - A back content of the flip
*
* Supported elm_object common APIs.
* @li elm_object_part_content_set
* @li elm_object_part_content_get
* @li elm_object_part_content_unset
- *
+ *
* @ref tutorial_flip show how to use most of the API.
*
* @{
* fixed (restricted to a minimum of) to the list width when calculating its
* size in order to allow the height to be calculated based on it. This allows,
* for instance, text block to wrap lines if the Edje part is configured with
- * "text.min: 0 1".
+ * "text.min: 0 1".
* @note ELM_LIST_COMPRESS will make list resize slower as it will have to
* recalculate every item height again whenever the list width
* changes!
* @ref Elm_Genlist_Item_Scrollto_Type
*
* This causes genlist to jump to the given item @p it and show it (by
- * animatedly scrolling), if it is not fully visible.
+ * animatedly scrolling), if it is not fully visible.
* This may use animation and take a some time to do so.
*
* @see elm_genlist_item_show()
*
* @param it The genlist item
*
- * This returns the Genlist_Item_Class for the given item. It can be used to
+ * This returns the Genlist_Item_Class for the given item. It can be used to
* examine the function pointers and item_style.
*
* @ingroup Genlist
EAPI Eina_Bool elm_genlist_reorder_mode_get(const Evas_Object *obj);
/**
- * Get the Item's Type
+ * Get the Item's Type
*
* @param it The genlist item
* @return The item type.
* @ingroup Elm_Gesture_Layer
*/
static void
-_set_momentum(Elm_Gesture_Momentum_Info *momentum,
+_set_momentum(Elm_Gesture_Momentum_Info *momentum,
Evas_Coord xx1, Evas_Coord yy1,
- Evas_Coord xx2, Evas_Coord yy2,
+ Evas_Coord xx2, Evas_Coord yy2,
unsigned int t1x, unsigned int t1y, unsigned int t2)
{
Evas_Coord velx = 0, vely = 0, vel;
&st->info.x, &st->info.y) / 2;
*angle = get_angle(xx1, yy1, xx2, yy2);
-
+
if (angle == &st->info.angle)
{ /* Fingers are moving, compute momentum */
unsigned int tm_start =
* @verbatim
* AUTOMAKE_OPTIONS = 1.4 foreign
* MAINTAINERCLEANFILES = Makefile.in aclocal.m4 config.h.in configure depcomp install-sh missing
- *
+ *
* INCLUDES = -I$(top_srcdir)
- *
+ *
* bin_PROGRAMS = myapp
- *
+ *
* myapp_SOURCES = main.c
* myapp_LDADD = @ELEMENTARY_LIBS@
* myapp_CFLAGS = @ELEMENTARY_CFLAGS@
*
* @code
* #include <Elementary.h>
- *
+ *
* static void
* on_done(void *data, Evas_Object *obj, void *event_info)
* {
* // quit the mainloop (elm_run function will return)
* elm_exit();
* }
- *
+ *
* EAPI_MAIN int
* elm_main(int argc, char **argv)
* {
* Evas_Object *win, *box, *lab, *btn;
- *
+ *
* // new window - do the usual and give it a name (hello) and title (Hello)
* win = elm_win_util_standard_add("hello", "Hello");
* // when the user clicks "close" on a window there is a request to delete
* evas_object_smart_callback_add(win, "delete,request", on_done, NULL);
- *
+ *
* // add a box object - default is vertical. a box holds children in a row,
* // either horizontally or vertically. nothing more.
* box = elm_box_add(win);
* // size as well as gets resized if window is resized)
* elm_win_resize_object_add(win, box);
* evas_object_show(box);
- *
+ *
* // add a label widget, set the text and put it in the pad frame
* lab = elm_label_add(win);
* // set default text of the label
* // pack the label at the end of the box
* elm_box_pack_end(box, lab);
* evas_object_show(lab);
- *
+ *
* // add an ok button
* btn = elm_button_add(win);
* // set default text of button to "OK"
* evas_object_show(btn);
* // call on_done when button is clicked
* evas_object_smart_callback_add(btn, "clicked", on_done, NULL);
- *
+ *
* // now we are done, show the window
* evas_object_show(win);
- *
+ *
* // run the mainloop and process events and callbacks
* elm_run();
* elm_shutdown();
typedef enum _Elm_GLView_Mode
{
- ELM_GLVIEW_NONE = 0,
+ ELM_GLVIEW_NONE = 0,
ELM_GLVIEW_ALPHA = (1<<1), /**< Alpha channel enabled rendering mode */
ELM_GLVIEW_DEPTH = (1<<2), /**< Depth buffer enabled rendering mode */
ELM_GLVIEW_STENCIL = (1<<3), /**< Stencil buffer enabled rendering mode */
} Elm_GLView_Mode;
/**
- * Defines a policy for the glview resizing.
+ * Defines a policy for the glview resizing.
*
* The resizing policy tells glview what to do with the underlying
* surface when resize happens. ELM_GLVIEW_RESIZE_POLICY_RECREATE
} Elm_GLView_Resize_Policy;
/**
- * Defines a policy for gl rendering.
+ * Defines a policy for gl rendering.
*
* The rendering policy tells glview where to run the gl rendering code.
* ELM_GLVIEW_RENDER_POLICY_ON_DEMAND tells glview to call the rendering
* calls on demand, which means that the rendering code gets called
- * only when it is visible.
+ * only when it is visible.
*
* @note Default is ELM_GLVIEW_RENDER_POLICY_ON_DEMAND
*/
*
* Direct is a hint for the elm_glview to render directly to the window
* given that the right conditions are met. Otherwise it falls back
- * to rendering to an offscreen buffer before it gets composited to the
+ * to rendering to an offscreen buffer before it gets composited to the
* window.
*
* @ingroup GLView
* @param obj The glview object.
* @param policy The scaling policy.
*
- * By default, the resize policy is set to ELM_GLVIEW_RESIZE_POLICY_RECREATE.
- * When resize is called it destroys the previous surface and recreates the
- * newly specified size. If the policy is set to
- * ELM_GLVIEW_RESIZE_POLICY_SCALE, however, glview only scales the image
+ * By default, the resize policy is set to ELM_GLVIEW_RESIZE_POLICY_RECREATE.
+ * When resize is called it destroys the previous surface and recreates the
+ * newly specified size. If the policy is set to
+ * ELM_GLVIEW_RESIZE_POLICY_SCALE, however, glview only scales the image
* object and not the underlying GL Surface.
*
* @ingroup GLView
* @param policy The render policy.
*
* By default, the render policy is set to ELM_GLVIEW_RENDER_POLICY_ON_DEMAND.
- * This policy is set such that during the render loop, glview is only
+ * This policy is set such that during the render loop, glview is only
* redrawn if it needs to be redrawn. (i.e. when it is visible) If the policy
* is set to ELM_GLVIEWW_RENDER_POLICY_ALWAYS, it redraws regardless of
* whether it is visible or needs redrawing.
* @param obj The glview object.
* @param func The init function to be registered.
*
- * The registered init function gets called once during the render loop.
+ * The registered init function gets called once during the render loop.
* This function allows glview to hide all the rendering context/surface
* details and have the user just call GL calls that they desire
* for initialization GL calls.
* @param obj The glview object.
* @param func The resize function to be registered.
*
- * The resize function gets called during the render loop.
+ * The resize function gets called during the render loop.
* This function allows glview to hide all the rendering context/surface
* details and have the user just call GL calls that they desire
* when resize happens.
* Set the render function that runs in the main loop.
*
* The render function gets called in the main loop but whether it runs
- * depends on the rendering policy and whether elm_glview_changed_set()
+ * depends on the rendering policy and whether elm_glview_changed_set()
* gets called.
- *
+ *
* @param obj The glview object.
* @param func The render function to be registered.
*
Elm_Icon_Lookup_Order lookup_order;
#ifdef HAVE_ELEMENTARY_ETHUMB
- struct {
- struct {
- const char *path;
- const char *key;
- } file, thumb;
+ struct
+ {
+ struct
+ {
+ const char *path;
+ const char *key;
+ } file, thumb;
- Ecore_Event_Handler *eeh;
+ Ecore_Event_Handler *eeh;
- Ethumb_Thumb_Format format;
+ Ethumb_Thumb_Format format;
- Ethumb_Client_Async *request;
+ Ethumb_Client_Async *request;
- Eina_Bool retry : 1;
- } thumb;
+ Eina_Bool retry : 1;
+ } thumb;
#endif
#ifdef ELM_EFREET
- struct {
+ struct
+ {
int requested_size;
Eina_Bool use : 1;
- } freedesktop;
+ } freedesktop;
#endif
int in_eval;
Eina_Bool scale_up : 1;
else
edje_object_signal_emit(wd->base, "elm,state,inactive", "elm");
- //FIXME: Should be update indicator based on the indicator visiblility
+ //FIXME: Should be update indicator based on the indicator visiblility
}
EAPI Eina_Bool
Widget_Data *wd = elm_widget_data_get(WIDGET(it));
if (!wd) return;
- //FIXME: Should be update indicator based on the autohidden status & indicator visiblility
+ //FIXME: Should be update indicator based on the autohidden status & indicator visiblility
if (selected)
{
* @param letter Letter under which the item should be indexed
* @param func The function to call when the item is selected.
* @param data The item data to set for the index's item
- * @return A handle to the item added or @c NULL, on errors
+ * @return A handle to the item added or @c NULL, on errors
*
* Despite the most common usage of the @p letter argument is for
* single char strings, one could use arbitrary strings as index
* @param letter Letter under which the item should be indexed
* @param func The function to call when the item is selected.
* @param data The item data to set for the index's item
- * @return A handle to the item added or @c NULL, on errors
+ * @return A handle to the item added or @c NULL, on errors
*
* Despite the most common usage of the @p letter argument is for
* single char strings, one could use arbitrary strings as index
* @param letter Letter under which the item should be indexed
* @param func The function to call when the item is clicked.
* @param data The item data to set for the index's item
- * @return A handle to the item added or @c NULL, on errors
+ * @return A handle to the item added or @c NULL, on errors
*
* Despite the most common usage of the @p letter argument is for
* single char strings, one could use arbitrary strings as index
* @param letter Letter under which the item should be indexed
* @param func The function to call when the item is clicked.
* @param data The item data to set for the index's item
- * @return A handle to the item added or @c NULL, on errors
+ * @return A handle to the item added or @c NULL, on errors
*
* Despite the most common usage of the @p letter argument is for
* single char strings, one could use arbitrary strings as index
* because all references to it will be lost. If this function is
* not provided (@c NULL is given), index items will be @b
* duplicated, if @p cmp_func returns @c 0.
- * @return A handle to the item added or @c NULL, on errors
+ * @return A handle to the item added or @c NULL, on errors
*
* Despite the most common usage of the @p letter argument is for
* single char strings, one could use arbitrary strings as index
* @image html elementary.png
* @version 0.8.0
* @date 2008-2012
- *
+ *
* @section intro What is Elementary?
- *
+ *
* This is a VERY SIMPLE toolkit. It is not meant for writing extensive desktop
* applications (yet). Small simple ones with simple needs.
- *
+ *
* It is meant to make the programmers work almost brainless but give them lots
* of flexibility.
- *
+ *
* @li @ref Start - Go here to quickly get started with writing Apps
- *
+ *
* @section organization Organization
- *
+ *
* One can divide Elementary into three main groups:
* @li @ref infralist - These are modules that deal with Elementary as a whole.
* @li @ref widgetslist - These are the widgets you'll compose your UI out of.
* @li @ref containerslist - These are the containers which hold the widgets.
- *
+ *
* @section license License
- *
+ *
* LGPL v2 (see COPYING in the base of Elementary's source). This applies to
* all files in the source tree.
- *
+ *
* @section ack Acknowledgements
* There is a lot that goes into making a widget set, and they don't happen out of
* nothing. It's like trying to make everyone everywhere happy, regardless of age,
{
const char *part;
Evas_Object *obj;
- enum {
- SWALLOW,
- BOX_APPEND,
- BOX_PREPEND,
- BOX_INSERT_BEFORE,
- BOX_INSERT_AT,
- TABLE_PACK,
- TEXT
- } type;
- union {
- union {
- const Evas_Object *reference;
- unsigned int pos;
- } box;
- struct {
- unsigned short col, row, colspan, rowspan;
- } table;
- struct {
- const char *text;
- } text;
- } p;
+ enum
+ {
+ SWALLOW,
+ BOX_APPEND,
+ BOX_PREPEND,
+ BOX_INSERT_BEFORE,
+ BOX_INSERT_AT,
+ TABLE_PACK,
+ TEXT
+ } type;
+ union
+ {
+ union
+ {
+ const Evas_Object *reference;
+ unsigned int pos;
+ } box;
+ struct
+ {
+ unsigned short col, row, colspan, rowspan;
+ } table;
+ struct
+ {
+ const char *text;
+ } text;
+ } p;
};
struct _Part_Cursor
Elm_Object_Select_Mode select_mode;
int walking;
int movements;
- struct {
+ struct
+ {
Evas_Coord x, y;
- } history[SWIPE_MOVES];
+ } history[SWIPE_MOVES];
Eina_Bool scr_minw : 1;
Eina_Bool scr_minh : 1;
Eina_Bool swipe : 1;
Evas_Smart_Cb func;
unsigned int idx;
- struct {
- Evas_Object *hv, *bx, *location;
- Eina_List *items;
- Eina_Bool open : 1;
- } submenu;
+ struct
+ {
+ Evas_Object *hv, *bx, *location;
+ Eina_List *items;
+ Eina_Bool open : 1;
+ } submenu;
Eina_Bool separator : 1;
Eina_Bool selected : 1;
* @li elm_object_item_part_content_set
* @li elm_object_item_part_content_get
* @li elm_object_item_disabled_set
- * @li elm_object_item_disabled_get
+ * @li elm_object_item_disabled_get
*
* @see @ref tutorial_menu
* @{
*
* A smart callback function must have the Elm_Object_Item_Smart_Cb prototype
* definition. The first parameter (@p data) in this definition will be a user
- * specific data. The second parameter @p it is a handle to the object item on
+ * specific data. The second parameter @p it is a handle to the object item on
* which event occurred. The third parameter, @p event_info, is a pointer to
* data which is totally dependent on the elementary object item's
* implementation and semantic for the given event.
Ecore_Timer *longtimer;
#ifdef HAVE_ELEMENTARY_ETHUMB
- struct {
- int id;
+ struct
+ {
+ int id;
- struct {
- const char *path;
- const char *key;
- } file, thumb;
+ struct
+ {
+ const char *path;
+ const char *key;
+ } file, thumb;
- Ethumb_Exists *exists;
+ Ethumb_Exists *exists;
- Ecore_Event_Handler *eeh;
+ Ecore_Event_Handler *eeh;
- Ethumb_Thumb_Format format;
+ Ethumb_Thumb_Format format;
Eina_Bool retry : 1;
} thumb;
*
* "clicked" - This is called when a user has clicked the photo
* "drag,start" - dragging the image out of the photo object
- * "drag,end" - Drop the dragged item
+ * "drag,end" - Drop the dragged item
*
* @{
*/
/**
* @defgroup Plug Plug
*
- * An object that allows one to show an image which other process created.
+ * An object that allows one to show an image which other process created.
* It can be used anywhere like any other elementary widget.
*
*/
*
* A radio object contains an indicator, an optional Label and an optional
* icon object. While it's possible to have a group of only one radio they,
- * are normally used in groups of 2 or more.
+ * are normally used in groups of 2 or more.
*
* elm_radio objects are grouped in a slightly different, compared to other
* UI toolkits. There is no seperate group name/id to remember or manage.
* The members represent the group, there are the group. To make a group,
- * use elm_radio_group_add() and pass existing radio object and the new radio
- * object.
+ * use elm_radio_group_add() and pass existing radio object and the new radio
+ * object.
*
* The radio object(s) will select from one of a set
* of integer values, so any value they are configuring needs to be mapped to
* @param friction the page scroll friction
*
* @see elm_thumbscroll_page_scroll_friction_get()
- * @deprecated Use elm_scroll_page_scroll_friction_set() and
+ * @deprecated Use elm_scroll_page_scroll_friction_set() and
* elm_config_all_flush()
* @ingroup Scrolling
*/
* @param letter Letter under which the item should be indexed
* @param item The item data to set for the index's item
* @param relative The index item to be the predecessor of this new one
- * @return A handle to the item added or @c NULL, on errors
+ * @return A handle to the item added or @c NULL, on errors
*
* Despite the most common usage of the @p letter argument is for
* single char strings, one could use arbitrary strings as index
* @param letter Letter under which the item should be indexed
* @param item The item data to set for the index's item
* @param relative The index item to be the successor of this new one
- * @return A handle to the item added or @c NULL, on errors
+ * @return A handle to the item added or @c NULL, on errors
*
* Despite the most common usage of the @p letter argument is for
* single char strings, one could use arbitrary strings as index
* @li elm_object_item_part_text_get
* @li elm_object_item_part_content_set
* @li elm_object_item_part_content_get
- *
+ *
* Here is an example on its usage:
* @li @ref segment_control_example
*
if (wd->spacer_down)
{
Evas_Coord d = 0;
-
+
evas_object_geometry_get(wd->spacer, &x, &y, &w, &h);
if (wd->horizontal) d = abs(ev->cur.canvas.x - x - wd->downx);
else d = abs(ev->cur.canvas.y - y - wd->downy);
}
ev->event_flags &= ~EVAS_EVENT_FLAG_ON_HOLD;
}
-
+
if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD)
{
if (wd->spacer_down) wd->spacer_down = EINA_FALSE;
if (!wd) return NULL;
if (!wd->labels) return NULL;
- if (!part)
+ if (!part)
return eina_hash_find(wd->labels, "elm.text");
return eina_hash_find(wd->labels, part);
}
double timeout;
Eina_Bool loop:1;
- struct {
+ struct
+ {
const char *current;
Eina_List *list; //list of const char *
- } layout;
+ } layout;
};
static const char *widtype = NULL;
Elm_Spinner_Special_Value *sv;
Widget_Data *wd = elm_widget_data_get(obj);
char buf[1024];
-
+
if (!wd) return;
EINA_LIST_FOREACH(wd->special_values, l, sv)
{
_value_set(Evas_Object *obj, double new_val)
{
Widget_Data *wd = elm_widget_data_get(obj);
-
+
if (!wd) return EINA_FALSE;
if (wd->round > 0)
- new_val = wd->base +
+ new_val = wd->base +
(double)((((int)(new_val - wd->base)) / wd->round) * wd->round);
if (wd->wrap)
* @param base The base value
*
* Rounding works as follows:
- *
+ *
* rounded_val = base + (double)(((value - base) / round) * round)
- *
+ *
* Where rounded_val, value and base are doubles, and round is an integer.
- *
+ *
* This means that things will be rounded to increments (or decrements) of
* "round" starting from value @p base. The default base for rounding is 0.
- *
+ *
* Example: round = 3, base = 2
* Values: 3, 6, 9, 12, 15, ...
- *
+ *
* Example: round = 2, base = 5.5
* Values: 5.5, 7.5, 9.5, 11.5, ...
- *
+ *
* @see elm_spinner_round_get()
* @see elm_spinner_base_get() too.
*
* @return The base rounding value
*
* This returns the base for rounding.
- *
+ *
* @see elm_spinner_round_set() too.
* @see elm_spinner_base_set() too.
*
* @param rnd The rounding value
*
* Sets the rounding value used for value rounding in the spinner.
- *
+ *
* @see elm_spinner_round_get()
* @see elm_spinner_base_set()
*
* @return The rounding value
*
* This returns the round value for rounding.
- *
+ *
* @see elm_spinner_round_set() too.
* @see elm_spinner_base_set() too.
*
{
EINA_MAGIC;
void (*free)(Elm_Store *store);
- struct {
- void (*free)(Elm_Store_Item *item);
- } item;
+ struct
+ {
+ void (*free)(Elm_Store_Item *item);
+ } item;
Evas_Object *genlist;
Ecore_Thread *list_th;
Eina_Inlist *items;
Eina_List *realized;
int realized_count;
int cache_max;
- struct {
- struct {
- Elm_Store_Item_List_Cb func;
- void *data;
- } list;
- struct {
- Elm_Store_Item_Fetch_Cb func;
- void *data;
- } fetch;
- struct {
- Elm_Store_Item_Unfetch_Cb func;
- void *data;
- } unfetch;
- } cb;
+ struct
+ {
+ struct
+ {
+ Elm_Store_Item_List_Cb func;
+ void *data;
+ } list;
+ struct
+ {
+ Elm_Store_Item_Fetch_Cb func;
+ void *data;
+ } fetch;
+ struct
+ {
+ Elm_Store_Item_Unfetch_Cb func;
+ void *data;
+ } unfetch;
+ } cb;
Eina_Bool sorted : 1;
Eina_Bool fetch_thread : 1;
};
eina_lock_take(&sti->lock);
}
sti->fetched = EINA_FALSE;
-//// let fetch/unfetch do the locking
+//// let fetch/unfetch do the locking
// eina_lock_release(&sti->lock);
if (st->cb.unfetch.func)
st->cb.unfetch.func(st->cb.unfetch.data, sti);
}
if (!sti->fetched)
{
-//// let fetch/unfetch do the locking
+//// let fetch/unfetch do the locking
// eina_lock_release(&sti->lock);
if (sti->store->cb.fetch.func)
sti->store->cb.fetch.func(sti->store->cb.fetch.data, sti);
elm_store_item_data_set(Elm_Store_Item *sti, void *data)
{
if (!EINA_MAGIC_CHECK(sti, ELM_STORE_ITEM_MAGIC)) return;
-//// let fetch/unfetch do the locking
+//// let fetch/unfetch do the locking
// eina_lock_take(&sti->lock);
sti->data = data;
// eina_lock_release(&sti->lock);
{
if (!EINA_MAGIC_CHECK(sti, ELM_STORE_ITEM_MAGIC)) return NULL;
void *d;
-//// let fetch/unfetch do the locking
+//// let fetch/unfetch do the locking
// eina_lock_take(&sti->lock);
d = sti->data;
// eina_lock_release(&sti->lock);
/**
* @defgroup Store Elementary Store
- *
+ *
* Store is an abstracting API that is intended to farm off fetching of data
* to threads running asynchronously from the mainloop that actually fetch
* data needed for a genlist (or possibly future other widgets) so scrolling
* genlist know later when its ready. Store actually does this and implements
* the infrastructure of this, leaving the actual fetch and convert up to
* functions provided by the user).
- *
+ *
* It is possible for store to run inline without a thread, but this is
* highly inadvisable. you can disable this with:
- *
+ *
* elm_store_fetch_thread_set(store, EINA_FALSE);
- *
+ *
* Store works first by creating a store, setting up functions to list items
* and fetch items. Currently the only store type supported is the
* filesystem store, which will list the files inside a directory (not
* recursively) and then hand each file it finds (the file path) to the
* list function for evaluation.
- *
+ *
* The list function may look at filename, may open the file or do
* anything it likes to determine something about the file. Either it
* filters it out (returns EINA_FALSE) and it is discarded or it
* and what type is there (it's a label of some sort, an icon, or with a
* custom mapping function that figures it out itself and creates the
* content needed for the genlist item).
- *
+ *
* Store then uses this sort id to build (over time) a sorted list of items
* that then map 1:1 to genlist items. When these items are visible and
* need content, Store calls the fetch function per item, which is responsible
* so it can map this to some item content. This function also runs in a
* thread, and thus can do blocking IO work to later return the data. Sorting
* is optional and can be enabled or disabled too.
- *
+ *
* When items are no longer needed, store will cal the unfetch function to
* free data in memory about that item that is no longer needed. This function
* is called in the mainloop and is expected to take minimal or almost no time
* to simply free up memory resources.
- *
+ *
* @{
*/
/**
* Create a new store object
- *
+ *
* This creates a new store object to then configure so it works.
- *
+ *
* @return A new store object, or NULL if creation fails
*/
EAPI Elm_Store *elm_store_filesystem_new(void);
/**
* Free the store object and all items it manages
- *
+ *
* This frees the given @p st store and all the items it manages. It will
* clear the List that it populated, but otherwise leave it alone. It will
* cancel background threads (and may have to wait for them to complete a
* pending operation to do this).
- *
+ *
* @param st The store to free
*/
EAPI void elm_store_free(Elm_Store *st);
/**
* Set the path to the directory to scan for a filesystem store
- *
+ *
* This sets the directory (@p dir) to scan and begins scanning in the
* the background in threads (or not if threading is disabled with
* elm_store_fetch_thread_set()). Note that Listing is always done in a thread
* called after fetch, list and unfetch functions are set, as well as target
* genlist etc. You also should not change the directory once set. If you
* need a new directory scanned, create a new store.
- *
+ *
* @param st The store to modify
* @param dir A string giving the path to the directory to scan
*/
/**
* Get the directory set on a filesystem store
- *
+ *
* This gets the directory set by elm_store_filesystem_directory_set(). This
* string returned will be valid until elm_store_filesystem_directory_set()
* changes it or until the store is freed with elm_store_free().
- *
+ *
* @return A string with the path set, or NULL if none set.
*/
EAPI const char *elm_store_filesystem_directory_get(const Elm_Store *st);
-/**
+/**
* Get the path of a specific store item
- *
+ *
* This returns the full path of a store item. This string is valid only
* during the list function set by elm_store_list_func_set() or during the
* fetch function set by elm_store_fetch_func_set() or during the unfetch
* function set by elm_store_unfetch_func_set().
- *
+ *
* @param sti The store item to get the path from
* @return A full path in a string or NULL if none available
*/
/**
* Set the target genlist to fill in from the store
- *
+ *
* This tells the store the target genlist to use to fill in content from
* the store. Once a store starts "going" via elm_store_filesystem_directory_set()
* The target should never be changed again.
- *
+ *
* @param st The store to do the filling.
* @param obj The genlist object to fill in and control the content of from the store.
*/
/**
* Set the maximum number of items that are not visible to keep cached
- *
+ *
* Store may keep some items around for caching purposes that cannot be seen,
* so this controls the maximum number. The default is 128, but may change
* at any point in time in the future.
- *
+ *
* @param st The store to modify
* @param max The number of items to keep (should be greater than or equal to 0)
*/
/**
* Get the maximum number if items to cache
- *
+ *
* This returns the number of items at most to cache.
- *
+ *
* @param st The store to query
* @return The maximum number of items to cache (>= 0)
* @see elm_store_cache_set()
/**
* Set the function used to deal with listing of items
- *
+ *
* This function is called per item that is found so it can examine the item
* and discard it (return EINA_FALSE to discard, or EINA_TRUE to accept), and
* work out some sorting ID (that may be filename or anything else based on
* content). This function is always called from a thread.
- *
+ *
* @param st The store to set the function of
* @param func The function to be called
* @param data the data pointer to be passed to the @p func function when called
/**
* Set the function used to deal with fetching of items
- *
+ *
* This function is called per item that needs data to be fetched when it
* becomes visible and such data is needed. This function is normally run
* from a thread (unless elm_store_fetch_thread_set() disables this). The
* allocated for this item with fields and then rely on the mapping setup
* to tell Store how to take a field in the structure and apply it to a
* genlist item.
- *
+ *
* @param st The store to set the function of
* @param func The function to be called
* @param data the data pointer to be passed to the @p func function when called
/**
* Set the function used to free the structure allocated for the item
- *
+ *
* This function is called per item when it is not needed in memory anymore
* and should free the structure allocated in and filled in the function set
* by elm_store_fetch_func_set().
- *
+ *
* @param st The store to set the function of
* @param func The function to be called
* @param data the data pointer to be passed to the @p func function when called
/**
* Enable or disable fetching in a thread for Store
- *
+ *
* @param st The store to modify
* @param use_thread EINA_TRUE to use a thread to fetch, EINA_FALSE don't use a thread.
*/
/**
* Get the thread enabled fetching option for Store
- *
+ *
* @return The state set currently for the store.
* @see elm_store_fetch_thread_set()
*/
/**
* Set if items are to be sorted or not.
- *
+ *
* By default items are not sorted, but read "in order" as they are found. If
* you want to sort, your list function set by elm_store_list_func_set() must
* provide a sort ID to sort by, and then Store will take care of sorting when
* it inserts items. You should set this up before you begin listing items
* in the store and then never change it again.
- *
+ *
* @param st The store to modify
* @param sorted EINA_TRUE if we are to sort, EINA_FALSE if not.
*/
/**
* Get the sorting flag
- *
+ *
* Get the sorted flag as set by elm_store_sorted_set().
- *
+ *
* @param st The store to query
* @return EINA_TRUE if sorted, EINA_FALSE if not.
*/
/**
* Set the item data holding item fields to map to item values in genlist
- *
+ *
* Once you decode an item, allocate a structure for it and fill the structure,
* you should set the item data with this function (eg in the fetch function).
* This item pointer is the base offset to use when mapping fields to item
* values. Once you unfetch, store will handle NULLing the data pointer for you.
- *
+ *
* @param sti The store item to set the data pointer of
* @param data The data pointer to set.
*/
/**
* Get the item data
- *
+ *
* This gets the data pointer set by elm_store_item_data_set().
- *
+ *
* @param sti The store item to query
* @return The data pointer set on the item
*/
/**
* Fetch the store than a store item belongs to
- *
+ *
* This fetches the store object that owns the store item.
- *
+ *
* @param sti The store item to query
* @return The store the item belongs to
*/
/**
* Fetch the genlist item that this store item controls
- *
+ *
* @param sti The store item to query
* @return The genlist object item handle controlled by this store item
*/
Evas_Object *object;
Evas_Object *o_menu;
Evas_Smart_Cb func;
- struct {
- int priority;
- Eina_Bool visible : 1;
- } prio;
+ struct
+ {
+ int priority;
+ Eina_Bool visible : 1;
+ } prio;
Eina_Bool selected : 1;
Eina_Bool separator : 1;
Eina_Bool menu : 1;
EAPI void elm_object_tooltip_show(Evas_Object *obj);
EAPI void elm_object_tooltip_hide(Evas_Object *obj);
-/**
+/**
* Set the text to be displayed inside the tooltip.
*
* @param obj The tooltip object.
Elm_Transit *prev_chain_transit;
Eina_List *next_chain_transits;
Elm_Transit_Tween_Mode tween_mode;
- struct {
- Elm_Transit_Del_Cb func;
- void *arg;
- } del_data;
- struct {
- double delayed;
- double paused;
- double duration;
- double begin;
- double current;
- } time;
- struct {
- int count;
- int current;
- Eina_Bool reverse;
- } repeat;
+ struct
+ {
+ Elm_Transit_Del_Cb func;
+ void *arg;
+ } del_data;
+ struct
+ {
+ double delayed;
+ double paused;
+ double duration;
+ double begin;
+ double current;
+ } time;
+ struct
+ {
+ int count;
+ int current;
+ Eina_Bool reverse;
+ } repeat;
double progress;
unsigned int effects_pending_del;
int walking;
/**
* Stops the animation and delete the @p transit object.
*
- * Call this function if you want to stop the animation before the
+ * Call this function if you want to stop the animation before the
* transit time. Make sure the @p transit object is still alive with
* elm_transit_del_cb_set() function.
* All added effects will be deleted, calling its respective data_free_cb
/**
* Add a new effect to the transit.
*
- * @note The cb function and the data are the key to the effect.
+ * @note The cb function and the data are the key to the effect.
* If you try to add an existing effect, nothing is done.
* @note After the first addition of an effect to @p transit, if its
* effect list become empty again, the @p transit will be killed by
* @p data.
*
* @ingroup Transit
- * @warning The transit will free the context data at the and of the
- * transition with the data_free_cb function.
+ * @warning The transit will free the context data at the and of the
+ * transition with the data_free_cb function.
* Do not share the context data in between different transit objects.
*/
EAPI void elm_transit_effect_add(Elm_Transit *transit, Elm_Transit_Effect_Transition_Cb transition_cb, Elm_Transit_Effect *effect, Elm_Transit_Effect_End_Cb end_cb);
* object list become empty again, the @p transit will be killed by
* elm_transit_del(transit) function.
* @note If the @p obj belongs to another transit, the @p obj will be
- * removed from it and it will only belong to the other @p transit.
+ * removed from it and it will only belong to the other @p transit.
* If the old transit stays without objects, it will die.
* @note When you add an object into the @p transit, its state from
* evas_object_pass_events_get(obj) is saved, and it is applied when the
* @{
*
* Elementary comes with two object that help design application that need
- * to display video.
+ * to display video.
*
* The first one, Elm_Video, display a video by using Emotion.
* It embeds the video inside an Edje object, so you can do some
* animation depending on the video state change. It also implements a
* resource management policy to remove this burden from the application.
*
- * The second one,
- * Elm_Player is a video player that need to be linked with an Elm_Video.
+ * The second one,
+ * Elm_Player is a video player that need to be linked with an Elm_Video.
* It take care of updating its content according to Emotion event and provide a
* way to theme itself. It also automatically raises the priority of the
* linked Elm_Video so it will use the video decoder, if available. It also
* @brief Define the file or URI that will be the video source.
*
* @param video The video object to define the file or URI for the video
- * of the Elm_Video object.
+ * of the Elm_Video object.
*
* @param filename The file or URI to target.
* Local files can be specified using file:// or by using full file paths.
- * URI could be remote source of video, like http:// or local source like
- * WebCam (v4l2://). (You can use Emotion API to request and list
+ * URI could be remote source of video, like http:// or local source like
+ * WebCam (v4l2://). (You can use Emotion API to request and list
* the available Webcam on your system).
*
* @return @c EINA_TRUE on success, @c EINA_FALSE otherwise
EAPI void elm_video_audio_level_set(Evas_Object *video, double volume);
/**
- * @brief Get the current position (in seconds) being played in the
+ * @brief Get the current position (in seconds) being played in the
* Elm_Video object.
*
* @param video The video object.
EAPI double elm_video_play_position_get(const Evas_Object *video);
/**
- * @brief Set the current position (in seconds) to be played in the
+ * @brief Set the current position (in seconds) to be played in the
* Elm_Video object.
*
* @param video The video object.
* @brief Set whether the object can remember the last played position.
*
* @param video The video object.
- * @return whether the object remembers the last played position (EINA_TRUE)
+ * @return whether the object remembers the last played position (EINA_TRUE)
* or not.
*
* @note This API only serves as indication. System support is required.
struct _View_Smart_Data
{
Ewk_View_Smart_Data base;
- struct {
- Evas_Event_Mouse_Down event;
- Evas_Coord x, y;
- unsigned int move_count;
- Ecore_Timer *longpress_timer;
- Ecore_Animator *pan_anim;
- } mouse;
+ struct
+ {
+ Evas_Event_Mouse_Down event;
+ Evas_Coord x, y;
+ unsigned int move_count;
+ Ecore_Timer *longpress_timer;
+ Ecore_Animator *pan_anim;
+ } mouse;
};
#endif
Evas_Object *self;
#ifdef HAVE_ELEMENTARY_WEB
Evas_Object *ewk_view;
- struct {
- Elm_Web_Window_Open window_create;
- void *window_create_data;
- Elm_Web_Dialog_Alert alert;
- void *alert_data;
- Elm_Web_Dialog_Confirm confirm;
- void *confirm_data;
- Elm_Web_Dialog_Prompt prompt;
- void *prompt_data;
- Elm_Web_Dialog_File_Selector file_selector;
- void *file_selector_data;
- Elm_Web_Console_Message console_message;
- void *console_message_data;
- } hook;
+ struct
+ {
+ Elm_Web_Window_Open window_create;
+ void *window_create_data;
+ Elm_Web_Dialog_Alert alert;
+ void *alert_data;
+ Elm_Web_Dialog_Confirm confirm;
+ void *confirm_data;
+ Elm_Web_Dialog_Prompt prompt;
+ void *prompt_data;
+ Elm_Web_Dialog_File_Selector file_selector;
+ void *file_selector_data;
+ Elm_Web_Console_Message console_message;
+ void *console_message_data;
+ } hook;
Elm_Win_Keyboard_Mode input_method;
- struct {
+ struct
+ {
Elm_Web_Zoom_Mode mode;
float current;
float min, max;
Eina_Bool no_anim;
Ecore_Timer *timer;
- } zoom;
- struct {
- struct {
+ } zoom;
+ struct
+ {
+ struct
+ {
int x, y;
- } start, end;
+ } start, end;
Ecore_Animator *animator;
- } bring_in;
+ } bring_in;
Eina_Bool tab_propagate : 1;
Eina_Bool inwin_mode : 1;
#else
#endif
}
-EAPI void
+EAPI void
elm_web_useragent_set(Evas_Object *obj, const char *user_agent)
{
ELM_CHECK_WIDTYPE(obj, widtype);
#endif
}
-EAPI const char*
+EAPI const char*
elm_web_useragent_get(const Evas_Object *obj)
{
ELM_CHECK_WIDTYPE(obj, widtype) NULL;
}
/* What to do with these ?
-
+
(void)wf;
(void)toolbar_visible;
(void)statusbar_visible;
if (!wf || !x || !y || !w || !h) return;
/* What to do with these ?
-
+
(void)wf;
(void)x;
(void)y;
/**
* Change useragent of a elm_web object
- *
+ *
* @param obj The object
* @param user_agent String for useragent
*
Evas_Coord px, py, cx, cy;
API_ENTRY return;
-
+
evas_smart_objects_calculate(evas_object_evas_get(obj));
-
- if (!forceshow && (x == sd->rx) && (y == sd->ry) &&
+
+ if (!forceshow && (x == sd->rx) && (y == sd->ry) &&
(w == sd->rw) && (h == sd->rh)) return;
sd->rx = x;
sd->ry = y;
Evas_Object *child;
const char *s;
INTERNAL_ENTRY NULL;
-
+
if (!_elm_widget_is(obj)) return NULL;
if (sd->resize_obj)
{
s = evas_object_name_get(sd->resize_obj);
if ((s) && (!strcmp(s, name))) return sd->resize_obj;
- if ((recurse != 0) &&
+ if ((recurse != 0) &&
((child = _widget_name_find(sd->resize_obj, name, recurse - 1))))
return child;
}
{
s = evas_object_name_get(child);
if ((s) && (!strcmp(s, name))) return child;
- if ((recurse != 0) &&
+ if ((recurse != 0) &&
((child = _widget_name_find(child, name, recurse - 1))))
return child;
}
{
s = evas_object_name_get(sd->hover_obj);
if ((s) && (!strcmp(s, name))) return sd->hover_obj;
- if ((recurse != 0) &&
+ if ((recurse != 0) &&
((child = _widget_name_find(sd->hover_obj, name, recurse - 1))))
return child;
}
Elm_Win_Keyboard_Mode kbdmode;
Elm_Win_Indicator_Mode indmode;
Elm_Win_Indicator_Opacity_Mode ind_o_mode;
- struct {
- const char *info;
- Ecore_Timer *timer;
- int repeat_count;
- int shot_counter;
- } shot;
+ struct
+ {
+ const char *info;
+ Ecore_Timer *timer;
+ int repeat_count;
+ int shot_counter;
+ } shot;
int resize_location;
int *autodel_clear, rot;
int show_count;
- struct {
- int x, y;
- } screen;
- struct
+ struct
+ {
+ int x, y;
+ } screen;
+ struct
{
Ecore_Evas *ee;
Evas *evas;
Evas_Object *obj, *hot_obj;
int hot_x, hot_y;
} pointer;
- struct {
- Evas_Object *top;
+ struct
+ {
+ Evas_Object *top;
- struct {
- Evas_Object *target;
- Eina_Bool visible : 1;
- Eina_Bool handled : 1;
- } cur, prev;
+ struct
+ {
+ Evas_Object *target;
+ Eina_Bool visible : 1;
+ Eina_Bool handled : 1;
+ } cur, prev;
- const char *style;
- Ecore_Job *reconf_job;
+ const char *style;
+ Ecore_Job *reconf_job;
- Eina_Bool enabled : 1;
- Eina_Bool changed_theme : 1;
- Eina_Bool top_animate : 1;
- Eina_Bool geometry_changed : 1;
- } focus_highlight;
+ Eina_Bool enabled : 1;
+ Eina_Bool changed_theme : 1;
+ Eina_Bool top_animate : 1;
+ Eina_Bool geometry_changed : 1;
+ } focus_highlight;
Evas_Object *icon;
const char *title;
const char *icon_name;
const char *role;
-
+
double aspect;
Eina_Bool urgent : 1;
Eina_Bool modal : 1;
win->deferred_resize_job = ecore_job_add(_elm_win_resize_job, win);
}
-static void
+static void
_elm_win_mouse_in(Ecore_Evas *ee)
{
Evas_Object *obj;
}
}
-static void
+static void
_elm_win_state_change(Ecore_Evas *ee)
{
Evas_Object *obj;
Eina_Bool ch_maximized = EINA_FALSE;
if (!(obj = ecore_evas_object_associate_get(ee))) return;
-
+
if (!(win = elm_widget_data_get(obj))) return;
if (win->withdrawn != ecore_evas_withdrawn_get(win->ee))
if (win->icon_name) eina_stringshare_del(win->icon_name);
if (win->role) eina_stringshare_del(win->role);
if (win->icon) evas_object_del(win->icon);
-
+
free(win);
if ((!_elm_win_list) &&
_elm_win_xwin_update(Elm_Win *win)
{
const char *s;
-
+
_elm_win_xwindow_get(win);
if (win->parent)
{
s = win->role;
if (s) ecore_x_icccm_window_role_set(win->xwin, s);
-
+
// set window icon
if (win->icon)
{
int w = 0, h = 0, stride, x, y;
unsigned char *p;
unsigned int *p2;
-
+
evas_object_image_size_get(win->icon, &w, &h);
stride = evas_object_image_stride_get(win->icon);
- if ((w > 0) && (h > 0) &&
+ if ((w > 0) && (h > 0) &&
(stride >= (int)(w * sizeof(unsigned int))))
{
ic.width = w;
ic.height = h;
ic.data = malloc(w * h * sizeof(unsigned int));
-
+
if (ic.data)
{
p = (unsigned char *)data;
p += sizeof(unsigned int);
p2++;
}
- p += (stride - (w * sizeof(unsigned int)));
+ p += (stride - (w * sizeof(unsigned int)));
}
ecore_x_netwm_icons_set(win->xwin, &ic, 1);
free(ic.data);
evas_object_image_data_set(win->icon, data);
}
}
-
+
switch (win->type)
{
case ELM_WIN_BASIC:
win->focus_highlight.prev = win->focus_highlight.cur;
}
-static void
+static void
_elm_win_frame_add(Elm_Win *win, const char *style)
{
evas_output_framespace_set(win->evas, 0, 22, 0, 26);
evas_object_move(win->frame_obj, 0, 0);
evas_object_resize(win->frame_obj, 1, 1);
- edje_object_signal_callback_add(win->frame_obj, "elm,action,move,start",
+ edje_object_signal_callback_add(win->frame_obj, "elm,action,move,start",
"elm", _elm_win_frame_cb_move_start, win);
- edje_object_signal_callback_add(win->frame_obj, "elm,action,resize,start",
+ edje_object_signal_callback_add(win->frame_obj, "elm,action,resize,start",
"*", _elm_win_frame_cb_resize_start, win);
- edje_object_signal_callback_add(win->frame_obj, "elm,action,minimize",
+ edje_object_signal_callback_add(win->frame_obj, "elm,action,minimize",
"elm", _elm_win_frame_cb_minimize, win);
- edje_object_signal_callback_add(win->frame_obj, "elm,action,maximize",
+ edje_object_signal_callback_add(win->frame_obj, "elm,action,maximize",
"elm", _elm_win_frame_cb_maximize, win);
- edje_object_signal_callback_add(win->frame_obj, "elm,action,close",
+ edje_object_signal_callback_add(win->frame_obj, "elm,action,close",
"elm", _elm_win_frame_cb_close, win);
}
-static void
+static void
_elm_win_frame_cb_move_start(void *data, Evas_Object *obj __UNUSED__, const char *sig __UNUSED__, const char *source __UNUSED__)
{
Elm_Win *win;
ecore_evas_move(win->ee, 0, 0);
}
-static void
+static void
_elm_win_frame_cb_resize_start(void *data, Evas_Object *obj __UNUSED__, const char *sig __UNUSED__, const char *source)
{
Elm_Win *win;
ecore_evas_wayland_resize(win->ee, win->resize_location);
}
-static void
+static void
_elm_win_frame_cb_minimize(void *data, Evas_Object *obj __UNUSED__, const char *sig __UNUSED__, const char *source __UNUSED__)
{
Elm_Win *win;
ecore_evas_iconified_set(win->ee, EINA_TRUE);
}
-static void
+static void
_elm_win_frame_cb_maximize(void *data, Evas_Object *obj __UNUSED__, const char *sig __UNUSED__, const char *source __UNUSED__)
{
Elm_Win *win;
ecore_evas_maximized_set(win->ee, win->maximized);
}
-static void
+static void
_elm_win_frame_cb_close(void *data, Evas_Object *obj __UNUSED__, const char *sig __UNUSED__, const char *source __UNUSED__)
{
Elm_Win *win;
}
/*
-static void
+static void
_elm_win_pointer_add(Elm_Win *win, const char *style)
{
int mw, mh;
win->kbdmode = ELM_WIN_KEYBOARD_UNKNOWN;
win->indmode = ELM_WIN_INDICATOR_UNKNOWN;
-
+
switch (type)
{
case ELM_WIN_INLINED_IMAGE:
{
win->ee = ecore_evas_ews_new(0, 0, 1, 1);
}
- else if (ENGINE_COMPARE(ELM_WAYLAND_SHM))
+ else if (ENGINE_COMPARE(ELM_WAYLAND_SHM))
{
win->ee = ecore_evas_wayland_shm_new(NULL, 0, 0, 0, 1, 1, 0);
win->evas = ecore_evas_get(win->ee);
_elm_win_frame_add(win, "default");
// _elm_win_pointer_add(win, "default");
}
- else if (ENGINE_COMPARE(ELM_WAYLAND_EGL))
+ else if (ENGINE_COMPARE(ELM_WAYLAND_EGL))
{
win->ee = ecore_evas_wayland_egl_new(NULL, 0, 0, 0, 1, 1, 0);
win->evas = ecore_evas_get(win->ee);
evas_object_layer_set(win->win_obj, 50);
evas_object_pass_events_set(win->win_obj, EINA_TRUE);
- if (win->frame_obj)
+ if (win->frame_obj)
{
evas_object_clip_set(win->win_obj, win->frame_obj);
evas_object_stack_below(win->frame_obj, win->win_obj);
Evas_Object. */
ELM_WIN_SOCKET_IMAGE,/**< The window is rendered onto an image buffer
and can be shown other process's plug image object.
- No actual window is created for this type,
+ No actual window is created for this type,
instead the window and all of its contents will be
- rendered to an image buffer and can be shown
+ rendered to an image buffer and can be shown
other process's plug image object*/
} Elm_Win_Type;
/**
* In some environments, like phones, you may have an indicator that
* shows battery status, reception, time etc. This is the indicator.
- *
+ *
* Sometimes you don't want it because you provide the same functionality
* inside your app, so this will request that the indicator is hidden in
* this circumstance if you use ELM_ILLUME_INDICATOR_HIDE. The default
/**
* Set the object to represent the window icon
- *
+ *
* This sets an object that will be used as the icon for the window. The exact
* pixel dimensions of the object (not object size) will be used, and the
* image pixels will be used as-is when this function is called. If the
* image object has been updated, then call this function again to source
* the image pixels and put them on the window's icon. This has limitations
* as only image objects allowed at this stage. This may be lifted in future.
- *
+ *
* @param obj The window object
* @param icon The object to use for an icon
*/
Elm_Smart_Scroller_Policy hbar_flags, vbar_flags;
- struct {
+ struct
+ {
Evas_Coord x, y;
Evas_Coord sx, sy;
Evas_Coord dx, dy;
Evas_Coord bx0, by0;
Evas_Coord b0x, b0y;
Evas_Coord b2x, b2y;
- struct {
+ struct
+ {
Evas_Coord x, y;
double timestamp, localtimestamp;
- } history[60];
- struct {
- double tadd, dxsum, dysum;
- double est_timestamp_diff;
- } hist;
- double anim_start;
- double anim_start2;
- double anim_start3;
- double onhold_vx, onhold_vy, onhold_tlast, onhold_vxe, onhold_vye;
- double extra_time;
- Evas_Coord hold_x, hold_y;
- Ecore_Animator *hold_animator;
- Ecore_Animator *onhold_animator;
- Ecore_Animator *momentum_animator;
- Ecore_Animator *bounce_x_animator;
- Ecore_Animator *bounce_y_animator;
- Evas_Coord locked_x, locked_y;
- int hdir, vdir;
- Eina_Bool now : 1;
- Eina_Bool cancelled : 1;
- Eina_Bool hold : 1;
- Eina_Bool hold_parent : 1;
- Eina_Bool want_dragged : 1;
- Eina_Bool dragged : 1;
- Eina_Bool dragged_began : 1;
- Eina_Bool dir_x : 1;
- Eina_Bool dir_y : 1;
- Eina_Bool locked : 1;
- Eina_Bool bounce_x_hold : 1;
- Eina_Bool bounce_y_hold : 1;
- Eina_Bool scroll : 1;
- Eina_Bool want_reset : 1;
- } down;
-
- struct {
- Evas_Coord w, h;
- Eina_Bool resized : 1;
- } child;
- struct {
- Evas_Coord x, y;
- } step, page;
-
- struct {
- void (*set) (Evas_Object *obj, Evas_Coord x, Evas_Coord y);
- void (*get) (Evas_Object *obj, Evas_Coord *x, Evas_Coord *y);
- void (*max_get) (Evas_Object *obj, Evas_Coord *x, Evas_Coord *y);
- void (*min_get) (Evas_Object *obj, Evas_Coord *x, Evas_Coord *y);
- void (*child_size_get) (Evas_Object *obj, Evas_Coord *x, Evas_Coord *y);
- void (*gravity_set) (Evas_Object *obj, double x, double y);
- void (*gravity_get) (Evas_Object *obj, double *x, double *y);
- } pan_func;
-
- struct {
- struct {
- Evas_Coord start, end;
- double t_start, t_end;
- Ecore_Animator *animator;
- } x, y;
- } scrollto;
+ } history[60];
+ struct
+ {
+ double tadd, dxsum, dysum;
+ double est_timestamp_diff;
+ } hist;
+ double anim_start;
+ double anim_start2;
+ double anim_start3;
+ double onhold_vx, onhold_vy, onhold_tlast, onhold_vxe, onhold_vye;
+ double extra_time;
+ Evas_Coord hold_x, hold_y;
+ Ecore_Animator *hold_animator;
+ Ecore_Animator *onhold_animator;
+ Ecore_Animator *momentum_animator;
+ Ecore_Animator *bounce_x_animator;
+ Ecore_Animator *bounce_y_animator;
+ Evas_Coord locked_x, locked_y;
+ int hdir, vdir;
+ Eina_Bool now : 1;
+ Eina_Bool cancelled : 1;
+ Eina_Bool hold : 1;
+ Eina_Bool hold_parent : 1;
+ Eina_Bool want_dragged : 1;
+ Eina_Bool dragged : 1;
+ Eina_Bool dragged_began : 1;
+ Eina_Bool dir_x : 1;
+ Eina_Bool dir_y : 1;
+ Eina_Bool locked : 1;
+ Eina_Bool bounce_x_hold : 1;
+ Eina_Bool bounce_y_hold : 1;
+ Eina_Bool scroll : 1;
+ Eina_Bool want_reset : 1;
+ } down;
+
+ struct
+ {
+ Evas_Coord w, h;
+ Eina_Bool resized : 1;
+ } child;
+ struct
+ {
+ Evas_Coord x, y;
+ } step, page;
+
+ struct
+ {
+ void (*set) (Evas_Object *obj, Evas_Coord x, Evas_Coord y);
+ void (*get) (Evas_Object *obj, Evas_Coord *x, Evas_Coord *y);
+ void (*max_get) (Evas_Object *obj, Evas_Coord *x, Evas_Coord *y);
+ void (*min_get) (Evas_Object *obj, Evas_Coord *x, Evas_Coord *y);
+ void (*child_size_get) (Evas_Object *obj, Evas_Coord *x, Evas_Coord *y);
+ void (*gravity_set) (Evas_Object *obj, double x, double y);
+ void (*gravity_get) (Evas_Object *obj, double *x, double *y);
+ } pan_func;
+
+ struct
+ {
+ struct
+ {
+ Evas_Coord start, end;
+ double t_start, t_end;
+ Ecore_Animator *animator;
+ } x, y;
+ } scrollto;
double pagerel_h, pagerel_v;
Evas_Coord pagesize_h, pagesize_v;
int i, count = 0;
Evas_Coord basex = 0, basey = 0, x, y;
double dt, t, tdiff, tnow, twin;
- struct {
+ struct
+ {
Evas_Coord x, y, dx, dy;
double t, dt;
- } pos[60];
+ } pos[60];
tdiff = sd->down.hist.est_timestamp_diff;
tnow = ecore_time_get() - tdiff;
Ecore_Timer *hide_timer;
Ecore_Job *reconfigure_job;
Evas_Coord mouse_x, mouse_y;
- struct {
- Evas_Coord x, y, bx, by;
- } pad;
- struct {
- double x, y;
- } rel_pos;
+ struct
+ {
+ Evas_Coord x, y, bx, by;
+ } pad;
+ struct
+ {
+ double x, y;
+ } rel_pos;
double hide_timeout; /* from theme */
Eina_Bool visible_lock:1;
Eina_Bool changed_style:1;