efl: introduce efl_ui_direction_readonly
authorMarcel Hollerbach <mail@marcel-hollerbach.de>
Thu, 24 Jan 2019 11:47:38 +0000 (12:47 +0100)
committerTaehyub Kim <taehyub.kim@samsung.com>
Thu, 31 Jan 2019 02:05:08 +0000 (11:05 +0900)
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

src/Makefile_Efl.am
src/lib/edje/efl_canvas_layout_part_box.eo
src/lib/edje/efl_canvas_layout_part_invalid.eo
src/lib/efl/Efl.h
src/lib/efl/interfaces/efl_ui_direction_readonly.c [new file with mode: 0644]
src/lib/efl/interfaces/efl_ui_direction_readonly.eo [new file with mode: 0644]
src/lib/efl/interfaces/meson.build
src/lib/elementary/efl_ui_layout_part_box.eo

index 3d4c7a9..ada411a 100644 (file)
@@ -57,6 +57,7 @@ efl_eolian_files = \
       lib/efl/interfaces/efl_pack_table.eo \
       lib/efl/interfaces/efl_ui_i18n.eo \
       lib/efl/interfaces/efl_ui_direction.eo \
+      lib/efl/interfaces/efl_ui_direction_readonly.eo \
       lib/efl/interfaces/efl_ui_drag.eo \
       lib/efl/interfaces/efl_ui_range_display.eo \
       lib/efl/interfaces/efl_ui_range_interactive.eo \
@@ -132,6 +133,7 @@ lib/efl/interfaces/efl_file.c \
 lib/efl/interfaces/efl_ui_format.c \
 lib/efl/interfaces/efl_gfx_color.c \
 lib/efl/interfaces/efl_text_markup_util.c \
+lib/efl/interfaces/efl_ui_direction_readonly.c \
 $(NULL)
 
 lib_efl_libefl_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl -I$(top_srcdir)/src/lib/efl @EFL_CFLAGS@ -DEFL_GFX_FILTER_BETA
index 0173bab..4db9592 100644 (file)
@@ -1,5 +1,5 @@
 class Efl.Canvas.Layout_Part_Box extends Efl.Canvas.Layout_Part implements Efl.Pack_Linear,
-                                  Efl.Ui.Direction
+                                  Efl.Ui.Direction_Readonly
 {
    [[Represents a Box created as part of a layout.
 
index ceb3177..6c8f3fe 100644 (file)
@@ -1,5 +1,5 @@
 class Efl.Canvas.Layout_Part_Invalid extends Efl.Canvas.Layout_Part implements Efl.Content,
-                                      Efl.Pack_Linear, Efl.Ui.Direction,
+                                      Efl.Pack_Linear, Efl.Ui.Direction_Readonly,
                                       Efl.Pack_Table, Efl.Text,
                                       Efl.Text_Markup
 {
index 43e98ab..f4c7991 100644 (file)
@@ -96,6 +96,7 @@ typedef Efl_Gfx_Path_Command_Type Efl_Gfx_Path_Command;
 #include "interfaces/efl_orientation.eo.h"
 #include "interfaces/efl_ui_i18n.eo.h"
 #include "interfaces/efl_ui_direction.eo.h"
+#include "interfaces/efl_ui_direction_readonly.eo.h"
 #include "interfaces/efl_ui_drag.eo.h"
 #include "interfaces/efl_ui_range_display.eo.h"
 #include "interfaces/efl_ui_range_interactive.eo.h"
diff --git a/src/lib/efl/interfaces/efl_ui_direction_readonly.c b/src/lib/efl/interfaces/efl_ui_direction_readonly.c
new file mode 100644 (file)
index 0000000..7126a8a
--- /dev/null
@@ -0,0 +1,17 @@
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <Efl.h>
+
+typedef struct {
+
+} Efl_Ui_Direction_Readonly_Data;
+
+EOLIAN static void
+_efl_ui_direction_readonly_efl_ui_direction_direction_set(Eo *obj EINA_UNUSED, Efl_Ui_Direction_Readonly_Data *pd EINA_UNUSED, Efl_Ui_Dir dir EINA_UNUSED)
+{
+   EINA_LOG_ERR("This object does not allow setting of a direction");
+}
+
+#include "efl_ui_direction_readonly.eo.c"
diff --git a/src/lib/efl/interfaces/efl_ui_direction_readonly.eo b/src/lib/efl/interfaces/efl_ui_direction_readonly.eo
new file mode 100644 (file)
index 0000000..900b990
--- /dev/null
@@ -0,0 +1,6 @@
+mixin Efl.Ui.Direction_Readonly extends Efl.Ui.Direction
+{
+  implements {
+    Efl.Ui.Direction.direction { set; [[This will always print and error that this is a readonly object]]}
+  }
+}
index b2c33d3..e325bdc 100644 (file)
@@ -83,6 +83,7 @@ pub_eo_files = [
   'efl_pack_table.eo',
   'efl_ui_i18n.eo',
   'efl_ui_direction.eo',
+  'efl_ui_direction_readonly.eo',
   'efl_ui_drag.eo',
   'efl_ui_range_display.eo',
   'efl_ui_range_interactive.eo',
@@ -172,6 +173,7 @@ efl_src += files([
   'efl_observer.c',
   'efl_file.c',
   'efl_ui_format.c',
+  'efl_ui_direction_readonly.c',
   'efl_text_markup_util.c',
 ])
 
index bac8ba2..566a2ce 100644 (file)
@@ -4,7 +4,7 @@ class Efl.Ui.Layout_Part_Box extends Efl.Object implements Efl.Pack_Linear,
  */
 /* END */
 class Efl.Ui.Layout_Part_Box extends Efl.Ui.Layout_Part implements Efl.Pack_Linear,
-                              Efl.Ui.Direction
+                              Efl.Ui.Direction_Readonly
 {
    [[Represents a Box created as part of a layout.