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-----