elementary: Add multibuttonentry widget

---------------------------------------------------

Dear Developers,

I added a new widget called “Multibuttonentry" which could be used as contact button in App
This widget allows a user to insert a text button.
text button is inserted by pressing the "Enter key"
If there is no space in the current row, the new button is entered in the next row. If the button is clicked, it will become focused.
And focused button can be removed by pressing the "backspace" key.
when items are added over 1 lines, if Multibuttonentry lost focus, it becase shrink mode (made it as 1 line)

Please review it's APIs and functionalities.

Thank you,
Goun

---------------------------------------------------

Widget was originally written by Hyunsil Park <hyunsil.park@samsung.com>.
It has been contributed to by the following people:
 * Jihoon Kim <jihoon48.kim@samsung.com>
 * WooHyun Jung <wh0705.jung@samsung.com>
 * deasung.kim <deasung.kim@samsung.com>
 * Myungjae Lee <mjae.lee@samsung.com>
 * Goun Lee <gouni.lee@samsung.com>
 * Mike McCormack <mj.mccormack@samsung.com>
 * Daniel Juyung Seo <juyung.seo@samsung.com>
 * Seunggyun Kim <sgyun.kim@samsung.com>
 * sanghoon80.cho <sanghoon80.cho@samsung.com>

Signed-off-by: 이고은 <gouni.lee@samsung.com>
Signed-off-by: Mike McCormack <mj.mccormack@samsung.com>

SVN revision: 65548
This commit is contained in:
이고은 2011-11-24 01:06:26 +00:00 committed by Mike McCormack
parent d40045cceb
commit 6824852f0c
11 changed files with 2638 additions and 3 deletions

View File

@ -49,3 +49,5 @@ Kim Yunhan <spbear@gmail.com>
Bluezery <ohpowel@gmail.com>
Nicolas Aguirre <aguirre.nicolas@gmail.com>
Sanjeev BA <iamsanjeev@gmail.com>
Hyunsil Park <hyunsil.park@samsung.com>
Goun Lee <gouni.lee@samsung.com>

View File

@ -9,7 +9,7 @@ EDJE_FLAGS = $(EDJE_FLAGS_$(V)) -id $(top_srcdir)/data/objects -fd $(top_srcdir)
filesdir = $(datadir)/elementary/objects
files_DATA = test.edj multip.edj colorpreview.edj cursors.edj font_preview.edj postit_ent.edj
files_DATA = test.edj multip.edj colorpreview.edj cursors.edj font_preview.edj postit_ent.edj multibuttonentry.edj
EXTRA_DIST = \
test.edc \
@ -18,6 +18,7 @@ colorpreview.edc \
cursors.edc \
font_preview.edc \
postit_ent.edc \
multibuttonentry.edc \
grid_bg.png \
over.png \
under.png \
@ -54,6 +55,10 @@ postit_ent.edj: Makefile $(EXTRA_DIST)
$(EDJE_CC) $(EDJE_FLAGS) \
$(top_srcdir)/data/objects/postit_ent.edc \
$(top_builddir)/data/objects/postit_ent.edj
multibuttonentry.edj: Makefile $(EXTRA_DIST)
$(EDJE_CC) $(EDJE_FLAGS) \
$(top_srcdir)/data/objects/multibuttonentry.edc \
$(top_builddir)/data/objects/multibuttonentry.edj
clean-local:
rm -f *.edj

View File

