From ae932ce22674f79ce2c6e0191f07c12ffb6d481b Mon Sep 17 00:00:00 2001 From: Xavi Artigas Date: Wed, 15 Nov 2017 18:20:42 +0100 Subject: [PATCH] Simplify eo-inherit even more Square does not need "side", can use the parent's setters to make sure width=height always. --- tutorial/c/eo-inherit/src/eo_inherit_main.c | 2 +- tutorial/c/eo-inherit/src/example_square.c | 13 +++++++------ tutorial/c/eo-inherit/src/example_square.eo | 14 +++----------- 3 files changed, 11 insertions(+), 18 deletions(-) diff --git a/tutorial/c/eo-inherit/src/eo_inherit_main.c b/tutorial/c/eo-inherit/src/eo_inherit_main.c index e7ae4539..4045ab99 100644 --- a/tutorial/c/eo-inherit/src/eo_inherit_main.c +++ b/tutorial/c/eo-inherit/src/eo_inherit_main.c @@ -20,7 +20,7 @@ _square_create() square = efl_add(EXAMPLE_SQUARE_CLASS, NULL, efl_name_set(efl_added, "Square"), - example_square_side_set(efl_added, 7)); + example_rectangle_width_set(efl_added, 7)); return square; } diff --git a/tutorial/c/eo-inherit/src/example_square.c b/tutorial/c/eo-inherit/src/example_square.c index 6f96a348..8ebb6969 100644 --- a/tutorial/c/eo-inherit/src/example_square.c +++ b/tutorial/c/eo-inherit/src/example_square.c @@ -10,16 +10,17 @@ typedef struct } Example_Square_Data; EOLIAN static void -_example_square_side_set(Eo *obj, Example_Square_Data *pd EINA_UNUSED, int size) +_example_square_example_rectangle_width_set(Eo *obj, Example_Square_Data *pd EINA_UNUSED, int width) { - example_rectangle_width_set(obj, size); - example_rectangle_height_set(obj, size); + example_rectangle_width_set(efl_super(obj, EXAMPLE_SQUARE_CLASS), width); + example_rectangle_height_set(efl_super(obj, EXAMPLE_SQUARE_CLASS), width); } -EOLIAN static int -_example_square_side_get(Eo *obj, Example_Square_Data *pd EINA_UNUSED) +EOLIAN static void +_example_square_example_rectangle_height_set(Eo *obj, Example_Square_Data *pd EINA_UNUSED, int height) { - return example_rectangle_width_get(obj); + example_rectangle_width_set(efl_super(obj, EXAMPLE_SQUARE_CLASS), height); + example_rectangle_height_set(efl_super(obj, EXAMPLE_SQUARE_CLASS), height); } #include "example_square.eo.c" diff --git a/tutorial/c/eo-inherit/src/example_square.eo b/tutorial/c/eo-inherit/src/example_square.eo index 29407901..ea1ea947 100644 --- a/tutorial/c/eo-inherit/src/example_square.eo +++ b/tutorial/c/eo-inherit/src/example_square.eo @@ -1,15 +1,7 @@ class Example.Square (Example.Rectangle) { [[A square shape object]] - methods { - @property side { - [[The length of both sides of this square]] - set { - } - get { - } - values { - size: int; [[Square side length]] - } - } + implements { + Example.Rectangle.width {set;} + Example.Rectangle.height {set;} } }