Re: [E-devel] C API => Unified API

Cedric Bail <[email protected]>
Newsgroups gmane.comp.window-managers.enlightenment.devel
Message-ID <Ra5lrOzS4oBLTTkndZ913YkIcJUn35mtBMZ9no7L6BqPdZ-OwOa1AhBCSLYW6NBBwFOiqhdhmN-M3uZoflYTPU2INCoxP7qEDCEVmyQOpWU=@ddlm.me>
On Tuesday, June 29th, 2021 at 12:38 PM, Andreas Volz <[email protected]> wrote:
> Am 28.06.21 um 22:40 schrieb Cedric Bail:
> > On Monday, June 28th, 2021 at 11:47 AM, Andreas Volz [email protected] wrote:
> > > Am 28.06.21 um 17:52 schrieb Cedric Bail:
> > > > On Sunday, June 27th, 2021 at 12:55 PM, Andreas Volz [email protected] wrote:
[...]
> > > > > For example I use edje_object_part_external_param_*() much in my
> > > > > application. I thought it might be an equivalent in Efl.Ui.Layout_Part
> > > > > but I don't see an obvious function.
[...]
> > > > Yes, I think this would be part of the efl_part API. Which should be something
> > > > like:
> > > >  efl::eo::downcast<efl::Text>(layout.part("title")).text_set("hello");

> > > Hm, I'd assume this works for text objects. But with the external API[1]
> > > you could get/set also int/bool data if you know the object supports it
> > > without detail information of what UI type is the object. With the C API
> > > this is possible.
> > 

> > With the efl_part, in the case of an external, you should actually get the object
> > itself, not some kind of wrapper. You might have to do something like:
> > 

> > Eo *obj = efl_content_get(efl_part(layout, "yourpart"));
> > 

> > I am guessing you will need to do some casting in the C++ API, no idea on
> > that part I haven't played with it in a very long time and don't remember
> > enough.
> 

> I searched my local headers and found a file
> 

> efl_canvas_layout_part_external.eo[1] which defines (nearly) what I
> need. This shows internally the same code as you quoted above. I would
> have found it before but it seems the online docs are not recent. Maybe
> they need to be re-generated?
> 

> https://www.enlightenment.org/develop/api/efl/canvas/layout_part_external/property/content
> => This topic does not exist yet

I don't know how that part was updated before.
 

> But I still don't know how to set a non-text value on a efl_part. This
> were the reasons those tpes have been used in the old API.
> 

> typedef enum _Edje_External_Param_Type
> {
> EDJE_EXTERNAL_PARAM_TYPE_INT,
> EDJE_EXTERNAL_PARAM_TYPE_DOUBLE,
> EDJE_EXTERNAL_PARAM_TYPE_STRING,
> EDJE_EXTERNAL_PARAM_TYPE_BOOL,
> EDJE_EXTERNAL_PARAM_TYPE_CHOICE,
> EDJE_EXTERNAL_PARAM_TYPE_MAX
> } Edje_External_Param_Type;
> 

> With this you could put a e.g. spinner in a Layout and assign a INT
> value and it just works. Without knowing what widget type exactly is used.

The new interface is build around the idea that you have interfaces. Text is an
interface, not an object per say in the example above. For spinner, I believe they
expose an Range_Display interface. So for setting the range value, you would do something
like the following:
efl::eo::downcast<efl::ui::Range_Display>(layout.part("spin")).range_value_set(10);

Cedric

_______________________________________________
enlightenment-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
publickey - [email protected] - 0x1869A77F.asc (application/pgp-keys, 3.1 KB)
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: OpenPGP.js v4.10.10
Comment: https://openpgpjs.org

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
euetbYKKxbVhw2klVROuJm9I
=ydAQ
-----END PGP PUBLIC KEY BLOCK-----
signature.asc (application/pgp-signature, 855 B)
-----BEGIN PGP SIGNATURE-----
Version: ProtonMail

wsFzBAEBCAAGBQJg2495ACEJEL4jxg5iFpa6FiEEGGmnf5t6O9bwEOP4viPG
DmIWlrq0JA//eyKWRG4mh9phBaYWtt0NGxKYtbpXqCAtpR3BH3cAnnyswF7u
OsM4UE4i2zpPiXpMT3KWL9m4GXvNqcYp8tNzhyygvdDdgyo/uMj8VviPr/r7
58L0gi0kO/7j6aTH8XwDcPZGgQdjPhOidw57zjS/6CWzsLLqGsMi83+U3J4Y
Mh/L3FOkFJAbFhSXK+Aq0zrsiZi9hQ7SGnCabHEFuYVnCBbtE5n483kYWu4U
vu+4siMmAZJUXbrLu89eegK9fVq/5kRCcFqbUS0UFSKIwnkYAJKJEMkDTTFM
ReV2c/RbaBtaGkSVUDQ/Eb+YZlJsMYLE1AssRLFOmmZZl5WTe7JjU1xltAat
wkvp8P50IIBaIrNmmRcrHiys3QPUTu5UfPV2VAiDCQ6xzuctPyoL08XiaIAe
T/roqyn2hn2GC4PFbt6ks2+TJ22+XMJQ1SHTtQnp7La1cmWK4xcA+S8ClTrk
kw6aD/ixzggAgWnbeGsE/iX4R0inS9T5gACSUZfAZFCD8XQgt2R9P79BQ+vN
kQ7UvOPzJ3T28BWecT+euy/Syzg4kesSeVrXXjGhD8RuVFwZdQ4dewpEAGbv
a8fgxNUT7LCPzrqjyEznx0QHYTnV8VxzpHKr/vJZcKdjOvv3mQnf3DVmMdlX
lB76AT+FNIiB0JAjUuf6hcJDVXwqrRxrUdI=
=fKqB
-----END PGP SIGNATURE-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.