@ -0,0 +1,100 @@
collections {
group {
name: "multibuttonentry_test";
parts{
part {
name: "bg";
type: RECT;
mouse_events: 1;
scale:1;
description {
state: "default" 0.0;
color: 0 0 0 0;
rel1.relative: 0.0 0.0;
rel2.relative: 1.0 1.0;
}
}
part{
name: "top.left";
type: RECT;
scale: 1;
description {
state: "default" 0.0;
min : 0 0;
fixed: 1 1;
rel1 { relative: 0.0 0.0;to:bg; }
rel2 { relative: 0.0 0.0;to:bg; }
align: 0.0 0.0;
color: 0 0 0 0;
}
}
part{
name: "bottom.right";
type: RECT;
scale: 1;
description {
state: "default" 0.0;
min : 0 0;
fixed: 1 1;
rel1 { relative: 1.0 1.0;to:bg; }
rel2 { relative: 1.0 1.0;to:bg; }
align: 1.0 1.0;
color: 0 0 0 0;
}
}
part {
name: "bg.box";
type: RECT;
mouse_events: 0;
scale:1;
description {
state: "default" 0.0;
rel1.to: box;
rel2.to: box;
color: 230 220 188 255;
}
}
part {
name: "box";
type: SWALLOW;
mouse_events: 1;
scale:1;
description {
state: "default" 0.0;
min : 0 5;
fixed: 0 1;
rel1 { relative: 1.0 1.0;to: top.left;}
rel2 { relative: 0.0 1.0;to_x: bottom.right;to_y: top.left;}
align: 0.0 0.0;
}
}
part {
name: "bg.multibuttonentry";
type: RECT;
mouse_events: 0;
scale:1;
description {
state: "default" 0.0;
rel1.to: multibuttonentry;
rel2.to: multibuttonentry;
color: 246 245 237 0;
}
}
part {
name: "multibuttonentry";
type: SWALLOW;
mouse_events: 1;
scale:1;
description {
state: "default" 0.0;
min : 0 5;
fixed: 0 1;
rel1 { relative: 0.0 1.0; to: box; }
rel2 { relative: 0.0 0.0; to:bottom.right; }
align: 0.0 0.0;
}
}
}
}
}

View File

@ -20,6 +20,7 @@ widgets/segment_control.edc \
widgets/bg.edc \
widgets/flipselector.edc \
widgets/naviframe.edc \
widgets/multibuttonentry.edc \
widgets/separator.edc \
widgets/bubble.edc \
widgets/frame.edc \

View File

@ -364,7 +364,7 @@ collections {
#include "widgets/player.edc"
#include "widgets/video.edc"
#include "widgets/naviframe.edc"
#include "widgets/multibuttonentry.edc"
#include "ews.edc"
}

View File

