Commit Graph

997 Commits

Author SHA1 Message Date
Tom Hacohen a6a2338962 Revert "Eo: Remove eo_del() and make eo_unref() the replacement."
This reverts commit 546ff7bbba.

It seems that eo_del() is useful and removing it was creating bugs.
The issue is that the way we defined parents in eo, both the parent and
the programmer share a reference to the object. When we eo_unref() that
reference as the programmer, eo has no way to know it's this specific
reference we are freeing, and not a general one, so in some
circumstances, for example:
eo_ref(child);
eo_unref(child); // trying to delete here
eo_unref(container); // container is deleted here
eo_unref(child); // child already has 0 refs before this point.

We would have an issue with references and objects being freed too soon
and in general, issue with the references.

Having eo_del() solves that, because this one explicitly unparents if
there is a parent, meaning the reference ownership is explicitly taken
by the programmer.

eo_del() is essentially a convenience function around "check if has
parent, and if so unparent, otherwise, unref". Which should be used when
you want to delete an object although it has a parent, and is equivalent
to eo_unref() when it doesn't have one.
2016-06-01 13:33:21 +01:00
Daniel Kolesa 6fc482aa9b eolian: utilize the new builtin string type across eo files 2016-05-31 16:05:43 +01:00
Jean-Philippe Andre 99924852ab Efl: Remove part name in Efl.Container (use Efl.Part)
This touches Edje and also Elementary where part names are used.
This commit blew up in size since now all content part APIs
(get, set, unset) require to use Efl.Part instead.

This is a big refactoring commit, but no logic should
have been changed. Fingers crossed.
2016-05-26 19:55:50 +09:00
Jean-Philippe Andre d2ba9866fb Edje: Remove impossible code
With EO we can't possibly call an EO function
with NULL.
2016-05-25 15:00:34 +09:00
Jean-Philippe Andre ba43e12722 Edje: cache proxy objects (1 slot only)
Also, fix calls to a proxy obj from a proxy function.
2016-05-24 18:50:58 +09:00
Jean-Philippe Andre df375ca395 Edje: fix test case (switch to efl_part) 2016-05-24 18:50:58 +09:00
Jean-Philippe Andre b84c9cc376 Edje: Auto-unref proxy objects after calls 2016-05-24 18:50:58 +09:00
Jean-Philippe ANDRE d0f141077e Efl: Add Efl.Part and switch to it
This should now fix the part API usage once and for all.
EFL should have no part name in any of its APIs beyond
the Efl.Part interface.

Part proxy objects (may be real objects) have a lifetime
of only one function call, in a fashion similar to eo_super.

@feature
2016-05-24 18:50:58 +09:00
Daniel Kolesa e984e5a11a eolian: remove pointers from complex and class types
Complex types (i.e. list, array, hash, accessor etc.) now do not require
pointers with them anymore (the pointer is implied) and the same goes for
class handles. Eolian now explicitly disallows creating pointers to these
as well. This is the first part of the work to remove pointers from Eolian
completely, with the goal of simplifying the DSL (higher level) and therefore
making it easier for bindings (as well as easier API usage).

@feature
2016-05-23 15:58:33 +01:00
Jean Guyomarc'h cec8a49b51 edje: fix condition scope
Commit 3faf3f3fc converted an eo_do() into two functions.
However the eo_do() was implicitely enclosed within an if,
which after conversion led to the if coverting only one
of these functions instead of both.

Pointed out by GCC's -Wmisleading-indentation.
2016-05-18 22:29:59 +02:00
Cedric Bail 75a53ece10 eo: for consistency use object like all our API. 2016-05-18 08:18:04 -07:00
Cedric Bail 45bc4f30eb efl: change name of animator,tick event in C. 2016-05-18 02:20:13 -07:00
Jihoon Kim 2b8d93a5d1 ecore_imf: Add multiline hint in input hint
@feature
2016-05-18 15:21:12 +09:00
Daniel Kolesa 7782c0bcb9 eolian: add event_prefix and have classes follow that or eo_prefix by default
Previously events used to use class name as a prefix and ignored eo_prefix
when specified. This is no longer the case. Events follow eo_prefix by default
now. In order to get around this for classes where this is undesirable, a new
field event_prefix was added which takes priority over eo_prefix. If neither
is specified, class name is used like previously.

@feature
2016-05-17 17:50:43 +01:00
Tom Hacohen 546ff7bbba Eo: Remove eo_del() and make eo_unref() the replacement.
We used to have eo_del() as the mirrored action to eo_add(). No longer,
now you just always eo_unref() to delete an object. This change makes it
so the reference of the parent is shared with the reference the
programmer has. So eo_parent_set(obj, NULL) can free an object, and so
does eo_unref() (even if there is a parent).

