summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJean-Philippe Andre <jp.andre@samsung.com>2017-09-19 20:02:26 +0900
committerJean-Philippe Andre <jp.andre@samsung.com>2017-09-21 12:27:33 +0900
commit0339ad7740b169683990aa8ce0dbf7c9489ab505 (patch)
treeef61ff37735abba8cd0a8c6cb86fb310f5d66d27
parent1a854d892f83b6933d3523cf7d188215600df04d (diff)
elm: Move base implementation for efl_part in widget
This means that ALL part handles inherit from the base part class Efl.Ui.Widget.Part. Layout is the only exception where Efl.Part is specially overridden. This is a first step towards generic part APIs, including background in all widgets.
-rw-r--r--src/Makefile_Elementary.am1
-rw-r--r--src/lib/elementary/Elementary.h1
-rw-r--r--src/lib/elementary/efl_ui_button.c4
-rw-r--r--src/lib/elementary/efl_ui_flip.c8
-rw-r--r--src/lib/elementary/efl_ui_flip_part.eo5
-rw-r--r--src/lib/elementary/efl_ui_layout.c66
-rw-r--r--src/lib/elementary/efl_ui_layout_pack.c3
-rw-r--r--src/lib/elementary/efl_ui_layout_part.eo5
-rw-r--r--src/lib/elementary/efl_ui_panes.c18
-rw-r--r--src/lib/elementary/efl_ui_panes_part.eo2
-rw-r--r--src/lib/elementary/efl_ui_progressbar.c14
-rw-r--r--src/lib/elementary/efl_ui_progressbar_part.eo2
-rw-r--r--src/lib/elementary/efl_ui_slider.c14
-rw-r--r--src/lib/elementary/efl_ui_slider_part.eo2
-rw-r--r--src/lib/elementary/efl_ui_text.c6
-rw-r--r--src/lib/elementary/efl_ui_textpath.c6
-rw-r--r--src/lib/elementary/efl_ui_widget_part.eo9
-rw-r--r--src/lib/elementary/efl_ui_win.c71
-rw-r--r--src/lib/elementary/efl_ui_win_part.eo5
-rw-r--r--src/lib/elementary/elc_ctxpopup.c8
-rw-r--r--src/lib/elementary/elc_fileselector.c4
-rw-r--r--src/lib/elementary/elc_fileselector_entry.c12
-rw-r--r--src/lib/elementary/elc_multibuttonentry.c6
-rw-r--r--src/lib/elementary/elc_naviframe.c12
-rw-r--r--src/lib/elementary/elc_player.c4
-rw-r--r--src/lib/elementary/elc_popup.c12
-rw-r--r--src/lib/elementary/elm_actionslider.c6
-rw-r--r--src/lib/elementary/elm_bubble.c4
-rw-r--r--src/lib/elementary/elm_dayselector.c6
-rw-r--r--src/lib/elementary/elm_entry.c10
-rw-r--r--src/lib/elementary/elm_flip_part.eo2
-rw-r--r--src/lib/elementary/elm_hover.c8
-rw-r--r--src/lib/elementary/elm_label.c4
-rw-r--r--src/lib/elementary/elm_mapbuf.c8
-rw-r--r--src/lib/elementary/elm_mapbuf_part.eo5
-rw-r--r--src/lib/elementary/elm_notify.c12
-rw-r--r--src/lib/elementary/elm_notify_part.eo5
-rw-r--r--src/lib/elementary/elm_panel.c8
-rw-r--r--src/lib/elementary/elm_panel_part.eo5
-rw-r--r--src/lib/elementary/elm_part_helper.h129
-rw-r--r--src/lib/elementary/elm_scroller.c8
-rw-r--r--src/lib/elementary/elm_widget.c36
-rw-r--r--src/lib/elementary/elm_widget.eo3
43 files changed, 271 insertions, 288 deletions
diff --git a/src/Makefile_Elementary.am b/src/Makefile_Elementary.am
index a7f2874..f740538 100644
--- a/src/Makefile_Elementary.am
+++ b/src/Makefile_Elementary.am
@@ -74,6 +74,7 @@ elm_public_eolian_files = \
74 lib/elementary/elm_view_form.eo \ 74 lib/elementary/elm_view_form.eo \
75 lib/elementary/elm_web.eo \ 75 lib/elementary/elm_web.eo \
76 lib/elementary/elm_widget.eo \ 76 lib/elementary/elm_widget.eo \
77 lib/elementary/efl_ui_widget_part.eo \
77 lib/elementary/efl_ui_win.eo \ 78 lib/elementary/efl_ui_win.eo \
78 lib/elementary/efl_ui_win_inlined.eo \ 79 lib/elementary/efl_ui_win_inlined.eo \
79 lib/elementary/efl_ui_win_socket.eo \ 80 lib/elementary/efl_ui_win_socket.eo \
diff --git a/src/lib/elementary/Elementary.h b/src/lib/elementary/Elementary.h
index 61c7c93..6a7e3c8 100644
--- a/src/lib/elementary/Elementary.h
+++ b/src/lib/elementary/Elementary.h
@@ -264,6 +264,7 @@ EAPI extern Elm_Version *elm_version;
264 264
265#ifdef EFL_EO_API_SUPPORT 265#ifdef EFL_EO_API_SUPPORT
266# include <efl_config_global.eo.h> 266# include <efl_config_global.eo.h>
267# include <efl_ui_widget_part.eo.h>
267# include <efl_ui_box.eo.h> 268# include <efl_ui_box.eo.h>
268# include <efl_ui_box_flow.eo.h> 269# include <efl_ui_box_flow.eo.h>
269# include <efl_ui_box_stack.eo.h> 270# include <efl_ui_box_stack.eo.h>
diff --git a/src/lib/elementary/efl_ui_button.c b/src/lib/elementary/efl_ui_button.c
index 81b04e8..d7322be 100644
--- a/src/lib/elementary/efl_ui_button.c
+++ b/src/lib/elementary/efl_ui_button.c
@@ -424,8 +424,8 @@ EFL_TEXT_PART_DEFAULT_IMPLEMENT(efl_ui_button, Efl_Ui_Button_Data)
424 424
425/* Efl.Part begin */ 425/* Efl.Part begin */
426 426
427ELM_PART_OVERRIDE(efl_ui_button, EFL_UI_BUTTON, EFL_UI_LAYOUT, Efl_Ui_Button_Data, Elm_Part_Data) 427ELM_PART_OVERRIDE(efl_ui_button, EFL_UI_BUTTON, Efl_Ui_Button_Data)
428ELM_PART_OVERRIDE_CONTENT_SET(efl_ui_button, EFL_UI_BUTTON, EFL_UI_LAYOUT, Efl_Ui_Button_Data, Elm_Part_Data) 428ELM_PART_OVERRIDE_CONTENT_SET(efl_ui_button, EFL_UI_BUTTON, Efl_Ui_Button_Data)
429#include "efl_ui_button_part.eo.c" 429#include "efl_ui_button_part.eo.c"
430 430
431/* Efl.Part end */ 431/* Efl.Part end */
diff --git a/src/lib/elementary/efl_ui_flip.c b/src/lib/elementary/efl_ui_flip.c
index 0f1b18e..a87e565 100644
--- a/src/lib/elementary/efl_ui_flip.c
+++ b/src/lib/elementary/efl_ui_flip.c
@@ -2398,10 +2398,10 @@ elm_flip_interaction_direction_enabled_get(Efl_Ui_Flip *obj, Elm_Flip_Direction
2398 2398
2399/* Efl.Part begin */ 2399/* Efl.Part begin */
2400 2400
2401ELM_PART_IMPLEMENT(efl_ui_flip, EFL_UI_FLIP, Efl_Ui_Flip_Data, Elm_Part_Data) 2401ELM_PART_OVERRIDE(efl_ui_flip, EFL_UI_FLIP, Efl_Ui_Flip_Data)
2402ELM_PART_IMPLEMENT_CONTENT_SET(efl_ui_flip, EFL_UI_FLIP, Efl_Ui_Flip_Data, Elm_Part_Data) 2402ELM_PART_OVERRIDE_CONTENT_SET(efl_ui_flip, EFL_UI_FLIP, Efl_Ui_Flip_Data)
2403ELM_PART_IMPLEMENT_CONTENT_GET(efl_ui_flip, EFL_UI_FLIP, Efl_Ui_Flip_Data, Elm_Part_Data) 2403ELM_PART_OVERRIDE_CONTENT_GET(efl_ui_flip, EFL_UI_FLIP, Efl_Ui_Flip_Data)
2404ELM_PART_IMPLEMENT_CONTENT_UNSET(efl_ui_flip, EFL_UI_FLIP, Efl_Ui_Flip_Data, Elm_Part_Data) 2404ELM_PART_OVERRIDE_CONTENT_UNSET(efl_ui_flip, EFL_UI_FLIP, Efl_Ui_Flip_Data)
2405ELM_PART_CONTENT_DEFAULT_SET(efl_ui_flip, "front") 2405ELM_PART_CONTENT_DEFAULT_SET(efl_ui_flip, "front")
2406#include "efl_ui_flip_part.eo.c" 2406#include "efl_ui_flip_part.eo.c"
2407 2407
diff --git a/src/lib/elementary/efl_ui_flip_part.eo b/src/lib/elementary/efl_ui_flip_part.eo
index 2edd411..7bec0b5 100644
--- a/src/lib/elementary/efl_ui_flip_part.eo
+++ b/src/lib/elementary/efl_ui_flip_part.eo
@@ -1,9 +1,8 @@
1class Efl.Ui.Flip.Part (Efl.Object, Efl.Container) 1class Efl.Ui.Flip.Part (Efl.Ui.Widget.Part, Efl.Container)
2{ 2{
3 [[Efl UI flip internal class]] 3 [[Efl UI flip internal class]]
4 data: Elm_Part_Data; 4 data: null;
5 implements { 5 implements {
6 Efl.Object.destructor;
7 Efl.Container.content { get; set; } 6 Efl.Container.content { get; set; }
8 Efl.Container.content_unset; 7 Efl.Container.content_unset;
9 } 8 }
diff --git a/src/lib/elementary/efl_ui_layout.c b/src/lib/elementary/efl_ui_layout.c
index 9dc63b3..05a6e89 100644
--- a/src/lib/elementary/efl_ui_layout.c
+++ b/src/lib/elementary/efl_ui_layout.c
@@ -2474,13 +2474,11 @@ elm_layout_theme_set(Evas_Object *obj, const char *klass, const char *group, con
2474 2474
2475/* Efl.Part implementation */ 2475/* Efl.Part implementation */
2476 2476
2477static EOLIAN Efl_Object * 2477EOLIAN static Eo *
2478_efl_ui_layout_efl_part_part(const Eo *obj, Efl_Ui_Layout_Data *sd EINA_UNUSED, 2478_efl_ui_layout_efl_part_part(const Eo *obj, Efl_Ui_Layout_Data *sd EINA_UNUSED,
2479 const char *part) 2479 const char *part)
2480{ 2480{
2481 Edje_Part_Type type; 2481 Edje_Part_Type type;
2482 Elm_Part_Data *pd;
2483 Eo *proxy;
2484 2482
2485 EINA_SAFETY_ON_NULL_RETURN_VAL(part, NULL); 2483 EINA_SAFETY_ON_NULL_RETURN_VAL(part, NULL);
2486 ELM_WIDGET_DATA_GET_OR_RETURN((Eo *) obj, wd, NULL); 2484 ELM_WIDGET_DATA_GET_OR_RETURN((Eo *) obj, wd, NULL);
@@ -2491,18 +2489,7 @@ _efl_ui_layout_efl_part_part(const Eo *obj, Efl_Ui_Layout_Data *sd EINA_UNUSED,
2491 if ((type == EDJE_PART_TYPE_BOX) || (type == EDJE_PART_TYPE_TABLE)) 2489 if ((type == EDJE_PART_TYPE_BOX) || (type == EDJE_PART_TYPE_TABLE))
2492 return _efl_ui_layout_pack_proxy_get((Eo *) obj, type, part); 2490 return _efl_ui_layout_pack_proxy_get((Eo *) obj, type, part);
2493 2491
2494 // Generic parts (text, anything, ...) 2492 ELM_PART_OVERRIDE_IMPLEMENT(EFL_UI_LAYOUT);
2495 proxy = efl_add(EFL_UI_LAYOUT_PART_CLASS, (Eo *) obj);
2496 pd = efl_data_scope_get(proxy, EFL_UI_LAYOUT_PART_CLASS);
2497 if (pd)
2498 {
2499 pd->obj = (Eo *) obj;
2500 pd->sd = efl_data_xref(pd->obj, EFL_UI_LAYOUT_CLASS, proxy);
2501 pd->part = strdup(part);
2502 pd->temp = 1;
2503 }
2504
2505 return proxy;
2506} 2493}
2507 2494
2508static const char * 2495static const char *
@@ -2524,47 +2511,58 @@ _efl_ui_layout_default_text_part_get(const Eo *obj, Efl_Ui_Layout_Data *sd EINA_
2524} 2511}
2525 2512
2526EOLIAN static Eina_Bool 2513EOLIAN static Eina_Bool
2527_efl_ui_layout_part_efl_ui_cursor_cursor_set(Eo *obj, Elm_Part_Data *pd, const char *cursor) 2514_efl_ui_layout_part_efl_ui_cursor_cursor_set(Eo *obj, void *_pd EINA_UNUSED, const char *cursor)
2528{ 2515{
2529 ELM_PART_RETURN_VAL(_efl_ui_layout_part_cursor_set(pd->sd, pd->part, cursor)); 2516 Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
2517 Efl_Ui_Layout_Data *sd = efl_data_scope_get(pd->obj, MY_CLASS);
2518 ELM_PART_RETURN_VAL(_efl_ui_layout_part_cursor_set(sd, pd->part, cursor));
2530} 2519}
2531 2520
2532EOLIAN static const char * 2521EOLIAN static const char *
2533_efl_ui_layout_part_efl_ui_cursor_cursor_get(Eo *obj, Elm_Part_Data *pd) 2522_efl_ui_layout_part_efl_ui_cursor_cursor_get(Eo *obj, void *_pd EINA_UNUSED)
2534{ 2523{
2535 ELM_PART_RETURN_VAL(_efl_ui_layout_part_cursor_get(pd->sd, pd->part)); 2524 Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
2525 Efl_Ui_Layout_Data *sd = efl_data_scope_get(pd->obj, MY_CLASS);
2526 ELM_PART_RETURN_VAL(_efl_ui_layout_part_cursor_get(sd, pd->part));
2536} 2527}
2537 2528
2538EOLIAN static Eina_Bool 2529EOLIAN static Eina_Bool
2539_efl_ui_layout_part_efl_ui_cursor_cursor_style_set(Eo *obj, Elm_Part_Data *pd, const char *style) 2530_efl_ui_layout_part_efl_ui_cursor_cursor_style_set(Eo *obj, void *_pd EINA_UNUSED, const char *style)
2540{ 2531{
2541 ELM_PART_RETURN_VAL(_efl_ui_layout_part_cursor_style_set(pd->sd, pd->part, style)); 2532 Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
2533 Efl_Ui_Layout_Data *sd = efl_data_scope_get(pd->obj, MY_CLASS);
2534 ELM_PART_RETURN_VAL(_efl_ui_layout_part_cursor_style_set(sd, pd->part, style));
2542} 2535}
2543 2536
2544EOLIAN static const char * 2537EOLIAN static const char *
2545_efl_ui_layout_part_efl_ui_cursor_cursor_style_get(Eo *obj, Elm_Part_Data *pd) 2538_efl_ui_layout_part_efl_ui_cursor_cursor_style_get(Eo *obj, void *_pd EINA_UNUSED)
2546{ 2539{
2547 ELM_PART_RETURN_VAL(_efl_ui_layout_part_cursor_style_get(pd->sd, pd->part)); 2540 Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
2541 Efl_Ui_Layout_Data *sd = efl_data_scope_get(pd->obj, MY_CLASS);
2542 ELM_PART_RETURN_VAL(_efl_ui_layout_part_cursor_style_get(sd, pd->part));
2548} 2543}
2549 2544
2550EOLIAN static Eina_Bool 2545EOLIAN static Eina_Bool
2551_efl_ui_layout_part_efl_ui_cursor_cursor_theme_search_enabled_set(Eo *obj, Elm_Part_Data *pd, Eina_Bool allow) 2546_efl_ui_layout_part_efl_ui_cursor_cursor_theme_search_enabled_set(Eo *obj, void *_pd EINA_UNUSED, Eina_Bool allow)
2552{ 2547{
2553 ELM_PART_RETURN_VAL(_efl_ui_layout_part_cursor_engine_only_set(pd->sd, pd->part, !allow)); 2548 Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
2549 Efl_Ui_Layout_Data *sd = efl_data_scope_get(pd->obj, MY_CLASS);
2550 ELM_PART_RETURN_VAL(_efl_ui_layout_part_cursor_engine_only_set(sd, pd->part, !allow));
2554} 2551}
2555 2552
2556EOLIAN static Eina_Bool 2553EOLIAN static Eina_Bool
2557_efl_ui_layout_part_efl_ui_cursor_cursor_theme_search_enabled_get(Eo *obj, Elm_Part_Data *pd) 2554_efl_ui_layout_part_efl_ui_cursor_cursor_theme_search_enabled_get(Eo *obj, void *_pd EINA_UNUSED)
2558{ 2555{
2559 ELM_PART_RETURN_VAL(!_efl_ui_layout_part_cursor_engine_only_get(pd->sd, pd->part)); 2556 Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
2557 Efl_Ui_Layout_Data *sd = efl_data_scope_get(pd->obj, MY_CLASS);
2558 ELM_PART_RETURN_VAL(!_efl_ui_layout_part_cursor_engine_only_get(sd, pd->part));
2560} 2559}
2561 2560
2562ELM_PART_IMPLEMENT_DESTRUCTOR(efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data, Elm_Part_Data) 2561ELM_PART_OVERRIDE_CONTENT_SET(efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data)
2563ELM_PART_IMPLEMENT_CONTENT_SET(efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data, Elm_Part_Data) 2562ELM_PART_OVERRIDE_CONTENT_GET(efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data)
2564ELM_PART_IMPLEMENT_CONTENT_GET(efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data, Elm_Part_Data) 2563ELM_PART_OVERRIDE_CONTENT_UNSET(efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data)
2565ELM_PART_IMPLEMENT_CONTENT_UNSET(efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data, Elm_Part_Data) 2564ELM_PART_OVERRIDE_TEXT_SET(efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data)
2566ELM_PART_IMPLEMENT_TEXT_SET(efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data, Elm_Part_Data) 2565ELM_PART_OVERRIDE_TEXT_GET(efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data)
2567ELM_PART_IMPLEMENT_TEXT_GET(efl_ui_layout, EFL_UI_LAYOUT, Efl_Ui_Layout_Data, Elm_Part_Data)
2568#include "efl_ui_layout_part.eo.c" 2566#include "efl_ui_layout_part.eo.c"
2569 2567
2570/* Efl.Part end */ 2568/* Efl.Part end */
diff --git a/src/lib/elementary/efl_ui_layout_pack.c b/src/lib/elementary/efl_ui_layout_pack.c
index b77ebf7..234ae5a 100644
--- a/src/lib/elementary/efl_ui_layout_pack.c
+++ b/src/lib/elementary/efl_ui_layout_pack.c
@@ -210,8 +210,7 @@ _efl_ui_layout_part_box_efl_pack_linear_pack_after(Eo *obj EINA_UNUSED, Efl_Ui_L
210 if (other) 210 if (other)
211 ELM_PART_RETURN_VAL(_efl_ui_layout_box_insert_before(pd->obj, pd->sd, pd->part, subobj, other)); 211 ELM_PART_RETURN_VAL(_efl_ui_layout_box_insert_before(pd->obj, pd->sd, pd->part, subobj, other));
212 212
213 ELM_PART_CALL(efl_pack_end(obj, subobj)); 213 ELM_PART_RETURN_VAL(efl_pack_end(obj, subobj));
214 ELM_PART_RETURN_VAL(EINA_TRUE);
215} 214}
216 215
217EOLIAN static Eina_Bool 216EOLIAN static Eina_Bool
diff --git a/src/lib/elementary/efl_ui_layout_part.eo b/src/lib/elementary/efl_ui_layout_part.eo
index dd075c2..4903679 100644
--- a/src/lib/elementary/efl_ui_layout_part.eo
+++ b/src/lib/elementary/efl_ui_layout_part.eo
@@ -1,9 +1,8 @@
1class Efl.Ui.Layout.Part (Efl.Object, Efl.Container, Efl.Text, Efl.Ui.Cursor) 1class Efl.Ui.Layout.Part (Efl.Ui.Widget.Part, Efl.Container, Efl.Text, Efl.Ui.Cursor)
2{ 2{
3 [[Elementary layout internal part class]] 3 [[Elementary layout internal part class]]
4 data: Elm_Part_Data; 4 data: null;
5 implements { 5 implements {
6 Efl.Object.destructor;
7 Efl.Container.content { get; set; } 6 Efl.Container.content { get; set; }
8 Efl.Container.content_unset; 7 Efl.Container.content_unset;
9 Efl.Text.text { set; get; } 8 Efl.Text.text { set; get; }
diff --git a/src/lib/elementary/efl_ui_panes.c b/src/lib/elementary/efl_ui_panes.c
index d0f955d..1dc0c60 100644
--- a/src/lib/elementary/efl_ui_panes.c
+++ b/src/lib/elementary/efl_ui_panes.c
@@ -531,12 +531,12 @@ _efl_ui_panes_class_constructor(Efl_Class *klass)
531 531
532/* Efl.Part begin */ 532/* Efl.Part begin */
533 533
534ELM_PART_OVERRIDE(efl_ui_panes, EFL_UI_PANES, EFL_UI_LAYOUT, Efl_Ui_Panes_Data, Elm_Part_Data) 534ELM_PART_OVERRIDE(efl_ui_panes, EFL_UI_PANES, Efl_Ui_Panes_Data)
535 535
536EOLIAN static void 536EOLIAN static void
537_efl_ui_panes_part_hint_min_allow_set(Eo *obj, Elm_Part_Data *_pd EINA_UNUSED, Eina_Bool allow) 537_efl_ui_panes_part_hint_min_allow_set(Eo *obj, void *_pd EINA_UNUSED, Eina_Bool allow)
538{ 538{
539 Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_LAYOUT_PART_CLASS); 539 Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
540 Efl_Ui_Panes_Data *sd = efl_data_scope_get(pd->obj, EFL_UI_PANES_CLASS); 540 Efl_Ui_Panes_Data *sd = efl_data_scope_get(pd->obj, EFL_UI_PANES_CLASS);
541 541
542 if (!strcmp(pd->part, "first")) 542 if (!strcmp(pd->part, "first"))
@@ -554,10 +554,10 @@ _efl_ui_panes_part_hint_min_allow_set(Eo *obj, Elm_Part_Data *_pd EINA_UNUSED, E
554} 554}
555 555
556EOLIAN static Eina_Bool 556EOLIAN static Eina_Bool
557_efl_ui_panes_part_hint_min_allow_get(Eo *obj, Elm_Part_Data *_pd EINA_UNUSED) 557_efl_ui_panes_part_hint_min_allow_get(Eo *obj, void *_pd EINA_UNUSED)
558{ 558{
559 Eina_Bool ret = EINA_FALSE; 559 Eina_Bool ret = EINA_FALSE;
560 Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_LAYOUT_PART_CLASS); 560 Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
561 Efl_Ui_Panes_Data *sd = efl_data_scope_get(pd->obj, EFL_UI_PANES_CLASS); 561 Efl_Ui_Panes_Data *sd = efl_data_scope_get(pd->obj, EFL_UI_PANES_CLASS);
562 562
563 if (!strcmp(pd->part, "first")) 563 if (!strcmp(pd->part, "first"))
@@ -573,9 +573,9 @@ _efl_ui_panes_part_hint_min_allow_get(Eo *obj, Elm_Part_Data *_pd EINA_UNUSED)
573} 573}
574 574
575EOLIAN static double 575EOLIAN static double
576_efl_ui_panes_part_split_ratio_min_get(Eo *obj, Elm_Part_Data *_pd EINA_UNUSED) 576_efl_ui_panes_part_split_ratio_min_get(Eo *obj, void *_pd EINA_UNUSED)
577{ 577{
578 Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_LAYOUT_PART_CLASS); 578 Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
579 Efl_Ui_Panes_Data *sd = efl_data_scope_get(pd->obj, EFL_UI_PANES_CLASS); 579 Efl_Ui_Panes_Data *sd = efl_data_scope_get(pd->obj, EFL_UI_PANES_CLASS);
580 double ret = 0.0; 580 double ret = 0.0;
581 581
@@ -588,9 +588,9 @@ _efl_ui_panes_part_split_ratio_min_get(Eo *obj, Elm_Part_Data *_pd EINA_UNUSED)
588} 588}
589 589
590EOLIAN static void 590EOLIAN static void
591_efl_ui_panes_part_split_ratio_min_set(Eo *obj, Elm_Part_Data *_pd EINA_UNUSED, double ratio) 591_efl_ui_panes_part_split_ratio_min_set(Eo *obj, void *_pd EINA_UNUSED, double ratio)
592{ 592{
593 Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_LAYOUT_PART_CLASS); 593 Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
594 Efl_Ui_Panes_Data *sd = efl_data_scope_get(pd->obj, EFL_UI_PANES_CLASS); 594 Efl_Ui_Panes_Data *sd = efl_data_scope_get(pd->obj, EFL_UI_PANES_CLASS);
595 595
596 if (!strcmp(pd->part, "first")) 596 if (!strcmp(pd->part, "first"))
diff --git a/src/lib/elementary/efl_ui_panes_part.eo b/src/lib/elementary/efl_ui_panes_part.eo
index 23cc3d0..9630c68 100644
--- a/src/lib/elementary/efl_ui_panes_part.eo
+++ b/src/lib/elementary/efl_ui_panes_part.eo
@@ -1,7 +1,7 @@
1class Efl.Ui.Panes.Part (Efl.Ui.Layout.Part) 1class Efl.Ui.Panes.Part (Efl.Ui.Layout.Part)
2{ 2{
3 [[Elementary Panes internal part class]] 3 [[Elementary Panes internal part class]]
4 data: Elm_Part_Data; 4 data: null;
5 methods { 5 methods {
6 @property hint_min_allow { 6 @property hint_min_allow {
7 [[Allow user to set size hints to be respected and ignore combined 7 [[Allow user to set size hints to be respected and ignore combined
diff --git a/src/lib/elementary/efl_ui_progressbar.c b/src/lib/elementary/efl_ui_progressbar.c
index 7e02911..af235a4 100644
--- a/src/lib/elementary/efl_ui_progressbar.c
+++ b/src/lib/elementary/efl_ui_progressbar.c
@@ -641,29 +641,29 @@ _efl_ui_progressbar_class_constructor(Efl_Class *klass)
641} 641}
642 642
643/* Efl.Part begin */ 643/* Efl.Part begin */
644ELM_PART_OVERRIDE(efl_ui_progressbar, EFL_UI_PROGRESSBAR, EFL_UI_LAYOUT, Efl_Ui_Progressbar_Data, Elm_Part_Data) 644ELM_PART_OVERRIDE(efl_ui_progressbar, EFL_UI_PROGRESSBAR, Efl_Ui_Progressbar_Data)
645 645
646static EOLIAN Eina_Bool 646static EOLIAN Eina_Bool
647_efl_ui_progressbar_part_efl_container_content_set(Eo *obj, Elm_Part_Data *_pd EINA_UNUSED, Efl_Gfx *content) 647_efl_ui_progressbar_part_efl_container_content_set(Eo *obj, void *_pd EINA_UNUSED, Efl_Gfx *content)
648{ 648{
649 Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_LAYOUT_PART_CLASS); 649 Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
650 Efl_Ui_Progressbar_Data *sd = efl_data_scope_get(pd->obj, EFL_UI_PROGRESSBAR_CLASS); 650 Efl_Ui_Progressbar_Data *sd = efl_data_scope_get(pd->obj, EFL_UI_PROGRESSBAR_CLASS);
651 ELM_PART_RETURN_VAL(_efl_ui_progressbar_content_set(pd->obj, sd, pd->part, content)); 651 ELM_PART_RETURN_VAL(_efl_ui_progressbar_content_set(pd->obj, sd, pd->part, content));
652} 652}
653 653
654EOLIAN static void 654EOLIAN static void
655_efl_ui_progressbar_part_efl_ui_range_range_value_set(Eo *obj, Elm_Part_Data *_pd EINA_UNUSED, double val) 655_efl_ui_progressbar_part_efl_ui_range_range_value_set(Eo *obj, void *_pd EINA_UNUSED, double val)
656{ 656{
657 Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_LAYOUT_PART_CLASS); 657 Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
658 Efl_Ui_Progressbar_Data *sd = efl_data_scope_get(pd->obj, EFL_UI_PROGRESSBAR_CLASS); 658 Efl_Ui_Progressbar_Data *sd = efl_data_scope_get(pd->obj, EFL_UI_PROGRESSBAR_CLASS);
659 659
660 _progressbar_part_value_set(pd->obj, sd, pd->part, val); 660 _progressbar_part_value_set(pd->obj, sd, pd->part, val);
661} 661}
662 662
663EOLIAN static double 663EOLIAN static double
664_efl_ui_progressbar_part_efl_ui_range_range_value_get(Eo *obj, Elm_Part_Data *_pd EINA_UNUSED) 664_efl_ui_progressbar_part_efl_ui_range_range_value_get(Eo *obj, void *_pd EINA_UNUSED)
665{ 665{
666 Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_LAYOUT_PART_CLASS); 666 Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
667 Efl_Ui_Progressbar_Data *sd = efl_data_scope_get(pd->obj, EFL_UI_PROGRESSBAR_CLASS); 667 Efl_Ui_Progressbar_Data *sd = efl_data_scope_get(pd->obj, EFL_UI_PROGRESSBAR_CLASS);
668 668
669 return _progressbar_part_value_get(sd, pd->part); 669 return _progressbar_part_value_get(sd, pd->part);
diff --git a/src/lib/elementary/efl_ui_progressbar_part.eo b/src/lib/elementary/efl_ui_progressbar_part.eo
index 1705154..2263a6a 100644
--- a/src/lib/elementary/efl_ui_progressbar_part.eo
+++ b/src/lib/elementary/efl_ui_progressbar_part.eo
@@ -1,7 +1,7 @@
1class Efl.Ui.Progressbar.Part (Efl.Ui.Layout.Part, Efl.Ui.Range) 1class Efl.Ui.Progressbar.Part (Efl.Ui.Layout.Part, Efl.Ui.Range)
2{ 2{
3 [[Elementary progressbar internal part class]] 3 [[Elementary progressbar internal part class]]
4 data: Elm_Part_Data; 4 data: null;
5 implements { 5 implements {
6 Efl.Container.content { set; } 6 Efl.Container.content { set; }
7 Efl.Ui.Range.range_value { set; get; } 7 Efl.Ui.Range.range_value { set; get; }
diff --git a/src/lib/elementary/efl_ui_slider.c b/src/lib/elementary/efl_ui_slider.c
index 3dd617f..409fbe2 100644
--- a/src/lib/elementary/efl_ui_slider.c
+++ b/src/lib/elementary/efl_ui_slider.c
@@ -1510,7 +1510,7 @@ _efl_ui_slider_elm_interface_atspi_widget_action_elm_actions_get(Eo *obj EINA_UN
1510EFL_TEXT_PART_DEFAULT_IMPLEMENT(efl_ui_slider, Efl_Ui_Slider_Data) 1510EFL_TEXT_PART_DEFAULT_IMPLEMENT(efl_ui_slider, Efl_Ui_Slider_Data)
1511 1511
1512/* Efl.Part begin */ 1512/* Efl.Part begin */
1513ELM_PART_OVERRIDE(efl_ui_slider, EFL_UI_SLIDER, EFL_UI_LAYOUT, Efl_Ui_Slider_Data, Elm_Part_Data) 1513ELM_PART_OVERRIDE(efl_ui_slider, EFL_UI_SLIDER, Efl_Ui_Slider_Data)
1514 1514
1515static Eina_Bool 1515static Eina_Bool
1516_efl_ui_slider_content_set(Eo *obj, Efl_Ui_Slider_Data *_pd EINA_UNUSED, const char *part, Evas_Object *content) 1516_efl_ui_slider_content_set(Eo *obj, Efl_Ui_Slider_Data *_pd EINA_UNUSED, const char *part, Evas_Object *content)
@@ -1524,9 +1524,9 @@ _efl_ui_slider_content_set(Eo *obj, Efl_Ui_Slider_Data *_pd EINA_UNUSED, const c
1524} 1524}
1525 1525
1526static EOLIAN Eina_Bool 1526static EOLIAN Eina_Bool
1527_efl_ui_slider_part_efl_container_content_set(Eo *obj, Elm_Part_Data *_pd EINA_UNUSED, Efl_Gfx *content) 1527_efl_ui_slider_part_efl_container_content_set(Eo *obj, void *_pd EINA_UNUSED, Efl_Gfx *content)
1528{ 1528{
1529 Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_LAYOUT_PART_CLASS); 1529 Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
1530 Efl_Ui_Slider_Data *sd = efl_data_scope_get(pd->obj, EFL_UI_SLIDER_CLASS); 1530 Efl_Ui_Slider_Data *sd = efl_data_scope_get(pd->obj, EFL_UI_SLIDER_CLASS);
1531 ELM_PART_RETURN_VAL(_efl_ui_slider_content_set(pd->obj, sd, pd->part, content)); 1531 ELM_PART_RETURN_VAL(_efl_ui_slider_content_set(pd->obj, sd, pd->part, content));
1532} 1532}
@@ -1565,18 +1565,18 @@ _span_size_set(Eo *obj, Efl_Ui_Slider_Data *sd, int w, int h)
1565} 1565}
1566 1566
1567EOLIAN void 1567EOLIAN void
1568_efl_ui_slider_part_efl_gfx_size_hint_hint_min_set(Eo *obj, Elm_Part_Data *_pd EINA_UNUSED, Eina_Size2D sz) 1568_efl_ui_slider_part_efl_gfx_size_hint_hint_min_set(Eo *obj, void *_pd EINA_UNUSED, Eina_Size2D sz)
1569{ 1569{
1570 Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_LAYOUT_PART_CLASS); 1570 Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
1571 Efl_Ui_Slider_Data *sd = efl_data_scope_get(pd->obj, EFL_UI_SLIDER_CLASS); 1571 Efl_Ui_Slider_Data *sd = efl_data_scope_get(pd->obj, EFL_UI_SLIDER_CLASS);
1572 1572
1573 _span_size_set(pd->obj, sd, sz.w, sz.h); 1573 _span_size_set(pd->obj, sd, sz.w, sz.h);
1574} 1574}
1575 1575
1576EOLIAN Eina_Size2D 1576EOLIAN Eina_Size2D
1577_efl_ui_slider_part_efl_gfx_size_hint_hint_min_get(Eo *obj, Elm_Part_Data *_pd EINA_UNUSED) 1577_efl_ui_slider_part_efl_gfx_size_hint_hint_min_get(Eo *obj, void *_pd EINA_UNUSED)
1578{ 1578{
1579 Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_LAYOUT_PART_CLASS); 1579 Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
1580 Efl_Ui_Slider_Data *sd = efl_data_scope_get(pd->obj, EFL_UI_SLIDER_CLASS); 1580 Efl_Ui_Slider_Data *sd = efl_data_scope_get(pd->obj, EFL_UI_SLIDER_CLASS);
1581 1581
1582 if (_is_horizontal(sd->dir)) 1582 if (_is_horizontal(sd->dir))
diff --git a/src/lib/elementary/efl_ui_slider_part.eo b/src/lib/elementary/efl_ui_slider_part.eo
index 0496ff2..d7b58dd 100644
--- a/src/lib/elementary/efl_ui_slider_part.eo
+++ b/src/lib/elementary/efl_ui_slider_part.eo
@@ -1,7 +1,7 @@
1class Efl.Ui.Slider.Part (Efl.Ui.Layout.Part, Efl.Gfx.Size.Hint) 1class Efl.Ui.Slider.Part (Efl.Ui.Layout.Part, Efl.Gfx.Size.Hint)
2{ 2{
3 [[Elementary slider internal part class]] 3 [[Elementary slider internal part class]]
4 data: Elm_Part_Data; 4 data: null;
5 implements { 5 implements {
6 Efl.Container.content { set; } 6 Efl.Container.content { set; }
7 Efl.Gfx.Size.Hint.hint_min { set; get; } 7 Efl.Gfx.Size.Hint.hint_min { set; get; }
diff --git a/src/lib/elementary/efl_ui_text.c b/src/lib/elementary/efl_ui_text.c
index 353b392..2f1232a 100644
--- a/src/lib/elementary/efl_ui_text.c
+++ b/src/lib/elementary/efl_ui_text.c
@@ -5388,9 +5388,9 @@ _efl_ui_text_move_cb(void *data, Evas *e EINA_UNUSED,
5388#if 0 5388#if 0
5389/* Efl.Part begin */ 5389/* Efl.Part begin */
5390 5390
5391ELM_PART_OVERRIDE(elm_entry, EFL_UI_TEXT, EFL_UI_LAYOUT, Efl_Ui_Text_Data, Elm_Part_Data) 5391ELM_PART_OVERRIDE(elm_entry, EFL_UI_TEXT, Efl_Ui_Text_Data)
5392ELM_PART_OVERRIDE_CONTENT_SET(elm_entry, EFL_UI_TEXT, EFL_UI_LAYOUT, Efl_Ui_Text_Data, Elm_Part_Data) 5392ELM_PART_OVERRIDE_CONTENT_SET(elm_entry, EFL_UI_TEXT, Efl_Ui_Text_Data)
5393ELM_PART_OVERRIDE_CONTENT_UNSET(elm_entry, EFL_UI_TEXT, EFL_UI_LAYOUT, Efl_Ui_Text_Data, Elm_Part_Data) 5393ELM_PART_OVERRIDE_CONTENT_UNSET(elm_entry, EFL_UI_TEXT, Efl_Ui_Text_Data)
5394#include "elm_entry_part.eo.c" 5394#include "elm_entry_part.eo.c"
5395 5395
5396/* Efl.Part end */ 5396/* Efl.Part end */
diff --git a/src/lib/elementary/efl_ui_textpath.c b/src/lib/elementary/efl_ui_textpath.c
index 10ccdf1..22883f2 100644
--- a/src/lib/elementary/efl_ui_textpath.c
+++ b/src/lib/elementary/efl_ui_textpath.c
@@ -654,9 +654,9 @@ _efl_ui_textpath_ellipsis_get(Eo *obj EINA_UNUSED, Efl_Ui_Textpath_Data *pd)
654} 654}
655 655
656/* Efl.Part begin */ 656/* Efl.Part begin */
657ELM_PART_OVERRIDE(efl_ui_textpath, EFL_UI_TEXTPATH, EFL_UI_LAYOUT, Efl_Ui_Textpath_Data, Elm_Part_Data) 657ELM_PART_OVERRIDE(efl_ui_textpath, EFL_UI_TEXTPATH, Efl_Ui_Textpath_Data)
658ELM_PART_OVERRIDE_TEXT_SET(efl_ui_textpath, EFL_UI_TEXTPATH, EFL_UI_LAYOUT, Efl_Ui_Textpath_Data, Elm_Part_Data) 658ELM_PART_OVERRIDE_TEXT_SET(efl_ui_textpath, EFL_UI_TEXTPATH, Efl_Ui_Textpath_Data)
659ELM_PART_OVERRIDE_TEXT_GET(efl_ui_textpath, EFL_UI_TEXTPATH, EFL_UI_LAYOUT, Efl_Ui_Textpath_Data, Elm_Part_Data) 659ELM_PART_OVERRIDE_TEXT_GET(efl_ui_textpath, EFL_UI_TEXTPATH, Efl_Ui_Textpath_Data)
660#include "efl_ui_textpath_part.eo.c" 660#include "efl_ui_textpath_part.eo.c"
661/* Efl.Part end */ 661/* Efl.Part end */
662 662
diff --git a/src/lib/elementary/efl_ui_widget_part.eo b/src/lib/elementary/efl_ui_widget_part.eo
new file mode 100644
index 0000000..e848686
--- /dev/null
+++ b/src/lib/elementary/efl_ui_widget_part.eo
@@ -0,0 +1,9 @@
1class Efl.Ui.Widget.Part (Efl.Object)
2{
3 data: Elm_Part_Data;
4 methods {
5 }
6 implements {
7 Efl.Object.destructor;
8 }
9}
diff --git a/src/lib/elementary/efl_ui_win.c b/src/lib/elementary/efl_ui_win.c
index d7dab7c..3d6abd8 100644
--- a/src/lib/elementary/efl_ui_win.c
+++ b/src/lib/elementary/efl_ui_win.c
@@ -6994,60 +6994,71 @@ _efl_ui_win_part_file_get(Eo *obj, Efl_Ui_Win_Data *sd, const char *part, const
6994 return EINA_FALSE; 6994 return EINA_FALSE;
6995} 6995}
6996 6996
6997/* Efl.Part begin */ 6997/* Default content */
6998 6998
6999static void 6999EOLIAN static Eina_Bool
7000_efl_ui_win_part_efl_gfx_color_set(Eo *obj, Elm_Part_Data *pd, int r, int g, int b, int a) 7000_efl_ui_win_efl_container_content_set(Eo *obj, Efl_Ui_Win_Data *sd, Evas_Object *content)
7001{ 7001{
7002 if (EVAS_COLOR_SANITIZE(r, g, b, a)) 7002 return _efl_ui_win_content_set(obj, sd, "content", content);
7003 ERR("Evas only handles premultiplied colors (0 <= R,G,B <= A <= 255)");
7004
7005 _efl_ui_win_part_color_set(pd->obj, pd->sd, pd->part, r, g, b, a);
7006 ELM_PART_RETURN_VOID;
7007} 7003}
7008 7004
7009static void 7005EOLIAN static Evas_Object*
7010_efl_ui_win_part_efl_gfx_color_get(Eo *obj, Elm_Part_Data *pd, int *r, int *g, int *b, int *a) 7006_efl_ui_win_efl_container_content_get(Eo *obj EINA_UNUSED, Efl_Ui_Win_Data *sd)
7011{ 7007{
7012 _efl_ui_win_part_color_get(pd->obj, pd->sd, pd->part, r, g, b, a); 7008 return _efl_ui_win_content_get(obj, sd, "content");
7013 ELM_PART_RETURN_VOID;
7014} 7009}
7015 7010
7016static Eina_Bool 7011EOLIAN static Evas_Object*
7017_efl_ui_win_part_efl_file_file_set(Eo *obj, Elm_Part_Data *pd, const char *file, const char *key) 7012_efl_ui_win_efl_container_content_unset(Eo *obj, Efl_Ui_Win_Data *sd)
7018{ 7013{
7019 ELM_PART_RETURN_VAL(_efl_ui_win_part_file_set(pd->obj, pd->sd, pd->part, file, key)); 7014 return _efl_ui_win_content_unset(obj, sd, "content");
7020} 7015}
7021 7016
7017/* Efl.Part begin */
7018
7022static void 7019static void
7023_efl_ui_win_part_efl_file_file_get(Eo *obj, Elm_Part_Data *pd, const char **file, const char **key) 7020_efl_ui_win_part_efl_gfx_color_set(Eo *obj, void *_pd EINA_UNUSED, int r, int g, int b, int a)
7024{ 7021{
7025 _efl_ui_win_part_file_get(pd->obj, pd->sd, pd->part, file, key); 7022 Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
7023 Efl_Ui_Win_Data *sd = efl_data_scope_get(pd->obj, MY_CLASS);
7024
7025 if (EVAS_COLOR_SANITIZE(r, g, b, a))
7026 ERR("Evas only handles premultiplied colors (0 <= R,G,B <= A <= 255)");
7027
7028 _efl_ui_win_part_color_set(pd->obj, sd, pd->part, r, g, b, a);
7026 ELM_PART_RETURN_VOID; 7029 ELM_PART_RETURN_VOID;
7027} 7030}
7028 7031
7029EOLIAN static Eina_Bool 7032static void
7030_efl_ui_win_efl_container_content_set(Eo *obj, Efl_Ui_Win_Data *sd, Evas_Object *content) 7033_efl_ui_win_part_efl_gfx_color_get(Eo *obj, void *_pd EINA_UNUSED, int *r, int *g, int *b, int *a)
7031{ 7034{
7032 return _efl_ui_win_content_set(obj, sd, "content", content); 7035 Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
7036 Efl_Ui_Win_Data *sd = efl_data_scope_get(pd->obj, MY_CLASS);
7037 _efl_ui_win_part_color_get(pd->obj, sd, pd->part, r, g, b, a);
7038 ELM_PART_RETURN_VOID;
7033} 7039}
7034 7040
7035EOLIAN static Evas_Object* 7041static Eina_Bool
7036_efl_ui_win_efl_container_content_get(Eo *obj EINA_UNUSED, Efl_Ui_Win_Data *sd) 7042_efl_ui_win_part_efl_file_file_set(Eo *obj, void *_pd EINA_UNUSED, const char *file, const char *key)
7037{ 7043{
7038 return _efl_ui_win_content_get(obj, sd, "content"); 7044 Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
7045 Efl_Ui_Win_Data *sd = efl_data_scope_get(pd->obj, MY_CLASS);
7046 ELM_PART_RETURN_VAL(_efl_ui_win_part_file_set(pd->obj, sd, pd->part, file, key));
7039} 7047}
7040 7048
7041EOLIAN static Evas_Object* 7049static void
7042_efl_ui_win_efl_container_content_unset(Eo *obj, Efl_Ui_Win_Data *sd) 7050_efl_ui_win_part_efl_file_file_get(Eo *obj, void *_pd EINA_UNUSED, const char **file, const char **key)
7043{ 7051{
7044 return _efl_ui_win_content_unset(obj, sd, "content"); 7052 Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
7053 Efl_Ui_Win_Data *sd = efl_data_scope_get(pd->obj, MY_CLASS);
7054 _efl_ui_win_part_file_get(pd->obj, sd, pd->part, file, key);
7055 ELM_PART_RETURN_VOID;
7045} 7056}
7046 7057
7047ELM_PART_IMPLEMENT(efl_ui_win, EFL_UI_WIN, Efl_Ui_Win_Data, Elm_Part_Data) 7058ELM_PART_OVERRIDE(efl_ui_win, EFL_UI_WIN, Efl_Ui_Win_Data)
7048ELM_PART_IMPLEMENT_CONTENT_SET(efl_ui_win, EFL_UI_WIN, Efl_Ui_Win_Data, Elm_Part_Data) 7059ELM_PART_OVERRIDE_CONTENT_SET(efl_ui_win, EFL_UI_WIN, Efl_Ui_Win_Data)
7049ELM_PART_IMPLEMENT_CONTENT_GET(efl_ui_win, EFL_UI_WIN, Efl_Ui_Win_Data, Elm_Part_Data) 7060ELM_PART_OVERRIDE_CONTENT_GET(efl_ui_win, EFL_UI_WIN, Efl_Ui_Win_Data)
7050ELM_PART_IMPLEMENT_CONTENT_UNSET(efl_ui_win, EFL_UI_WIN, Efl_Ui_Win_Data, Elm_Part_Data) 7061ELM_PART_OVERRIDE_CONTENT_UNSET(efl_ui_win, EFL_UI_WIN, Efl_Ui_Win_Data)
7051ELM_PART_CONTENT_DEFAULT_SET(efl_ui_win, "content") 7062ELM_PART_CONTENT_DEFAULT_SET(efl_ui_win, "content")
7052#include "efl_ui_win_part.eo.c" 7063#include "efl_ui_win_part.eo.c"
7053 7064
diff --git a/src/lib/elementary/efl_ui_win_part.eo b/src/lib/elementary/efl_ui_win_part.eo
index e5d4b4d..0086690 100644
--- a/src/lib/elementary/efl_ui_win_part.eo
+++ b/src/lib/elementary/efl_ui_win_part.eo
@@ -1,9 +1,8 @@
1class Efl.Ui.Win.Part (Efl.Object, Efl.Container, Efl.Gfx, Efl.File) 1class Efl.Ui.Win.Part (Efl.Ui.Widget.Part, Efl.Container, Efl.Gfx, Efl.File)
2{ 2{
3 [[Efl UI window interal part class]] 3 [[Efl UI window interal part class]]
4 data: Elm_Part_Data; 4 data: null;
5 implements { 5 implements {
6 Efl.Object.destructor;
7 Efl.Container.content { get; set; } 6 Efl.Container.content { get; set; }
8 Efl.Container.content_unset; 7 Efl.Container.content_unset;
9 Efl.Gfx.color { get; set; } 8 Efl.Gfx.color { get; set; }
diff --git a/src/lib/elementary/elc_ctxpopup.c b/src/lib/elementary/elc_ctxpopup.c
index 553d526..709b057 100644
--- a/src/lib/elementary/elc_ctxpopup.c
+++ b/src/lib/elementary/elc_ctxpopup.c
@@ -1636,10 +1636,10 @@ ELM_WIDGET_KEY_DOWN_DEFAULT_IMPLEMENT(elm_ctxpopup, Elm_Ctxpopup_Data)
1636 1636
1637/* Efl.Part begin */ 1637/* Efl.Part begin */
1638 1638
1639ELM_PART_OVERRIDE(elm_ctxpopup, ELM_CTXPOPUP, EFL_UI_LAYOUT, Elm_Ctxpopup_Data, Elm_Part_Data) 1639ELM_PART_OVERRIDE(elm_ctxpopup, ELM_CTXPOPUP, Elm_Ctxpopup_Data)
1640ELM_PART_OVERRIDE_CONTENT_SET(elm_ctxpopup, ELM_CTXPOPUP, EFL_UI_LAYOUT, Elm_Ctxpopup_Data, Elm_Part_Data) 1640ELM_PART_OVERRIDE_CONTENT_SET(elm_ctxpopup, ELM_CTXPOPUP, Elm_Ctxpopup_Data)
1641ELM_PART_OVERRIDE_CONTENT_GET(elm_ctxpopup, ELM_CTXPOPUP, EFL_UI_LAYOUT, Elm_Ctxpopup_Data, Elm_Part_Data) 1641ELM_PART_OVERRIDE_CONTENT_GET(elm_ctxpopup, ELM_CTXPOPUP, Elm_Ctxpopup_Data)
1642ELM_PART_OVERRIDE_CONTENT_UNSET(elm_ctxpopup, ELM_CTXPOPUP, EFL_UI_LAYOUT, Elm_Ctxpopup_Data, Elm_Part_Data) 1642ELM_PART_OVERRIDE_CONTENT_UNSET(elm_ctxpopup, ELM_CTXPOPUP, Elm_Ctxpopup_Data)
1643ELM_PART_CONTENT_DEFAULT_SET(elm_ctxpopup, "default") 1643ELM_PART_CONTENT_DEFAULT_SET(elm_ctxpopup, "default")
1644#include "elm_ctxpopup_part.eo.c" 1644#include "elm_ctxpopup_part.eo.c"
1645 1645
diff --git a/src/lib/elementary/elc_fileselector.c b/src/lib/elementary/elc_fileselector.c
index 900da0a..4b4dda5 100644
--- a/src/lib/elementary/elc_fileselector.c
+++ b/src/lib/elementary/elc_fileselector.c
@@ -3223,8 +3223,8 @@ ELM_WIDGET_KEY_DOWN_DEFAULT_IMPLEMENT(elm_fileselector, Elm_Fileselector_Data)
3223 3223
3224/* Efl.Part begin */ 3224/* Efl.Part begin */
3225 3225
3226ELM_PART_OVERRIDE(elm_fileselector, ELM_FILESELECTOR, EFL_UI_LAYOUT, Elm_Fileselector_Data, Elm_Part_Data) 3226ELM_PART_OVERRIDE(elm_fileselector, ELM_FILESELECTOR, Elm_Fileselector_Data)
3227ELM_PART_OVERRIDE_TEXT_SET(elm_fileselector, ELM_FILESELECTOR, EFL_UI_LAYOUT, Elm_Fileselector_Data, Elm_Part_Data) 3227ELM_PART_OVERRIDE_TEXT_SET(elm_fileselector, ELM_FILESELECTOR, Elm_Fileselector_Data)
3228#include "elm_fileselector_part.eo.c" 3228#include "elm_fileselector_part.eo.c"
3229 3229
3230/* Efl.Part end */ 3230/* Efl.Part end */
diff --git a/src/lib/elementary/elc_fileselector_entry.c b/src/lib/elementary/elc_fileselector_entry.c
index 906e5f6..886767e 100644
--- a/src/lib/elementary/elc_fileselector_entry.c
+++ b/src/lib/elementary/elc_fileselector_entry.c
@@ -670,12 +670,12 @@ _elm_fileselector_entry_class_constructor(Efl_Class *klass)
670 670
671/* Efl.Part begin */ 671/* Efl.Part begin */
672 672
673ELM_PART_OVERRIDE(elm_fileselector_entry, ELM_FILESELECTOR_ENTRY, EFL_UI_LAYOUT, Elm_Fileselector_Entry_Data, Elm_Part_Data) 673ELM_PART_OVERRIDE(elm_fileselector_entry, ELM_FILESELECTOR_ENTRY, Elm_Fileselector_Entry_Data)
674ELM_PART_OVERRIDE_CONTENT_SET(elm_fileselector_entry, ELM_FILESELECTOR_ENTRY, EFL_UI_LAYOUT, Elm_Fileselector_Entry_Data, Elm_Part_Data) 674ELM_PART_OVERRIDE_CONTENT_SET(elm_fileselector_entry, ELM_FILESELECTOR_ENTRY, Elm_Fileselector_Entry_Data)
675ELM_PART_OVERRIDE_CONTENT_GET(elm_fileselector_entry, ELM_FILESELECTOR_ENTRY, EFL_UI_LAYOUT, Elm_Fileselector_Entry_Data, Elm_Part_Data) 675ELM_PART_OVERRIDE_CONTENT_GET(elm_fileselector_entry, ELM_FILESELECTOR_ENTRY, Elm_Fileselector_Entry_Data)
676ELM_PART_OVERRIDE_CONTENT_UNSET(elm_fileselector_entry, ELM_FILESELECTOR_ENTRY, EFL_UI_LAYOUT, Elm_Fileselector_Entry_Data, Elm_Part_Data) 676ELM_PART_OVERRIDE_CONTENT_UNSET(elm_fileselector_entry, ELM_FILESELECTOR_ENTRY, Elm_Fileselector_Entry_Data)
677ELM_PART_OVERRIDE_TEXT_SET(elm_fileselector_entry, ELM_FILESELECTOR_ENTRY, EFL_UI_LAYOUT, Elm_Fileselector_Entry_Data, Elm_Part_Data) 677ELM_PART_OVERRIDE_TEXT_SET(elm_fileselector_entry, ELM_FILESELECTOR_ENTRY, Elm_Fileselector_Entry_Data)
678ELM_PART_OVERRIDE_TEXT_GET(elm_fileselector_entry, ELM_FILESELECTOR_ENTRY, EFL_UI_LAYOUT, Elm_Fileselector_Entry_Data, Elm_Part_Data) 678ELM_PART_OVERRIDE_TEXT_GET(elm_fileselector_entry, ELM_FILESELECTOR_ENTRY, Elm_Fileselector_Entry_Data)
679ELM_PART_CONTENT_DEFAULT_SET(elm_fileselector_entry, "button icon") 679ELM_PART_CONTENT_DEFAULT_SET(elm_fileselector_entry, "button icon")
680#include "elm_fileselector_entry_part.eo.c" 680#include "elm_fileselector_entry_part.eo.c"
681 681
diff --git a/src/lib/elementary/elc_multibuttonentry.c b/src/lib/elementary/elc_multibuttonentry.c
index 6e9cb56..1da8df6 100644
--- a/src/lib/elementary/elc_multibuttonentry.c
+++ b/src/lib/elementary/elc_multibuttonentry.c
@@ -2137,9 +2137,9 @@ _elm_multibuttonentry_item_elm_interface_atspi_widget_action_elm_actions_get(Eo
2137 2137
2138/* Efl.Part begin */ 2138/* Efl.Part begin */
2139 2139
2140ELM_PART_OVERRIDE(elm_multibuttonentry, ELM_MULTIBUTTONENTRY, EFL_UI_LAYOUT, Elm_Multibuttonentry_Data, Elm_Part_Data) 2140ELM_PART_OVERRIDE(elm_multibuttonentry, ELM_MULTIBUTTONENTRY, Elm_Multibuttonentry_Data)
2141ELM_PART_OVERRIDE_TEXT_SET(elm_multibuttonentry, ELM_MULTIBUTTONENTRY, EFL_UI_LAYOUT, Elm_Multibuttonentry_Data, Elm_Part_Data) 2141ELM_PART_OVERRIDE_TEXT_SET(elm_multibuttonentry, ELM_MULTIBUTTONENTRY, Elm_Multibuttonentry_Data)
2142ELM_PART_OVERRIDE_TEXT_GET(elm_multibuttonentry, ELM_MULTIBUTTONENTRY, EFL_UI_LAYOUT, Elm_Multibuttonentry_Data, Elm_Part_Data) 2142ELM_PART_OVERRIDE_TEXT_GET(elm_multibuttonentry, ELM_MULTIBUTTONENTRY, Elm_Multibuttonentry_Data)
2143#include "elm_multibuttonentry_part.eo.c" 2143#include "elm_multibuttonentry_part.eo.c"
2144 2144
2145/* Efl.Part end */ 2145/* Efl.Part end */
diff --git a/src/lib/elementary/elc_naviframe.c b/src/lib/elementary/elc_naviframe.c
index c379c5a..e9a39e4 100644
--- a/src/lib/elementary/elc_naviframe.c
+++ b/src/lib/elementary/elc_naviframe.c
@@ -2099,12 +2099,12 @@ ELM_WIDGET_KEY_DOWN_DEFAULT_IMPLEMENT(elm_naviframe, Elm_Naviframe_Data)
2099 2099
2100/* Efl.Part begin */ 2100/* Efl.Part begin */
2101 2101
2102ELM_PART_OVERRIDE(elm_naviframe, ELM_NAVIFRAME, EFL_UI_LAYOUT, Elm_Naviframe_Data, Elm_Part_Data) 2102ELM_PART_OVERRIDE(elm_naviframe, ELM_NAVIFRAME, Elm_Naviframe_Data)
2103ELM_PART_OVERRIDE_CONTENT_SET(elm_naviframe, ELM_NAVIFRAME, EFL_UI_LAYOUT, Elm_Naviframe_Data, Elm_Part_Data) 2103ELM_PART_OVERRIDE_CONTENT_SET(elm_naviframe, ELM_NAVIFRAME, Elm_Naviframe_Data)
2104ELM_PART_OVERRIDE_CONTENT_GET(elm_naviframe, ELM_NAVIFRAME, EFL_UI_LAYOUT, Elm_Naviframe_Data, Elm_Part_Data) 2104ELM_PART_OVERRIDE_CONTENT_GET(elm_naviframe, ELM_NAVIFRAME, Elm_Naviframe_Data)
2105ELM_PART_OVERRIDE_CONTENT_UNSET(elm_naviframe, ELM_NAVIFRAME, EFL_UI_LAYOUT, Elm_Naviframe_Data, Elm_Part_Data) 2105ELM_PART_OVERRIDE_CONTENT_UNSET(elm_naviframe, ELM_NAVIFRAME, Elm_Naviframe_Data)
2106ELM_PART_OVERRIDE_TEXT_SET(elm_naviframe, ELM_NAVIFRAME, EFL_UI_LAYOUT, Elm_Naviframe_Data, Elm_Part_Data) 2106ELM_PART_OVERRIDE_TEXT_SET(elm_naviframe, ELM_NAVIFRAME, Elm_Naviframe_Data)
2107ELM_PART_OVERRIDE_TEXT_GET(elm_naviframe, ELM_NAVIFRAME, EFL_UI_LAYOUT, Elm_Naviframe_Data, Elm_Part_Data) 2107ELM_PART_OVERRIDE_TEXT_GET(elm_naviframe, ELM_NAVIFRAME, Elm_Naviframe_Data)
2108#include "elm_naviframe_part.eo.c" 2108#include "elm_naviframe_part.eo.c"
2109 2109
2110/* Efl.Part end */ 2110/* Efl.Part end */
diff --git a/src/lib/elementary/elc_player.c b/src/lib/elementary/elc_player.c
index 04613a7..ac6d35e 100644
--- a/src/lib/elementary/elc_player.c
+++ b/src/lib/elementary/elc_player.c
@@ -696,8 +696,8 @@ ELM_WIDGET_KEY_DOWN_DEFAULT_IMPLEMENT(elm_player, Elm_Player_Data)
696 696
697/* Efl.Part implementation */ 697/* Efl.Part implementation */
698 698
699ELM_PART_OVERRIDE(elm_player, ELM_PLAYER, EFL_UI_LAYOUT, Elm_Player_Data, Elm_Part_Data) 699ELM_PART_OVERRIDE(elm_player, ELM_PLAYER, Elm_Player_Data)
700ELM_PART_OVERRIDE_CONTENT_SET(elm_player, ELM_PLAYER, EFL_UI_LAYOUT, Elm_Player_Data, Elm_Part_Data) 700ELM_PART_OVERRIDE_CONTENT_SET(elm_player, ELM_PLAYER, Elm_Player_Data)
701ELM_PART_CONTENT_DEFAULT_SET(elm_player, "video") 701ELM_PART_CONTENT_DEFAULT_SET(elm_player, "video")
702#include "elm_player_part.eo.c" 702#include "elm_player_part.eo.c"
703 703
diff --git a/src/lib/elementary/elc_popup.c b/src/lib/elementary/elc_popup.c
index b0478f9..f7d6f9d 100644
--- a/src/lib/elementary/elc_popup.c
+++ b/src/lib/elementary/elc_popup.c
@@ -1917,12 +1917,12 @@ ELM_WIDGET_KEY_DOWN_DEFAULT_IMPLEMENT(elm_popup, Elm_Popup_Data)
1917 1917
1918/* Efl.Part begin */ 1918/* Efl.Part begin */
1919 1919
1920ELM_PART_OVERRIDE(elm_popup, ELM_POPUP, EFL_UI_LAYOUT, Elm_Popup_Data, Elm_Part_Data) 1920ELM_PART_OVERRIDE(elm_popup, ELM_POPUP, Elm_Popup_Data)
1921ELM_PART_OVERRIDE_CONTENT_SET(elm_popup, ELM_POPUP, EFL_UI_LAYOUT, Elm_Popup_Data, Elm_Part_Data) 1921ELM_PART_OVERRIDE_CONTENT_SET(elm_popup, ELM_POPUP, Elm_Popup_Data)
1922ELM_PART_OVERRIDE_CONTENT_GET(elm_popup, ELM_POPUP, EFL_UI_LAYOUT, Elm_Popup_Data, Elm_Part_Data) 1922ELM_PART_OVERRIDE_CONTENT_GET(elm_popup, ELM_POPUP, Elm_Popup_Data)
1923ELM_PART_OVERRIDE_CONTENT_UNSET(elm_popup, ELM_POPUP, EFL_UI_LAYOUT, Elm_Popup_Data, Elm_Part_Data) 1923ELM_PART_OVERRIDE_CONTENT_UNSET(elm_popup, ELM_POPUP, Elm_Popup_Data)
1924ELM_PART_OVERRIDE_TEXT_SET(elm_popup, ELM_POPUP, EFL_UI_LAYOUT, Elm_Popup_Data, Elm_Part_Data) 1924ELM_PART_OVERRIDE_TEXT_SET(elm_popup, ELM_POPUP, Elm_Popup_Data)
1925ELM_PART_OVERRIDE_TEXT_GET(elm_popup, ELM_POPUP, EFL_UI_LAYOUT, Elm_Popup_Data, Elm_Part_Data) 1925ELM_PART_OVERRIDE_TEXT_GET(elm_popup, ELM_POPUP, Elm_Popup_Data)
1926ELM_PART_CONTENT_DEFAULT_SET(elm_popup, "default") 1926ELM_PART_CONTENT_DEFAULT_SET(elm_popup, "default")
1927#include "elm_popup_part.eo.c" 1927#include "elm_popup_part.eo.c"
1928 1928
diff --git a/src/lib/elementary/elm_actionslider.c b/src/lib/elementary/elm_actionslider.c
index 414bf2e..f7e94e0 100644
--- a/src/lib/elementary/elm_actionslider.c
+++ b/src/lib/elementary/elm_actionslider.c
@@ -659,9 +659,9 @@ _elm_actionslider_class_constructor(Efl_Class *klass)
659} 659}
660 660
661/* Efl.Part begin */ 661/* Efl.Part begin */
662ELM_PART_OVERRIDE(elm_actionslider, ELM_ACTIONSLIDER, EFL_UI_LAYOUT, Elm_Actionslider_Data, Elm_Part_Data) 662ELM_PART_OVERRIDE(elm_actionslider, ELM_ACTIONSLIDER, Elm_Actionslider_Data)
663ELM_PART_OVERRIDE_TEXT_SET(elm_actionslider, ELM_ACTIONSLIDER, EFL_UI_LAYOUT, Elm_Actionslider_Data, Elm_Part_Data) 663ELM_PART_OVERRIDE_TEXT_SET(elm_actionslider, ELM_ACTIONSLIDER, Elm_Actionslider_Data)
664ELM_PART_OVERRIDE_TEXT_GET(elm_actionslider, ELM_ACTIONSLIDER, EFL_UI_LAYOUT, Elm_Actionslider_Data, Elm_Part_Data) 664ELM_PART_OVERRIDE_TEXT_GET(elm_actionslider, ELM_ACTIONSLIDER, Elm_Actionslider_Data)
665 665
666#include "elm_actionslider_part.eo.c" 666#include "elm_actionslider_part.eo.c"
667/* Efl.Part end */ 667/* Efl.Part end */
diff --git a/src/lib/elementary/elm_bubble.c b/src/lib/elementary/elm_bubble.c
index 84eb857..a39aa3d 100644
--- a/src/lib/elementary/elm_bubble.c
+++ b/src/lib/elementary/elm_bubble.c
@@ -281,8 +281,8 @@ _elm_bubble_class_constructor(Efl_Class *klass)
281} 281}
282 282
283/* Efl.Part begin */ 283/* Efl.Part begin */
284ELM_PART_OVERRIDE(elm_bubble, ELM_BUBBLE, EFL_UI_LAYOUT, Elm_Bubble_Data, Elm_Part_Data) 284ELM_PART_OVERRIDE(elm_bubble, ELM_BUBBLE, Elm_Bubble_Data)
285ELM_PART_OVERRIDE_TEXT_SET(elm_bubble, ELM_BUBBLE, EFL_UI_LAYOUT, Elm_Bubble_Data, Elm_Part_Data) 285ELM_PART_OVERRIDE_TEXT_SET(elm_bubble, ELM_BUBBLE, Elm_Bubble_Data)
286 286
287#include "elm_bubble_part.eo.c" 287#include "elm_bubble_part.eo.c"
288/* Efl.Part end */ 288/* Efl.Part end */
diff --git a/src/lib/elementary/elm_dayselector.c b/src/lib/elementary/elm_dayselector.c
index e48bbb0..3f20da3 100644
--- a/src/lib/elementary/elm_dayselector.c
+++ b/src/lib/elementary/elm_dayselector.c
@@ -607,9 +607,9 @@ _elm_dayselector_class_constructor(Efl_Class *klass)
607 607
608/* Efl.Part begin */ 608/* Efl.Part begin */
609 609
610ELM_PART_OVERRIDE(elm_dayselector, ELM_DAYSELECTOR, EFL_UI_LAYOUT, Elm_Dayselector_Data, Elm_Part_Data) 610ELM_PART_OVERRIDE(elm_dayselector, ELM_DAYSELECTOR, Elm_Dayselector_Data)
611ELM_PART_OVERRIDE_CONTENT_SET(elm_dayselector, ELM_DAYSELECTOR, EFL_UI_LAYOUT, Elm_Dayselector_Data, Elm_Part_Data) 611ELM_PART_OVERRIDE_CONTENT_SET(elm_dayselector, ELM_DAYSELECTOR, Elm_Dayselector_Data)
612ELM_PART_OVERRIDE_CONTENT_UNSET(elm_dayselector, ELM_DAYSELECTOR, EFL_UI_LAYOUT, Elm_Dayselector_Data, Elm_Part_Data) 612ELM_PART_OVERRIDE_CONTENT_UNSET(elm_dayselector, ELM_DAYSELECTOR, Elm_Dayselector_Data)
613#include "elm_dayselector_part.eo.c" 613#include "elm_dayselector_part.eo.c"
614 614
615/* Efl.Part end */ 615/* Efl.Part end */
diff --git a/src/lib/elementary/elm_entry.c b/src/lib/elementary/elm_entry.c
index a1a6896..0dbe98b 100644
--- a/src/lib/elementary/elm_entry.c
+++ b/src/lib/elementary/elm_entry.c
@@ -6049,11 +6049,11 @@ _elm_entry_elm_interface_atspi_accessible_name_get(Eo *obj, Elm_Entry_Data *sd)
6049 6049
6050/* Efl.Part begin */ 6050/* Efl.Part begin */
6051 6051
6052ELM_PART_OVERRIDE(elm_entry, ELM_ENTRY, EFL_UI_LAYOUT, Elm_Entry_Data, Elm_Part_Data) 6052ELM_PART_OVERRIDE(elm_entry, ELM_ENTRY, Elm_Entry_Data)
6053ELM_PART_OVERRIDE_CONTENT_SET(elm_entry, ELM_ENTRY, EFL_UI_LAYOUT, Elm_Entry_Data, Elm_Part_Data) 6053ELM_PART_OVERRIDE_CONTENT_SET(elm_entry, ELM_ENTRY, Elm_Entry_Data)
6054ELM_PART_OVERRIDE_CONTENT_UNSET(elm_entry, ELM_ENTRY, EFL_UI_LAYOUT, Elm_Entry_Data, Elm_Part_Data) 6054ELM_PART_OVERRIDE_CONTENT_UNSET(elm_entry, ELM_ENTRY, Elm_Entry_Data)
6055ELM_PART_OVERRIDE_TEXT_SET(elm_entry, ELM_ENTRY, EFL_UI_LAYOUT, Elm_Entry_Data, Elm_Part_Data) 6055ELM_PART_OVERRIDE_TEXT_SET(elm_entry, ELM_ENTRY, Elm_Entry_Data)
6056ELM_PART_OVERRIDE_TEXT_GET(elm_entry, ELM_ENTRY, EFL_UI_LAYOUT, Elm_Entry_Data, Elm_Part_Data) 6056ELM_PART_OVERRIDE_TEXT_GET(elm_entry, ELM_ENTRY, Elm_Entry_Data)
6057ELM_PART_CONTENT_DEFAULT_SET(elm_entry, "icon") 6057ELM_PART_CONTENT_DEFAULT_SET(elm_entry, "icon")
6058#include "elm_entry_part.eo.c" 6058#include "elm_entry_part.eo.c"
6059 6059
diff --git a/src/lib/elementary/elm_flip_part.eo b/src/lib/elementary/elm_flip_part.eo
index 037f59c..9e5c1e8 100644
--- a/src/lib/elementary/elm_flip_part.eo
+++ b/src/lib/elementary/elm_flip_part.eo
@@ -1,7 +1,7 @@
1class Elm.Flip.Part (Efl.Object, Efl.Container) 1class Elm.Flip.Part (Efl.Object, Efl.Container)
2{ 2{
3 [[Elementary flip internal part class]] 3 [[Elementary flip internal part class]]
4 data: Elm_Part_Data; 4 data: null;
5 implements { 5 implements {
6 Efl.Object.destructor; 6 Efl.Object.destructor;
7 Efl.Container.content { get; set; } 7 Efl.Container.content { get; set; }
diff --git a/src/lib/elementary/elm_hover.c b/src/lib/elementary/elm_hover.c
index ab516e4..0e8f858 100644
--- a/src/lib/elementary/elm_hover.c
+++ b/src/lib/elementary/elm_hover.c
@@ -892,10 +892,10 @@ _elm_hover_elm_interface_atspi_widget_action_elm_actions_get(Eo *obj EINA_UNUSED
892 892
893/* Efl.Part begin */ 893/* Efl.Part begin */
894 894
895ELM_PART_OVERRIDE(elm_hover, ELM_HOVER, EFL_UI_LAYOUT, Elm_Hover_Data, Elm_Part_Data) 895ELM_PART_OVERRIDE(elm_hover, ELM_HOVER, Elm_Hover_Data)
896ELM_PART_OVERRIDE_CONTENT_SET(elm_hover, ELM_HOVER, EFL_UI_LAYOUT, Elm_Hover_Data, Elm_Part_Data) 896ELM_PART_OVERRIDE_CONTENT_SET(elm_hover, ELM_HOVER, Elm_Hover_Data)
897ELM_PART_OVERRIDE_CONTENT_GET(elm_hover, ELM_HOVER, EFL_UI_LAYOUT, Elm_Hover_Data, Elm_Part_Data) 897ELM_PART_OVERRIDE_CONTENT_GET(elm_hover, ELM_HOVER, Elm_Hover_Data)
898ELM_PART_OVERRIDE_CONTENT_UNSET(elm_hover, ELM_HOVER, EFL_UI_LAYOUT, Elm_Hover_Data, Elm_Part_Data) 898ELM_PART_OVERRIDE_CONTENT_UNSET(elm_hover, ELM_HOVER, Elm_Hover_Data)
899#include "elm_hover_part.eo.c" 899#include "elm_hover_part.eo.c"
900 900
901/* Efl.Part end */ 901/* Efl.Part end */
diff --git a/src/lib/elementary/elm_label.c b/src/lib/elementary/elm_label.c
index 8c619e3..891e1d2 100644
--- a/src/lib/elementary/elm_label.c
+++ b/src/lib/elementary/elm_label.c
@@ -634,8 +634,8 @@ _elm_label_class_constructor(Efl_Class *klass)
634} 634}
635 635
636/* Efl.Part begin */ 636/* Efl.Part begin */
637ELM_PART_OVERRIDE(elm_label, ELM_LABEL, EFL_UI_LAYOUT, Elm_Label_Data, Elm_Part_Data) 637ELM_PART_OVERRIDE(elm_label, ELM_LABEL, Elm_Label_Data)
638ELM_PART_OVERRIDE_TEXT_SET(elm_label, ELM_LABEL, EFL_UI_LAYOUT, Elm_Label_Data, Elm_Part_Data) 638ELM_PART_OVERRIDE_TEXT_SET(elm_label, ELM_LABEL, Elm_Label_Data)
639 639
640#include "elm_label_part.eo.c" 640#include "elm_label_part.eo.c"
641/* Efl.Part end */ 641/* Efl.Part end */
diff --git a/src/lib/elementary/elm_mapbuf.c b/src/lib/elementary/elm_mapbuf.c
index 64b69a7..45d5caa 100644
--- a/src/lib/elementary/elm_mapbuf.c
+++ b/src/lib/elementary/elm_mapbuf.c
@@ -441,10 +441,10 @@ _elm_mapbuf_class_constructor(Efl_Class *klass)
441 441
442/* Efl.Part begin */ 442/* Efl.Part begin */
443 443
444ELM_PART_IMPLEMENT(elm_mapbuf, ELM_MAPBUF, Elm_Mapbuf_Data, Elm_Part_Data) 444ELM_PART_OVERRIDE(elm_mapbuf, ELM_MAPBUF, Elm_Mapbuf_Data)
445ELM_PART_IMPLEMENT_CONTENT_SET(elm_mapbuf, ELM_MAPBUF, Elm_Mapbuf_Data, Elm_Part_Data) 445ELM_PART_OVERRIDE_CONTENT_SET(elm_mapbuf, ELM_MAPBUF, Elm_Mapbuf_Data)
446ELM_PART_IMPLEMENT_CONTENT_GET(elm_mapbuf, ELM_MAPBUF, Elm_Mapbuf_Data, Elm_Part_Data) 446ELM_PART_OVERRIDE_CONTENT_GET(elm_mapbuf, ELM_MAPBUF, Elm_Mapbuf_Data)
447ELM_PART_IMPLEMENT_CONTENT_UNSET(elm_mapbuf, ELM_MAPBUF, Elm_Mapbuf_Data, Elm_Part_Data) 447ELM_PART_OVERRIDE_CONTENT_UNSET(elm_mapbuf, ELM_MAPBUF, Elm_Mapbuf_Data)
448ELM_PART_CONTENT_DEFAULT_SET(elm_mapbuf, "default") 448ELM_PART_CONTENT_DEFAULT_SET(elm_mapbuf, "default")
449#include "elm_mapbuf_part.eo.c" 449#include "elm_mapbuf_part.eo.c"
450 450
diff --git a/src/lib/elementary/elm_mapbuf_part.eo b/src/lib/elementary/elm_mapbuf_part.eo
index d9b4119..1242de5 100644
--- a/src/lib/elementary/elm_mapbuf_part.eo
+++ b/src/lib/elementary/elm_mapbuf_part.eo
@@ -1,9 +1,8 @@
1class Elm.Mapbuf.Part (Efl.Object, Efl.Container) 1class Elm.Mapbuf.Part (Efl.Ui.Widget.Part, Efl.Container)
2{ 2{
3 [[Elementary mapbuf internal part class]] 3 [[Elementary mapbuf internal part class]]
4 data: Elm_Part_Data; 4 data: null;
5 implements { 5 implements {
6 Efl.Object.destructor;
7 Efl.Container.content { get; set; } 6 Efl.Container.content { get; set; }
8 Efl.Container.content_unset; 7 Efl.Container.content_unset;
9 } 8 }
diff --git a/src/lib/elementary/elm_notify.c b/src/lib/elementary/elm_notify.c
index a2805fa..f4f97dc 100644
--- a/src/lib/elementary/elm_notify.c
+++ b/src/lib/elementary/elm_notify.c
@@ -740,12 +740,12 @@ _elm_notify_class_constructor(Efl_Class *klass)
740 740
741/* Efl.Part begin */ 741/* Efl.Part begin */
742 742
743ELM_PART_IMPLEMENT(elm_notify, ELM_NOTIFY, Elm_Notify_Data, Elm_Part_Data) 743ELM_PART_OVERRIDE(elm_notify, ELM_NOTIFY, Elm_Notify_Data)
744ELM_PART_IMPLEMENT_TEXT_SET(elm_notify, ELM_NOTIFY, Elm_Notify_Data, Elm_Part_Data) 744ELM_PART_OVERRIDE_TEXT_SET(elm_notify, ELM_NOTIFY, Elm_Notify_Data)
745ELM_PART_IMPLEMENT_TEXT_GET(elm_notify, ELM_NOTIFY, Elm_Notify_Data, Elm_Part_Data) 745ELM_PART_OVERRIDE_TEXT_GET(elm_notify, ELM_NOTIFY, Elm_Notify_Data)
746ELM_PART_IMPLEMENT_CONTENT_SET(elm_notify, ELM_NOTIFY, Elm_Notify_Data, Elm_Part_Data) 746ELM_PART_OVERRIDE_CONTENT_SET(elm_notify, ELM_NOTIFY, Elm_Notify_Data)
747ELM_PART_IMPLEMENT_CONTENT_GET(elm_notify, ELM_NOTIFY, Elm_Notify_Data, Elm_Part_Data) 747ELM_PART_OVERRIDE_CONTENT_GET(elm_notify, ELM_NOTIFY, Elm_Notify_Data)
748ELM_PART_IMPLEMENT_CONTENT_UNSET(elm_notify, ELM_NOTIFY, Elm_Notify_Data, Elm_Part_Data) 748ELM_PART_OVERRIDE_CONTENT_UNSET(elm_notify, ELM_NOTIFY, Elm_Notify_Data)
749ELM_PART_CONTENT_DEFAULT_SET(elm_notify, "default") 749ELM_PART_CONTENT_DEFAULT_SET(elm_notify, "default")
750#include "elm_notify_part.eo.c" 750#include "elm_notify_part.eo.c"
751 751
diff --git a/src/lib/elementary/elm_notify_part.eo b/src/lib/elementary/elm_notify_part.eo
index 17662e3..536d3b1 100644
--- a/src/lib/elementary/elm_notify_part.eo
+++ b/src/lib/elementary/elm_notify_part.eo
@@ -1,9 +1,8 @@
1class Elm.Notify.Part (Efl.Object, Efl.Container, Efl.Text) 1class Elm.Notify.Part (Efl.Ui.Widget.Part, Efl.Container, Efl.Text)
2{ 2{
3 [[Elementary notification internel part class]] 3 [[Elementary notification internel part class]]
4 data: Elm_Part_Data; 4 data: null;
5 implements { 5 implements {
6 Efl.Object.destructor;
7 Efl.Text.text { get; set; } 6 Efl.Text.text { get; set; }
8 Efl.Container.content { get; set; } 7 Efl.Container.content { get; set; }
9 Efl.Container.content_unset; 8 Efl.Container.content_unset;
diff --git a/src/lib/elementary/elm_panel.c b/src/lib/elementary/elm_panel.c
index bf9f75b..55ee1fe 100644
--- a/src/lib/elementary/elm_panel.c
+++ b/src/lib/elementary/elm_panel.c
@@ -1478,10 +1478,10 @@ _elm_panel_elm_interface_atspi_widget_action_elm_actions_get(Eo *obj EINA_UNUSED
1478 1478
1479/* Efl.Part begin */ 1479/* Efl.Part begin */
1480 1480
1481ELM_PART_IMPLEMENT(elm_panel, ELM_PANEL, Elm_Panel_Data, Elm_Part_Data) 1481ELM_PART_OVERRIDE(elm_panel, ELM_PANEL, Elm_Panel_Data)
1482ELM_PART_IMPLEMENT_CONTENT_SET(elm_panel, ELM_PANEL, Elm_Panel_Data, Elm_Part_Data) 1482ELM_PART_OVERRIDE_CONTENT_SET(elm_panel, ELM_PANEL, Elm_Panel_Data)
1483ELM_PART_IMPLEMENT_CONTENT_GET(elm_panel, ELM_PANEL, Elm_Panel_Data, Elm_Part_Data) 1483ELM_PART_OVERRIDE_CONTENT_GET(elm_panel, ELM_PANEL, Elm_Panel_Data)
1484ELM_PART_IMPLEMENT_CONTENT_UNSET(elm_panel, ELM_PANEL, Elm_Panel_Data, Elm_Part_Data) 1484ELM_PART_OVERRIDE_CONTENT_UNSET(elm_panel, ELM_PANEL, Elm_Panel_Data)
1485#include "elm_panel_part.eo.c" 1485#include "elm_panel_part.eo.c"
1486 1486
1487/* Efl.Part end */ 1487/* Efl.Part end */
diff --git a/src/lib/elementary/elm_panel_part.eo b/src/lib/elementary/elm_panel_part.eo
index 45f6a07..a899496 100644
--- a/src/lib/elementary/elm_panel_part.eo
+++ b/src/lib/elementary/elm_panel_part.eo
@@ -1,9 +1,8 @@
1class Elm.Panel.Part (Efl.Object, Efl.Container) 1class Elm.Panel.Part (Efl.Ui.Widget.Part, Efl.Container)
2{ 2{
3 [[Elementary panel internal part class]] 3 [[Elementary panel internal part class]]
4 data: Elm_Part_Data; 4 data: null;
5 implements { 5 implements {
6 Efl.Object.destructor;
7 Efl.Container.content { get; set; } 6 Efl.Container.content { get; set; }
8 Efl.Container.content_unset; 7 Efl.Container.content_unset;
9 } 8 }
diff --git a/src/lib/elementary/elm_part_helper.h b/src/lib/elementary/elm_part_helper.h
index 56b352e..3cd5c5f 100644
--- a/src/lib/elementary/elm_part_helper.h
+++ b/src/lib/elementary/elm_part_helper.h
@@ -3,94 +3,26 @@
3 3
4#include "efl_ui_layout_part.eo.h" 4#include "efl_ui_layout_part.eo.h"
5 5
6//#define ELM_PART_HOOK do { ERR("%p:%s [%d]", pd->obj, pd->part, (int) pd->temp); } while(0) 6//#define ELM_PART_HOOK do { ERR("%s@%p:%s [%d]", efl_class_name_get(pd->obj), pd->obj, pd->part, (int) pd->temp); } while(0)
7#define ELM_PART_HOOK do {} while(0) 7#define ELM_PART_HOOK do {} while(0)
8 8
9#define ELM_PART_REF(obj, pd) do { if (!(pd->temp++)) efl_ref(obj); } while(0) 9//#define ELM_PART_REF(obj, pd) do { if (!(pd->temp++)) efl_ref(obj); } while(0)
10#define ELM_PART_UNREF(obj, pd) do { if (pd->temp) { if (!(--pd->temp)) efl_del(obj); } } while(0) 10#define ELM_PART_UNREF(obj, pd) do { if (pd->temp) { if (!(--pd->temp)) efl_del(obj); } } while(0)
11#define ELM_PART_RETURN_VAL(a) do { ELM_PART_HOOK; typeof(a) _ret = a; ELM_PART_UNREF(obj, pd); return _ret; } while(0) 11#define ELM_PART_RETURN_VAL(a) do { ELM_PART_HOOK; typeof(a) _ret = a; ELM_PART_UNREF(obj, pd); return _ret; } while(0)
12#define ELM_PART_RETURN_VOID do { ELM_PART_HOOK; ELM_PART_UNREF(obj, pd); return; } while(0) 12#define ELM_PART_RETURN_VOID do { ELM_PART_HOOK; ELM_PART_UNREF(obj, pd); return; } while(0)
13#define ELM_PART_CALL(a) ({ ELM_PART_REF(obj, pd); a; }) 13//#define ELM_PART_CALL(a) ({ ELM_PART_REF(obj, pd); a; })
14 14
15typedef struct _Elm_Part_Data Elm_Part_Data; 15typedef struct _Elm_Part_Data Elm_Part_Data;
16struct _Elm_Part_Data 16struct _Elm_Part_Data
17{ 17{
18 Eo *obj; 18 Eo *obj;
19 void *sd; 19 Eina_Tmpstr *part;
20 char *part;
21 unsigned char temp; 20 unsigned char temp;
22}; 21};
23 22
24// Note: this generic implementation can be improved to support part object 23// Note: this generic implementation can be improved to support part object
25// caching or something... 24// caching or something...
26 25
27#define ELM_PART_IMPLEMENT_DESTRUCTOR(type, TYPE, typedata, partdata) \
28static EOLIAN void \
29_ ## type ## _part_efl_object_destructor(Eo *obj, partdata *pd) \
30{ \
31 ELM_PART_HOOK; \
32 free(pd->part); \
33 efl_data_xunref(pd->obj, pd->sd, obj); \
34 efl_destructor(efl_super(obj, TYPE ## _PART_CLASS)); \
35} \
36
37// Main part proxy implementation
38#define ELM_PART_IMPLEMENT(type, TYPE, typedata, partdata) \
39ELM_PART_IMPLEMENT_DESTRUCTOR(type, TYPE, typedata, partdata) \
40static EOLIAN Efl_Object * \
41_ ## type ## _efl_part_part(const Eo *obj, typedata *priv EINA_UNUSED, const char *part) \
42{ \
43 partdata *pd; \
44 Eo *proxy; \
45\
46 EINA_SAFETY_ON_NULL_RETURN_VAL(part, NULL); \
47 proxy = efl_add(TYPE ## _PART_CLASS, (Eo *) obj); \
48 pd = efl_data_scope_get(proxy, TYPE ## _PART_CLASS); \
49 if (pd) \
50 { \
51 pd->obj = (Eo *) obj; \
52 pd->sd = efl_data_xref(pd->obj, TYPE ## _CLASS, proxy); \
53 pd->part = strdup(part); \
54 pd->temp = 1; \
55 } \
56\
57 return proxy; \
58}
59
60#define ELM_PART_IMPLEMENT_CONTENT_SET(type, TYPE, typedata, partdata) \
61static EOLIAN Eina_Bool \
62_ ## type ## _part_efl_container_content_set(Eo *obj, partdata *pd, Efl_Gfx *content) \
63{ \
64 ELM_PART_RETURN_VAL(_ ## type ## _content_set(pd->obj, pd->sd, pd->part, content)); \
65}
66
67#define ELM_PART_IMPLEMENT_CONTENT_GET(type, TYPE, typedata, partdata) \
68static EOLIAN Efl_Gfx * \
69_ ## type ## _part_efl_container_content_get(Eo *obj, partdata *pd) \
70{ \
71 ELM_PART_RETURN_VAL(_ ## type ## _content_get(pd->obj, pd->sd, pd->part)); \
72}
73
74#define ELM_PART_IMPLEMENT_CONTENT_UNSET(type, TYPE, typedata, partdata) \
75static EOLIAN Efl_Gfx * \
76_ ## type ## _part_efl_container_content_unset(Eo *obj, partdata *pd) \
77{ \
78 ELM_PART_RETURN_VAL(_ ## type ## _content_unset(pd->obj, pd->sd, pd->part)); \
79}
80
81#define ELM_PART_IMPLEMENT_TEXT_SET(type, TYPE, typedata, partdata) \
82static EOLIAN void \
83_ ## type ## _part_efl_text_text_set(Eo *obj EINA_UNUSED, partdata *pd, const char *text) \
84{ \
85 _ ## type ## _text_set(pd->obj, pd->sd, pd->part, text); \
86}
87
88#define ELM_PART_IMPLEMENT_TEXT_GET(type, TYPE, typedata, partdata) \
89static EOLIAN const char * \
90_ ## type ## _part_efl_text_text_get(Eo *obj, partdata *pd) \
91{ \
92 ELM_PART_RETURN_VAL(_ ## type ## _text_get(pd->obj, pd->sd, pd->part)); \
93}
94 26
95#define ELM_PART_CONTENT_DEFAULT_SET(type, part) \ 27#define ELM_PART_CONTENT_DEFAULT_SET(type, part) \
96 static const char * _ ## type ## _default_content_part_get(const Eo *obj EINA_UNUSED, void *sd EINA_UNUSED) { return part; } 28 static const char * _ ## type ## _default_content_part_get(const Eo *obj EINA_UNUSED, void *sd EINA_UNUSED) { return part; }
@@ -104,69 +36,70 @@ _ ## type ## _part_efl_text_text_get(Eo *obj, partdata *pd) \
104#define ELM_PART_TEXT_DEFAULT_OPS(type) \ 36#define ELM_PART_TEXT_DEFAULT_OPS(type) \
105 EFL_OBJECT_OP_FUNC(elm_widget_default_text_part_get, _ ## type ## _default_text_part_get) 37 EFL_OBJECT_OP_FUNC(elm_widget_default_text_part_get, _ ## type ## _default_text_part_get)
106 38
107// For widgets that inherit from something with parts (eg. from Efl.Ui.Layout) 39
108#define ELM_PART_OVERRIDE(type, TYPE, SUPER, typedata, partdata) \ 40// For any widget that has specific part handling
109static EOLIAN Efl_Object * \ 41
110_ ## type ## _efl_part_part(const Eo *obj, typedata *priv EINA_UNUSED, const char *part) \ 42#define ELM_PART_OVERRIDE_IMPLEMENT(TYPE) \
111{ \ 43 Eo *proxy = efl_add(TYPE ## _PART_CLASS, (Eo *) obj); \
112 partdata *pd; \ 44 Elm_Part_Data *pd = efl_data_scope_get(proxy, EFL_UI_WIDGET_PART_CLASS); \
113 Eo *proxy; \
114\
115 EINA_SAFETY_ON_NULL_RETURN_VAL(part, NULL); \
116 proxy = efl_add(TYPE ## _PART_CLASS, (Eo *) obj); \
117 pd = efl_data_scope_get(proxy, SUPER ## _PART_CLASS); \
118 if (pd) \ 45 if (pd) \
119 { \ 46 { \
120 pd->obj = (Eo *) obj; \ 47 pd->obj = (Eo *) obj; \
121 pd->sd = efl_data_xref(pd->obj, SUPER ## _CLASS, proxy); \ 48 pd->part = eina_tmpstr_add(part); \
122 pd->part = strdup(part); \
123 pd->temp = 1; \ 49 pd->temp = 1; \
124 } \ 50 } \
125\ 51 return proxy;
126 return proxy; \ 52
53#define ELM_PART_OVERRIDE(type, TYPE, typedata) \
54static EOLIAN Efl_Object * \
55_ ## type ## _efl_part_part(const Eo *obj, typedata *priv EINA_UNUSED, const char *part) \
56{ \
57 EINA_SAFETY_ON_NULL_RETURN_VAL(part, NULL); \
58 ELM_PART_OVERRIDE_IMPLEMENT(TYPE); \
127} 59}
128 60
129#define ELM_PART_OVERRIDE_CONTENT_SET(type, TYPE, SUPER, typedata, partdata) \ 61#define ELM_PART_OVERRIDE_CONTENT_SET(type, TYPE, typedata) \
130static EOLIAN Eina_Bool \ 62static EOLIAN Eina_Bool \
131_ ## type ## _part_efl_container_content_set(Eo *obj, void *_pd EINA_UNUSED, Efl_Gfx *content) \ 63_ ## type ## _part_efl_container_content_set(Eo *obj, void *_pd EINA_UNUSED, Efl_Gfx *content) \
132{ \ 64{ \
133 partdata *pd = efl_data_scope_get(obj, SUPER ## _PART_CLASS); \ 65 Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS); \
134 typedata *sd = efl_data_scope_get(pd->obj, TYPE ## _CLASS); \ 66 typedata *sd = efl_data_scope_get(pd->obj, TYPE ## _CLASS); \
135 ELM_PART_RETURN_VAL(_ ## type ## _content_set(pd->obj, sd, pd->part, content)); \ 67 ELM_PART_RETURN_VAL(_ ## type ## _content_set(pd->obj, sd, pd->part, content)); \
136} 68}
137 69
138#define ELM_PART_OVERRIDE_CONTENT_GET(type, TYPE, SUPER, typedata, partdata) \ 70#define ELM_PART_OVERRIDE_CONTENT_GET(type, TYPE, typedata) \
139static EOLIAN Efl_Gfx * \ 71static EOLIAN Efl_Gfx * \
140_ ## type ## _part_efl_container_content_get(Eo *obj, void *_pd EINA_UNUSED) \ 72_ ## type ## _part_efl_container_content_get(Eo *obj, void *_pd EINA_UNUSED) \
141{ \ 73{ \
142 partdata *pd = efl_data_scope_get(obj, SUPER ## _PART_CLASS); \ 74 Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS); \
143 typedata *sd = efl_data_scope_get(pd->obj, TYPE ## _CLASS); \ 75 typedata *sd = efl_data_scope_get(pd->obj, TYPE ## _CLASS); \
144 ELM_PART_RETURN_VAL(_ ## type ## _content_get(pd->obj, sd, pd->part)); \ 76 ELM_PART_RETURN_VAL(_ ## type ## _content_get(pd->obj, sd, pd->part)); \
145} 77}
146 78
147#define ELM_PART_OVERRIDE_CONTENT_UNSET(type, TYPE, SUPER, typedata, partdata) \ 79#define ELM_PART_OVERRIDE_CONTENT_UNSET(type, TYPE, typedata) \
148static EOLIAN Efl_Gfx * \ 80static EOLIAN Efl_Gfx * \
149_ ## type ## _part_efl_container_content_unset(Eo *obj, void *_pd EINA_UNUSED) \ 81_ ## type ## _part_efl_container_content_unset(Eo *obj, void *_pd EINA_UNUSED) \
150{ \ 82{ \
151 partdata *pd = efl_data_scope_get(obj, SUPER ## _PART_CLASS); \ 83 Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS); \
152 typedata *sd = efl_data_scope_get(pd->obj, TYPE ## _CLASS); \ 84 typedata *sd = efl_data_scope_get(pd->obj, TYPE ## _CLASS); \
153 ELM_PART_RETURN_VAL(_ ## type ## _content_unset(pd->obj, sd, pd->part)); \ 85 ELM_PART_RETURN_VAL(_ ## type ## _content_unset(pd->obj, sd, pd->part)); \
154} 86}
155 87
156#define ELM_PART_OVERRIDE_TEXT_SET(type, TYPE, SUPER, typedata, partdata) \ 88#define ELM_PART_OVERRIDE_TEXT_SET(type, TYPE, typedata) \
157static EOLIAN void \ 89static EOLIAN void \
158_ ## type ## _part_efl_text_text_set(Eo *obj, void *_pd EINA_UNUSED, const char *text) \ 90_ ## type ## _part_efl_text_text_set(Eo *obj, void *_pd EINA_UNUSED, const char *text) \
159{ \ 91{ \
160 partdata *pd = efl_data_scope_get(obj, SUPER ## _PART_CLASS); \ 92 Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS); \
161 typedata *sd = efl_data_scope_get(pd->obj, TYPE ## _CLASS); \ 93 typedata *sd = efl_data_scope_get(pd->obj, TYPE ## _CLASS); \
162 ELM_PART_CALL(_ ## type ## _text_set(pd->obj, sd, pd->part, text)); \ 94 _ ## type ## _text_set(pd->obj, sd, pd->part, text); \
95 ELM_PART_RETURN_VOID; \
163} 96}
164 97
165#define ELM_PART_OVERRIDE_TEXT_GET(type, TYPE, SUPER, typedata, partdata) \ 98#define ELM_PART_OVERRIDE_TEXT_GET(type, TYPE, typedata) \
166static EOLIAN const char *\ 99static EOLIAN const char *\
167_ ## type ## _part_efl_text_text_get(Eo *obj, void *_pd EINA_UNUSED) \ 100_ ## type ## _part_efl_text_text_get(Eo *obj, void *_pd EINA_UNUSED) \
168{ \ 101{ \
169 partdata *pd = efl_data_scope_get(obj, SUPER ## _PART_CLASS); \ 102 Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS); \
170 typedata *sd = efl_data_scope_get(pd->obj, TYPE ## _CLASS); \ 103 typedata *sd = efl_data_scope_get(pd->obj, TYPE ## _CLASS); \
171 ELM_PART_RETURN_VAL(_ ## type ## _text_get(pd->obj, sd, pd->part)); \ 104 ELM_PART_RETURN_VAL(_ ## type ## _text_get(pd->obj, sd, pd->part)); \
172} 105}
diff --git a/src/lib/elementary/elm_scroller.c b/src/lib/elementary/elm_scroller.c
index c608b6d..b10b2b5 100644
--- a/src/lib/elementary/elm_scroller.c
+++ b/src/lib/elementary/elm_scroller.c
@@ -1475,10 +1475,10 @@ ELM_WIDGET_KEY_DOWN_DEFAULT_IMPLEMENT(elm_scroller, Elm_Scroller_Data)
1475 1475
1476/* Efl.Part begin */ 1476/* Efl.Part begin */
1477 1477
1478ELM_PART_OVERRIDE(elm_scroller, ELM_SCROLLER, EFL_UI_LAYOUT, Elm_Scroller_Data, Elm_Part_Data) 1478ELM_PART_OVERRIDE(elm_scroller, ELM_SCROLLER, Elm_Scroller_Data)
1479ELM_PART_OVERRIDE_CONTENT_SET(elm_scroller, ELM_SCROLLER, EFL_UI_LAYOUT, Elm_Scroller_Data, Elm_Part_Data) 1479ELM_PART_OVERRIDE_CONTENT_SET(elm_scroller, ELM_SCROLLER, Elm_Scroller_Data)
1480ELM_PART_OVERRIDE_CONTENT_GET(elm_scroller, ELM_SCROLLER, EFL_UI_LAYOUT, Elm_Scroller_Data, Elm_Part_Data) 1480ELM_PART_OVERRIDE_CONTENT_GET(elm_scroller, ELM_SCROLLER, Elm_Scroller_Data)
1481ELM_PART_OVERRIDE_CONTENT_UNSET(elm_scroller, ELM_SCROLLER, EFL_UI_LAYOUT, Elm_Scroller_Data, Elm_Part_Data) 1481ELM_PART_OVERRIDE_CONTENT_UNSET(elm_scroller, ELM_SCROLLER, Elm_Scroller_Data)
1482// FIXME: should be "content" but "default" was legacy API 1482// FIXME: should be "content" but "default" was legacy API
1483ELM_PART_CONTENT_DEFAULT_SET(elm_scroller, "default") 1483ELM_PART_CONTENT_DEFAULT_SET(elm_scroller, "default")
1484#include "elm_scroller_part.eo.c" 1484#include "elm_scroller_part.eo.c"
diff --git a/src/lib/elementary/elm_widget.c b/src/lib/elementary/elm_widget.c
index 8411861..0ac956e 100644
--- a/src/lib/elementary/elm_widget.c
+++ b/src/lib/elementary/elm_widget.c
@@ -6636,6 +6636,42 @@ elm_widget_signal_callback_del(Eo *obj, const char *emission, const char *source
6636} 6636}
6637 6637
6638 6638
6639/* Efl.Part implementation */
6640
6641static EOLIAN Efl_Object *
6642_elm_widget_efl_part_part(const Eo *obj, Elm_Widget_Smart_Data *wd EINA_UNUSED, const char *part)
6643{
6644 Elm_Part_Data *pd;
6645 Eo *proxy;
6646
6647 EINA_SAFETY_ON_NULL_RETURN_VAL(part, NULL);
6648
6649 // Generic parts for every kind of widget
6650 proxy = efl_add(EFL_UI_WIDGET_PART_CLASS, (Eo *) obj);
6651 pd = efl_data_scope_get(proxy, EFL_UI_WIDGET_PART_CLASS);
6652 if (pd)
6653 {
6654 pd->obj = (Eo *) obj;
6655 pd->part = eina_tmpstr_add(part);
6656 pd->temp = 1;
6657 }
6658
6659 return proxy;
6660}
6661
6662static EOLIAN void \
6663_efl_ui_widget_part_efl_object_destructor(Eo *obj, Elm_Part_Data *pd)
6664{
6665 ELM_PART_HOOK;
6666 eina_tmpstr_del(pd->part);
6667 efl_destructor(efl_super(obj, EFL_UI_WIDGET_PART_CLASS));
6668}
6669
6670#include "efl_ui_widget_part.eo.c"
6671
6672/* Efl.Part end */
6673
6674
6639/* Internal EO APIs and hidden overrides */ 6675/* Internal EO APIs and hidden overrides */
6640 6676
6641EFL_FUNC_BODY_CONST(elm_widget_default_content_part_get, const char *, NULL) 6677EFL_FUNC_BODY_CONST(elm_widget_default_content_part_get, const char *, NULL)
diff --git a/src/lib/elementary/elm_widget.eo b/src/lib/elementary/elm_widget.eo
index babe00c..53638c9 100644
--- a/src/lib/elementary/elm_widget.eo
+++ b/src/lib/elementary/elm_widget.eo
@@ -18,7 +18,7 @@ struct Elm.Widget.Focus_State {
18} 18}
19 19
20abstract Elm.Widget (Efl.Canvas.Group, Elm.Interface.Atspi_Accessible, 20abstract Elm.Widget (Efl.Canvas.Group, Elm.Interface.Atspi_Accessible,
21 Efl.Access.Component, Efl.Ui.Focus.User, 21 Efl.Access.Component, Efl.Ui.Focus.User, Efl.Part,
22 Efl.Ui.Focus.Object, Efl.Ui.Base, Efl.Ui.Cursor) 22 Efl.Ui.Focus.Object, Efl.Ui.Base, Efl.Ui.Cursor)
23{ 23{
24 [[Elementary widget abstract class]] 24 [[Elementary widget abstract class]]
@@ -860,6 +860,7 @@ abstract Elm.Widget (Efl.Canvas.Group, Elm.Interface.Atspi_Accessible,
860 Efl.Ui.Cursor.cursor { get; set; } 860 Efl.Ui.Cursor.cursor { get; set; }
861 Efl.Ui.Cursor.cursor_style { get; set; } 861 Efl.Ui.Cursor.cursor_style { get; set; }
862 Efl.Ui.Cursor.cursor_theme_search_enabled { get; set; } 862 Efl.Ui.Cursor.cursor_theme_search_enabled { get; set; }
863 Efl.Part.part; [[Returns @Efl.Ui.Widget.Part.]]
863 } 864 }
864 events { 865 events {
865 moved; [[Called when widget moved]] 866 moved; [[Called when widget moved]]