On Thu, Oct 26, 2017 at 10:12 AM, Amitesh Singh <amitesh...@samsung.com> wrote:

thanks for the improvement, but one hint I said before went unnoticed
and would save great deal of this implementation:


> +typedef struct
> +{
> +   const char *template;
> +} Efl_Ui_Format_Data;

this is already stored in the object, due format_string_set... that's
why I'm saying that you should pass it to the callback, so there is no
need to store it again, providing a free_cb to release that.



> +_default_format_cb(void *data, Eina_Strbuf *str, const Eina_Value value)

here you should pass: str, value AND template :-)


> +_default_format_free_cb(void *data)

then this is not needed.



> +EOLIAN static void
> +_efl_ui_format_format_string_set(Eo *obj, Efl_Ui_Format_Data *sd, const char 
> *template)
> +{
> +   if (!template) return;
> +   eina_stringshare_replace(&sd->template, template);
> +   efl_ui_format_cb_set(obj, sd, _default_format_cb, 
> _default_format_free_cb);

because here you'd not call "efl_ui_format_cb_set()"... you'd do that
once at the constructor/init, then the callback gets the template
stored by efl_ui_format_string_set().


> -        elm_layout_text_set(obj, "elm.units", buf);
> +        sd->format_cb(sd->format_cb_data, sd->format_strbuf, val);

this is not that good. You should wrap this into a protected method
that implementers call, like:

    efl_ui_format(obj, strbuf, val);

Think of bindings (ie: python/javascript/c#), they may want to call
the implementation of efl.ui.slider.... how to? you need to provide a
method to allow that.


-- 
Gustavo Sverzut Barbieri
--------------------------------------
Mobile: +55 (16) 99354-9890

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to