summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-02-28eolian: do not allow owned pointers to builtinsdevs/q66/eolian-inlist-inarrayDaniel Kolesa
Ideally we should not allow pointers to builtins at all, but that cannot be done right now.
2019-02-28eolian_gen: support for iterative freeing of struct fieldsDaniel Kolesa
2019-02-28eolian_gen: better freeing for inarrayDaniel Kolesa
This one will only loop the inarray if it contains a struct with owned fields, however it will not do iterative free for container fields in that kind of struct. That may be added later, or Eolian might be restricted further.
2019-02-28eolian_gen: free inlist nodes with the proper free functionDaniel Kolesa
2019-02-28eolian: disallow container nesting and freefuncs for builtinsDaniel Kolesa
It is now not possible to put e.g. lists inside hashes, at least not for public API, as writing freeing logic and stuff for that is too complex. It is also now not allowed to override free functions for builtin types, except mstring and inlist.
2019-02-28eolian: prevent inlist structs from being found in normal lookupsDaniel Kolesa
We don't want to be able to make aliases to inlist structs and stuff as they're potentially internal/not really present in public API.
2019-02-28eolian: remove free function builtins and rework ownability checksDaniel Kolesa
Eolian will not provide any builtin free functions anymore, with the exception of mstring for which it defaults to 'free'.
2019-02-28eolian_gen: remove usage of freefuncs from builtinsDaniel Kolesa
The freefuncs for builtin containers are now generator-specific matter. Freefuncs still apply for user types.
2019-02-28eolian: add support for inlist structsDaniel Kolesa
The inlist<T> syntax can now never refer to an ordinary type, T must be a new special type of struct called inlist struct. This inlist struct differs from regular structs in a couple ways: 1) They are stored separately. Just like structs, enums, aliases have their own storage, so do inlist structs. 2) They can't be @extern, nor they can be opaque. 3) They are their own type of typedecl. 4) When they contain only one field, this field must be a value type always, cannot be a pointer. Like regular structs, they can have arbitrary fields, and they can have a pre-set free function via @free(). When used with inlist, the free function set on the inlist struct via @free() will be inherited onto the inlist<T> type, except when previously overridden. In C, the inlist structs will be generated exactly like ordinary ones, except they will have EINA_INLIST before the first field. Other binding generators can deal with them as they wish, for example to provide high level interfaces to them. @feature
2019-02-28eolian: make sure inlist/inarray only take value typesDaniel Kolesa
While technically valid, it doesn't make sense for inlist/inarray to contain non-value types, as then one might as well just use a list.
2019-02-28eolian: properly skip the struct keyword in inlist structsDaniel Kolesa
This was missed as a part of an incorrect merge.
2019-02-28eolian: add support for inlist structsDaniel Kolesa
This adds support for inlist structs, a special type of struct that can only be used with inlists. This differs from regular structs in a couple ways: 1) They are stored separately. Just like structs, enums, aliases have their own storage, so do inlist structs. 2) They can't be @extern, nor they can be opaque. 3) They are their own type of typedecl. 4) When they contain only one field, this field must be a value type always, cannot be a pointer. Like regular structs, they can have arbitrary fields, and they can have a pre-set free function via @free(). In C, the inlist structs will be generated exactly like ordinary ones, except they will have EINA_INLIST before the first field. Other binding generators can deal with them as they wish, for example to provide high level interfaces to them. This does not yet do the plumbing necessary to hook these into the type system, nor it adds generator support. @feature
2019-02-27tests: add test for elm_layout_text_setMike Blumenkrantz
Summary: ref T6931 Reviewers: stefan_schmidt, cedric Reviewed By: cedric Subscribers: cedric, #reviewers, #committers Tags: #efl Maniphest Tasks: T6931 Differential Revision: https://phab.enlightenment.org/D7603
2019-02-27efl_ui_layout: check part existence in text_setMike Blumenkrantz
Summary: fix T6931 Reviewers: bu5hm4n, cedric, segfaultxavi Reviewed By: bu5hm4n Subscribers: #reviewers, #committers Tags: #efl_widgets Maniphest Tasks: T6931 Differential Revision: https://phab.enlightenment.org/D7888
2019-02-27efl_container: remove content_removeYeongjong Lee
Most of classes implements Efl.Container.content_remove are just calling "unpack" except of "Efl.Canvas.Layout" and "Efl.Ui.Layout". This patch remove the asymmetrical API and add content_remove API of "Efl.Canvas.Layout" and "Efl.Ui.Layout" that child can be remove without efl_part APIs. ref T7576 Reviewed-by: Marcel Hollerbach <marcel-hollerbach@t-online.de> Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com> Differential Revision: https://phab.enlightenment.org/D7913
2019-02-27meson: modify install path of bqmgr binaryWonki Kim
bqmgr is installed under ${libdir}/ecore_buffer/bin/ on autotools. and it's not on meson. this patch modify the install path on meson to a place that autotools installs outputs under and this contains file name of binary also Reviewed-by: Marcel Hollerbach <marcel-hollerbach@t-online.de> Differential Revision: https://phab.enlightenment.org/D7836
2019-02-27meson: modify install pathes for modules of ecore_bufferWonki Kim
there are differences between meson and autotools. autotools installs them under ${libdir}/ecore_buffer/modules/module/version/ as module.so Reviewed-by: Marcel Hollerbach <marcel-hollerbach@t-online.de> Differential Revision: https://phab.enlightenment.org/D7837
2019-02-27efl_canvas_layout_part_external: implement missing functionsMarcel Hollerbach
Summary: this just prints a error, manipulating the content here is not permitted. As it is created by edje externals, which are owned by edje. ref T5719 Depends on D7757 Reviewers: cedric, zmike, segfaultxavi Reviewed By: zmike Subscribers: q66, #reviewers, #committers Tags: #efl Maniphest Tasks: T5719 Differential Revision: https://phab.enlightenment.org/D7759
2019-02-27test/ui_table: add unittest for Efl.Ui.TableYeongjong Lee
Summary: {F3627728} {F3627729} ref T5487 Depends on D7892 Test Plan: make check Reviewers: jpeg, Jaehyun_Cho, zmike Reviewed By: zmike Subscribers: cedric, #reviewers, #committers Tags: #efl Maniphest Tasks: T5487 Differential Revision: https://phab.enlightenment.org/D7840
2019-02-27ui.table: implement homogeneous modeYeongjong Lee
Summary: Homogeneous mode means children are of the same weight and of the same min size which is determined by maximum min size of cells. Depends on D7841 Reviewers: Jaehyun_Cho, jpeg, zmike Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D7892
2019-02-27efl_ui_table: refactor layout_updateYeongjong Lee
Summary: There are three reasons to refactor layout_update of Efl.Ui.Table. === 1. Inconsistency of hint behavior. === Some hint property is often not respected. for example, hint_min is ignored in Table when it is used with hint_max even if hint_weight is 0. hint_aspect is always ignored in Table. The ambiguous behavior make it hard to layout widgets in container. of course, we documented 'it's just a hint that should be used whenever appropriate.' but i don't think it means that 'hint API is sometimes respected and we also don't know when that API is respected.'. at least there is rule for consistent behavior and we should be able to explain why a widget is located here and why some hint property is ignored. So, i'll suggest priority of hint property. this refactoring support following priority. 1) HintMin 2) HintMin + HintAspect 3) HintMargin 4) HintMax 5) HintAspect 6) HintWeight, HintFill 7) HintAlign ref T5487 Please check with unit test D7840 === 2. To Enhance usability. === Efl.Ui.Table is using homogeneous mode of evas_table which have same columns, rows size. but i think a table can generally change columns, rows size and we can provide homogeneous mode option.(D7892) In this patch - table columns(rows) min size is decided by maximum size among its cells width(height) min size. - table columns(rows) weight is decided by maximum weight among its cells horizontal(vertical) weight. Also, pack_align is implemented. it is used if no item has a weight. === 3. To remove internal evas_table. === This is low priority work. however, i guess is is necessary for lightweight container widget. there are two size_hint callback to adjust table size and efl_canvas_group_calculate is called twice when it is resized. This patch is first step to remove internal evas_table. Test Plan: make check elementary_test -to 'efl.ui.table' Reviewers: jpeg, Jaehyun_Cho, zmike Reviewed By: zmike Subscribers: zmike, cedric, #reviewers, #committers Tags: #efl Maniphest Tasks: T5487 Differential Revision: https://phab.enlightenment.org/D7841
2019-02-27efl_ui_widget: child_can_focus is not needed anymoreMarcel Hollerbach
summary_: pd->logical.child_count is a counter where focusable children do register themself in the parent if they can be focused or not. With this we don't need the updating of this internal flag nor the flag itself anymore. Depends on D8027 Reviewers: woohyun, cedric, Jaehyun_Cho, zmike, segfaultxavi Reviewed By: segfaultxavi Subscribers: #reviewers, #committers Tags: #efl Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es> Differential Revision: https://phab.enlightenment.org/D8030
2019-02-27efl_ui_widget: make interest_region_mode legacyMarcel Hollerbach
summary_: interest_region_mode makes it possible, that interest_region_get either returns WIDGET or ITEM coordinates. However, efl-api does not have items. That means, this can be legacy. ref T7553 Depends on D8026 Reviewers: woohyun, cedric, Jaehyun_Cho, zmike, segfaultxavi Reviewed By: segfaultxavi Subscribers: #reviewers, #committers Tags: #efl Maniphest Tasks: T7553 Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es> Differential Revision: https://phab.enlightenment.org/D8027
2019-02-27efl_ui_widget: move show_region to legacyMarcel Hollerbach
summary_: show_region is simular to focus_region. However, it builds up on setting custom functions per setter to the widget, which are then executed. This can be solved better by overwriting the interest_region getter, and using a function like elm_widget_focus_region_show (This function still needs to find its place in the eo api). ref T7553 Depends on D8025 Reviewers: woohyun, cedric, Jaehyun_Cho, zmike, segfaultxavi Reviewed By: segfaultxavi Subscribers: #reviewers, #committers Tags: #efl Maniphest Tasks: T7553 Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es> Differential Revision: https://phab.enlightenment.org/D8026
2019-02-27efl_ui_widget: move focus_highlight to the windowMarcel Hollerbach
summary_: the widget implementation just redirected calls from efl_ui_widget to efl_ui_win. Which makes the properties unncessesary on the widget. This commit moves them now to the window. The legacy implementation of the window can now go away, as this is taken care of by eolian directly. ref T7553 Depends on D8017 Reviewers: woohyun Reviewed By: woohyun Subscribers: segfaultxavi, cedric, #reviewers, #committers Tags: #efl Maniphest Tasks: T7553 Reviewed-by: WooHyun Jung <woohyun0705@gmail.com> Differential Revision: https://phab.enlightenment.org/D8025
2019-02-27efl_ui_widget: redo disable handlingMike Blumenkrantz
before the disable property was a bit weird. Setting something to disabled=true will disable all children of the widget that is changed. However, only the update function of the children will get the false flag, not the flag itself. Which means, to query the real disabled state, we need to walk up the parent relations. With this patch, every change to disabled will go through the disabled property, which mean, a implementor can just overwrite the disabled property, and adjust its internal state there. Just be carefull, a set to disabled=true still might result in disabled=false. This makes the function on_disable_update unneccesary. Which also cleans up the Efl.Ui.Widget class. ref T7553 Depends on D8016 Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com> Differential Revision: https://phab.enlightenment.org/D8017
2019-02-27elementary: remove unnecessessary disabled setterMarcel Hollerbach
summary_: those objects are disabled anyways, because disabled is applied to the objects in a tree. Which means, subobjects of a widget are disabled whenever the widget is disabled anyways. Depends on D8015 Reviewers: cedric, zmike, segfaultxavi, stefan_schmidt Reviewed By: segfaultxavi Subscribers: cedric, #reviewers, #committers Tags: #efl Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es> Differential Revision: https://phab.enlightenment.org/D8016
2019-02-27efl_ui_widget: move orientation to the specific users of this widgetMike Blumenkrantz
The new api is moved into either Efl.Ui.Win or Efl.Ui.Layout. Only Efl.Ui.Layout is interested in the rotation, as this is the only widget that can actaully apply it to the theme. The value itself however is unique to the window, which means, the window is the only point where the rotation is stored, and this is the point, where rotation changes are brought to the layouts. ref T7553 Depends on D8014 Differential Revision: https://phab.enlightenment.org/D8015
2019-02-27efl_ui_widget: introduce a new APIMarcel Hollerbach
Summary: this new API can be used to get a easy to use iterator, to iterate through all the children of a specific widget. ref T7553 Reviewers: stefan_schmidt, zmike, cedric, segfaultxavi Reviewed By: segfaultxavi Subscribers: woohyun, cedric, #reviewers, #committers Tags: #efl Maniphest Tasks: T7553 Differential Revision: https://phab.enlightenment.org/D8014
2019-02-27efl.canvas.object: clip -> clipper && clipees -> clipped_objectsMike Blumenkrantz
Summary: also clipees_has -> clipped_objects_count ref T7555 Depends on D8039 Reviewers: segfaultxavi Reviewed By: segfaultxavi Subscribers: segfaultxavi, cedric, #reviewers, #committers Tags: #efl Maniphest Tasks: T7555 Differential Revision: https://phab.enlightenment.org/D8040
2019-02-27efl.file_save: rework save flagsMike Blumenkrantz
Summary: instead of passing a string which requires reading docs to know which arbitrary string key=value sets can be passed, use an extensible struct which contains more easily referenced values ref T7672 Depends on D8035 Reviewers: segfaultxavi Reviewed By: segfaultxavi Subscribers: segfaultxavi, cedric, #reviewers, #committers Tags: #efl Maniphest Tasks: T7672 Differential Revision: https://phab.enlightenment.org/D8039
2019-02-27efl.canvas.group: group_member_del -> group_member_removeMike Blumenkrantz
Summary: api naming in efl uses 'del' when deleting an object and 'remove' when removing something from an object ref T7554 Depends on D8034 Reviewers: segfaultxavi, bu5hm4n Reviewed By: segfaultxavi Subscribers: cedric, #reviewers, #committers Tags: #efl_api Maniphest Tasks: T7554 Differential Revision: https://phab.enlightenment.org/D8035
2019-02-27efl.canvas.group: add events for member add/removeMike Blumenkrantz
Summary: ref T7554 Depends on D8032 Reviewers: segfaultxavi, bu5hm4n Reviewed By: segfaultxavi Subscribers: cedric, #reviewers, #committers Tags: #efl_api Maniphest Tasks: T7554 Differential Revision: https://phab.enlightenment.org/D8034
2019-02-27efl.ui.layout: split into abstract and real classMike Blumenkrantz
Summary: most widgets inherit from layout to provide implementations for common functionality such as content/text/theme get+set. one of the things that layout also brings into its inheritance hierarchy is efl.file and implementations for its methods. this becomes a problem when the widget which inherits layout also wants to provide implementations for efl.file methods (e.g., entry, which uses efl.file to load text files) as it will result in calling all of the efl.file implementations up the chain. in the case of entry, this could result in the 'file' property eventually being set to the current theme file in use by the entry's layout object, and then the entry will attempt to autosave its content to the default theme file when it is destroyed, corrupting the theme file and breaking everything to solve this: * efl.ui.layout remains an instantiable class which implements efl.file * efl.ui.layout_base is the abstract class which provides all the methods of layout but should be inherited by all widgets which want to implement efl.file functionality Depends on D8018 Reviewers: bu5hm4n, segfaultxavi Reviewed By: segfaultxavi Subscribers: cedric, #reviewers, #committers Tags: #efl_api Differential Revision: https://phab.enlightenment.org/D8032
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-27elua tests: fix distcheckDaniel Kolesa
The elua tests need to create a temporary file, so chdir'ing first will not work, as the tests source dir is immutable during distcheck. Therefore, only chdir once absolutely necessary, and before that make sure that all file accesses are to temporary ones.
2019-02-27meson: edje: setup edje_codegen for cross-builds as wellStefan Schmidt
We had it all setup for edje_cc, but missed edje_codegen which is used in the examples. Reviewed-by: Marcel Hollerbach <marcel-hollerbach@t-online.de> Differential Revision: https://phab.enlightenment.org/D7963
2019-02-27eio: fix not to overflow data by performing arithmetic.Hermet Park
2019-02-27evas vg: don't access a dangling pointer.Hermet Park
2019-02-26edje: free more data descriptors on shutdownMike Blumenkrantz
Summary: fix some leaks Reviewers: devilhorns Reviewed By: devilhorns Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D8022
2019-02-26examples/graphical: Mark unused parameters with EINA_UNUSEDChristopher Michael
2019-02-26examples/camera_light: Mark unused parameters with EINA_UNUSEDChristopher Michael
2019-02-26examples/sphere_hunter: Mark unused parameters with EINA_UNUSEDChristopher Michael
2019-02-26examples/performance: Mark unused parameters with EINA_UNUSEDChristopher Michael
2019-02-26examples/location_example: Mark unused parameters with EINA_UNUSEDChristopher Michael
2019-02-26examples/efl_canvas_layout_text: Mark unused parameter with EINA_UNUSEDChristopher Michael
2019-02-26examples/efl_ui_list: Mark unused parameters with EINA_UNUSEDChristopher Michael
2019-02-26examples/filemvc: Mark unused parameter with EINA_UNUSEDChristopher Michael
2019-02-26efl_ui_scroller: apply handling focus.Hosang Kim
Summary: Focus manager is applied to process key events. Test Plan: elementary_test -> efl.ui.scroller Reviewers: SanghyeonLee, YOhoho, marcelhollerbach, bu5hm4n Reviewed By: bu5hm4n Subscribers: woohyun, Jaehyun_Cho, bu5hm4n, cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D7776
2019-02-25efl-csharp: Use proper conversion functions.Lauro Moura
Summary: PtrToStringAuto may switch between ANSI and UTF16 encodings in a not so clear way, leading to decoding errors when getting messages from DBus. Reviewers: vitor.sousa Reviewed By: vitor.sousa Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D8023