2017-11-14 20:11:39 -08:00
|
|
|
#ifndef _EFL_UI_H
|
|
|
|
#define _EFL_UI_H
|
2017-11-14 20:08:09 -08:00
|
|
|
|
|
|
|
#include <Efl_Config.h>
|
|
|
|
#include <Elementary_Options.h>
|
|
|
|
|
|
|
|
/* Standard headers for standard system calls etc. */
|
|
|
|
#include <stdio.h>
|
|
|
|
#include <stdlib.h>
|
|
|
|
#include <unistd.h>
|
|
|
|
#include <string.h>
|
|
|
|
#include <sys/types.h>
|
|
|
|
#include <sys/stat.h>
|
|
|
|
#include <sys/time.h>
|
|
|
|
#include <sys/param.h>
|
|
|
|
#include <math.h>
|
|
|
|
#include <fnmatch.h>
|
|
|
|
#include <limits.h>
|
|
|
|
#include <ctype.h>
|
|
|
|
#include <time.h>
|
|
|
|
#ifdef ELM_DIRENT_H
|
|
|
|
#include <dirent.h>
|
|
|
|
#endif
|
2019-07-28 01:27:27 -07:00
|
|
|
#ifndef _WIN32
|
|
|
|
# include <pwd.h>
|
|
|
|
#endif
|
2017-11-14 20:08:09 -08:00
|
|
|
#include <errno.h>
|
|
|
|
|
|
|
|
#ifdef ELM_UNIX
|
|
|
|
#include <locale.h>
|
|
|
|
#ifdef ELM_LIBINTL_H
|
|
|
|
#include <libintl.h>
|
|
|
|
#endif
|
|
|
|
#include <signal.h>
|
|
|
|
#include <grp.h>
|
|
|
|
#include <glob.h>
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef ELM_ALLOCA_H
|
|
|
|
#include <alloca.h>
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef ELM_WIN32
|
|
|
|
#include <malloc.h>
|
|
|
|
#ifndef alloca
|
|
|
|
#define alloca _alloca
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#include <Eina.h>
|
|
|
|
#include <Eo.h>
|
|
|
|
#include <Efl.h>
|
|
|
|
|
|
|
|
#ifdef _WIN32
|
|
|
|
# define WIN32_LEAN_AND_MEAN
|
|
|
|
# include <winsock2.h>
|
|
|
|
# undef WIN32_LEAN_AND_MEAN
|
|
|
|
#elif defined (__FreeBSD__) || defined (__OpenBSD__)
|
|
|
|
# include <sys/select.h>
|
|
|
|
# include <signal.h>
|
|
|
|
#elif defined (__ANDROID__)
|
|
|
|
# include <sys/select.h>
|
|
|
|
#elif defined (__sun)
|
|
|
|
# include <sys/siginfo.h>
|
|
|
|
#else
|
|
|
|
# include <sys/time.h>
|
|
|
|
# if !defined (EXOTIC_NO_SIGNAL)
|
|
|
|
# include <signal.h>
|
|
|
|
# endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#include <sys/types.h>
|
|
|
|
|
|
|
|
#define __EFL_UI_IS_REQUIRED
|
|
|
|
|
2017-11-14 20:14:01 -08:00
|
|
|
#include <Efl_Core.h>
|
2017-11-14 20:08:09 -08:00
|
|
|
#include <Efl_Net.h>
|
|
|
|
|
|
|
|
#include <Evas.h>
|
2018-02-26 11:47:25 -08:00
|
|
|
#ifndef EFL_NOLEGACY_API_SUPPORT
|
|
|
|
# include <Evas_GL.h>
|
|
|
|
#endif
|
2017-11-14 20:08:09 -08:00
|
|
|
#include <Eio.h>
|
|
|
|
#include <Edje.h>
|
|
|
|
#include <Eldbus.h>
|
|
|
|
#include <Efreet.h>
|
|
|
|
#include <Efreet_Mime.h>
|
|
|
|
#include <Efreet_Trash.h>
|
|
|
|
#include <Ethumb_Client.h>
|
|
|
|
|
|
|
|
#ifdef ELM_ELOCATION
|
|
|
|
#include <Elocation.h>
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef ELM_EMAP
|
|
|
|
#include <EMap.h>
|
|
|
|
#endif
|
|
|
|
|
2019-04-15 03:53:42 -07:00
|
|
|
#ifdef EAPI
|
|
|
|
# undef EAPI
|
|
|
|
#endif
|
|
|
|
#ifdef EWAPI
|
|
|
|
# undef EWAPI
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef _WIN32
|
|
|
|
# ifdef EFL_BUILD
|
|
|
|
# ifdef DLL_EXPORT
|
|
|
|
# define EAPI __declspec(dllexport)
|
|
|
|
# else
|
|
|
|
# define EAPI
|
|
|
|
# endif
|
|
|
|
# else
|
|
|
|
# define EAPI __declspec(dllimport)
|
|
|
|
# endif
|
|
|
|
# define EAPI_WEAK
|
|
|
|
#else
|
|
|
|
# ifdef __GNUC__
|
|
|
|
# if __GNUC__ >= 4
|
|
|
|
# define EAPI __attribute__ ((visibility("default")))
|
|
|
|
# define EAPI_WEAK __attribute__ ((weak))
|
|
|
|
# else
|
|
|
|
# define EAPI
|
|
|
|
# define EAPI_WEAK
|
|
|
|
# endif
|
|
|
|
# else
|
|
|
|
# define EAPI
|
|
|
|
# define EAPI_WEAK
|
|
|
|
# endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#define EWAPI EAPI EAPI_WEAK
|
|
|
|
|
2017-11-14 20:08:09 -08:00
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
|
|
|
|
|
|
|
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"
|
2018-12-21 13:46:06 -08:00
|
|
|
#include "efl_ui_selection_types.eot.h"
|
2017-11-14 20:08:09 -08:00
|
|
|
|
2018-01-16 12:17:11 -08:00
|
|
|
//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
|
|
|
|
|
2017-11-14 20:08:09 -08:00
|
|
|
# include <efl_ui_focus_object.eo.h>
|
|
|
|
# include <efl_ui_focus_manager.eo.h>
|
2019-03-14 11:26:30 -07:00
|
|
|
# ifdef EFL_BETA_API_SUPPORT
|
2019-01-29 11:04:23 -08:00
|
|
|
EAPI void efl_ui_focus_relation_free(Efl_Ui_Focus_Relations *rel);
|
2019-03-14 11:26:30 -07:00
|
|
|
# endif
|
2019-05-28 09:01:50 -07:00
|
|
|
# include <efl_ui_focus_manager_window_root.eo.h>
|
2017-11-14 20:08:09 -08:00
|
|
|
# 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>
|
2018-01-16 12:17:11 -08:00
|
|
|
# include <efl_ui_focus_util.eo.h>
|
2017-11-14 20:08:09 -08:00
|
|
|
# include <efl_ui_textpath.eo.h>
|
2018-12-21 14:46:10 -08:00
|
|
|
# include <efl_ui_l10n.eo.h>
|
2017-11-14 20:08:09 -08:00
|
|
|
# include <efl_ui_focus_composition.eo.h>
|
|
|
|
# include <efl_ui_focus_layer.eo.h>
|
2018-04-03 04:27:30 -07:00
|
|
|
# include <efl_access_object.h>
|
2017-11-14 20:08:09 -08:00
|
|
|
# include <efl_access_text.h>
|
|
|
|
# include <efl_access_window.h>
|
|
|
|
|
|
|
|
# include <efl_access_action.eo.h>
|
|
|
|
# include <efl_access_component.eo.h>
|
|
|
|
# include <efl_access_editable_text.eo.h>
|
|
|
|
# include <efl_access_selection.eo.h>
|
|
|
|
# include <efl_access_value.eo.h>
|
|
|
|
|
2018-11-19 20:56:37 -08:00
|
|
|
# include <efl_ui_theme.eo.h>
|
2017-11-14 20:08:09 -08:00
|
|
|
# include <efl_config_global.eo.h>
|
2019-02-27 10:29:08 -08:00
|
|
|
# include <efl_ui_widget.eo.h>
|
2019-08-20 10:11:21 -07:00
|
|
|
# include <efl_ui_widget_scrollable_content.eo.h>
|
2019-02-27 10:29:08 -08:00
|
|
|
# include <efl_ui_widget_common.h>
|
2017-11-14 20:08:09 -08:00
|
|
|
# include <efl_ui_widget_part.eo.h>
|
2019-02-27 10:17:16 -08:00
|
|
|
# include <efl_ui_layout_base.eo.h>
|
2019-01-29 09:47:41 -08:00
|
|
|
# include <efl_ui_layout.eo.h>
|
2017-11-14 20:08:09 -08:00
|
|
|
# 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_text.eo.h>
|
|
|
|
# include <efl_ui_layout_part_table.eo.h>
|
2019-06-28 05:47:41 -07:00
|
|
|
# include <efl_ui_item.eo.h>
|
2019-08-16 00:05:24 -07:00
|
|
|
# include <efl_ui_default_item.eo.h>
|
2019-08-15 23:46:00 -07:00
|
|
|
# include <efl_ui_group_item.eo.h>
|
2017-11-14 20:08:09 -08:00
|
|
|
# include <efl_ui_win_part.eo.h>
|
2017-12-17 20:55:25 -08:00
|
|
|
# include <efl_ui_bg.eo.h>
|
2017-11-14 20:08:09 -08:00
|
|
|
# include <efl_ui_box.eo.h>
|
|
|
|
# include <efl_ui_box_flow.eo.h>
|
|
|
|
# include <efl_ui_box_stack.eo.h>
|
2017-12-18 21:13:58 -08:00
|
|
|
# include <efl_ui_table.eo.h>
|
|
|
|
# include <efl_ui_table_static.eo.h>
|
2017-11-14 20:08:09 -08:00
|
|
|
# include <efl_ui_image.eo.h>
|
|
|
|
# include <efl_ui_win.eo.h>
|
2019-03-07 07:58:15 -08:00
|
|
|
/* FIXME: what the actual fuck. */
|
2019-09-16 11:57:49 -07:00
|
|
|
#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
|
2017-11-14 20:08:09 -08:00
|
|
|
# include <efl_ui_win_inlined.eo.h>
|
|
|
|
# include <efl_ui_win_socket.eo.h>
|
2019-02-22 02:47:47 -08:00
|
|
|
# include <efl_ui_relative_layout.eo.h>
|
2018-02-06 04:23:45 -08:00
|
|
|
|
|
|
|
/* FIXME: Efl.Ui.Text must not use elm_general.h */
|
2019-03-07 07:58:15 -08:00
|
|
|
// no.
|
|
|
|
//# warning Efl.Ui.Text is not available yet without Elementary.h
|
2018-02-06 04:23:45 -08:00
|
|
|
# if 0
|
2017-11-14 20:08:09 -08:00
|
|
|
# include <efl_ui_text_interactive.eo.h>
|
|
|
|
# include <efl_ui_text.eo.h>
|
|
|
|
# include <efl_ui_text_editable.eo.h>
|
|
|
|
# include <efl_ui_text_async.eo.h>
|
2018-02-06 04:23:45 -08:00
|
|
|
# endif
|
|
|
|
|
efl_ui_animation_view: introduce a new widget for controlling vector animation.
Summary:
This is a new convenient ui control that designed to load vector resources
-svg, json-, and control animations if it supports.
Please turn on evas-loaders-json in meson options,
if you'd like to use Lottie Animation.
Co-authored-by: JunsuChoi <jsuya.choi@samsung.com>
@feature
Reviewers: #committers, jsuya, zmike, bu5hm4n
Reviewed By: #committers, bu5hm4n
Subscribers: zmike, bu5hm4n, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9451
2019-08-21 01:39:43 -07:00
|
|
|
# include <efl_ui_animation_view.h>
|
2017-11-14 20:08:09 -08:00
|
|
|
# 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>
|
2018-05-14 22:16:00 -07:00
|
|
|
|
2018-12-06 16:38:47 -08:00
|
|
|
# include "efl_ui_caching_factory.eo.h"
|
2019-01-18 17:58:39 -08:00
|
|
|
# include "efl_ui_widget_factory.eo.h"
|
2018-12-06 16:38:47 -08:00
|
|
|
|
2018-05-14 22:16:00 -07:00
|
|
|
/* FIXME: Multibuttonentry must not use elm_widget_item */
|
2019-01-30 10:44:45 -08:00
|
|
|
|
|
|
|
# include <efl_ui_tags.eo.h>
|
2018-05-14 22:16:00 -07:00
|
|
|
|
2017-11-14 20:08:09 -08:00
|
|
|
# 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>
|
2019-03-07 07:58:15 -08:00
|
|
|
# include <efl_ui_panes_part.eo.h>
|
2017-11-14 20:08:09 -08:00
|
|
|
|
2019-07-04 16:02:43 -07:00
|
|
|
#define _EFL_UI_SPOTLIGHT_MANAGEREO_EO_CLASS_TYPE
|
|
|
|
typedef Eo Efl_Ui_Spotlight_Manager;
|
|
|
|
#define _EFL_UI_SPOTLIGHT_INDICATOR_EO_CLASS_TYPE
|
|
|
|
typedef Eo Efl_Ui_Spotlight_Indicator;
|
|
|
|
|
|
|
|
# include <efl_ui_spotlight_container.eo.h>
|
|
|
|
# include <efl_ui_spotlight_manager.eo.h>
|
|
|
|
# include <efl_ui_spotlight_indicator.eo.h>
|
|
|
|
# include <efl_ui_spotlight_indicator_icon.eo.h>
|
|
|
|
# include <efl_ui_spotlight_manager_scroll.eo.h>
|
|
|
|
# include <efl_ui_spotlight_manager_stack.eo.h>
|
|
|
|
# include <efl_ui_spotlight_util.eo.h>
|
2019-04-28 03:28:55 -07:00
|
|
|
|
2019-03-11 22:39:06 -07:00
|
|
|
# include <efl_ui_navigation_bar.eo.h>
|
|
|
|
# include <efl_ui_navigation_bar_part.eo.h>
|
|
|
|
# include <efl_ui_navigation_bar_part_back_button.eo.h>
|
|
|
|
# include <efl_ui_navigation_layout.eo.h>
|
2019-08-01 22:03:38 -07:00
|
|
|
# include <efl_ui_action_connector.eo.h>
|
Efl.Ui.Format revamp
This class helps widgets which contain a numerical value and must display it,
like Progressbar (units label), Spin, Spin_Button, Slider (both units and popup
labels, in legacy), Tags (when in shrunk mode) or Calendar (year_month label).
Previously this was a mix of interface and mixin: widgets had to support setting a
formatting func, and the mixin offered support for formatting strings, by setting
an internal formatting func. On top of that, the spinner widget supported "special
values", a list of values that should be shown as certain strings instead.
This has now been simplified and unified:
Widgets including this mixin can use the formatted_value_get() method which accepts
an Eina_Value and returns a string. Thats's it.
The mixin adds three properties to the widget (format_values, format_func and
format_string) which users can use to tailor formatting. The widget does not need
to know which method has been used, it just retrieves the resulting string.
This removes a lot of duplicated widget code, and adds functionality which was
missing before. For example, all widgets support passing a list of values now.
Widgets must implement the apply_formatted_value() method so they are notified
of changes in the format and they can redraw anything they need.
Tests have been added to the Elementary Spec suite for all cases.
Legacy widgets behavior has not been modified, although a few needed some code
changes.
2019-07-02 05:40:06 -07:00
|
|
|
# include <efl_ui_format.eo.h>
|
2019-07-05 05:11:23 -07:00
|
|
|
# include <efl_ui_spin.eo.h>
|
2019-07-07 09:14:13 -07:00
|
|
|
# include <efl_ui_spin_button.eo.h>
|
2019-07-19 09:37:12 -07:00
|
|
|
# include <efl_ui_slider.eo.h>
|
2019-06-29 07:19:08 -07:00
|
|
|
# include <efl_ui_item.eo.h>
|
2019-07-24 11:51:54 -07:00
|
|
|
# include <efl_ui_position_manager_entity.eo.h>
|
2019-08-27 04:35:33 -07:00
|
|
|
# include <efl_ui_position_manager_data_access_v1.eo.h>
|
2019-07-24 08:57:01 -07:00
|
|
|
# include <efl_ui_collection.eo.h>
|
2019-07-24 11:51:54 -07:00
|
|
|
# include <efl_ui_position_manager_list.eo.h>
|
|
|
|
# include <efl_ui_position_manager_grid.eo.h>
|
2019-06-29 07:19:08 -07:00
|
|
|
# include <efl_ui_list_default_item.eo.h>
|
|
|
|
# include <efl_ui_grid_default_item.eo.h>
|
2019-07-29 06:00:32 -07:00
|
|
|
# include <efl_ui_list_placeholder_item.eo.h>
|
2019-08-05 10:07:29 -07:00
|
|
|
# include <efl_ui_selectable.eo.h>
|
2019-08-06 10:55:40 -07:00
|
|
|
# include <efl_ui_single_selectable.eo.h>
|
|
|
|
# include <efl_ui_multi_selectable.eo.h>
|
2019-08-05 11:03:08 -07:00
|
|
|
# include <efl_ui_popup.eo.h>
|
|
|
|
# include <efl_ui_alert_popup.eo.h>
|
|
|
|
# include <efl_ui_popup_part_backwall.eo.h>
|
2019-08-15 23:46:00 -07:00
|
|
|
# include <efl_ui_grid.eo.h>
|
|
|
|
# include <efl_ui_list.eo.h>
|
2019-08-29 05:07:47 -07:00
|
|
|
# include <efl_ui_tab_bar_default_item.eo.h>
|
|
|
|
# include <efl_ui_tab_bar.eo.h>
|
|
|
|
# include <efl_ui_tab_page.eo.h>
|
|
|
|
# include <efl_ui_tab_pager.eo.h>
|
2019-09-04 08:07:37 -07:00
|
|
|
# include <efl_ui_select_model.eo.h>
|
|
|
|
# include <efl_ui_view_model.eo.h>
|
2017-11-14 20:08:09 -08:00
|
|
|
/**
|
|
|
|
* Initialize Elementary
|
|
|
|
*
|
|
|
|
* @param[in] argc System's argument count value
|
|
|
|
* @param[in] argv System's pointer to array of argument strings
|
|
|
|
* @return The init counter value.
|
|
|
|
*
|
|
|
|
* This function initializes Elementary and increments a counter of
|
|
|
|
* the number of calls to it. It returns the new counter's value.
|
|
|
|
*
|
|
|
|
* @warning This call is exported only for use by the @c ELM_MAIN()
|
|
|
|
* macro. There is no need to use this if you use this macro (which
|
|
|
|
* is highly advisable). An elm_main() should contain the entry
|
|
|
|
* point code for your application, having the same prototype as
|
|
|
|
* elm_init(), and @b not being static (putting the @c EAPI_MAIN symbol
|
|
|
|
* in front of its type declaration is advisable). The @c
|
|
|
|
* ELM_MAIN() call should be placed just after it.
|
|
|
|
*
|
|
|
|
* Example:
|
|
|
|
* @dontinclude bg_example_01.c
|
|
|
|
* @skip static void
|
|
|
|
* @until ELM_MAIN
|
|
|
|
*
|
|
|
|
* See the full @ref bg_example_01_c "example".
|
|
|
|
*
|
|
|
|
* @see elm_shutdown().
|
|
|
|
* @ingroup Elm_General
|
|
|
|
*/
|
|
|
|
EAPI int elm_init(int argc, char **argv);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Shut down Elementary
|
|
|
|
*
|
|
|
|
* @return The init counter value.
|
|
|
|
*
|
|
|
|
* This should be called at the end of your application, just
|
|
|
|
* before it ceases to do any more processing. This will clean up
|
|
|
|
* any permanent resources your application may have allocated via
|
|
|
|
* Elementary that would otherwise persist.
|
|
|
|
*
|
|
|
|
* @see elm_init() for an example
|
|
|
|
*
|
|
|
|
* @note elm_shutdown() will iterate main loop until all ecore_evas are freed.
|
|
|
|
* There is a possibility to call your ecore callbacks(timer, animator, event,
|
|
|
|
* job, and etc.) in elm_shutdown()
|
|
|
|
*
|
|
|
|
* @ingroup Elm_General
|
|
|
|
*/
|
|
|
|
EAPI int elm_shutdown(void);
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#undef EAPI
|
|
|
|
#define EAPI
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
// We are including efl_general.h again, just in case Efl_Core.h was already included before this
|
|
|
|
// and the __EFL_*_IS_REQUIRED changed since then.
|
|
|
|
#include <efl_general.h>
|