@ -0,0 +1,468 @@
group {
name: "elm/multibuttonentry/base/default";
data.item: "closed_button_type" "image"; /* image, label, default : label */
data.item: "closed_height" 46;
parts {
part {
name: "elm.base";
type: RECT;
scale: 1;
description {
state: "default" 0.0;
align: 0 0;
color: 0 0 0 0;
}
}
part {
name: "top.left.pad";
type: RECT;
scale: 1;
description {
state: "default" 0.0;
min : 6 8;
fixed: 1 1;
rel1 { relative: 0.0 0.0;to:elm.base; }
rel2 { relative: 0.0 0.0;to:elm.base; }
align: 0 0;
color: 0 0 0 0;
}
}
part {
name: "bottom.right.pad";
type: RECT;
scale: 1;
description {
state: "default" 0.0;
min : 6 8;
fixed: 1 1;
rel1 { relative: 1.0 1.0;to:elm.base; }
rel2 { relative: 1.0 1.0;to:elm.base; }
align: 1 1;
color: 0 0 0 0;
}
}
part {
name: "box.swallow";
type: SWALLOW;
description {
state: "default" 0.0;
rel1 { relative: 1.0 1.0; to: "top.left.pad"; }
rel2 { relative: 0.0 0.0; to: "bottom.right.pad"; }
align: 0.0 0.0;
}
}
}
}
group {
name: "elm/multibuttonentry/guidetext/default";
parts {
part {
name: "elm.text.bg";
type: RECT;
mouse_events: 0;
scale: 1;
description {
state: "default" 0.0;
color: 0 0 0 0;
visible: 0;
rel1.to: "elm.text";
rel2.to: "elm.text";
}
}
part {
name: "elm.text";
type: TEXT;
scale: 1;
description {
state: "default" 0.0;
color: 130 130 130 255;
text {
font: "Sans:style=Roman";
size: 16;
min: 0 1;
align: 0.0 0.5;
}
}
}
}
}
group {
name: "elm/multibuttonentry/btn/default";
data.item: "button_max_size" 130;
styles {
style { name: "multibuttonentry_textblock_style";
base: "font=Arial:style=Medium align=0.5 font_size=16 color=#FFFFFF text_class=label ellipsis=1.0";
tag: "br" "\n";
tag: "ps" "ps";
tag: "hilight" "+ font=Sans:style=Bold";
tag: "b" "+ font=Sans:style=Bold";
tag: "tab" "\t";
}
}
parts {
part {
name: "elm.base";
type: RECT;
mouse_events: 1;
scale: 1;
description {
state: "default" 0.0;
min: 0 33;
max: 3000 33;
fixed: 1 1;
color: 255 255 255 0;
}
}
part{
name: "top.padding";
type: RECT;
scale: 1;
description {
state: "default" 0.0;
min : 3 5;
fixed: 1 1;
rel1 { relative: 0.0 0.0;to:elm.base; }
rel2 { relative: 1.0 0.0;to:elm.base; }
color: 255 0 0 0;
align: 0 0;
}
}
part{
name: "bottom.padding";
type: RECT;
scale: 1;
description {
state: "default" 0.0;
min : 3 5;
fixed: 1 1;
rel1 { relative: 0.0 1.0;to:elm.base; }
rel2 { relative: 1.0 1.0;to:elm.base; }
color: 0 255 0 0;
align: 0 1;
}
}
part {
name: "left.padding";
type: RECT;
scale: 1;
description {
state: "default" 0.0;
min : 0 0;
fixed: 0 0;
rel1 { relative: 0.0 0.0; to: "elm.base"; }
rel2 { relative: 0.0 1.0; to: "elm.base"; }
color: 255 0 255 0;
align: 0 0;
}
}
part {
name: "right.padding";
type: RECT;
scale: 1;
description {
state: "default" 0.0;
min : 5 0;
fixed: 0 0;
rel1 { relative: 1.0 0.0; to: "elm.base"; }
rel2 { relative: 1.0 1.0; to: "elm.base"; }
color: 0 0 255 0;
align: 1 1.0;
}
}
part {
name: "elm.btn.bg";
type: RECT;
mouse_events: 1;
scale: 1;
description {
state: "default" 0.0;
min : 10 6;
max : 500 50;
fixed: 0 0;
rel1 { relative: 1.0 1.0; to_x:"left.padding";to_y:"top.padding";}
rel2 { relative: 0.0 0.0; to_x:"right.padding";to_y:"bottom.padding";}
color: 80 80 80 255;
}
description {
state: "focused" 0.0;
inherit: "default" 0.0;
color: 170 170 170 255;
}
}
part {
name: "elm.btn.text";
type: TEXTBLOCK;
mouse_events: 1;
scale:1;
description {
state: "default" 0.0;
min: 6 6;
max: 120 33;
fixed: 0 1;
text {
text: "Auto Resized textblock";
style: "multibuttonentry_textblock_style";
min: 1 1;
align: 0.5 0.5;
}
rel1.to:"elm.btn.bg";
rel2.to:"elm.btn.bg";
rel1.offset: 10 10;
rel2.offset: -11 -11;
}
}
}
programs {
program {
name: "clicked";
signal: "mouse,clicked,1";
source: "elm.btn.bg";
action: SIGNAL_EMIT "clicked" "elm";
}
program {
name: "default";
signal: "default";
action: STATE_SET "default" 0.0;
target: "elm.btn.bg";
}
program {
name: "focused";
signal: "focused";
action: STATE_SET "focused" 0.0;
target: "elm.btn.bg";
}
}
}
group {
name: "elm/label/base/extended/multibuttonentry_default";
styles {
style {
name: "textblock_style_multibuttonentry_default";
base: "font=Sans:style=Medium font_size=16 color=#000000 wrap=char";
tag: "br" "\n";
tag: "ps" "ps";
tag: "hilight" "+ font=Sans:style=Bold";
tag: "b" "+ font=Sans:style=Bold";
tag: "tab" "\t";
}
}
parts {
part {
name: "label.swallow.background";
type: SWALLOW;
description {
state: "default" 0.0;
visible: 1;
rel1 { relative: 0 0; to: "elm.text"; }
rel2 { relative: 1 1; to: "elm.text"; }
}
}
part {
name: "elm.text";
type: TEXTBLOCK;
mouse_events: 0;
scale: 1;
description {
state: "default" 0.0;
text {
style: "textblock_style_multibuttonentry_default";
min: 1 1;
}
}
}
}
}
group {
name: "elm/multibuttonentry/closedbutton/default";
images {
image: "bt_basew.png" COMP;
image: "bt_base1.png" COMP;
image: "arrow_down.png" COMP;
image: "down.png" COMP;
}
data.item: "closed_button_height" 26;
data.item: "closed_button_width" 26;
parts {
part {
name: "closed_button_bg";
scale: 1;
mouse_events: 0;
type: IMAGE;
description {
state: "default" 0.0;
align: 0.5 0.5;
min: 26 26;
visible: 1;
image.normal: "bt_basew.png";
rel1 { relative: 0.0 0.0; }
rel2 { relative: 1.0 1.0; }
}
description {
state: "clicked" 0.0;
inherit: "default" 0.0;
image.normal: "bt_base1.png";
}
}
part {
name: "closed_button";
scale: 1;
mouse_events: 1;
type: IMAGE;
description {
state: "default" 0.0;
align: 0.5 0.5;
min: 26 26;
visible: 1;
image.normal: "arrow_down.png";
rel1 { relative: 0.0 0.0; }
rel2 { relative: 1.0 1.0; }
}
description {
state: "clicked" 0.0;
inherit: "default" 0.0;
image.normal: "down.png";
}
}
}
programs {
program {
name: "button_click";
signal: "mouse,down,1";
source: "closed_button";
action: STATE_SET "clicked" 0.0;
target: "closed_button_bg";
target: "closed_button";
}
program {
name: "button_unclick";
signal: "mouse,up,1";
source: "closed_button";
action: STATE_SET "default" 0.0;
target: "closed_button_bg";
target: "closed_button";
}
}
}
group {
name: "elm/multibuttonentry/label/default";
parts {
part {
name: "mbe.label.bg";
type: RECT;
scale: 1;
mouse_events: 0;
description {
state: "default" 0.0;
color: 0 0 0 0;
min: 0 0;
fixed: 1 1;
}
description {
state: "no_text" 0.0;
inherit: "default" 0.0;
visible: 0;
}
}
part {
name: "mbe.label.left.padding";
type: RECT;
mouse_events: 0;
scale: 1;
description {
state: "default" 0.0;
color: 0 0 0 0;
min: 3 0;
fixed: 1 1;
rel1.to: "mbe.label.bg";
rel2 {
to: "mbe.label.bg";
relative: 0.0 1.0;
}
align: 0 0.5;
}
description {
state: "no_text" 0.0;
inherit: "default" 0.0;
visible: 0;
}
}
part {
name: "mbe.label.right.padding";
type: RECT;
mouse_events: 0;
scale: 1;
description {
state: "default" 0.0;
color: 0 0 0 0;
min: 3 0;
fixed: 1 1;
rel1 {
to: "mbe.label.bg";
relative: 1.0 0.0;
}
rel2.to: "mbe.label.bg";
align: 1 1.0;
}
description {
state: "no_text" 0.0;
inherit: "default" 0.0;
visible: 0;
}
}
part {
name: "mbe.label";
type: TEXT;
mouse_events: 0;
scale: 1;
description {
state: "default" 0.0;
color: 0 0 0 255;
min: 0 33;
fixed: 1 1;
text {
font: "Sans:style=Roman";
size: 16;
min: 1 1;
align: 0.0 0.428;
}
rel1 { relative: 1.0 1.0; to: "mbe.label.left.padding"; }
rel2 { relative: 0.0 0.0; to: "mbe.label.right.padding"; }
}
description {
state: "no_text" 0.0;
inherit: "default" 0.0;
min: 6 33;
}
}
}
programs {
program {
name: "has_text";
signal: "elm,mbe,set_text";
source: "";
action: STATE_SET "default" 0.0;
target: "mbe.label.bg";
target: "mbe.label.left.padding";
target: "mbe.label.right.padding";
target: "mbe.label";
}
program {
name: "no_text";
signal: "elm,mbe,clear_text";
source: "";
action: STATE_SET "no_text" 0.0;
target: "mbe.label.bg";
target: "mbe.label.left.padding";
target: "mbe.label.right.padding";
target: "mbe.label";
}
}
}

