aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/elementary
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/lib/elementary/Efl_Ui.h116
-rw-r--r--src/lib/elementary/Elementary.h87
-rw-r--r--src/lib/elementary/efl_access_action.c2
-rw-r--r--src/lib/elementary/efl_access_component.c2
-rw-r--r--src/lib/elementary/efl_access_editable_text.c2
-rw-r--r--src/lib/elementary/efl_access_object.c2
-rw-r--r--src/lib/elementary/efl_access_selection.c2
-rw-r--r--src/lib/elementary/efl_access_text.c2
-rw-r--r--src/lib/elementary/efl_access_value.c2
-rw-r--r--src/lib/elementary/efl_access_widget_action.c2
-rw-r--r--src/lib/elementary/efl_access_window.c2
-rw-r--r--src/lib/elementary/efl_ui_caching_factory.c12
-rw-r--r--src/lib/elementary/efl_ui_calendar.h55
-rw-r--r--src/lib/elementary/efl_ui_check.c26
-rw-r--r--src/lib/elementary/efl_ui_check_private.h2
-rw-r--r--src/lib/elementary/efl_ui_collection.c4
-rw-r--r--src/lib/elementary/efl_ui_homogeneous_model.c1
-rw-r--r--src/lib/elementary/efl_ui_image.c31
-rw-r--r--src/lib/elementary/efl_ui_image.eo4
-rw-r--r--src/lib/elementary/efl_ui_image_zoomable.c1
-rw-r--r--src/lib/elementary/efl_ui_internal_text_interactive.c2
-rw-r--r--src/lib/elementary/efl_ui_item.c4
-rw-r--r--src/lib/elementary/efl_ui_list_view.c2
-rw-r--r--src/lib/elementary/efl_ui_list_view_seg_array.c2
-rw-r--r--src/lib/elementary/efl_ui_multi_selectable.eo2
-rw-r--r--src/lib/elementary/efl_ui_position_manager_grid.c18
-rw-r--r--src/lib/elementary/efl_ui_position_manager_grid.eo1
-rw-r--r--src/lib/elementary/efl_ui_position_manager_list.c15
-rw-r--r--src/lib/elementary/efl_ui_position_manager_list.eo2
-rw-r--r--src/lib/elementary/efl_ui_radio_box.c17
-rw-r--r--src/lib/elementary/efl_ui_radio_box.eo2
-rw-r--r--src/lib/elementary/efl_ui_video.c5
-rw-r--r--src/lib/elementary/efl_ui_widget_factory.c12
-rw-r--r--src/lib/elementary/efl_ui_widget_part_bg.eo8
-rw-r--r--src/lib/elementary/efl_ui_win.c12
-rw-r--r--src/lib/elementary/elm_atspi_app_object.c2
-rw-r--r--src/lib/elementary/elm_calendar.h1
-rw-r--r--src/lib/elementary/elm_config.c5
-rw-r--r--src/lib/elementary/elm_datetime.h3
-rw-r--r--src/lib/elementary/elm_general.h3
-rw-r--r--src/lib/elementary/elm_interface_scrollable.h9
-rw-r--r--src/lib/elementary/elm_priv.h12
-rw-r--r--src/lib/elementary/elm_scroller_legacy.h3
-rw-r--r--src/lib/elementary/elm_widget.h5
-rw-r--r--src/lib/elementary/elm_win_eo.h46
-rw-r--r--src/lib/elementary/meson.build2
46 files changed, 275 insertions, 277 deletions
diff --git a/src/lib/elementary/Efl_Ui.h b/src/lib/elementary/Efl_Ui.h
index 754286b3e7..f9b3dee410 100644
--- a/src/lib/elementary/Efl_Ui.h
+++ b/src/lib/elementary/Efl_Ui.h
@@ -140,6 +140,7 @@ extern EAPI double _efl_startup_time;
// EO types. Defined for legacy-only builds as legacy uses typedef of EO types.
#include "efl_ui.eot.h"
#include "efl_ui_selection_types.eot.h"
+#include "efl_ui_dnd_types.eot.h"
//define focus manager earlier since focus object and manager is circular
typedef Eo Efl_Ui_Focus_Manager;
@@ -175,9 +176,12 @@ EAPI void efl_ui_focus_relation_free(Efl_Ui_Focus_Relations *rel);
# include <efl_ui_widget_scrollable_content.eo.h>
# include <efl_ui_widget_common.h>
# include <efl_ui_widget_part.eo.h>
+# include <efl_ui_widget_part_bg.eo.h>
+# include <efl_ui_widget_part_shadow.eo.h>
# include <efl_ui_layout_base.eo.h>
# include <efl_ui_layout.eo.h>
# include <efl_ui_layout_part.eo.h>
+# include <efl_ui_layout_part_bg.eo.h>
# include <efl_ui_layout_part_box.eo.h>
# include <efl_ui_layout_part_content.eo.h>
# include <efl_ui_layout_part_text.eo.h>
@@ -193,45 +197,85 @@ EAPI void efl_ui_focus_relation_free(Efl_Ui_Focus_Relations *rel);
# include <efl_ui_table.eo.h>
# include <efl_ui_table_static.eo.h>
# include <efl_ui_image.eo.h>
+# include <efl_ui_image_zoomable.eo.h>
# include <efl_ui_win.eo.h>
/* FIXME: what the actual fuck. */
-# include <elm_win_eo.h>
+#ifdef EFL_BETA_API_SUPPORT
+/**
+ * @brief Set the window's autodel state.
+ *
+ * When closing the window in any way outside of the program control, like
+ * pressing the X button in the titlebar or using a command from the Window
+ * Manager, a "delete,request" signal is emitted to indicate that this event
+ * occurred and the developer can take any action, which may include, or not,
+ * destroying the window object.
+ *
+ * When the @c autodel parameter is set, the window will be automatically
+ * destroyed when this event occurs, after the signal is emitted. If @c autodel
+ * is @c false, then the window will not be destroyed and is up to the program
+ * to do so when it's required.
+ *
+ * @param[in] obj The object.
+ * @param[in] autodel If @c true, the window will automatically delete itself
+ * when closed.
+ *
+ * Note: This function is only available in C.
+ *
+ * @ingroup Efl_Ui_Win
+ */
+EAPI void efl_ui_win_autodel_set(Efl_Ui_Win *obj, Eina_Bool autodel);
+
+/**
+ * @brief Get the window's autodel state.
+ *
+ * @param[in] obj The object.
+ *
+ * @return If @c true, the window will automatically delete itself when closed.
+ *
+ * Note: This function is only available in C.
+ *
+ * @ingroup Efl_Ui_Win
+ */
+EAPI Eina_Bool efl_ui_win_autodel_get(const Efl_Ui_Win *obj);
+#endif
# include <efl_ui_win_inlined.eo.h>
# include <efl_ui_win_socket.eo.h>
# include <efl_ui_relative_layout.eo.h>
/* FIXME: Efl.Ui.Text must not use elm_general.h */
-// no.
-//# warning Efl.Ui.Text is not available yet without Elementary.h
-# if 0
-# include <efl_ui_text_interactive.eo.h>
+# include <elm_general.h>
+# include <efl_text_interactive.eo.h>
# include <efl_ui_text.eo.h>
# include <efl_ui_text_editable.eo.h>
# include <efl_ui_text_async.eo.h>
-# endif
-# include <efl_ui_animation_view.h>
-# include <efl_ui_animation_view_part.eo.h>
+# include <efl_ui_animation_view.eo.h>
# include <efl_ui_clock.h>
-# include <efl_ui_image_factory.eo.h>
# include <efl_ui_video.h>
-# include <efl_ui_calendar.h>
-# include <efl_ui_button_eo.h>
-# include "efl_ui_caching_factory.eo.h"
-# include "efl_ui_widget_factory.eo.h"
+# include <efl_ui_widget_factory.eo.h>
+# include <efl_ui_image_factory.eo.h>
+# include <efl_ui_layout_factory.eo.h>
+# include <efl_ui_caching_factory.eo.h>
+# include <efl_ui_text_factory_fallback.eo.h>
+# include <efl_ui_text_factory_images.eo.h>
+# include <efl_ui_text_factory_emoticons.eo.h>
/* FIXME: Multibuttonentry must not use elm_widget_item */
# include <efl_ui_tags.eo.h>
-
-# include <efl_ui_flip_eo.h>
-# include <efl_ui_frame_eo.h>
-# include <efl_ui_check_eo.h>
-# include <efl_ui_image_zoomable_eo.h>
-# include <efl_ui_progressbar_eo.h>
-# include <efl_ui_radio_eo.h>
-# include <efl_ui_panes_eo.h>
+# include <efl_ui_button.eo.h>
+# include <efl_ui_check.eo.h>
+# include <efl_ui_radio.eo.h>
+# include <efl_ui_radio_group.eo.h>
+# include <efl_ui_radio_group_impl.eo.h>
+# include <efl_ui_radio_box.eo.h>
+# include <efl_ui_progressbar.eo.h>
+
+# include <efl_ui_flip.eo.h>
+# include <efl_ui_frame.eo.h>
+# include <efl_ui_panel.eo.h>
+# include <efl_ui_panes.eo.h>
# include <efl_ui_panes_part.eo.h>
#define _EFL_UI_SPOTLIGHT_MANAGEREO_EO_CLASS_TYPE
@@ -256,6 +300,7 @@ typedef Eo Efl_Ui_Spotlight_Indicator;
# include <efl_ui_spin.eo.h>
# include <efl_ui_spin_button.eo.h>
# include <efl_ui_slider.eo.h>
+# include <efl_ui_slider_interval.eo.h>
# include <efl_ui_item.eo.h>
# include <efl_ui_position_manager_entity.eo.h>
# include <efl_ui_position_manager_data_access_v1.eo.h>
@@ -278,7 +323,36 @@ typedef Eo Efl_Ui_Spotlight_Indicator;
# include <efl_ui_tab_page.eo.h>
# include <efl_ui_tab_pager.eo.h>
# include <efl_ui_select_model.eo.h>
+
+# include "efl_ui_list_view_types.eot.h"
+# include <efl_ui_list_view.eo.h>
+# include <efl_ui_list_view_model.eo.h>
+# include <efl_ui_list_view_precise_layouter.eo.h>
+# include <efl_ui_list_view_relayout.eo.h>
+# include <efl_ui_list_view_pan.eo.h>
# include <efl_ui_view_model.eo.h>
+# include <efl_ui_size_model.eo.h>
+# include <efl_ui_homogeneous_model.eo.h>
+# include <efl_ui_exact_model.eo.h>
+# include <efl_ui_average_model.eo.h>
+
+# include <efl_ui_scroller.eo.h>
+# include <efl_ui_pan.eo.h>
+# include <efl_ui_scroll_manager.eo.h>
+
+# include <efl_ui_focus_parent_provider.eo.h>
+# include <efl_ui_widget_focus_manager.eo.h>
+# include <efl_ui_focus_parent_provider_standard.eo.h>
+# include <efl_ui_selection.eo.h>
+# include <efl_ui_dnd.eo.h>
+# include <efl_ui_dnd_container.eo.h>
+# include <efl_ui_selection_manager.eo.h>
+
+# include <efl_datetime_manager.eo.h>
+# include <efl_ui_timepicker.eo.h>
+# include <efl_ui_datepicker.eo.h>
+# include <efl_ui_calendar.eo.h>
+
/**
* Initialize Elementary
*
diff --git a/src/lib/elementary/Elementary.h b/src/lib/elementary/Elementary.h
index 07f7edab89..cf5875255a 100644
--- a/src/lib/elementary/Elementary.h
+++ b/src/lib/elementary/Elementary.h
@@ -149,22 +149,6 @@ EAPI extern Elm_Version *elm_version;
#include <elm_focus.h>
#include <Efl.h>
-# include <efl_ui.eot.h>
-//define focus manager earlier since focus object and manager is circular
-typedef Eo Efl_Ui_Focus_Manager;
-#define _EFL_UI_FOCUS_MANAGER_EO_CLASS_TYPE
-
-
-# include <efl_ui_focus_object.eo.h>
-# include <efl_ui_focus_manager.eo.h>
-# include <efl_ui_focus_manager_window_root.eo.h>
-# include <efl_ui_focus_manager_calc.eo.h>
-# include <efl_ui_focus_manager_sub.eo.h>
-# include <efl_ui_focus_manager_root_focus.eo.h>
-# include <efl_ui_focus_util.eo.h>
-# include <efl_ui_l10n.eo.h>
-# include <efl_ui_focus_composition.eo.h>
-# include <efl_ui_focus_layer.eo.h>
#ifdef EFL_BETA_API_SUPPORT
# include <elm_interface_scrollable.h>
@@ -212,8 +196,8 @@ typedef Eo Efl_Ui_Focus_Manager;
#include <elm_button.h>
#include <elm_cache.h>
#include <elm_calendar.h>
+/* this is elm_animation_view */
#include <efl_ui_animation_view.h>
-#include <efl_ui_calendar.h>
#include <elm_check.h>
#include <elm_clock.h>
#include <elm_cnp.h>
@@ -276,80 +260,13 @@ typedef Eo Efl_Ui_Focus_Manager;
#include <elm_thumb.h>
#include <elm_toolbar.h>
#include <elm_transit.h>
+/* this is actually elm_video */
#include <efl_ui_video.h>
#include <elm_view_list.h>
#include <elm_view_form.h>
#include <elm_web.h>
#include <elm_win.h>
-# include <efl_ui_selection_types.eot.h>
-# include <efl_ui_theme.eo.h>
-# include <efl_config_global.eo.h>
-# include <efl_ui_widget.eo.h>
-# include <efl_ui_widget_part.eo.h>
-# include <efl_ui_widget_part_bg.eo.h>
-# include <efl_ui_widget_part_shadow.eo.h>
-# include <efl_ui_layout.eo.h>
-# include <efl_ui_layout_part.eo.h>
-# include <efl_ui_layout_part_box.eo.h>
-# include <efl_ui_layout_part_content.eo.h>
-# include <efl_ui_layout_part_bg.eo.h>
-# include <efl_ui_layout_part_text.eo.h>
-# include <efl_ui_layout_part_table.eo.h>
-# include <efl_ui_win_part.eo.h>
-# include <efl_ui_bg.eo.h>
-# include <efl_ui_box.eo.h>
-# include <efl_ui_box_flow.eo.h>
-# include <efl_ui_box_stack.eo.h>
-# include <efl_ui_table.eo.h>
-# include <efl_ui_table_static.eo.h>
-# include <efl_ui_image.eo.h>
-# include <efl_ui_win.eo.h>
-# include <efl_ui_win_inlined.eo.h>
-# include <efl_ui_win_socket.eo.h>
-# include <efl_text_interactive.eo.h>
-# include <efl_ui_text.eo.h>
-# include <efl_ui_popup.eo.h>
-# include <efl_ui_alert_popup.eo.h>
-# include <efl_ui_popup_part_backwall.eo.h>
-# include <efl_ui_text_factory_images.eo.h>
-# include <efl_ui_text_factory_emoticons.eo.h>
-# include <efl_ui_text_factory_fallback.eo.h>
-# include <efl_ui_text_editable.eo.h>
-# include <efl_ui_text_async.eo.h>
-# include <efl_ui_clock.eo.h>
-# include <efl_ui_spin.eo.h>
-# include <efl_ui_spin_button.eo.h>
-# include <efl_ui_datepicker.eo.h>
-# include <efl_ui_timepicker.eo.h>
-# include <efl_ui_tags.eo.h>
-# include <efl_ui_panel.eo.h>
-# include <efl_ui_image_factory.eo.h>
-# include <efl_ui_slider.eo.h>
-# include <efl_ui_slider_interval.eo.h>
-# include <efl_ui_layout_factory.eo.h>
-# include <efl_ui_item.eo.h>
-# include <efl_ui_list_default_item.eo.h>
-# include <efl_ui_list_placeholder_item.eo.h>
-# include <efl_ui_list.eo.h>
-# include <efl_ui_grid_default_item.eo.h>
-# include <efl_ui_grid.eo.h>
-# include <efl_ui_list_view_types.eot.h>
-# include <efl_ui_list_view_model.eo.h>
-# include <efl_ui_list_view.eo.h>
-# include <efl_ui_list_view_pan.eo.h>
-# include <efl_ui_widget_factory.eo.h>
-# include <efl_ui_caching_factory.eo.h>
-# include <efl_ui_pan.eo.h>
-# include <efl_ui_scroll_manager.eo.h>
-# include <efl_ui_scroller.eo.h>
-# include <efl_ui_dnd_types.eot.h>
-# include <efl_ui_selection.eo.h>
-# include <efl_ui_dnd.eo.h>
-# include <efl_ui_dnd_container.eo.h>
-# include <efl_ui_relative_layout.eo.h>
-# include <efl_ui_animation_view.eo.h>
-
/* include deprecated calls last of all */
#include <elm_deprecated.h>
diff --git a/src/lib/elementary/efl_access_action.c b/src/lib/elementary/efl_access_action.c
index da5cd1b4e2..cae9e5c066 100644
--- a/src/lib/elementary/efl_access_action.c
+++ b/src/lib/elementary/efl_access_action.c
@@ -4,8 +4,6 @@
#define EFL_ACCESS_ACTION_PROTECTED
-#include <Elementary.h>
-#include "elm_widget.h"
#include "elm_priv.h"
EOLIAN const char *
diff --git a/src/lib/elementary/efl_access_component.c b/src/lib/elementary/efl_access_component.c
index 83f7640249..9566db017d 100644
--- a/src/lib/elementary/efl_access_component.c
+++ b/src/lib/elementary/efl_access_component.c
@@ -5,8 +5,6 @@
#define EFL_ACCESS_COMPONENT_PROTECTED
#define EFL_ACCESS_OBJECT_PROTECTED
-#include <Elementary.h>
-
#include "elm_priv.h"
diff --git a/src/lib/elementary/efl_access_editable_text.c b/src/lib/elementary/efl_access_editable_text.c
index bd03d6613e..4f3af3342f 100644
--- a/src/lib/elementary/efl_access_editable_text.c
+++ b/src/lib/elementary/efl_access_editable_text.c
@@ -4,8 +4,6 @@
#define EFL_ACCESS_EDITABLE_TEXT_PROTECTED
-#include <Elementary.h>
-#include "elm_widget.h"
#include "elm_priv.h"
#include "efl_access_editable_text.eo.c"
diff --git a/src/lib/elementary/efl_access_object.c b/src/lib/elementary/efl_access_object.c
index 6bb3b2e882..c30b313cf4 100644
--- a/src/lib/elementary/efl_access_object.c
+++ b/src/lib/elementary/efl_access_object.c
@@ -4,8 +4,6 @@
#define EFL_ACCESS_OBJECT_PROTECTED
-#include <Elementary.h>
-#include "elm_widget.h"
#include "elm_priv.h"
const char* Access_Name[] = {
diff --git a/src/lib/elementary/efl_access_selection.c b/src/lib/elementary/efl_access_selection.c
index f239a04dea..73ff5c8387 100644
--- a/src/lib/elementary/efl_access_selection.c
+++ b/src/lib/elementary/efl_access_selection.c
@@ -4,8 +4,6 @@
#define ELM_INTERFACE_ATSPI_VALUE_PROTECTED
-#include <Elementary.h>
-#include "elm_widget.h"
#include "elm_priv.h"
#include "efl_access_selection.eo.c"
diff --git a/src/lib/elementary/efl_access_text.c b/src/lib/elementary/efl_access_text.c
index fa3798523a..6f35f71471 100644
--- a/src/lib/elementary/efl_access_text.c
+++ b/src/lib/elementary/efl_access_text.c
@@ -4,8 +4,6 @@
#define EFL_ACCESS_TEXT_PROTECTED
-#include <Elementary.h>
-#include "elm_widget.h"
#include "elm_priv.h"
void
diff --git a/src/lib/elementary/efl_access_value.c b/src/lib/elementary/efl_access_value.c
index 76e52864a8..646c9d049e 100644
--- a/src/lib/elementary/efl_access_value.c
+++ b/src/lib/elementary/efl_access_value.c
@@ -4,8 +4,6 @@
#define EFL_ACCESS_VALUE_PROTECTED
-#include <Elementary.h>
-#include "elm_widget.h"
#include "elm_priv.h"
#include "efl_access_value.eo.c"
diff --git a/src/lib/elementary/efl_access_widget_action.c b/src/lib/elementary/efl_access_widget_action.c
index 47b2f2724a..be6e59ab4c 100644
--- a/src/lib/elementary/efl_access_widget_action.c
+++ b/src/lib/elementary/efl_access_widget_action.c
@@ -5,8 +5,6 @@
#define EFL_ACCESS_ACTION_PROTECTED
#define EFL_ACCESS_WIDGET_ACTION_PROTECTED
-#include <Elementary.h>
-#include "elm_widget.h"
#include "elm_priv.h"
extern Eina_Hash *_elm_key_bindings;
diff --git a/src/lib/elementary/efl_access_window.c b/src/lib/elementary/efl_access_window.c
index 48d0dfd2c2..250d894219 100644
--- a/src/lib/elementary/efl_access_window.c
+++ b/src/lib/elementary/efl_access_window.c
@@ -2,8 +2,6 @@
#include "elementary_config.h"
#endif
-#include <Elementary.h>
-#include "elm_widget.h"
#include "elm_priv.h"
#include "efl_access_window.eo.c"
diff --git a/src/lib/elementary/efl_ui_caching_factory.c b/src/lib/elementary/efl_ui_caching_factory.c
index 33a44a013d..245830f161 100644
--- a/src/lib/elementary/efl_ui_caching_factory.c
+++ b/src/lib/elementary/efl_ui_caching_factory.c
@@ -199,7 +199,11 @@ _efl_ui_caching_factory_efl_ui_factory_create(Eo *obj,
r->factory = efl_ref(obj);
all = calloc(1, sizeof (Eina_Future *));
- if (!all) return efl_loop_future_rejected(obj, ENOMEM);
+ if (!all)
+ {
+ free(r);
+ return efl_loop_future_rejected(obj, ENOMEM);
+ }
EINA_ITERATOR_FOREACH(models, model)
{
@@ -209,7 +213,11 @@ _efl_ui_caching_factory_efl_ui_factory_create(Eo *obj,
.data = r);
all = realloc(all, (count + 1) * sizeof (Eina_Future *));
- if (!all) return efl_loop_future_rejected(obj, ENOMEM);
+ if (!all)
+ {
+ free(r);
+ return efl_loop_future_rejected(obj, ENOMEM);
+ }
}
eina_iterator_free(models);
diff --git a/src/lib/elementary/efl_ui_calendar.h b/src/lib/elementary/efl_ui_calendar.h
deleted file mode 100644
index c3c8f6ae89..0000000000
--- a/src/lib/elementary/efl_ui_calendar.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/**
- * @defgroup Elm_Calendar Calendar
- * @ingroup Elementary
- *
- * @image html calendar_inheritance_tree.png
- * @image latex calendar_inheritance_tree.eps
- *
- * This is a calendar widget. It helps applications to flexibly
- * display a calendar with day of the week, date, year and
- * month. Applications are able to set specific dates to be reported
- * back, when selected, in the smart callbacks of the calendar
- * widget. The API of this widget lets the applications perform other
- * functions, like:
- *
- * - placing marks on specific dates
- * - setting the bounds for the calendar (minimum and maximum years)
- * - setting the day names of the week (e.g. "Thu" or "Thursday")
- * - setting the year and month format.
- *
- * This widget inherits from the @ref Layout one, so that all the
- * functions acting on it also work for calendar objects.
- *
- * This widget emits the following signals, besides the ones sent from
- * @ref Layout:
- * - @c "changed" - emitted when the date in the calendar is changed.
- * - @c "display,changed" - emitted when the current month displayed in the
- * calendar is changed.
- * - @c "focused" - When the calendar has received focus. (since 1.8)
- * - @c "unfocused" - When the calendar has lost focus. (since 1.8)
- * - @c "language,changed" - the program's language changed (since 1.9)
- *
- * Supported elm_object common APIs.
- * @li @ref elm_object_signal_emit
- * @li @ref elm_object_signal_callback_add
- * @li @ref elm_object_signal_callback_del
- *
- * Here is some sample code using it:
- * @li @ref calendar_example_01
- * @li @ref calendar_example_02
- * @li @ref calendar_example_03
- * @li @ref calendar_example_04
- * @li @ref calendar_example_05
- * @li @ref calendar_example_06
- */
-
-/**
- * @addtogroup Elm_Calendar
- * @{
- */
-
-#include "efl_ui_calendar.eo.h"
-
-/**
- * @}
- */
diff --git a/src/lib/elementary/efl_ui_check.c b/src/lib/elementary/efl_ui_check.c
index 43b2a967f6..df53247259 100644
--- a/src/lib/elementary/efl_ui_check.c
+++ b/src/lib/elementary/efl_ui_check.c
@@ -51,6 +51,25 @@ static const Elm_Action key_actions[] = {
};
static void
+_check_legacy_event(Eo *obj)
+{
+ EFL_UI_CHECK_DATA_GET(obj, pd);
+ if (pd->selected)
+ {
+ if (pd->legacy_changed_emitted_select) return;
+ pd->legacy_changed_emitted_select = EINA_TRUE;
+ pd->legacy_changed_emitted_unselect = EINA_FALSE;
+ }
+ else
+ {
+ if (pd->legacy_changed_emitted_unselect) return;
+ pd->legacy_changed_emitted_unselect = EINA_TRUE;
+ pd->legacy_changed_emitted_select = EINA_FALSE;
+ }
+ evas_object_smart_callback_call(obj, "changed", NULL);
+}
+
+static void
_activate(Evas_Object *obj)
{
// state will be changed by the later call to the selected_set call
@@ -97,8 +116,7 @@ _activate(Evas_Object *obj)
// "efl,state,check,on" or "efl,state,check,off" for eo-api
efl_ui_selectable_selected_set(obj, !efl_ui_selectable_selected_get(obj));
if (elm_widget_is_legacy(obj))
- evas_object_smart_callback_call(obj, "changed", NULL);
-
+ _check_legacy_event(obj);
if (_elm_config->atspi_mode)
efl_access_state_changed_signal_emit(obj,
EFL_ACCESS_STATE_TYPE_CHECKED,
@@ -231,6 +249,8 @@ _on_check_off(void *data,
Evas_Object *obj = data;
_flush_selected(obj, EINA_FALSE);
+ if (elm_widget_is_legacy(obj))
+ _check_legacy_event(obj);
}
static void
@@ -242,6 +262,8 @@ _on_check_on(void *data,
Evas_Object *obj = data;
_flush_selected(obj, EINA_TRUE);
+ if (elm_widget_is_legacy(obj))
+ _check_legacy_event(obj);
}
static void
diff --git a/src/lib/elementary/efl_ui_check_private.h b/src/lib/elementary/efl_ui_check_private.h
index 82031b28fe..e043ac8df6 100644
--- a/src/lib/elementary/efl_ui_check_private.h
+++ b/src/lib/elementary/efl_ui_check_private.h
@@ -28,6 +28,8 @@ struct _Efl_Ui_Check_Data
{
Eina_Bool *statep;
Eina_Bool selected;
+ Eina_Bool legacy_changed_emitted_unselect : 1;
+ Eina_Bool legacy_changed_emitted_select : 1;
};
/**
diff --git a/src/lib/elementary/efl_ui_collection.c b/src/lib/elementary/efl_ui_collection.c
index 2a666f2090..1763b65195 100644
--- a/src/lib/elementary/efl_ui_collection.c
+++ b/src/lib/elementary/efl_ui_collection.c
@@ -486,7 +486,7 @@ EOLIAN static void
_efl_ui_collection_efl_ui_multi_selectable_select_mode_set(Eo *obj EINA_UNUSED, Efl_Ui_Collection_Data *pd, Efl_Ui_Select_Mode mode)
{
pd->mode = mode;
- if ((mode == EFL_UI_SELECT_MODE_SINGLE_ALWAYS || mode == EFL_UI_SELECT_MODE_SINGLE) &&
+ if ((mode == EFL_UI_SELECT_MODE_SINGLE) &&
eina_list_count(pd->selected) > 0)
{
Efl_Ui_Item *last = eina_list_last_data_get(pd->selected);
@@ -569,7 +569,7 @@ _selection_changed(void *data, const Efl_Event *ev)
if (selection)
{
- if (pd->mode == EFL_UI_SELECT_MODE_SINGLE_ALWAYS || pd->mode == EFL_UI_SELECT_MODE_SINGLE)
+ if (pd->mode == EFL_UI_SELECT_MODE_SINGLE)
{
_single_selection_behaviour(obj, pd, ev->object);
}
diff --git a/src/lib/elementary/efl_ui_homogeneous_model.c b/src/lib/elementary/efl_ui_homogeneous_model.c
index 646c59020d..569091a600 100644
--- a/src/lib/elementary/efl_ui_homogeneous_model.c
+++ b/src/lib/elementary/efl_ui_homogeneous_model.c
@@ -35,7 +35,6 @@ _efl_ui_homogeneous_model_property_set(Eo *obj, Eina_Value *value,
return efl_loop_future_rejected(obj, EFL_MODEL_ERROR_INCORRECT_VALUE);
*defined = EINA_TRUE;
f = efl_loop_future_resolved(obj, *value);
- eina_value_free(value);
return f;
}
diff --git a/src/lib/elementary/efl_ui_image.c b/src/lib/elementary/efl_ui_image.c
index a5d683c42f..e2365857c8 100644
--- a/src/lib/elementary/efl_ui_image.c
+++ b/src/lib/elementary/efl_ui_image.c
@@ -1221,6 +1221,37 @@ _efl_ui_image_efl_layout_signal_signal_emit(Eo *obj EINA_UNUSED, Efl_Ui_Image_Da
edje_object_signal_emit(sd->img, emission, source);
}
+EOLIAN static void
+_efl_ui_image_efl_layout_signal_message_send(Eo *obj EINA_UNUSED, Efl_Ui_Image_Data *pd, int id, const Eina_Value msg)
+{
+ if (pd->edje)
+ efl_layout_signal_message_send(pd->img, id, msg);
+}
+
+EOLIAN static Eina_Bool
+_efl_ui_image_efl_layout_signal_signal_callback_add(Eo *obj EINA_UNUSED, Efl_Ui_Image_Data *pd, const char *emission, const char *source, void *func_data, EflLayoutSignalCb func, Eina_Free_Cb func_free_cb)
+{
+ if (pd->edje)
+ return efl_layout_signal_callback_add(pd->img, emission, source, func_data, func, func_free_cb);
+ return EINA_FALSE;
+}
+
+EOLIAN static Eina_Bool
+_efl_ui_image_efl_layout_signal_signal_callback_del(Eo *obj EINA_UNUSED, Efl_Ui_Image_Data *pd, const char *emission, const char *source, void *func_data, EflLayoutSignalCb func, Eina_Free_Cb func_free_cb)
+{
+ if (pd->edje)
+ return efl_layout_signal_callback_del(pd->img, emission, source, func_data, func, func_free_cb);
+ return EINA_FALSE;
+}
+
+EOLIAN static void
+_efl_ui_image_efl_layout_signal_signal_process(Eo *obj EINA_UNUSED, Efl_Ui_Image_Data *pd, Eina_Bool recurse)
+{
+ if (pd->edje)
+ efl_layout_signal_process(pd->img, recurse);
+}
+
+
EOLIAN static Eina_Size2D
_efl_ui_image_efl_layout_group_group_size_min_get(const Eo *obj EINA_UNUSED, Efl_Ui_Image_Data *sd)
{
diff --git a/src/lib/elementary/efl_ui_image.eo b/src/lib/elementary/efl_ui_image.eo
index 876d817858..0d3eeffa5a 100644
--- a/src/lib/elementary/efl_ui_image.eo
+++ b/src/lib/elementary/efl_ui_image.eo
@@ -83,6 +83,10 @@ class @beta Efl.Ui.Image extends Efl.Ui.Widget implements Efl.Input.Clickable, E
Efl.Player.playable { get; }
Efl.Player.play { get; set; }
Efl.Layout.Signal.signal_emit;
+ Efl.Layout.Signal.message_send;
+ Efl.Layout.Signal.signal_callback_add;
+ Efl.Layout.Signal.signal_callback_del;
+ Efl.Layout.Signal.signal_process;
Efl.Layout.Group.group_size_min { get; }
Efl.Layout.Group.group_size_max { get; }
Efl.Layout.Group.group_data { get; }
diff --git a/src/lib/elementary/efl_ui_image_zoomable.c b/src/lib/elementary/efl_ui_image_zoomable.c
index e748d61da6..8bd4a1cc45 100644
--- a/src/lib/elementary/efl_ui_image_zoomable.c
+++ b/src/lib/elementary/efl_ui_image_zoomable.c
@@ -12,6 +12,7 @@
#include "elm_priv.h"
#include "efl_ui_image_zoomable_private.h"
+#include "efl_ui_image_zoomable_pan.eo.h"
#define MY_PAN_CLASS EFL_UI_IMAGE_ZOOMABLE_PAN_CLASS
diff --git a/src/lib/elementary/efl_ui_internal_text_interactive.c b/src/lib/elementary/efl_ui_internal_text_interactive.c
index 9d7fdedf6f..f66f3b7656 100644
--- a/src/lib/elementary/efl_ui_internal_text_interactive.c
+++ b/src/lib/elementary/efl_ui_internal_text_interactive.c
@@ -2,7 +2,7 @@
# include "elementary_config.h"
#endif
-#include <Elementary.h>
+#include "elm_priv.h"
#include "efl_ui_internal_text_interactive.h"
#define MY_CLASS EFL_UI_INTERNAL_TEXT_INTERACTIVE_CLASS
diff --git a/src/lib/elementary/efl_ui_item.c b/src/lib/elementary/efl_ui_item.c
index bd6de1a28a..1b0c4f1a46 100644
--- a/src/lib/elementary/efl_ui_item.c
+++ b/src/lib/elementary/efl_ui_item.c
@@ -45,7 +45,7 @@ _item_select(Eo *obj, Efl_Ui_Item_Data *pd)
if (pd->container)
{
m = _fetch_state(pd->container);
- if (m == EFL_UI_SELECT_MODE_NONE || (pd->selected && m != EFL_UI_SELECT_MODE_SINGLE_ALWAYS))
+ if (m == EFL_UI_SELECT_MODE_NONE)
return;
}
else
@@ -95,7 +95,7 @@ _item_unpressed(void *data, const Efl_Event *ev EINA_UNUSED)
efl_layout_signal_emit(obj, "efl,state,unpressed", "efl");
m = _fetch_state(pd->container);
- if ((m != EFL_UI_SELECT_MODE_SINGLE_ALWAYS) && (pd->selected))
+ if (pd->selected)
efl_ui_selectable_selected_set(obj, EINA_FALSE);
else if (m != EFL_UI_SELECT_MODE_NONE)
efl_ui_selectable_selected_set(obj, EINA_TRUE);
diff --git a/src/lib/elementary/efl_ui_list_view.c b/src/lib/elementary/efl_ui_list_view.c
index 224f51a2fc..341396c58f 100644
--- a/src/lib/elementary/efl_ui_list_view.c
+++ b/src/lib/elementary/efl_ui_list_view.c
@@ -8,7 +8,7 @@
#define EFL_UI_FOCUS_COMPOSITION_PROTECTED
#define EFL_UI_WIDGET_FOCUS_MANAGER_PROTECTED
-#include <Elementary.h>
+#include "elm_priv.h"
#include "efl_ui_list_view_private.h"
#include "efl_ui_list_view_precise_layouter.eo.h"
diff --git a/src/lib/elementary/efl_ui_list_view_seg_array.c b/src/lib/elementary/efl_ui_list_view_seg_array.c
index 89dba53011..50f33b340b 100644
--- a/src/lib/elementary/efl_ui_list_view_seg_array.c
+++ b/src/lib/elementary/efl_ui_list_view_seg_array.c
@@ -2,7 +2,7 @@
# include "elementary_config.h"
#endif
-#include <Efl.h>
+#include "elm_priv.h"
#include <assert.h>
#include "efl_ui_list_view_private.h"
diff --git a/src/lib/elementary/efl_ui_multi_selectable.eo b/src/lib/elementary/efl_ui_multi_selectable.eo
index a13070842a..9b581357a1 100644
--- a/src/lib/elementary/efl_ui_multi_selectable.eo
+++ b/src/lib/elementary/efl_ui_multi_selectable.eo
@@ -2,8 +2,6 @@ enum @beta Efl.Ui.Select_Mode {
[[Type of multi selectable object.]]
single, [[Only single child is selected. If a child is selected,
previous selected child will be unselected.]]
- single_always, [[Same as single select except, this will be selected
- in every select call even if child is already been selected.]]
multi, [[Allow multiple selection of children.]]
none [[No child can be selected at all.]]
}
diff --git a/src/lib/elementary/efl_ui_position_manager_grid.c b/src/lib/elementary/efl_ui_position_manager_grid.c
index dc863d0d5f..fee0855ec6 100644
--- a/src/lib/elementary/efl_ui_position_manager_grid.c
+++ b/src/lib/elementary/efl_ui_position_manager_grid.c
@@ -766,7 +766,16 @@ _efl_ui_position_manager_grid_efl_ui_position_manager_entity_version(Eo *obj EIN
EOLIAN static void
_efl_ui_position_manager_grid_efl_ui_position_manager_data_access_v1_data_access_set(Eo *obj, Efl_Ui_Position_Manager_Grid_Data *pd, void *obj_access_data, Efl_Ui_Position_Manager_Object_Batch_Callback obj_access, Eina_Free_Cb obj_access_free_cb, void *size_access_data, Efl_Ui_Position_Manager_Size_Batch_Callback size_access, Eina_Free_Cb size_access_free_cb, int size)
{
+ // Cleanup cache first
_group_cache_invalidate(obj, pd);
+
+ // Clean callback if they were set
+ if (pd->callbacks.object.free_cb)
+ pd->callbacks.object.free_cb(pd->callbacks.object.data);
+ if (pd->callbacks.size.free_cb)
+ pd->callbacks.size.free_cb(pd->callbacks.size.data);
+
+ // Set them
pd->callbacks.object.data = obj_access_data;
pd->callbacks.object.access = obj_access;
pd->callbacks.object.free_cb = obj_access_free_cb;
@@ -779,6 +788,15 @@ _efl_ui_position_manager_grid_efl_ui_position_manager_data_access_v1_data_access
}
+EOLIAN static void
+_efl_ui_position_manager_grid_efl_object_invalidate(Eo *obj,
+ Efl_Ui_Position_Manager_Grid_Data *pd EINA_UNUSED)
+{
+ efl_ui_position_manager_data_access_v1_data_access_set(obj, NULL, NULL, NULL, NULL, NULL, NULL, 0);
+
+ efl_invalidate(efl_super(obj, EFL_UI_POSITION_MANAGER_GRID_CLASS));
+}
+
EOLIAN static Efl_Object*
_efl_ui_position_manager_grid_efl_object_finalize(Eo *obj, Efl_Ui_Position_Manager_Grid_Data *pd)
{
diff --git a/src/lib/elementary/efl_ui_position_manager_grid.eo b/src/lib/elementary/efl_ui_position_manager_grid.eo
index 0af0270545..91deee348e 100644
--- a/src/lib/elementary/efl_ui_position_manager_grid.eo
+++ b/src/lib/elementary/efl_ui_position_manager_grid.eo
@@ -18,5 +18,6 @@ class @beta Efl.Ui.Position_Manager.Grid extends Efl.Object
Efl.Ui.Layout_Orientable.orientation {set; get;}
Efl.Ui.Position_Manager.Data_Access_V1.data_access {set;}
Efl.Object.finalize;
+ Efl.Object.invalidate;
}
}
diff --git a/src/lib/elementary/efl_ui_position_manager_list.c b/src/lib/elementary/efl_ui_position_manager_list.c
index 5a159f308c..706fce768b 100644
--- a/src/lib/elementary/efl_ui_position_manager_list.c
+++ b/src/lib/elementary/efl_ui_position_manager_list.c
@@ -480,12 +480,14 @@ _efl_ui_position_manager_list_efl_ui_layout_orientable_orientation_get(const Eo
}
EOLIAN static void
-_efl_ui_position_manager_list_efl_object_destructor(Eo *obj, Efl_Ui_Position_Manager_List_Data *pd)
+_efl_ui_position_manager_list_efl_object_invalidate(Eo *obj, Efl_Ui_Position_Manager_List_Data *pd)
{
if (pd->rebuild_absolut_size)
eina_future_cancel(pd->rebuild_absolut_size);
- efl_destructor(efl_super(obj, MY_CLASS));
+ efl_ui_position_manager_data_access_v1_data_access_set(obj, NULL, NULL, NULL, NULL, NULL, NULL, 0);
+
+ efl_invalidate(efl_super(obj, MY_CLASS));
}
EOLIAN static int
@@ -524,7 +526,16 @@ _efl_ui_position_manager_list_efl_ui_position_manager_entity_version(Eo *obj EIN
EOLIAN static void
_efl_ui_position_manager_list_efl_ui_position_manager_data_access_v1_data_access_set(Eo *obj, Efl_Ui_Position_Manager_List_Data *pd, void *obj_access_data, Efl_Ui_Position_Manager_Object_Batch_Callback obj_access, Eina_Free_Cb obj_access_free_cb, void *size_access_data, Efl_Ui_Position_Manager_Size_Batch_Callback size_access, Eina_Free_Cb size_access_free_cb, int size)
{
+ // Cleanup cache first
cache_invalidate(obj, pd);
+
+ // Clean callback if they were set
+ if (pd->callbacks.object.free_cb)
+ pd->callbacks.object.free_cb(pd->callbacks.object.data);
+ if (pd->callbacks.size.free_cb)
+ pd->callbacks.size.free_cb(pd->callbacks.size.data);
+
+ // Set them
pd->callbacks.object.data = obj_access_data;
pd->callbacks.object.access = obj_access;
pd->callbacks.object.free_cb = obj_access_free_cb;
diff --git a/src/lib/elementary/efl_ui_position_manager_list.eo b/src/lib/elementary/efl_ui_position_manager_list.eo
index 0f66b0a282..3d80b201d4 100644
--- a/src/lib/elementary/efl_ui_position_manager_list.eo
+++ b/src/lib/elementary/efl_ui_position_manager_list.eo
@@ -8,7 +8,7 @@ class @beta Efl.Ui.Position_Manager.List extends Efl.Object
the layout of all items. This supports the vertical and horizontal orientation.
]]
implements {
- Efl.Object.destructor;
+ Efl.Object.invalidate;
Efl.Ui.Position_Manager.Entity.version;
Efl.Ui.Position_Manager.Entity.viewport {set;}
Efl.Ui.Position_Manager.Entity.scroll_position {set;}
diff --git a/src/lib/elementary/efl_ui_radio_box.c b/src/lib/elementary/efl_ui_radio_box.c
index 92918ea7eb..1e18f0f5fc 100644
--- a/src/lib/elementary/efl_ui_radio_box.c
+++ b/src/lib/elementary/efl_ui_radio_box.c
@@ -2,7 +2,6 @@
# include "elementary_config.h"
#endif
-#include <Elementary.h>
#include "elm_priv.h"
#define MY_CLASS EFL_UI_RADIO_BOX_CLASS
@@ -13,10 +12,10 @@ typedef struct {
} Efl_Ui_Radio_Box_Data;
static inline Eina_Bool
-register_safe_in_group_begin(Eo *subobj, Efl_Ui_Radio_Box_Data *pd)
+register_safe_in_group_begin(Eo *subobj, Efl_Ui_Radio_Box_Data *pd, Eina_Bool is_radio)
{
- EINA_SAFETY_ON_FALSE_RETURN_VAL(efl_isa(subobj, EFL_UI_RADIO_CLASS), EINA_FALSE);
- if (!pd->in_pack)
+ if (pd->in_pack) return EINA_TRUE;
+ if (is_radio)
efl_ui_radio_group_register(pd->group, subobj);
pd->in_pack = EINA_TRUE;
@@ -24,9 +23,9 @@ register_safe_in_group_begin(Eo *subobj, Efl_Ui_Radio_Box_Data *pd)
}
static inline Eina_Bool
-register_safe_group_end(Eo *subobj, Efl_Ui_Radio_Box_Data *pd, Eina_Bool result)
+register_safe_group_end(Eo *subobj, Efl_Ui_Radio_Box_Data *pd, Eina_Bool is_radio, Eina_Bool result)
{
- if (!result)
+ if (is_radio && (!result))
efl_ui_radio_group_unregister(pd->group, subobj);
pd->in_pack = EINA_FALSE;
@@ -34,11 +33,11 @@ register_safe_group_end(Eo *subobj, Efl_Ui_Radio_Box_Data *pd, Eina_Bool result)
}
#define REGISTER_SAFE(f) \
- Eina_Bool result; \
- if (!register_safe_in_group_begin(subobj, pd)) \
+ Eina_Bool result, is_radio = efl_isa(subobj, EFL_UI_RADIO_CLASS); \
+ if (!register_safe_in_group_begin(subobj, pd, is_radio)) \
return EINA_FALSE; \
result = f ; \
- return register_safe_group_end(subobj, pd, result);
+ return register_safe_group_end(subobj, pd, is_radio, result);
static void
unpack_from_logical(Eo *obj, Efl_Ui_Radio_Box_Data *pd)
diff --git a/src/lib/elementary/efl_ui_radio_box.eo b/src/lib/elementary/efl_ui_radio_box.eo
index 54bd92e3df..15f6b3ee13 100644
--- a/src/lib/elementary/efl_ui_radio_box.eo
+++ b/src/lib/elementary/efl_ui_radio_box.eo
@@ -2,7 +2,7 @@ class @beta Efl.Ui.Radio_Box extends Efl.Ui.Box implements Efl.Ui.Radio_Group
composite Efl.Ui.Radio_Group
{
[[A standard @Efl.Ui.Box container which automatically handles grouping of any @Efl.Ui.Radio
- widget added to it.
+ widget added to it in addition to regular widgets.
All @Efl.Ui.Radio widgets are added to the same internal group which you only indirectly
access through this object.
diff --git a/src/lib/elementary/efl_ui_video.c b/src/lib/elementary/efl_ui_video.c
index ccee479500..dc3696a9af 100644
--- a/src/lib/elementary/efl_ui_video.c
+++ b/src/lib/elementary/efl_ui_video.c
@@ -2,16 +2,13 @@
# include "elementary_config.h"
#endif
-#include <Emotion.h>
-
#define EFL_ACCESS_OBJECT_PROTECTED
#define EFL_ACCESS_WIDGET_ACTION_PROTECTED
-#include <Elementary.h>
+#include "elm_priv.h"
#include "elm_widget_layout.h"
#include "efl_ui_video_private.h"
-#include "elm_priv.h"
/* TODO: add buffering support to Emotion and display buffering
* progress in the theme when needed */
diff --git a/src/lib/elementary/efl_ui_widget_factory.c b/src/lib/elementary/efl_ui_widget_factory.c
index 0579dc4a51..c9d5759744 100644
--- a/src/lib/elementary/efl_ui_widget_factory.c
+++ b/src/lib/elementary/efl_ui_widget_factory.c
@@ -186,7 +186,11 @@ _efl_ui_widget_factory_efl_ui_factory_create(Eo *obj, Efl_Ui_Widget_Factory_Data
r->factory = efl_ref(obj);
f = calloc(count + 1, sizeof (Eina_Future *));
- if (!f) return efl_loop_future_rejected(obj, ENOMEM);
+ if (!f)
+ {
+ free(r);
+ return efl_loop_future_rejected(obj, ENOMEM);
+ }
EINA_ITERATOR_FOREACH(models, model)
{
@@ -195,7 +199,11 @@ _efl_ui_widget_factory_efl_ui_factory_create(Eo *obj, Efl_Ui_Widget_Factory_Data
.free = _efl_ui_widget_factory_single_cleanup);
f = realloc(f, (count + 1) * sizeof (Eina_Future *));
- if (!f) return efl_loop_future_rejected(obj, ENOMEM);
+ if (!f)
+ {
+ free(r);
+ return efl_loop_future_rejected(obj, ENOMEM);
+ }
}
eina_iterator_free(models);
diff --git a/src/lib/elementary/efl_ui_widget_part_bg.eo b/src/lib/elementary/efl_ui_widget_part_bg.eo
index 722cfb1748..8e0612ec87 100644
--- a/src/lib/elementary/efl_ui_widget_part_bg.eo
+++ b/src/lib/elementary/efl_ui_widget_part_bg.eo
@@ -1,6 +1,12 @@
class @beta Efl.Ui.Widget_Part_Bg extends Efl.Ui.Widget_Part implements Efl.File, Efl.Gfx.Color, Efl.Gfx.Image
{
- [[Elementary widget internal part background class]]
+ [[Elementary widget internal part background class
+
+ This part will proxy the calls on it to the @Efl.Ui.Bg internal object of this widget.
+ This internal object is stacked below the @Efl.Ui.Widget.resize_object and co-located with the widget.
+
+ All @Efl.Ui.Widget objects have this part, allowing the background of the widget to be customized.
+ ]]
data: null;
implements {
Efl.File.file { get; set; }
diff --git a/src/lib/elementary/efl_ui_win.c b/src/lib/elementary/efl_ui_win.c
index 4e49447ad1..68ab6bfd0c 100644
--- a/src/lib/elementary/efl_ui_win.c
+++ b/src/lib/elementary/efl_ui_win.c
@@ -9472,3 +9472,15 @@ efl_ui_win_shared_data_get(Efl_Ui_Win *obj)
return &pd->spd;
}
+
+EAPI void
+efl_ui_win_autodel_set(Efl_Ui_Win *obj, Eina_Bool autodel)
+{
+ elm_win_autodel_set(obj, autodel);
+}
+
+EAPI Eina_Bool
+efl_ui_win_autodel_get(const Efl_Ui_Win *obj)
+{
+ return elm_win_autodel_get(obj);
+}
diff --git a/src/lib/elementary/elm_atspi_app_object.c b/src/lib/elementary/elm_atspi_app_object.c
index e1ef62ac91..cc68cf0492 100644
--- a/src/lib/elementary/elm_atspi_app_object.c
+++ b/src/lib/elementary/elm_atspi_app_object.c
@@ -4,8 +4,6 @@
#define EFL_ACCESS_OBJECT_PROTECTED
-#include <Elementary.h>
-#include "elm_widget.h"
#include "elm_priv.h"
extern Eina_List *_elm_win_list;
diff --git a/src/lib/elementary/elm_calendar.h b/src/lib/elementary/elm_calendar.h
index ea95fb7207..9901f64154 100644
--- a/src/lib/elementary/elm_calendar.h
+++ b/src/lib/elementary/elm_calendar.h
@@ -50,6 +50,7 @@
#include "elm_calendar_common.h"
#ifndef EFL_NOLEGACY_API_SUPPORT
+#include "elm_calendar_eo.legacy.h"
#include "elm_calendar_legacy.h"
#endif
/**
diff --git a/src/lib/elementary/elm_config.c b/src/lib/elementary/elm_config.c
index 0e25747d0f..bbc6b9f668 100644
--- a/src/lib/elementary/elm_config.c
+++ b/src/lib/elementary/elm_config.c
@@ -1733,6 +1733,11 @@ _config_system_load(void)
EINA_SAFETY_ON_FALSE_RETURN_VAL(eet_data_undump(ef, "config", embedded_config, strlen(embedded_config)-1, EINA_FALSE), NULL);
eet_close(ef);
ef = eet_open(tmp, EET_FILE_MODE_READ);
+ if (!ef)
+ {
+ ERR("Failed to load a fallback config file.");
+ return NULL;
+ }
cfg = eet_data_read(ef, _config_edd, "config");
eet_close(ef);
}
diff --git a/src/lib/elementary/elm_datetime.h b/src/lib/elementary/elm_datetime.h
index cc47da298d..73855925e1 100644
--- a/src/lib/elementary/elm_datetime.h
+++ b/src/lib/elementary/elm_datetime.h
@@ -204,6 +204,7 @@
#ifndef _ELM_DATE_TIME_H
#define _ELM_DATE_TIME_H
+#include <elm_clock_eo.h>
typedef enum
{
ELM_DATETIME_YEAR = 0, /**< Indicates Year field. */
@@ -462,7 +463,7 @@ EAPI Eina_Bool elm_datetime_value_max_set(Evas_Object *obj, const Efl_Time *maxt
*/
EAPI Eina_Bool elm_datetime_value_max_get(const Evas_Object *obj, Efl_Time *maxtime);
-#define ELM_DATETIME_EVENT_CHANGED EFL_UI_CLOCK_EVENT_CHANGED
+#define ELM_DATETIME_EVENT_CHANGED ELM_CLOCK_EVENT_CHANGED
#endif
/**
diff --git a/src/lib/elementary/elm_general.h b/src/lib/elementary/elm_general.h
index 6cbfb2ec1b..8bc0ba695a 100644
--- a/src/lib/elementary/elm_general.h
+++ b/src/lib/elementary/elm_general.h
@@ -1,3 +1,5 @@
+#ifndef _ELM_GENERAL_H
+#define _ELM_GENERAL_H
/**
* @defgroup Elm_General General
* @ingroup Elementary
@@ -821,3 +823,4 @@ typedef enum
/**
* @}
*/
+#endif
diff --git a/src/lib/elementary/elm_interface_scrollable.h b/src/lib/elementary/elm_interface_scrollable.h
index a9ee778c8d..93a5f66dcd 100644
--- a/src/lib/elementary/elm_interface_scrollable.h
+++ b/src/lib/elementary/elm_interface_scrollable.h
@@ -31,9 +31,8 @@
* Elm_Scrollable_Smart_Interface::extern_pan_set.
*/
-#ifndef EFL_NOLEGACY_API_SUPPORT
-#include "elm_pan_eo.legacy.h"
-#endif
+#include <elm_pan_eo.legacy.h>
+#include <elm_scroller.h>
/**
* Elementary scroller panning base smart data.
@@ -75,7 +74,7 @@ struct _Elm_Scrollable_Smart_Interface_Data
Elm_Scroller_Policy hbar_flags, vbar_flags;
Elm_Scroller_Single_Direction one_direction_at_a_time;
- Efl_Ui_Layout_Orientation block;
+ Elm_Scroller_Movement_Block block;
struct
{
@@ -229,7 +228,7 @@ struct _Elm_Scrollable_Smart_Interface_Data
Eina_Bool loop_h : 1;
Eina_Bool loop_v : 1;
- Efl_Ui_Focus_Manager *manager;
+ void *manager; /* Efl_Ui_Focus_Manager */
};
#define ELM_SCROLLABLE_CHECK(obj, ...) \
diff --git a/src/lib/elementary/elm_priv.h b/src/lib/elementary/elm_priv.h
index a4b1a35735..86f4066810 100644
--- a/src/lib/elementary/elm_priv.h
+++ b/src/lib/elementary/elm_priv.h
@@ -24,6 +24,7 @@
// Evas internal EO APIs
# include "Evas.h"
# include "Evas_Internal.h"
+# include "Emotion.h"
#include "Elementary.h"
#include "Efl_Ui.h"
@@ -153,16 +154,7 @@
#include "elm_widget_item_static_focus_eo.h"
#include "elm_win_eo.h"
-# include "efl_ui_focus_parent_provider.eo.h"
-# include "efl_ui_widget_focus_manager.eo.h"
-# include "efl_ui_focus_parent_provider_standard.eo.h"
-# include "elm_widget_item_static_focus_eo.h"
-# include "efl_ui_selection_manager.eo.h"
-# include "efl_datetime_manager.eo.h"
-# include "efl_ui_size_model.eo.h"
-# include "efl_ui_homogeneous_model.eo.h"
-# include "efl_ui_exact_model.eo.h"
-# include "efl_ui_average_model.eo.h"
+
#include "efl_ui_layout_legacy_eo.h"
extern const char *_efl_model_property_itemw;
diff --git a/src/lib/elementary/elm_scroller_legacy.h b/src/lib/elementary/elm_scroller_legacy.h
index b1ec21d223..76748986c4 100644
--- a/src/lib/elementary/elm_scroller_legacy.h
+++ b/src/lib/elementary/elm_scroller_legacy.h
@@ -1,3 +1,5 @@
+#ifndef _ELM_SCROLLER_LEGACY_H
+#define _ELM_SCROLLER_LEGACY_H
#ifndef _ELM_INTERFACE_SCROLLABLE_EO_TYPES
#define _ELM_INTERFACE_SCROLLABLE_EO_TYPES
@@ -637,3 +639,4 @@ EAPI void elm_scroller_propagate_events_set(Evas_Object *obj, Eina_Bool propagat
* @ingroup Elm_Scroller
*/
EAPI Eina_Bool elm_scroller_propagate_events_get(const Evas_Object *obj);
+#endif
diff --git a/src/lib/elementary/elm_widget.h b/src/lib/elementary/elm_widget.h
index cda2196067..7afc2d218b 100644
--- a/src/lib/elementary/elm_widget.h
+++ b/src/lib/elementary/elm_widget.h
@@ -298,6 +298,11 @@
*/
#include "elm_object_item.h"
+#include "efl_ui.eot.h"
+typedef Eo Efl_Ui_Focus_Manager;
+#define _EFL_UI_FOCUS_MANAGER_EO_CLASS_TYPE
+#include "efl_ui_focus_object.eo.h"
+#include "efl_ui_focus_manager.eo.h"
typedef Eina_Bool (*Elm_Widget_Del_Pre_Cb)(void *data);
typedef void (*Elm_Widget_Item_Signal_Cb)(void *data, Elm_Object_Item *item, const char *emission, const char *source);
diff --git a/src/lib/elementary/elm_win_eo.h b/src/lib/elementary/elm_win_eo.h
index 39ec8eb4b1..6643fc59bb 100644
--- a/src/lib/elementary/elm_win_eo.h
+++ b/src/lib/elementary/elm_win_eo.h
@@ -11,55 +11,11 @@
EAPI void elm_win_autodel_set(Evas_Object *obj, Eina_Bool autodel);
EAPI Eina_Bool elm_win_autodel_get(const Evas_Object *obj);
-#ifdef EFL_BETA_API_SUPPORT
-/**
- * @brief Set the window's autodel state.
- *
- * When closing the window in any way outside of the program control, like
- * pressing the X button in the titlebar or using a command from the Window
- * Manager, a "delete,request" signal is emitted to indicate that this event
- * occurred and the developer can take any action, which may include, or not,
- * destroying the window object.
- *
- * When the @c autodel parameter is set, the window will be automatically
- * destroyed when this event occurs, after the signal is emitted. If @c autodel
- * is @c false, then the window will not be destroyed and is up to the program
- * to do so when it's required.
- *
- * @param[in] obj The object.
- * @param[in] autodel If @c true, the window will automatically delete itself
- * when closed.
- *
- * Note: This function is only available in C.
- *
- * @ingroup Efl_Ui_Win
- */
-static inline void
-efl_ui_win_autodel_set(Efl_Ui_Win *obj, Eina_Bool autodel)
-{
- elm_win_autodel_set(obj, autodel);
-}
-/**
- * @brief Get the window's autodel state.
- *
- * @param[in] obj The object.
- *
- * @return If @c true, the window will automatically delete itself when closed.
- *
- * Note: This function is only available in C.
- *
- * @ingroup Efl_Ui_Win
- */
-static inline Eina_Bool
-efl_ui_win_autodel_get(const Efl_Ui_Win *obj)
-{
- return elm_win_autodel_get(obj);
-}
+
/**
* @}
*/
-#endif
#endif
diff --git a/src/lib/elementary/meson.build b/src/lib/elementary/meson.build
index 9af4f6e1b4..bb3b134b7f 100644
--- a/src/lib/elementary/meson.build
+++ b/src/lib/elementary/meson.build
@@ -427,11 +427,11 @@ elementary_pub_headers = [
'elm_calendar.h',
'elm_calendar_legacy.h',
'elm_calendar_common.h',
- 'efl_ui_calendar.h',
'elm_check.h',
'efl_ui_check_eo.h',
'elm_check_legacy.h',
'elm_clock.h',
+ 'elm_clock_eo.h',
'elm_clock_legacy.h',
'elm_cnp.h',
'elm_colorselector.h',