This means Eo no longer complains if you have a parent during deletion.
2016-05-17 16:23:23 +01:00
perepelits.m d200d483ef edje: attaching viewport of camera to the image part
Summary:
According to D3710 new field "camera" in edc was added for IMAGE parts.
It is the name of the CAMERA part to set its viewport as a source of image if no image name is given.

Reviewers: raster, Hermet, cedric

Reviewed By: cedric

Subscribers: jpeg, artem.popov

Differential Revision: https://phab.enlightenment.org/D3777

Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
2016-05-17 05:21:45 -07:00
Mykyta Biliavskyi 328607f3b9 Edje_edit: generate code of the image sets.
Added support generate the edc code of the image sets in the image top level block.
And correct support inside the image.normal attribute.
2016-05-17 12:01:11 +03:00
Mykyta Biliavskyi d027a2f65c Edje_edit: generate states of the box and table part edc code with inheritance.
Generate inheritance box and table attributes from similar state.
2016-05-16 15:53:48 +03:00
Mykyta Biliavskyi fa17ff96e1 Edje_edit: generate states of the proxy part edc code with inheritance.
Generate inheritance proxy attribute "source" from similar state.
2016-05-16 15:53:42 +03:00
Mykyta Biliavskyi 5b0b0da92b Edje_edit: generate states of the image part edc code with inheritance.
Generate inheritance image attributes from similar state.
2016-05-16 15:53:38 +03:00
Mykyta Biliavskyi 3c3a21d614 Edje_edit: generate states of the text part edc code with inheritance.
Generate inheritance text attributes from similar state.
2016-05-16 15:53:31 +03:00
Mykyta Biliavskyi 303fea96ca Edje_edit: generate state code with inheritance map block.
Add ability to generate inherited code for map block.
2016-05-16 15:53:26 +03:00
Mykyta Biliavskyi bbeae532ac Edje_edit: generate state code with inheritance rel block.
Add ability to generate inherited code for relative block.
2016-05-16 15:53:20 +03:00
Mykyta Biliavskyi 2d63b59221 Edje_edit: generate state code with inheritance general attributes.
Support inheritance for part states on the edc code generate time.
Only for general attributes are supported, except relative and
map blocks.
Added functions for calculation coefficient of similarity
between two different states of the same part.
2016-05-16 15:53:16 +03:00
Mykyta Biliavskyi f4379eaa4c Edje_edit: move text state edc code generate to standalone func.
Created internal function _edje_generate_source_state_text.
This is needed for implementation generate inheritance
states in edc code.
2016-05-16 15:53:09 +03:00
Vitalii Vorobiov e80d8d9a71 Edje_Edit: more API for proxy fields like source_clip and source_visible
Setters and getters like
edje_edit_state_proxy_source_clip_set
edje_edit_state_proxy_source_clip_get
edje_edit_state_proxy_source_visible_set
edje_edit_state_proxy_source_visible_get
2016-05-12 19:31:49 +03:00
Tom Hacohen 6bdf4af016 Add legacy_prefix now that the default has changed to null. 2016-05-12 17:27:35 +01:00
Tom Hacohen 96c4c88070 Efl: Remove "legacy_prefix: null;" as it's now the default. 2016-05-12 17:27:35 +01:00
Tom Hacohen 278b16b058 Evas smart: Fix namespacing to use . and not _. 2016-05-12 11:33:59 +01:00
Tom Hacohen 56eee19102 Efl pack: Fix namespacing to use . and not _. 2016-05-12 11:14:03 +01:00
Tom Hacohen 0253d91ade Evas object smart: Fix namespace to use . and not _. 2016-05-12 11:12:15 +01:00
Ji-Youn Park 27495fe670 edje_callbacks: fix click signal emitting even though mouse event was cancelled
even though each part want to get the signal regardless of ON_HOLD,
click signal should not emmitted if event flag is set to ON_HOLD.
ON_HOLD means this event is useless, so up event with ON_HOLD flag cannot source of clicked signal.

@fix
2016-05-11 22:14:27 +08:30
Andrii Kroitor 0413c26f82 edje_edit: fix edje_edit_group_copy
Summary:
Writing copy directly to file.
Old way (adding directly to collection cache) leads to possible segfaults
on edje_collection_cache_flush.

Reviewers: reutskiy.v.v, cedric