View File

@ -79,6 +79,7 @@ test_list.c \
test_map.c \
test_menu.c \
test_multi.c \
test_multibuttonentry.c \
test_naviframe.c \
test_notify.c \
test_pager.c \

View File

@ -39,6 +39,7 @@ void test_entry3(void *data, Evas_Object *obj, void *event_info);
void test_entry4(void *data, Evas_Object *obj, void *event_info);
void test_entry5(void *data, Evas_Object *obj, void *event_info);
void test_entry_notepad(void *data, Evas_Object *obj, void *event_info);
void test_multibuttonentry(void *data, Evas_Object *obj, void *event_info);
void test_anchorview(void *data, Evas_Object *obj, void *event_info);
void test_anchorblock(void *data, Evas_Object *obj, void *event_info);
void test_toolbar(void *data, Evas_Object *obj, void *event_info);
@ -334,6 +335,7 @@ add_tests:
ADD_TEST(NULL, "Entries", "Entry 4", test_entry4);
ADD_TEST(NULL, "Entries", "Entry 5", test_entry5);
ADD_TEST(NULL, "Entries", "Entry Notepad", test_entry_notepad);
ADD_TEST(NULL, "Entries", "Multibuttonentry", test_multibuttonentry);
//------------------------------//
ADD_TEST(NULL, "Buttons", "Buttons", test_button);

