A patch to get the content of a elementary object from edje. I have
implemented a new function: external_content_get() but maybe I should use
external_param_get() ?
2010/7/25 Atton Jonathan <jonathan.at...@gmail.com>
> My idea is to have 1 edje group by window. The application create the
> window, load the group and get the objects needed (buttons, list ...).
> With this method in the theme you have a complete controls: you can use 5
> panels or 2, display 3 list or 3 buttons to display one of the three list
> ...
>
> With generic interface we will have a way to have a theme for bif screen
> with a list and a second for small screen with a hoversel. But this part is
> not my priority, this is a big job.
>
> This is what I try to do with Enki. Then I will write a theme for small
> screen like phone.
>
> My first problem will be to retrieve the content of a elementary object.
> The first object in the current enki theme is a elm_panels. I will add the
> possibility to do this.
>
> 2010/7/19 Dave Andreoli <d...@gurumeditation.it>
>
> 2010/7/18 Gustavo Sverzut Barbieri <barbi...@profusion.mobi>:
>> > On Sat, Jul 17, 2010 at 8:08 AM, Atton Jonathan
>> > <jonathan.at...@gmail.com> wrote:
>> >> Hello,
>> >>
>> >> I am writting this messages to give a list of what is needed in edje
>> >> external. I am rewriting the layout of enki and I see some
>> limitations.
>> >>
>> >>
>> >> - We can't access to the content of a elementary widget (the content
>> of
>> >> elm_notify for example). With a evas box we can use "box[item_name]",
>> we
>> >> need the same tips with a external widget "notify[content]" or
>> >> "panes["left"].
>> >
>> > As said at IRC, this is a problem harder to solve in Elementary than
>> > in Edje/Externals API. We could just add a sub_object_get(name) to the
>> > externals API, but we have no standard way to get them from
>> > Elementary. If we need to implement it per-widget, it will be a major
>> > pain to keep in sync.
>> >
>> >
>> >> - a program which is in a group can't access to a sub-group. Simple
>> >> example : I have a part in a item of a box, a program can't have this
>> item
>> >> as target "target:box[item]:part". If my program send a signal which
>> should
>> >> set the state of this rectangle, I can't :(
>> >
>> > I recall Cedric and Sachiel doing something related to it these days.
>> > It should work with box and table at least.
>> >
>> >
>> >> - We can set the target of a elementary widget. For example, I have a
>> >> hoversel, I can't set his target. I have patched the hoversel, now
>> the
>> >> default target is the edje group but we can't set a part as target.
>> >
>> > Again, this is highly specific of the Elementary's EXTERNAL
>> > implementation. You could do this today by exposing a property target
>> > with a string property that internally retrieves the object by name
>> > and calls the C function with it.
>> >
>> >
>> >> - Currently a program can't listen a smart event from a elementary
>> >> object. For example I can't have a program which listen the signal
>> "clicked"
>> >> of a elementary button.
>> >
>> > Well, it should be possible! Isn't it working? I did the initial
>> > implementation in external_signals_proxy(). It will use the
>> > introspection to listen to widget signals and proxy them to Edje, most
>> > of the objects exposed already have that, but if some are missing you
>> > can extend them just grep for Evas_Smart_Cb_Description in src/lib/,
>> > usually you find some code like elm_button.c:
>> >
>> > static const Evas_Smart_Cb_Description _signals[] = {
>> > {SIG_CLICKED, ""},
>> > {SIG_REPEATED, ""},
>> > {SIG_UNPRESSED, ""},
>> > {NULL, NULL}
>> > };
>> >
>> > ...
>> >
>> > evas_object_smart_callbacks_descriptions_set(obj, _signals);
>> >
>> >
>> > If the part that contains the button is called "bt" you should receive
>> > a "bt" "clicked" signal in Edje.
>> >
>> >
>> >> - we need generic interface for list/genlist/hoversel ... then in the
>> >> theme we can use other widegts (a list instead of a hoversel ...).
>> This part
>> >> is a big job.
>> >
>> > The sub-object management is not there, the problem is to define how
>> > to interact with it without being too specific to some lib. For
>> > instance, should we handle sub_object_get(name) (as above) and
>> > sub_object_set(name, value), choosing inside name if we want to
>> > append, prepend, insert or replace? Or should we create an extensive
>> > API, with replication in Embryo and Lua and probably
>> > edje_object_part_external with all possible sub-object management like
>> > append/prepend/insert/remove/replace? Of course we have
>> > middle-ground, with set, insert with key values such as -1 for end,
>> > remove... without replace/append/prepend variants.
>> >
>> > Anyway, the api is easy to extend, however if we're doing it, better
>> > do it sooner than later.
>> >
>> > But I'd like to see some real world use cases. In real world use
>> > cases, one often populate things like boxes from C... often those uses
>> > that you try to use them from Edje are wrong-usage, which you should
>> > just have many parts in the same object, or use Edje's native
>> > BOX/TABLE objects, or going even further, if you want your app to
>> > provide specific hoversel to some items, you create your specialized
>> > hoversel EXTERNAL in your app, register it to be used by Edje and have
>> > fun.
>> >
>> > One of the bad points of abusing these interfaces is that in a way or
>> > another, these are slower than plain C access. If you have to populate
>> > a huge genlist, for instance, for each item you'd have to call a
>> > function, resolve some text->object, then resolve text->function, then
>> > do some strcmp(), then call the final function.... but if you just get
>> > your edje_object_part_external_object_get(), you have the maximum
>> > speed, with all the required interface, checks and clear API usage.
>> >
>> > IOW, I don't want to introduce some option of bad habits just to make
>> > some demos simpler :-)
>> >
>> I totally agree with your position :)
>> We need to NOT abuse edje, edje files should just describe your interface,
>> don't make themes 'another program'
>>
>> DaveMDS
>>
>> >
>> > --
>> > Gustavo Sverzut Barbieri
>> > http://profusion.mobi embedded systems
>> > --------------------------------------
>> > MSN: barbi...@gmail.com
>> > Skype: gsbarbieri
>> > Mobile: +55 (19) 9225-2202
>> >
>> >
>> ------------------------------------------------------------------------------
>> > This SF.net email is sponsored by Sprint
>> > What will you do first with EVO, the first 4G phone?
>> > Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
>> > _______________________________________________
>> > enlightenment-devel mailing list
>> > enlightenment-devel@lists.sourceforge.net
>> > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>> >
>>
>
>
>
> --
> Regards.
>
--
Regards.
Index: src/lib/edje_private.h
===================================================================
--- src/lib/edje_private.h (revision 50512)
+++ src/lib/edje_private.h (working copy)
@@ -1624,6 +1624,7 @@
void _edje_external_signal_emit(Evas_Object *obj, const char *emission, const char *source);
Eina_Bool _edje_external_param_set(Evas_Object *obj, const Edje_External_Param *param) EINA_ARG_NONNULL(1, 2);
Eina_Bool _edje_external_param_get(const Evas_Object *obj, Edje_External_Param *param) EINA_ARG_NONNULL(1, 2);
+Evas_Object *_edje_external_content_get(const Evas_Object *obj, const char *content) EINA_ARG_NONNULL(1, 2);
void _edje_external_params_free(Eina_List *params, Eina_Bool free_strings);
void _edje_external_recalc_apply(Edje *ed, Edje_Real_Part *ep, Edje_Calc_Params *params, Edje_Part_Description *chosen_desc);
void *_edje_external_params_parse(Evas_Object *obj, const Eina_List *params);
Index: src/lib/edje_external.c
===================================================================
--- src/lib/edje_external.c (revision 50512)
+++ src/lib/edje_external.c (working copy)
@@ -181,6 +181,29 @@
return _edje_external_param_get(rp->swallowed_object, param);
}
+
+
+EAPI Evas_Object*
+edje_object_part_external_content_get(const Evas_Object *obj, const char *part, const char *content)
+{
+ Edje *ed;
+ Edje_Real_Part *rp;
+
+ if (!content) return EINA_FALSE;
+
+ ed = _edje_fetch(obj);
+ if ((!ed) || (!part)) return EINA_FALSE;
+
+ rp = _edje_real_part_recursive_get(ed, (char *)part);
+ if (!rp)
+ {
+ ERR("no part '%s'", part);
+ return EINA_FALSE;
+ }
+
+ return _edje_external_content_get(rp->swallowed_object, content);
+}
+
/**
* Facility to query the type of the given parameter of the given part.
*
@@ -594,13 +617,31 @@
}
if (!type->param_get)
{
- ERR("external type '%s' from module '%s' does not provide param_set()",
+ ERR("external type '%s' from module '%s' does not provide param_get()",
type->module_name, type->module);
return EINA_FALSE;
}
return type->param_get(type->data, obj, param);
}
+Evas_Object*
+_edje_external_content_get(const Evas_Object *obj, const char *content)
+{
+ Edje_External_Type *type = evas_object_data_get(obj, "Edje_External_Type");
+ if (!type)
+ {
+ ERR("no external type for object %p", obj);
+ return EINA_FALSE;
+ }
+ if (!type->content_get)
+ {
+ ERR("external type '%s' from module '%s' does not provide content_get()",
+ type->module_name, type->module);
+ return EINA_FALSE;
+ }
+ return type->content_get(type->data, obj, content);
+}
+
void
_edje_external_params_free(Eina_List *external_params, Eina_Bool free_strings)
{
Index: src/lib/edje_util.c
===================================================================
--- src/lib/edje_util.c (revision 50512)
+++ src/lib/edje_util.c (working copy)
@@ -4257,6 +4257,9 @@
if (rp->part->type == EDJE_PART_TYPE_TABLE)
l = evas_object_table_children_get(rp->object);
else
+ if (rp->part->type == EDJE_PART_TYPE_EXTERNAL)
+ return _edje_external_content_get(rp->swallowed_object, partid);
+ else
return NULL;
if (number)
@@ -4324,6 +4327,7 @@
return _edje_real_part_recursive_get_helper(ed, path);
case EDJE_PART_TYPE_BOX:
case EDJE_PART_TYPE_TABLE:
+ case EDJE_PART_TYPE_EXTERNAL:
if (!idx) return rp;
path++;
Index: src/lib/Edje.h
===================================================================
--- src/lib/Edje.h (revision 50512)
+++ src/lib/Edje.h (working copy)
@@ -384,6 +384,7 @@
void (*signal_emit) (void *data, Evas_Object *obj, const char *emission, const char *source); /**< Feed a signal emitted with emission originally set as part_name:signal to this object (without the "part_name:" prefix) */
Eina_Bool (*param_set) (void *data, Evas_Object *obj, const Edje_External_Param *param); /**< dynamically change a parameter of this external, called by scripts and user code. Returns @c EINA_TRUE on success */
Eina_Bool (*param_get) (void *data, const Evas_Object *obj, Edje_External_Param *param); /**< dynamically fetch a parameter of this external, called by scripts and user code. Returns @c EINA_TRUE on success. (Must check parameter name and type!) */
+ Evas_Object *(*content_get) (void *data, const Evas_Object *obj, const char *content); /**< dynamically fetch a sub object of this external, called by scripts and user code. Returns @c Evas_Object * on success. (Must check parameter name and type!) */
void *(*params_parse) (void *data, Evas_Object *obj, const Eina_List *params); /**< parses the list of parameters, converting into a friendly representation. Used with state_set() */
void (*params_free) (void *params); /**< free parameters parsed with params_parse() */
@@ -555,6 +556,7 @@
EAPI Evas_Object *edje_object_part_external_object_get (const Evas_Object *obj, const char *part);
EAPI Eina_Bool edje_object_part_external_param_set (Evas_Object *obj, const char *part, const Edje_External_Param *param);
EAPI Eina_Bool edje_object_part_external_param_get (const Evas_Object *obj, const char *part, Edje_External_Param *param);
+ EAPI Evas_Object *edje_object_part_external_content_get (const Evas_Object *obj, const char *part, const char *content);
EAPI Edje_External_Param_Type edje_object_part_external_param_type_get (const Evas_Object *obj, const char *part, const char *param);
EAPI Eina_Bool edje_object_part_box_append (Evas_Object *obj, const char *part, Evas_Object *child);
Index: src/lib/elm_notify.c
===================================================================
--- src/lib/elm_notify.c (revision 50519)
+++ src/lib/elm_notify.c (working copy)
@@ -393,6 +393,25 @@
}
/**
+ * Return the content of the notify widget
+ *
+ * @param obj The notify object
+ * @return The content that is being used
+ *
+ * @ingroup Notify
+ */
+EAPI Evas_Object *
+elm_notify_content_get(const Evas_Object *obj)
+{
+ ELM_CHECK_WIDTYPE(obj, widtype) NULL;
+ Widget_Data *wd = elm_widget_data_get(obj);
+ Evas_Object *content;
+ if (!wd) return NULL;
+ if (!wd->content) return NULL;
+ return wd->content;
+}
+
+/**
* Set the notify parent
*
* @param obj The notify object
Index: src/lib/elm_panes.c
===================================================================
--- src/lib/elm_panes.c (revision 50520)
+++ src/lib/elm_panes.c (working copy)
@@ -220,6 +220,21 @@
}
}
+
+EAPI Evas_Object
+*elm_panes_content_left_get(const Evas_Object *obj)
+{
+ Widget_Data *wd = elm_widget_data_get(obj);
+ return wd->contents.left;
+}
+
+EAPI Evas_Object
+*elm_panes_content_right_get(const Evas_Object *obj)
+{
+ Widget_Data *wd = elm_widget_data_get(obj);
+ return wd->contents.right;
+}
+
EAPI double elm_panes_content_left_size_get(const Evas_Object *obj)
{
Widget_Data *wd = elm_widget_data_get(obj);
Index: src/lib/Elementary.h.in
===================================================================
--- src/lib/Elementary.h.in (revision 50520)
+++ src/lib/Elementary.h.in (working copy)
@@ -685,6 +685,7 @@
EAPI Evas_Object *elm_notify_add(Evas_Object *parent);
EAPI void elm_notify_content_set(Evas_Object *obj, Evas_Object *content);
EAPI Evas_Object *elm_notify_content_unset(Evas_Object *obj);
+ EAPI Evas_Object *elm_notify_content_get(const Evas_Object *obj);
EAPI void elm_notify_parent_set(Evas_Object *obj, Evas_Object *parent);
EAPI void elm_notify_orient_set(Evas_Object *obj, Elm_Notify_Orient orient);
EAPI Elm_Notify_Orient elm_notify_orient_get(const Evas_Object *obj);
@@ -1503,6 +1504,8 @@
EAPI Evas_Object *elm_panes_add(Evas_Object *parent);
EAPI void elm_panes_content_left_set(Evas_Object *obj, Evas_Object *content);
EAPI void elm_panes_content_right_set(Evas_Object *obj, Evas_Object *content);
+ EAPI Evas_Object *elm_panes_content_left_get(const Evas_Object *obj);
+ EAPI Evas_Object *elm_panes_content_right_get(const Evas_Object *obj);
EAPI double elm_panes_content_left_size_get(const Evas_Object *obj);
EAPI void elm_panes_content_left_size_set(Evas_Object *obj, double size);
EAPI void elm_panes_horizontal_set(Evas_Object *obj, Eina_Bool horizontal);
Index: src/bin/test_slideshow.c
===================================================================
--- src/bin/test_slideshow.c (revision 50519)
+++ src/bin/test_slideshow.c (working copy)
@@ -93,11 +93,12 @@
//elm_photocam_file_set(photo, data);
//elm_photocam_zoom_mode_set(photo, ELM_PHOTOCAM_ZOOM_MODE_AUTO_FIT);
- Evas_Object *photo = elm_photo_add(obj);
- elm_photo_file_set(photo, data);
- elm_photo_fill_inside_set(photo, EINA_TRUE);
- elm_widget_style_set(photo, "shadow");
+ //Evas_Object *photo = elm_photo_add(obj);
+ //elm_photo_file_set(photo, data);
+ Evas_Object *photo = elm_image_add(obj);
+ elm_image_file_set(photo, data, NULL);
+
return photo;
}
Index: src/edje_externals/elm_slideshow.c
===================================================================
--- src/edje_externals/elm_slideshow.c (revision 50519)
+++ src/edje_externals/elm_slideshow.c (working copy)
@@ -155,6 +155,13 @@
return mem;
}
+static Evas_Object *external_slideshow_content_get(void *data __UNUSED__,
+ const Evas_Object *obj, const char *content)
+{
+ ERR("so content");
+ return NULL;
+}
+
static void
external_slideshow_params_free(void *params)
{
Index: src/edje_externals/elm_toolbar.c
===================================================================
--- src/edje_externals/elm_toolbar.c (revision 50519)
+++ src/edje_externals/elm_toolbar.c (working copy)
@@ -103,6 +103,13 @@
return mem;
}
+static Evas_Object *external_toolbar_content_get(void *data __UNUSED__,
+ const Evas_Object *obj, const char *content)
+{
+ ERR("so content");
+ return NULL;
+}
+
static void
external_toolbar_params_free(void *params)
{
Index: src/edje_externals/elm_genlist.c
===================================================================
--- src/edje_externals/elm_genlist.c (revision 50519)
+++ src/edje_externals/elm_genlist.c (working copy)
@@ -297,6 +297,13 @@
return mem;
}
+static Evas_Object *external_genlist_content_get(void *data __UNUSED__,
+ const Evas_Object *obj, const char *content)
+{
+ ERR("so content");
+ return NULL;
+}
+
static void
external_genlist_params_free(void *params)
{
Index: src/edje_externals/elm_anchorview.c
===================================================================
--- src/edje_externals/elm_anchorview.c (revision 50519)
+++ src/edje_externals/elm_anchorview.c (working copy)
@@ -76,6 +76,13 @@
return mem;
}
+static Evas_Object *external_anchorview_content_get(void *data __UNUSED__,
+ const Evas_Object *obj, const char *content)
+{
+ ERR("so content");
+ return NULL;
+}
+
static void
external_anchorview_params_free(void *params)
{
Index: src/edje_externals/elm_panes.c
===================================================================
--- src/edje_externals/elm_panes.c (revision 50520)
+++ src/edje_externals/elm_panes.c (working copy)
@@ -140,6 +140,20 @@
return mem;
}
+static Evas_Object *external_panes_content_get(void *data __UNUSED__,
+ const Evas_Object *obj, const char *content)
+{
+ if (!strcmp(content, "left"))
+ return elm_panes_content_left_get(obj);
+ else if (!strcmp(content, "right"))
+ return elm_panes_content_right_get(obj);
+
+ ERR("unknown content '%s'", content);
+
+ return NULL;
+}
+
+
static void external_panes_params_free(void *params) {
Elm_Params_Panes *mem = params;
Index: src/edje_externals/elm_notify.c
===================================================================
--- src/edje_externals/elm_notify.c (revision 50519)
+++ src/edje_externals/elm_notify.c (working copy)
@@ -186,6 +186,16 @@
return mem;
}
+static Evas_Object *external_notify_content_get(void *data __UNUSED__,
+ const Evas_Object *obj, const char *content)
+{
+ if (!strcmp(content, "content"))
+ return elm_notify_content_get(obj);
+
+ ERR("unknown content '%s'", content);
+ return NULL;
+}
+
static void external_notify_params_free(void *params) {
Elm_Params_Notify *mem = params;
Index: src/edje_externals/elm_photocam.c
===================================================================
--- src/edje_externals/elm_photocam.c (revision 50519)
+++ src/edje_externals/elm_photocam.c (working copy)
@@ -175,6 +175,13 @@
return mem;
}
+static Evas_Object *external_photocam_content_get(void *data __UNUSED__,
+ const Evas_Object *obj, const char *content)
+{
+ ERR("so content");
+ return NULL;
+}
+
static void
external_photocam_params_free(void *params)
{
Index: src/edje_externals/elm_list.c
===================================================================
--- src/edje_externals/elm_list.c (revision 50519)
+++ src/edje_externals/elm_list.c (working copy)
@@ -242,6 +242,13 @@
return mem;
}
+static Evas_Object *external_list_content_get(void *data __UNUSED__,
+ const Evas_Object *obj, const char *content)
+{
+ ERR("so content");
+ return NULL;
+}
+
static void
external_list_params_free(void *params)
{
Index: src/edje_externals/elm_fileselector_button.c
===================================================================
--- src/edje_externals/elm_fileselector_button.c (revision 50519)
+++ src/edje_externals/elm_fileselector_button.c (working copy)
@@ -215,6 +215,13 @@
return mem;
}
+static Evas_Object *external_fileselector_button_content_get(void *data __UNUSED__,
+ const Evas_Object *obj, const char *content)
+{
+ ERR("so content");
+ return NULL;
+}
+
static void
external_fileselector_button_params_free(void *params)
{
Index: src/edje_externals/elm_button.c
===================================================================
--- src/edje_externals/elm_button.c (revision 50519)
+++ src/edje_externals/elm_button.c (working copy)
@@ -86,6 +86,13 @@
return mem;
}
+static Evas_Object *external_button_content_get(void *data __UNUSED__,
+ const Evas_Object *obj, const char *content)
+{
+ ERR("so content");
+ return NULL;
+}
+
static void
external_button_params_free(void *params)
{
Index: src/edje_externals/elm_map.c
===================================================================
--- src/edje_externals/elm_map.c (revision 50519)
+++ src/edje_externals/elm_map.c (working copy)
@@ -172,6 +172,13 @@
return mem;
}
+static Evas_Object *external_map_content_get(void *data __UNUSED__,
+ const Evas_Object *obj, const char *content)
+{
+ ERR("so content");
+ return NULL;
+}
+
static void
external_map_params_free(void *params)
{
Index: src/edje_externals/elm_check.c
===================================================================
--- src/edje_externals/elm_check.c (revision 50519)
+++ src/edje_externals/elm_check.c (working copy)
@@ -114,6 +114,13 @@
return mem;
}
+static Evas_Object *external_check_content_get(void *data __UNUSED__,
+ const Evas_Object *obj, const char *content)
+{
+ ERR("so content");
+ return NULL;
+}
+
static void
external_check_params_free(void *params)
{
Index: src/edje_externals/elm_spinner.c
===================================================================
--- src/edje_externals/elm_spinner.c (revision 50519)
+++ src/edje_externals/elm_spinner.c (working copy)
@@ -211,6 +211,13 @@
return mem;
}
+static Evas_Object *external_spinner_content_get(void *data __UNUSED__,
+ const Evas_Object *obj, const char *content)
+{
+ ERR("so content");
+ return NULL;
+}
+
static void
external_spinner_params_free(void *params)
{
Index: src/edje_externals/elm_thumb.c
===================================================================
--- src/edje_externals/elm_thumb.c (revision 50519)
+++ src/edje_externals/elm_thumb.c (working copy)
@@ -104,6 +104,13 @@
return mem;
}
+static Evas_Object *external_thumb_content_get(void *data __UNUSED__,
+ const Evas_Object *obj, const char *content)
+{
+ ERR("so content");
+ return NULL;
+}
+
static void
external_thumb_params_free(void *params)
{
Index: src/edje_externals/elm_fileselector.c
===================================================================
--- src/edje_externals/elm_fileselector.c (revision 50519)
+++ src/edje_externals/elm_fileselector.c (working copy)
@@ -155,6 +155,13 @@
return mem;
}
+static Evas_Object *external_fileselector_content_get(void *data __UNUSED__,
+ const Evas_Object *obj, const char *content)
+{
+ ERR("so content");
+ return NULL;
+}
+
static void
external_fileselector_params_free(void *params)
{
Index: src/edje_externals/elm_toggle.c
===================================================================
--- src/edje_externals/elm_toggle.c (revision 50519)
+++ src/edje_externals/elm_toggle.c (working copy)
@@ -176,6 +176,13 @@
return mem;
}
+static Evas_Object *external_toggle_content_get(void *data __UNUSED__,
+ const Evas_Object *obj, const char *content)
+{
+ ERR("so content");
+ return NULL;
+}
+
static void
external_toggle_params_free(void *params)
{
Index: src/edje_externals/elm_slider.c
===================================================================
--- src/edje_externals/elm_slider.c (revision 50519)
+++ src/edje_externals/elm_slider.c (working copy)
@@ -296,6 +296,13 @@
return mem;
}
+static Evas_Object *external_slider_content_get(void *data __UNUSED__,
+ const Evas_Object *obj, const char *content)
+{
+ ERR("so content");
+ return NULL;
+}
+
static void
external_slider_params_free(void *params)
{
Index: src/edje_externals/private.h
===================================================================
--- src/edje_externals/private.h (revision 50519)
+++ src/edje_externals/private.h (working copy)
@@ -39,6 +39,7 @@
.params_parse = external_##type_name##_params_parse,\
.params_free = external_##type_name##_params_free, \
.label_get = external_##type_name##_label_get, \
+ .content_get = external_##type_name##_content_get, \
.description_get = NULL, \
.icon_add = external_##type_name##_icon_add, \
.preview_add = NULL, \
Index: src/edje_externals/elm_anchorblock.c
===================================================================
--- src/edje_externals/elm_anchorblock.c (revision 50519)
+++ src/edje_externals/elm_anchorblock.c (working copy)
@@ -76,6 +76,13 @@
return mem;
}
+static Evas_Object *external_anchorblock_content_get(void *data __UNUSED__,
+ const Evas_Object *obj, const char *content)
+{
+ ERR("so content");
+ return NULL;
+}
+
static void
external_anchorblock_params_free(void *params)
{
Index: src/edje_externals/elm_hoversel.c
===================================================================
--- src/edje_externals/elm_hoversel.c (revision 50519)
+++ src/edje_externals/elm_hoversel.c (working copy)
@@ -117,6 +117,13 @@
return mem;
}
+static Evas_Object *external_hoversel_content_get(void *data __UNUSED__,
+ const Evas_Object *obj, const char *content)
+{
+ ERR("so content");
+ return NULL;
+}
+
static void
external_hoversel_params_free(void *params)
{
Index: src/edje_externals/elm_scrolled_entry.c
===================================================================
--- src/edje_externals/elm_scrolled_entry.c (revision 50519)
+++ src/edje_externals/elm_scrolled_entry.c (working copy)
@@ -153,6 +153,13 @@
return mem;
}
+static Evas_Object *external_scrolled_entry_content_get(void *data __UNUSED__,
+ const Evas_Object *obj, const char *content)
+{
+ ERR("so content");
+ return NULL;
+}
+
static void
external_scrolled_entry_params_free(void *params)
{
Index: src/edje_externals/elm_progressbar.c
===================================================================
--- src/edje_externals/elm_progressbar.c (revision 50519)
+++ src/edje_externals/elm_progressbar.c (working copy)
@@ -213,6 +213,13 @@
return mem;
}
+static Evas_Object *external_progressbar_content_get(void *data __UNUSED__,
+ const Evas_Object *obj, const char *content)
+{
+ ERR("so content");
+ return NULL;
+}
+
static void
external_progressbar_params_free(void *params)
{
Index: src/edje_externals/elm_notepad.c
===================================================================
--- src/edje_externals/elm_notepad.c (revision 50519)
+++ src/edje_externals/elm_notepad.c (working copy)
@@ -37,6 +37,13 @@
return NULL;
}
+static Evas_Object *external_notepad_content_get(void *data __UNUSED__,
+ const Evas_Object *obj, const char *content)
+{
+ ERR("so content");
+ return NULL;
+}
+
static void
external_notepad_params_free(void *params)
{
Index: src/edje_externals/elm_clock.c
===================================================================
--- src/edje_externals/elm_clock.c (revision 50519)
+++ src/edje_externals/elm_clock.c (working copy)
@@ -210,6 +210,13 @@
return mem;
}
+static Evas_Object *external_clock_content_get(void *data __UNUSED__,
+ const Evas_Object *obj, const char *content)
+{
+ ERR("so content");
+ return NULL;
+}
+
static void
external_clock_params_free(void *params)
{
Index: src/edje_externals/elm_bubble.c
===================================================================
--- src/edje_externals/elm_bubble.c (revision 50519)
+++ src/edje_externals/elm_bubble.c (working copy)
@@ -130,6 +130,13 @@
return mem;
}
+static Evas_Object *external_bubble_content_get(void *data __UNUSED__,
+ const Evas_Object *obj, const char *content)
+{
+ ERR("so content");
+ return NULL;
+}
+
static void
external_bubble_params_free(void *params)
{
Index: src/edje_externals/elm_radio.c
===================================================================
--- src/edje_externals/elm_radio.c (revision 50519)
+++ src/edje_externals/elm_radio.c (working copy)
@@ -141,6 +141,13 @@
return mem;
}
+static Evas_Object *external_radio_content_get(void *data __UNUSED__,
+ const Evas_Object *obj, const char *content)
+{
+ ERR("so content");
+ return NULL;
+}
+
static void
external_radio_params_free(void *params)
{
------------------------------------------------------------------------------
The Palm PDK Hot Apps Program offers developers who use the
Plug-In Development Kit to bring their C/C++ apps to Palm for a share
of $1 Million in cash or HP Products. Visit us here for more details:
http://p.sf.net/sfu/dev2dev-palm
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel