summaryrefslogtreecommitdiff
path: root/src/lib/efl/Efl.h (unfollow)
AgeCommit message (Collapse)Author
2020-09-22edje: efl: add new EFL_VERSION_1_26 define for new dev cycleStefan Schmidt
Thios allows to mark edje file supported for specific versions.
2020-04-29edje: efl: add new EFL_VERSION_1_25 define for new cycleStefan Schmidt
Allow things to be marked for the upcoming 1.25 release version while we develop it.
2020-04-14efl_input_text: rename namespaceMarcel Hollerbach
Efl.Input_Text is a namespace which should not be a interface in the same moment. So rename this to Efl.Input_Text.Entity ref T8648 Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es> Differential Revision: https://phab.enlightenment.org/D11664
2020-03-12efl: check config values before passing to non-null functionMike Blumenkrantz
if these config values don't exist, we should return the inlined defaults Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de> Differential Revision: https://phab.enlightenment.org/D11499
2020-03-12add EFL_VERSION_1_24 defineMike Blumenkrantz
Summary: this needs to go in right after every release Reviewers: stefan_schmidt, devilhorns Reviewed By: stefan_schmidt, devilhorns Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D11477
2020-02-14efl/config: move C wrappers for this out of elm_config.h to Efl.hMike Blumenkrantz
this is beta API and belongs in its proper header Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de> Differential Revision: https://phab.enlightenment.org/D11247
2019-12-26efl.text.font: rename to efl.text.font.propertiesali
Reviewers: segfaultxavi, woohyun, zmike, bu5hm4n Subscribers: cedric, #reviewers, #committers Tags: #efl Maniphest Tasks: T7855 Differential Revision: https://phab.enlightenment.org/D10966
2019-12-09Efl.Ui.Text : all related interfacesali
Summary: Change summary: Removed : - efl_ui_text_selectable.eo and add it functionality into efl_text_interactive.eo - efl_ui_text_editable.eo because it is same as efl_ui_text.eo (just set one property by default) Modifications: - Move all Text Input enums and functionality from efl_ui_text class into its own interface, this interface will be implemented at efl_ui_internal_text_interactive class. - Rename selection_allowed property to selectable (same as other "editable" property) in efl_text_interactive - Add select_all function into efl_text_interactive interface - Add have_selection property into efl_text_interactive interface - Move user_change , selection_start/change/clear and undo/redo events into efl_text_interactive interface. - Move methods and events of copy/paste/cut into efl_ui_text - Fix password-related functionality - Remove context menu clear and add_item methods. (these should be added later with better design) - Remove Validation event from EFL_UI_TEXT. (these should be added later with better design) Reviewers: woohyun, tasn, segfaultxavi, zmike, bu5hm4n Subscribers: stefan_schmidt, a.srour, q66, zmike, segfaultxavi, cedric Tags: #efl Differential Revision: https://phab.enlightenment.org/D10711
2019-12-02efl_part: declare stableMarcel Hollerbach
Summary: last release we declared efl_part.eo stable. But we accidently forgot efl_part()... Reviewers: segfaultxavi Reviewed By: segfaultxavi Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D10772
2019-11-27Efl.Text.Attribute_FactoryAli Alzyod
Summary: Implementation of new Efl.Text.Attribute_Factory class which replace the annotation interface. Currently, we have two public methods: ``` void efl_text_attribute_factory_attribute_insert(const Efl_Text_Cursor *start, const Efl_Text_Cursor *end, const char *format) unsigned int efl_text_attribute_factory_attribute_clear(const Efl_Text_Cursor *start, const Efl_Text_Cursor *end); ``` Other methods will be internal methods, for the time being, we will redesign internal methods Reviewers: woohyun, tasn, segfaultxavi, bu5hm4n, zmike Subscribers: zmike, q66, cedric, segfaultxavi, bu5hm4n, a.srour, #committers, #reviewers Tags: #efl Differential Revision: https://phab.enlightenment.org/D10646
2019-11-22Efl.Text.CursorAli Alzyod
Summary: Implementation of new cursor text object. This Patch Contains : 1- Remove Efl.Text.Cursor & Efl.Text_Markup_Interactive interfaces and replace them with one Class Efl.Text.Cursor => there are some modifications on cursor methods 2- Update all related classes to use Efl.Text.Cursor object instead of the old interfaces 3- If class uses Efl.Text_Cursor_Cursor (handle), mainly annotation it will stay as it is until we update other annotations into attribute_factory 4- Add main cursor property into efl.text.interactive 5- Add cursor_new method in efl.ui.text (I think we may move it into efl.text.interactive interface) There still some parts that need discussion: especially cursor movement functionality, I prefer to move function with Enum, instead of special function for each movement. ``` enum @beta Efl.Text.Cursor_Move_Type { [[Text cursor movement types]] char_next, [[Advances to the next character]] char_prev, [[Advances to the previous character]] cluster_next, [[Advances to the next grapheme cluster]] cluster_prev, [[Advances to the previous grapheme cluster]] paragraph_start, [[Advances to the first character in this paragraph]] paragraph_end, [[Advances to the last character in this paragraph]] word_start, [[Advance to current word start]] word_end, [[Advance to current word end]] line_start, [[Advance to current line first character]] line_end, [[Advance to current line last character]] paragraph_first, [[Advance to current paragraph first character]] paragraph_last, [[Advance to current paragraph last character]] paragraph_next, [[Advances to the start of the next text node]] paragraph_prev [[Advances to the end of the previous text node]] } move { [[Move the cursor]] params { @in type: Efl.Text.Cursor_Move_Type; [[The type of movement]] } return: bool; [[True if actually moved]] } ``` or old way: ``` char_next { [[Advances to the next character]] // FIXME: Make the number of characters we moved by? Useful for all the other functions return: bool; [[True if actually moved]] } char_prev { [[Advances to the previous character]] return: bool; [[True if actually moved]] } char_delete { [[Deletes a single character from position pointed by given cursor.]] } cluster_next { [[Advances to the next grapheme cluster]] return: bool; [[True if actually moved]] } cluster_prev { [[Advances to the previous grapheme cluster]] return: bool; [[True if actually moved]] } // FIXME: paragraph_end is inconsistent with word_end. The one goes to the last character and the other after the last character. paragraph_start { [[Advances to the first character in this paragraph]] return: bool; [[True if actually moved]] } paragraph_end { [[Advances to the last character in this paragraph]] return: bool; [[True if actually moved]] } word_start { [[Advance to current word start]] return: bool; [[True if actually moved]] } word_end { [[Advance to current word end]] return: bool; [[True if actually moved]] } line_start { [[Advance to current line first character]] return: bool; [[True if actually moved]] } line_end { [[Advance to current line last character]] return: bool; [[True if actually moved]] } paragraph_first { [[Advance to current paragraph first character]] return: bool; [[True if actually moved]] } paragraph_last { [[Advance to current paragraph last character]] return: bool; [[True if actually moved]] } paragraph_next { [[Advances to the start of the next text node]] return: bool; [[True if actually moved]] } paragraph_prev { [[Advances to the end of the previous text node]] return: bool; [[True if actually moved]] } ``` Reviewers: woohyun, tasn, segfaultxavi Reviewed By: woohyun Subscribers: a.srour, bu5hm4n, segfaultxavi, cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D10542
2019-10-31efl: fix include due to stale files.Cedric BAIL
Reviewers: zmike Reviewed By: zmike Subscribers: #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D10583
2019-10-31evas: move efl_input_device into evas/Efl_Canvas.hCedric Bail
Summary: The internal and the API we would like is mostly a canvas API. A lot of the code in evas is working around the fact that efl_input_device is not defined inside Evas. This patch is the first step to try to clean this up. Depends on D10487 Reviewers: zmike, raster, bu5hm4n, Hermet Reviewed By: zmike Subscribers: #reviewers, #committers Tags: #efl Maniphest Tasks: T8321 Differential Revision: https://phab.enlightenment.org/D10488
2019-10-15efl_ui: rename efl_ui_types.eot to efl_ui_drag_types.eotJaehyun Cho
Summary: The current efl_ui_types.eot contains only enum Efl.Ui.Drag_Dir. Therefore, it is renamed to efl_ui_drag_types.eot as follows. src/lib/efl/interfaces/efl_ui_types.eot -> efl_ui_drag_types.eot Reviewers: bu5hm4n, segfaultxavi, zmike Reviewed By: zmike Subscribers: zmike, cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D10387
2019-09-24efl_player: split off audio related propertiesMarcel Hollerbach
Summary: this commit moves the audio related properties from Efl.Player to Efl.Player_Audio. Reviewers: zmike, Jaehyun_Cho Reviewed By: zmike Subscribers: cedric, #reviewers, #committers Tags: #efl Maniphest Tasks: T7877 Differential Revision: https://phab.enlightenment.org/D10106
2019-09-24efl: remove remaining instances of .eo global variablesDaniel Kolesa
2019-09-23efl_ui_scrollable: remove ui_scrollable_interactive and move all into ↵WooHyun Jung
ui_scrollable Summary: Based on the discussion T7883, there is no reason to keep those interfaces separately. So, now, efl_ui_scrollable will support the events and methods together. @ref T7883 Reviewers: eagleeye, bu5hm4n, zmike, segfaultxavi Reviewed By: segfaultxavi Subscribers: cedric, #reviewers, #committers Tags: #efl Maniphest Tasks: T7883 Differential Revision: https://phab.enlightenment.org/D10072
2019-08-21efl: use a @static function so that binding can pick it up.Cedric BAIL
Reviewed-by: Lauro Neto <Lauro Moura <lauromoura@expertisesolutions.com.br>> Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de> Differential Revision: https://phab.enlightenment.org/D9604
2019-08-21elementary: switch Efl.Ui.Factory API to a batch API and update all class ↵Cedric BAIL
using it. Reviewed-by: Lauro Neto <Lauro Moura <lauromoura@expertisesolutions.com.br>> Differential Revision: https://phab.enlightenment.org/D9579
2019-08-07introduce efl_ui_multi_selectable and efl_ui_single_selectableMarcel Hollerbach
right now they are just thin wrappers from what have been in efl_ui_collection. This is just a first effort, the interfaces have to be equipped with more and better API, more events, and tests. ref T8057 Reviewed-by: SangHyeon Jade Lee <sh10233.lee@samsung.com> Differential Revision: https://phab.enlightenment.org/D9515
2019-08-05efl_ui_selectable: split this upMarcel Hollerbach
i dont know why, but something got badly mixed up, the selection APIs for text and item ended up in the same interface, which seems ... weird ? This commit splits that up into container_selectable and text_selectable, there is no future plan on my list for text_selection. The rest of this series is working towards removing container_selectable, replacing it with a new interface. However, the interface will stay until list_view is replaced. The changes in the legacy code are removing the efl.ui.selection interface from it, item emission is not depending on the inherited interfaces, additionally, this interface does not provide any API, so this should not be an issue. ref T7766 Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com> Differential Revision: https://phab.enlightenment.org/D9498
2019-07-17efl: add a Efl.Model_Provider that every widget will look up for in their ↵Cedric BAIL
parent tree. This is done to simplify code as you only need to set the model on the provider and all the widget that are using it as a provider will automatically be updated. The child will find a provider during at the time the first property binding is set on the widget by checking if the parent have an Efl.Model_Provider set. It is not necessary to set a model to have a valid lookup on a Efl.Model_Provider. To disable a widget lookup, you can just force set a model on it (even NULL) and it will disable the lookup. Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de> Differential Revision: https://phab.enlightenment.org/D9290
2019-07-15efl.h: avoid redefinition of typedef 'Efl_Gfx_Path_Command'Boris Faure
Reviewers: zmike, bu5hm4n, cedric, raster Subscribers: #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D9311
2019-07-04Efl.Ui.Format revampXavi Artigas
This class helps widgets which contain a numerical value and must display it, like Progressbar (units label), Spin, Spin_Button, Slider (both units and popup labels, in legacy), Tags (when in shrunk mode) or Calendar (year_month label). Previously this was a mix of interface and mixin: widgets had to support setting a formatting func, and the mixin offered support for formatting strings, by setting an internal formatting func. On top of that, the spinner widget supported "special values", a list of values that should be shown as certain strings instead. This has now been simplified and unified: Widgets including this mixin can use the formatted_value_get() method which accepts an Eina_Value and returns a string. Thats's it. The mixin adds three properties to the widget (format_values, format_func and format_string) which users can use to tailor formatting. The widget does not need to know which method has been used, it just retrieves the resulting string. This removes a lot of duplicated widget code, and adds functionality which was missing before. For example, all widgets support passing a list of values now. Widgets must implement the apply_formatted_value() method so they are notified of changes in the format and they can redraw anything they need. Tests have been added to the Elementary Spec suite for all cases. Legacy widgets behavior has not been modified, although a few needed some code changes.
2019-05-24Rename Efl.Ui.Direction -> Efl.Ui.Layout_OrientationXavi Artigas
Summary: This clarifies a bit the whole Orientation vs. Direction confusion, at the expense of longer names (Image_Orientation vs. Layout_Orientation). Also, the interfaces are now adjectives (Orientable) and the enums have long names (*_Orientation). Pretty big patch, but no functional changes. Relates to T7863 Test Plan: Everything builds and passes tests. Elementary_tests show same behavior, including the "inverted" widgets, which are the only parts which received a bit of code changes. Proof: https://travis-ci.org/Enlightenment/efl/builds/536277282 Reviewers: zmike, bu5hm4n, cedric Reviewed By: zmike Subscribers: #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D8946
2019-05-22Rename Efl.Gfx.Orientation -> Efl.Gfx.Image_OrientationXavi Artigas
Summary: This will help disambiguate later on when we rename Efl.Ui.Direction to Efl.Ui.Layout_Orientation. Relates to T7919 Test Plan: Everything still builds and passes tests. Reviewers: zmike Reviewed By: zmike Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D8934
2019-05-20Rename Efl.Orient -> Efl.Gfx.OrientationXavi Artigas
Summary: And the Efl.Orientation interface -> Efl.Gfx.Orientable (with proper c_prefix so it is not too cumbersome to use from C). Also, turned the theme_rotation_apply() parameter into an int to avoid confusion. Fixes T7919 Depends on D8912 Test Plan: Everything continues to build and pass tests Reviewers: zmike, bu5hm4n, cedric, Hermet, Jaehyun_Cho Reviewed By: zmike Subscribers: #reviewers, #committers Tags: #efl Maniphest Tasks: T7919 Differential Revision: https://phab.enlightenment.org/D8926
2019-05-14efl_ui: move clickable from efl to efl_uiMarcel Hollerbach
Summary: efl_ui_clickable is now a mixin. The mixin now brings two APIs the press and unpress API can be used to tell the implementation the state of the presses. Within the implementation the calls to press / unpress are then converted to longpress / clicked events. Reviewers: zmike, segfaultxavi, cedric Reviewed By: zmike Subscribers: #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D8820
2019-04-26efl_pack: split algin and padding propertyMarcel Hollerbach
the pack interface is a general interface for how we pack things into a container. the align and padding property has less to nothing to do with this. Hence this commit splits the two properties into theire own interface. fix T7825 Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es> Differential Revision: https://phab.enlightenment.org/D8699
2019-04-05add EFL_VERSION_1_23 defineMike Blumenkrantz
2019-04-05add EFL_VERSION_1_22 definesMike Blumenkrantz
whoops
2019-03-06efl/interfaces: remove all legacy usage from eo filesMike Blumenkrantz
this takes the current generated output from eolian for legacy code in evas and adds it to the tree, then removes legacy references from the corresponding eo files. in the case where the entire eo file was for a legacy object, that eo file has been removed from the tree ref T7724 Reviewed-by: Cedric BAIL <cedric.bail@free.fr> Differential Revision: https://phab.enlightenment.org/D8123
2019-02-27efl.file: improve api a bitMike Blumenkrantz
Summary: the previous implementation/api had a number of issues: * "file" property contained both "file" and "key" values - also performed file loading operation * "load_error" property which was specific to image objects * no methods for controlling file loading/unloading this patch attempts the following changes: * split "file" property into "file" and "key" properties - also remove "key" from existing "mmap" property * remove "load_error" * directly return error codes from operations * add "load" and "unload" methods for directly controlling load state * add implicit file loading if file/mmap is set during construction * rewrite all efl.file implementations to move file loading into load() method * rewrite all usage of efl.file api based on these changes * add C extension functions to mimic previous behavior ref T7577 Reviewers: segfaultxavi, bu5hm4n, cedric Reviewed By: segfaultxavi Subscribers: vitor.sousa, #reviewers, #committers Tags: #efl_api Maniphest Tasks: T7577 Differential Revision: https://phab.enlightenment.org/D8018
2019-02-21interfaces: move animator,tick to efl.canvas.object and remove efl.animatorMike Blumenkrantz
Summary: this interface only contains a single event which is implemented only by the canvas object ref T7561 Reviewers: cedric, segfaultxavi Reviewed By: segfaultxavi Subscribers: #reviewers, #committers Tags: #efl Maniphest Tasks: T7561 Differential Revision: https://phab.enlightenment.org/D7905
2019-02-21api: efl.gfx.size_hints -> efl.gfx.hintsMike Blumenkrantz
Summary: these hints are not strictly size-related, so renaming them is more consistent with their actual function ref T7563 Depends on D7968 Reviewers: segfaultxavi, cedric, bu5hm4n Subscribers: segfaultxavi, cedric, #reviewers, #committers Tags: #efl Maniphest Tasks: T7563 Differential Revision: https://phab.enlightenment.org/D7977
2019-02-14Mark BETA classes individuallyXavi Artigas
Summary: Instead of surrounding all the #include "*.eo.h" lines in Efl.h with #ifdef EFL_BETA_API_SUPPORT, include these files unconditionally, but mark all classes as @beta in the eo files. This will allow taking them out of beta one by one as we deem them stable enough. Otherwise, the current procedure involves moving the #include line out of the ifdef block, which is cumbersome and messes include order. Depends on D7950 Fixes T7692 Test Plan: Nothing changes Reviewers: zmike, bu5hm4n, cedric Subscribers: #reviewers, #committers Tags: #efl Maniphest Tasks: T7692 Differential Revision: https://phab.enlightenment.org/D7951
2019-02-14Mark efl_types.eot as stableXavi Artigas
Summary: This allows using Efl_Version without EFL_BETA_API_SUPPORT, which in turn allows failing when trying to use restricted BETA API with a more meaningful error message. The error will now tell you which restricted API you are trying to use, instead of Efl_Version symbol not found. Fixes T7696 Depends on D7932 Test Plan: make && make check && make examples continue working. Building a BETA example while removing the EFL_BETA_API_SUPPORT define should tell you which BETA API you tried to use. Reviewers: zmike, bu5hm4n, cedric Subscribers: #reviewers, #committers Tags: #efl Maniphest Tasks: T7696 Differential Revision: https://phab.enlightenment.org/D7948
2019-02-11efl_ui : rename model connect and factory connect to bind property and factory.SangHyeon Jade Lee
As we discussed in T7469 with V40, efl_ui_model_connect efl_ui_factory_model_connect need to be renamed to efl_ui_bind_property efl_ui_bind_factory for this work, Efl.Ui.Model.Connect interface is changed as Efl.Ui.Bind, and bind_property and bind_factory both method is supported by this interface. bind_factory need Efl.Ui.Factory, and Efl.Ui.Factory inheritted Efl.Ui.Bind, so I little bit concerned about circular referencing, but so far, it works well. Reviewed-by: Cedric BAIL <cedric.bail@free.fr> Differential Revision: https://phab.enlightenment.org/D7529
2019-01-30efl.file: move 'save' method into separate efl.file_save interfaceMike Blumenkrantz
the save method is implemented very rarely, and most objects which use efl.file will not be able to use a save method ref T5719 Reviewed-by: Cedric BAIL <cedric.bail@free.fr> Reviewed-by: Marcel Hollerbach <marcel-hollerbach@t-online.de> Differential Revision: https://phab.enlightenment.org/D7786
2019-01-30efl.text_markup: move cursor-related methods to efl.text_markup_interactiveMike Blumenkrantz
many users of the markup property are not interactive text cases, so splitting off the interactive methods resolves a number of unimplemented method issues ref T5719 Differential Revision: https://phab.enlightenment.org/D7787
2019-01-29efl_gfx_image_animation_controller: Rename '*.Image_Animation_*' to '*.Frame_*'JunsuChoi
Summary: Efl.Gfx.Image_Animation_Controller name refers to the control of an animatable image. However, the method we use is closer to controlling the frame. We can change the name to Efl.Gfx.Frame_Controller and enhance the functionality of the frame control. Test Plan: N/A Reviewers: Hermet Reviewed By: Hermet Subscribers: segfaultxavi, cedric, woohyun, #reviewers, Jaehyun_Cho, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D7769
2019-01-26efl: introduce efl_ui_direction_readonlyMarcel Hollerbach
the readonly mixin implement the efl_ui_direction interface and prints a error in case it is written. ref T5719 Reviewed-by: Cedric BAIL <cedric.bail@free.fr> Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es> Differential Revision: https://phab.enlightenment.org/D7755
2019-01-23efl: split efl_ui_range into display and interactiveMarcel Hollerbach
display contains properties that are used to manipulate the display. Range_step is a interactive property since it manipulates the way the user interacts with this widget. This resolves a few unimplemented APIs. ref T5719 Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es> Differential Revision: https://phab.enlightenment.org/D7715
2019-01-22efl: add free functions to owned typesMarcel Hollerbach
this commit is a first step in order to add free functions to all the types that are owned. Reviewed-by: Cedric BAIL <cedric.bail@free.fr> Differential Revision: https://phab.enlightenment.org/D7627
2019-01-09elementary: add a factory that handle caching for you.Cedric BAIL
This factory handle caching of one type of object and automatically empty the cache when the application goes into pause. Creating object is costly and time consuming, keeping a few on hands for when you next will need them help a lot. This is what this factory caching infrastructure provide. It will create the object from the class defined on it, set the parent and the model as needed for all items a Factory create. The View has to release the Item using the release function of the Factory interface for all of this to work properly. This is copying what Elm_Genlist was doing for you in the background and bring Efl interface to parity. Reviewed-by: Felipe Magno de Almeida <felipe@expertisesolutions.com.br> Differential Revision: https://phab.enlightenment.org/D7443
2019-01-09efl: add a factory Eina_Error and rename the file to be more on point with ↵Cedric BAIL
its purpose. Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es> Differential Revision: https://phab.enlightenment.org/D7442
2019-01-02efl: rename Efl.Ui.Base -> Efl.Ui.I18n as that is really what it does.Cedric BAIL
Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es> Differential Revision: https://phab.enlightenment.org/D7506
2018-12-20efl: add facility to generate an event when an item is created by the factory.Cedric BAIL
Reviewed-by: SangHyeon Jade Lee <sh10233.lee@samsung.com> Differential Revision: https://phab.enlightenment.org/D7446
2018-11-23efl_interpolator: change Efl.Interpolator class to interfaceJaehyun Cho
Since Efl.Interpolator's subclasses are used as interpolator class, Efl.Interpolator class is changed to be an interface. This change allows Efl.Canvas.Animation to have Efl.Interpolator as its property in efl_canvas_animation.eo.
2018-05-24efl: major rewrite of efl_part.Cedric BAIL
The interface efl_part_get should not be directly called from C, but the efl_part wrapper should. It rely on efl_noref to properly destroy the object. Binding can control the lifecycle of the reference the way they want by either calling the wrapper or efl_part_get directly. It also means that the ugly ___efl_auto_unref_set doesn't need to be exposed outside of EFL anymore. Differential Revision: https://phab.enlightenment.org/D6098