View File

@ -28862,6 +28862,314 @@ extern "C" {
*/
EAPI Eina_Inlist *elm_naviframe_items_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
/**
* @}
*/
/**
* @defgroup Multibuttonenetry Multibuttonenetry
*
* @image html img/widget/flipselector/preview-00.png
* @image latex img/widget/flipselector/preview-00.eps
*
* A Multibuttonentry is a widget to allow a user to insert a text button.
* the text button is inserted by pressing the "return" key. If there is no space in the current row,
* the new button is entered in the next row. If the button is pressed, it will become focused.
* The focus can be removed by pressing the "backspace" key.
* when items are added over 1 lines, if Multibuttonentry lost focus, it becase shrink mode ( made it 1 line)
*
* Smart callbacks one can register to:
* - @c "item,selected" - when item is selected . it can be called by backspace key.
* - @c "item,added" - when a new multibuttonentry item is added.
* - @c "item,deleted" -when a multibuttonentry item is deleted.
* - @c "item,clicked" - selected item of multibuttonentry is clicked.
* - @c "clicked" - when multibuttonentry is clicked.
* - @c "focused" - when multibuttonentry is focused.
* - @c "unfocused" - when multibuttonentry is unfocused.
* - @c "expanded" - when multibuttonentry is expanded .
* - @c "shrank" - when multibuttonentry is shrank.
* - @c "shrank,state,changed" - when shrink mode state of multibuttonentry is changed.
*
* Here is an example on its usage:
* @li @ref multibuttonentry_example
*/
/**
* @addtogroup Multibuttonentry
* @{
*/
typedef struct _Multibuttonentry_Item Elm_Multibuttonentry_Item;
typedef Eina_Bool (*Elm_Multibuttonentry_Item_Filter_callback) (Evas_Object *obj, const char *item_label, void *item_data, void *data);
/**
* @brief Add a new multibuttonentry to the parent
*
* @param parent The parent object
* @return The new object or NULL if it cannot be created
*
* @ingroup Multibuttonentry
*/
EAPI Evas_Object *elm_multibuttonentry_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
/**
* Get the label
*
* @param obj The multibuttonentry object
* @return The label, or NULL if none
*
* @ingroup Multibuttonentry
*/
EAPI const char *elm_multibuttonentry_label_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
/**
* Set the label
*
* @param obj The multibuttonentry object
* @param label The text label string
*
* @ingroup Multibuttonentry
*/
EAPI void elm_multibuttonentry_label_set(Evas_Object *obj, const char *label) EINA_ARG_NONNULL(1);
/**
* Get the entry of the multibuttonentry object
*
* @param obj The multibuttonentry object
* @return The entry object, or NULL if none
*
* @ingroup Multibuttonentry
*/
EAPI Evas_Object *elm_multibuttonentry_entry_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
/**
* Get the guide text
*
* @param obj The multibuttonentry object
* @return The guide text, or NULL if none
*
* @ingroup Multibuttonentry
*/
EAPI const char * elm_multibuttonentry_guide_text_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
/**
* Set the guide text
*
* @param obj The multibuttonentry object
* @param label The guide text string
*
* @ingroup Multibuttonentry
*/
EAPI void elm_multibuttonentry_guide_text_set(Evas_Object *obj, const char *guidetext) EINA_ARG_NONNULL(1);
/**
* Get the value of shrink_mode state.
*
* @param obj The multibuttonentry object
* @param the value of shrink mode state.
*
* @ingroup Multibuttonentry
*/
EAPI int elm_multibuttonentry_shrink_mode_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
/**
* Set/Unset the multibuttonentry to shrink mode state of single line
*
* @param obj The multibuttonentry object
* @param the value of shrink_mode state. set this to 1 to set the multibuttonentry to shrink state of single line. set this to 0 to unset the contracted state.
*
* @ingroup Multibuttonentry
*/
EAPI void elm_multibuttonentry_shrink_mode_set(Evas_Object *obj, int shrink) EINA_ARG_NONNULL(1);
/**
* Prepend a new item to the multibuttonentry
*
* @param obj The multibuttonentry object
* @param label The label of new item
* @param data The ponter to the data to be attached
* @return A handle to the item added or NULL if not possible
*
* @ingroup Multibuttonentry
*/
EAPI Elm_Multibuttonentry_Item *elm_multibuttonentry_item_prepend(Evas_Object *obj, const char *label, void *data) EINA_ARG_NONNULL(1);
/**
* Append a new item to the multibuttonentry
*
* @param obj The multibuttonentry object
* @param label The label of new item
* @param data The ponter to the data to be attached
* @return A handle to the item added or NULL if not possible
*
* @ingroup Multibuttonentry
*/
EAPI Elm_Multibuttonentry_Item *elm_multibuttonentry_item_append(Evas_Object *obj, const char *label, void *data) EINA_ARG_NONNULL(1);
/**
* Add a new item to the multibuttonentry before the indicated object
*
* reference.
* @param obj The multibuttonentry object
* @param before The item before which to add it
* @param label The label of new item
* @param data The ponter to the data to be attached
* @return A handle to the item added or NULL if not possible
*
* @ingroup Multibuttonentry
*/
EAPI Elm_Multibuttonentry_Item *elm_multibuttonentry_item_insert_before(Evas_Object *obj, Elm_Multibuttonentry_Item *before, const char *label, void *data) EINA_ARG_NONNULL(1);
/**
* Add a new item to the multibuttonentry after the indicated object
*
* @param obj The multibuttonentry object
* @param after The item after which to add it
* @param label The label of new item
* @param data The ponter to the data to be attached
* @return A handle to the item added or NULL if not possible
*
* @ingroup Multibuttonentry
*/
EAPI Elm_Multibuttonentry_Item *elm_multibuttonentry_item_insert_after(Evas_Object *obj, Elm_Multibuttonentry_Item *after, const char *label, void *data) EINA_ARG_NONNULL(1);
/**
* Get a list of items in the multibuttonentry
*
* @param obj The multibuttonentry object
* @return The list of items, or NULL if none
*
* @ingroup Multibuttonentry
*/
EAPI const Eina_List *elm_multibuttonentry_items_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
/**
* Get the first item in the multibuttonentry
*
* @param obj The multibuttonentry object
* @return The first item, or NULL if none
*
* @ingroup Multibuttonentry
*/
EAPI Elm_Multibuttonentry_Item *elm_multibuttonentry_first_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
/**
* Get the last item in the multibuttonentry
*
* @param obj The multibuttonentry object
* @return The last item, or NULL if none
*
* @ingroup Multibuttonentry
*/
EAPI Elm_Multibuttonentry_Item *elm_multibuttonentry_last_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
/**
* Get the selected item in the multibuttonentry
*
* @param obj The multibuttonentry object
* @return The selected item, or NULL if none
*
* @ingroup Multibuttonentry
*/
EAPI Elm_Multibuttonentry_Item *elm_multibuttonentry_selected_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
/**
* Set the selected state of an item
*
* @param item The item
* @param selected if it's EINA_TRUE, select the item otherwise, unselect the item
*
* @ingroup Multibuttonentry
*/
EAPI void elm_multibuttonentry_item_select(Elm_Multibuttonentry_Item *item, Eina_Bool selected) EINA_ARG_NONNULL(1);
/**
* unselect all of items.
*
* @param obj The multibuttonentry object
*
* @ingroup Multibuttonentry
*/
EAPI void elm_multibuttonentry_item_unselect_all(Evas_Object *obj) EINA_ARG_NONNULL(1);
/**
* Delete a given item
*
* @param item The item
*
* @ingroup Multibuttonentry
*/
EAPI void elm_multibuttonentry_item_del(Elm_Multibuttonentry_Item *item) EINA_ARG_NONNULL(1);
/**
* Remove all items in the multibuttonentry.
*
* @param obj The multibuttonentry object
*
* @ingroup Multibuttonentry
*/
EAPI void elm_multibuttonentry_clear(Evas_Object *obj) EINA_ARG_NONNULL(1);
/**
* Get the label of a given item
*
* @param item The item
* @return The label of a given item, or NULL if none
*
* @ingroup Multibuttonentry
*/
EAPI const char *elm_multibuttonentry_item_label_get(const Elm_Multibuttonentry_Item *item) EINA_ARG_NONNULL(1);
/**
* Set the label of a given item
*
* @param item The item
* @param label The text label string
*
* @ingroup Multibuttonentry
*/
EAPI void elm_multibuttonentry_item_label_set(Elm_Multibuttonentry_Item *item, const char *str) EINA_ARG_NONNULL(1);
/**
* Get the previous item in the multibuttonentry
*
* @param item The item
* @return The item before the item @p item
*
* @ingroup Multibuttonentry
*/
EAPI Elm_Multibuttonentry_Item *elm_multibuttonentry_item_prev_get(const Elm_Multibuttonentry_Item *item) EINA_ARG_NONNULL(1);
/**
* Get the next item in the multibuttonentry
*
* @param item The item
* @return The item after the item @p item
*
* @ingroup Multibuttonentry
*/
EAPI Elm_Multibuttonentry_Item *elm_multibuttonentry_item_next_get(const Elm_Multibuttonentry_Item *item) EINA_ARG_NONNULL(1);
/**
* Append a item filter function for text inserted in the Multibuttonentry
*
* Append the given callback to the list. This functions will be called
* whenever any text is inserted into the Multibuttonentry, with the text to be inserted
* as a parameter. 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 it text
* parameter to NULL. This will also prevent any following filters from being
* called.
*
* @param obj The multibuttonentryentry object
* @param func The function to use as item filter
* @param data User data to pass to @p func
*
* @ingroup Multibuttonentryentry
*/
EAPI void elm_multibuttonentry_item_filter_append(Evas_Object *obj, Elm_Multibuttonentry_Item_Filter_callback func, void *data) EINA_ARG_NONNULL(1);
/**
* Prepend a filter function for text inserted in the Multibuttentry
*
* Prepend the given callback to the list. See elm_multibuttonentry_item_filter_append()
* for more information
*
* @param obj The multibuttonentry object
* @param func The function to use as text filter
* @param data User data to pass to @p func
*
* @ingroup Multibuttonentry
*/
EAPI void elm_multibuttonentry_item_filter_prepend(Evas_Object *obj, Elm_Multibuttonentry_Item_Filter_callback func, void *data) EINA_ARG_NONNULL(1);
/**
* Remove a filter from the list
*
* Removes the given callback from the filter list. See elm_multibuttonentry_item_filter_append()
* for more information.
*
* @param obj The multibuttonentry object
* @param func The filter function to remove
* @param data The user data passed when adding the function
*
* @ingroup Multibuttonentry
*/
EAPI void elm_multibuttonentry_item_filter_remove(Evas_Object *obj, Elm_Multibuttonentry_Item_Filter_callback func, void *data) EINA_ARG_NONNULL(1);
/**
* @}
*/

View File

@ -51,6 +51,7 @@ elc_fileselector.c \
elc_fileselector_entry.c \
elc_hoversel.c \
elc_naviframe.c \
elc_multibuttonentry.c \
elc_player.c \
elc_scrolled_entry.c \
elm_access.c \

File diff suppressed because it is too large Load Diff