Subscribers: jpeg

Differential Revision: https://phab.enlightenment.org/D3904

Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
2016-05-10 16:36:22 -07:00
Tom Hacohen 0ca59b0402 Efl gfx: Remove the no longer needed .Base hack. 2016-05-10 12:25:44 +01:00
Cedric BAIL 0c4880e99d efl: everyone should now rely on Eina MIN/MAX redefinition. 2016-05-09 16:58:53 -07:00
Carsten Haitzler 90e8ad8d7d edje - file set - use vpath for edje files now too like evas images 2016-05-09 19:37:48 +09:00
Cedric BAIL 10c9ef771f edje: do not check against eet if strings where never allocated. 2016-05-06 16:47:56 -07:00
Cedric BAIL c9152d3816 edje: reduce memory usage by 57Kb.
If we do a copy of a string living in the object we are storing in the
same eina_hash, it is obviously better to use the direct pointer version.
2016-05-06 16:18:51 -07:00
Mykyta Biliavskyi e8138ee7b5 Edje edit: remove color generate from SPACER source.
It is possible situation when SPACER structure has colors values.
For example:
group { name: "abc";
  parts {
    part { name: "rect"; type: RECT;
      description { "default" 0.0;
        color: 7 7 7 255;
      }
    }
  }
}
group { name:"abc_2";
  inherit: "abc";
  parts {
    part { name: "rect"; type: SPACER;
    }
  }
}
To avoid failing compilation of generated source code, need avoid
generate color source code for a SPACER part.
2016-04-29 11:26:58 +03:00
Jean-Philippe Andre 566a156eda Edje Edit: Fix compilation warning 2016-04-29 13:33:13 +09:00
Vitalii Vorobiov e6d4c34449 Edje_Edit: update function that return image usage to include sets
Image can be also used not only inside of any image parts, but also
inside of any sets (and plenty of times)
2016-04-28 16:22:26 +03:00
Vitalii Vorobiov 9ec49c3f4f Edje_Edit: API to delete set of images
Allow to delete set if it is not used by any part
Function to check if set is used by any part is:
edje_edit_set_usage_list_get

Since it uses same struct as image_used_list_get function, it
can be freed by edje_edit_image_usage_list_free.
2016-04-28 16:22:26 +03:00
Vitalii Vorobiov a8afffe105 Edje_Edit: setter and getter for set image's scale_by
edje_edit_image_set_image_border_scale_set
edje_edit_image_set_image_border_scale_get
2016-04-28 16:22:26 +03:00
Vitalii Vorobiov 0d0e9e13bd Edje_Edit: functions to set and get set's images border
edje_edit_image_set_image_border_set
edje_edit_image_set_image_border_get
2016-04-28 16:22:26 +03:00
Vitalii Vorobiov 4589816309 Edje_Edit: setters and getters for set's image size (min and max)
Functions are:
edje_edit_image_set_image_min_get
edje_edit_image_set_image_min_set
edje_edit_image_set_image_max_get
edje_edit_image_set_image_max_set
2016-04-28 16:22:26 +03:00
Vitalii Vorobiov 49f6baa7aa Edje_Edit: some API to manipulate set's images
get list of images of set (edje_edit_image_set_images_list_get)
add image to set (edje_edit_image_set_image_add)
delete image from set by it's place (edje_edit_image_set_image_del)
2016-04-28 16:22:26 +03:00
Vitalii Vorobiov a9240d86a4 Edje_Edit: image set API
list of sets (edje_edit_image_set_list_get)
renaming set (edje_edit_image_set_rename)
add new set (edje_edit_image_set_add)
set's id (edje_edit_image_set_id_get)
2016-04-28 16:22:26 +03:00
Vitalii Vorobiov 2f6bdde1dd Edje_Edit: API to check if given name of "image set" is exist
edje_edit_image_set_exists
2016-04-28 16:22:25 +03:00
Vitalii Vorobiov ac9dc723c4 Edje_Edit: get "set's name" if it was set as image normal or tween
Sets and Images, they might have same id but different names
2016-04-28 16:22:25 +03:00
Vyacheslav Reutskiy 3749fed463 edje_text: don't apply ellipsis if fit is setted
Test plan:

collections {
   group { name: "new";
      parts {
         part { name: "text";
            type: TEXT;
            description { state: "default" 0.0;
               text {
                  text: "Hello world";
                  size: 12;
                  fit: 1 0;
               }
            }
         }
      }
   }
}

Fixes T3519

@fix
2016-04-28 09:45:01 +03:00