raster pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=b7eb3c5fe8cfe4fccd9b5c08edc44c1523b3f156

commit b7eb3c5fe8cfe4fccd9b5c08edc44c1523b3f156
Author: Carsten Haitzler (Rasterman) <ras...@rasterman.com>
Date:   Wed Dec 27 14:22:42 2017 +0900

    elm_priv.h - improve defines, EAPI EWAPI etc. because sub-includes need
    
    this also makes it build for windows
---
 src/lib/elementary/elm_priv.h | 251 ++++++++++++++++++++++--------------------
 1 file changed, 129 insertions(+), 122 deletions(-)

diff --git a/src/lib/elementary/elm_priv.h b/src/lib/elementary/elm_priv.h
index 135b06b758..a3e15c1ea6 100644
--- a/src/lib/elementary/elm_priv.h
+++ b/src/lib/elementary/elm_priv.h
@@ -1,91 +1,101 @@
 #ifndef ELM_PRIV_H
-#define ELM_PRIV_H
-#ifdef HAVE_ELEMENTARY_X
-#include <Ecore_X.h>
-#endif
-#ifdef HAVE_ELEMENTARY_FB
-#include <Ecore_Fb.h>
-#endif
-#ifdef HAVE_ELEMENTARY_WL2
-#include <Ecore_Wl2.h>
-#endif
-#ifdef HAVE_ELEMENTARY_DRM
-#include <Ecore_Drm2.h>
-#endif
-#ifdef HAVE_ELEMENTARY_COCOA
-# include <Ecore_Cocoa.h>
-#endif
-#ifdef HAVE_ELEMENTARY_WIN32
-#include <Ecore_Win32.h>
-#endif
+# define ELM_PRIV_H
+# ifdef HAVE_ELEMENTARY_X
+#  include <Ecore_X.h>
+# endif
+# ifdef HAVE_ELEMENTARY_FB
+#  include <Ecore_Fb.h>
+# endif
+# ifdef HAVE_ELEMENTARY_WL2
+#  include <Ecore_Wl2.h>
+# endif
+# ifdef HAVE_ELEMENTARY_DRM
+#  include <Ecore_Drm2.h>
+# endif
+# ifdef HAVE_ELEMENTARY_COCOA
+#  include <Ecore_Cocoa.h>
+# endif
+# ifdef HAVE_ELEMENTARY_WIN32
+#  include <Ecore_Win32.h>
+# endif
 
-#include <Eio.h>
+# include <Eio.h>
 
 // Evas internal EO APIs
-#include "Evas_Internal.h"
+# include "Evas_Internal.h"
 
-#ifdef EAPI
-# undef EAPI
-#endif
+# ifdef EAPI
+#  undef EAPI
+# endif
+# ifdef EWAPI
+#  undef EWAPI
+# endif
 
-#ifdef _WIN32
-# ifdef ELEMENTARY_BUILD
-#  ifdef DLL_EXPORT
-#   define EAPI __declspec(dllexport)
+# ifdef _WIN32
+#  ifdef ELEMENTARY_BUILD
+#   ifdef DLL_EXPORT
+#    define EAPI __declspec(dllexport)
+#   else
+#    error "no DLL_EXPORT"
+#    define EAPI
+#   endif /* ! DLL_EXPORT */
 #  else
-#   define EAPI
-#  endif /* ! DLL_EXPORT */
+#   define EAPI __declspec(dllimport)
+#  endif /* ! EFL_EVAS_BUILD */
+#  define EAPI_WEAK
 # else
-#  define EAPI __declspec(dllimport)
-# endif /* ! EFL_EVAS_BUILD */
-#else
-# ifdef __GNUC__
-#  if __GNUC__ >= 4
-#   define EAPI __attribute__ ((visibility("default")))
+#  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
-# else
-#  define EAPI
-# endif
-#endif /* ! _WIN32 */
+# endif /* ! _WIN32 */
 
-#include "elm_widget.h"
-#include "elm_access.eo.h"
-#include "elm_code_private.h"
-#include "efl_ui_focus_parent_provider.eo.h"
-#include "efl_ui_focus_parent_provider_standard.eo.h"
-#include "elm_widget_item_static_focus.eo.h"
+# define EWAPI EAPI EAPI_WEAK
 
-#ifdef HAVE_LANGINFO_H
-# include <langinfo.h>
-#endif
+# include "elm_widget.h"
+# include "elm_access.eo.h"
+# include "elm_code_private.h"
+# include "efl_ui_focus_parent_provider.eo.h"
+# include "efl_ui_focus_parent_provider_standard.eo.h"
+# include "elm_widget_item_static_focus.eo.h"
 
-#define CRI(...)      EINA_LOG_DOM_CRIT(_elm_log_dom, __VA_ARGS__)
-#define ERR(...)      EINA_LOG_DOM_ERR(_elm_log_dom, __VA_ARGS__)
-#define WRN(...)      EINA_LOG_DOM_WARN(_elm_log_dom, __VA_ARGS__)
-#define INF(...)      EINA_LOG_DOM_INFO(_elm_log_dom, __VA_ARGS__)
-#define DBG(...)      EINA_LOG_DOM_DBG(_elm_log_dom, __VA_ARGS__)
-
-#ifdef ENABLE_NLS
-# include <libintl.h>
-# define E_(string)    _elm_dgettext(string)
-#else
-# ifndef setlocale
-#  define setlocale(c, l)
-# endif
-# ifndef libintl_setlocale
-#  define libintl_setlocale(c, l)
-# endif
-# ifndef bindtextdomain
-#  define bindtextdomain(domain, dir)
+# ifdef HAVE_LANGINFO_H
+#  include <langinfo.h>
 # endif
-# ifndef libintl_bindtextdomain
-#  define libintl_bindtextdomain(domain, dir)
+
+# define CRI(...)      EINA_LOG_DOM_CRIT(_elm_log_dom, __VA_ARGS__)
+# define ERR(...)      EINA_LOG_DOM_ERR(_elm_log_dom, __VA_ARGS__)
+# define WRN(...)      EINA_LOG_DOM_WARN(_elm_log_dom, __VA_ARGS__)
+# define INF(...)      EINA_LOG_DOM_INFO(_elm_log_dom, __VA_ARGS__)
+# define DBG(...)      EINA_LOG_DOM_DBG(_elm_log_dom, __VA_ARGS__)
+
+# ifdef ENABLE_NLS
+#  include <libintl.h>
+#  define E_(string)    _elm_dgettext(string)
+# else
+#  ifndef setlocale
+#   define setlocale(c, l)
+#  endif
+#  ifndef libintl_setlocale
+#   define libintl_setlocale(c, l)
+#  endif
+#  ifndef bindtextdomain
+#   define bindtextdomain(domain, dir)
+#  endif
+#  ifndef libintl_bindtextdomain
+#   define libintl_bindtextdomain(domain, dir)
+#  endif
+#  define E_(string) (string)
 # endif
-# define E_(string) (string)
-#endif
-#define N_(string) (string)
+# define N_(string) (string)
 
 typedef struct _Elm_Theme_Files          Elm_Theme_Files;
 typedef struct _Edje_Signal_Data         Edje_Signal_Data;
@@ -133,15 +143,15 @@ struct _Elm_Theme
 /* increment this whenever we change config enough that you need new
  * defaults for elm to work.
  */
-#define ELM_CONFIG_EPOCH           0x0002
+# define ELM_CONFIG_EPOCH           0x0002
 /* increment this whenever a new set of config values are added but
  * the users config doesn't need to be wiped - simply new values need
  * to be put in
  */
-#define ELM_CONFIG_FILE_GENERATION 0x000f
-#define ELM_CONFIG_VERSION_EPOCH_OFFSET 16
-#define ELM_CONFIG_VERSION         ((ELM_CONFIG_EPOCH << 
ELM_CONFIG_VERSION_EPOCH_OFFSET) | \
-                                    ELM_CONFIG_FILE_GENERATION)
+# define ELM_CONFIG_FILE_GENERATION 0x000f
+# define ELM_CONFIG_VERSION_EPOCH_OFFSET 16
+# define ELM_CONFIG_VERSION         ((ELM_CONFIG_EPOCH << 
ELM_CONFIG_VERSION_EPOCH_OFFSET) | \
+                                     ELM_CONFIG_FILE_GENERATION)
 /* NB: profile configuration files (.src) must have their
  * "config_version" entry's value up-to-date with ELM_CONFIG_VERSION
  * (in decimal)!! */
@@ -149,44 +159,44 @@ struct _Elm_Theme
 /* note: always remember to sync it with elm_config.c */
 extern const char *_elm_engines[];
 
-#define ELM_SOFTWARE_X11      (_elm_engines[0])
-#define ELM_SOFTWARE_FB       (_elm_engines[1])
-#define ELM_OPENGL_X11        (_elm_engines[2])
-#define ELM_SOFTWARE_WIN32    (_elm_engines[3])
-#define ELM_SOFTWARE_SDL      (_elm_engines[4])
-#define ELM_OPENGL_SDL        (_elm_engines[5])
-#define ELM_BUFFER            (_elm_engines[6])
-#define ELM_EWS               (_elm_engines[7])
-#define ELM_OPENGL_COCOA      (_elm_engines[8])
-#define ELM_WAYLAND_SHM       (_elm_engines[9])
-#define ELM_WAYLAND_EGL       (_elm_engines[10])
-#define ELM_DRM               (_elm_engines[11])
-#define ELM_SOFTWARE_DDRAW    (_elm_engines[12])
+# define ELM_SOFTWARE_X11      (_elm_engines[0])
+# define ELM_SOFTWARE_FB       (_elm_engines[1])
+# define ELM_OPENGL_X11        (_elm_engines[2])
+# define ELM_SOFTWARE_WIN32    (_elm_engines[3])
+# define ELM_SOFTWARE_SDL      (_elm_engines[4])
+# define ELM_OPENGL_SDL        (_elm_engines[5])
+# define ELM_BUFFER            (_elm_engines[6])
+# define ELM_EWS               (_elm_engines[7])
+# define ELM_OPENGL_COCOA      (_elm_engines[8])
+# define ELM_WAYLAND_SHM       (_elm_engines[9])
+# define ELM_WAYLAND_EGL       (_elm_engines[10])
+# define ELM_DRM               (_elm_engines[11])
+# define ELM_SOFTWARE_DDRAW    (_elm_engines[12])
 
-#define ELM_FONT_TOKEN_STYLE  ":style="
+# define ELM_FONT_TOKEN_STYLE  ":style="
 
-#define ELM_ACCESS_MODE_OFF   EINA_FALSE
-#define ELM_ACCESS_MODE_ON    EINA_TRUE
+# define ELM_ACCESS_MODE_OFF   EINA_FALSE
+# define ELM_ACCESS_MODE_ON    EINA_TRUE
 
-#define ELM_ATSPI_MODE_OFF   EINA_FALSE
-#define ELM_ATSPI_MODE_ON    EINA_TRUE
+# define ELM_ATSPI_MODE_OFF   EINA_FALSE
+# define ELM_ATSPI_MODE_ON    EINA_TRUE
 
 /* convenience macro to compress code and avoid typos */
-#undef CEIL
-#define CEIL(a)   (((a) % 2 != 0) ? ((a) / 2 + 1) : ((a) / 2))
-#undef IS_INSIDE
-#define IS_INSIDE(x, y, xx, yy, ww, hh) \
-  (((x) < ((xx) + (ww))) && ((y) < ((yy) + (hh))) && \
-  ((x) >= (xx)) && ((y) >= (yy)))
+# undef CEIL
+# define CEIL(a)   (((a) % 2 != 0) ? ((a) / 2 + 1) : ((a) / 2))
+# undef IS_INSIDE
+# define IS_INSIDE(x, y, xx, yy, ww, hh) \
+   (((x) < ((xx) + (ww))) && ((y) < ((yy) + (hh))) && \
+    ((x) >= (xx)) && ((y) >= (yy)))
 
 
-#define ELM_SAFE_FREE(_h, _fn) do { _fn((void*)_h); _h = NULL; } while (0)
-#define ELM_SAFE_DEL(_h) do { efl_del(_h); _h = NULL; } while (0)
+# define ELM_SAFE_FREE(_h, _fn) do { _fn((void*)_h); _h = NULL; } while (0)
+# define ELM_SAFE_DEL(_h) do { efl_del(_h); _h = NULL; } while (0)
 
-#define ELM_PRIV_STATIC_VARIABLE_DECLARE(name, signal, type) \
+# define ELM_PRIV_STATIC_VARIABLE_DECLARE(name, signal, type) \
    static const char name[] = signal;
 
-#define ELM_PRIV_SMART_CALLBACKS_DESC(name, signal, type) \
+# define ELM_PRIV_SMART_CALLBACKS_DESC(name, signal, type) \
    {name, type},
 
 struct _Elm_Config_Flags
@@ -679,9 +689,9 @@ void                 
_elm_dbus_menu_item_select_cb(Elm_Object_Item *obj_item);
 void                 _elm_menu_menu_bar_set(Eo *obj, Eina_Bool menu_bar);
 void                 _elm_menu_menu_bar_hide(Eo *obj);
 
-#ifdef HAVE_ELEMENTARY_WL2
+# ifdef HAVE_ELEMENTARY_WL2
 void                 _elm_win_wl_cursor_set(Evas_Object *obj, const char 
*cursor);
-#endif
+# endif
 
 void _efl_ui_focus_manager_redirect_events_del(Efl_Ui_Focus_Manager *manager, 
Eo *obj);
 void _efl_ui_focus_manager_redirect_events_add(Efl_Ui_Focus_Manager *manager, 
Eo *obj);
@@ -732,11 +742,11 @@ extern const char SIG_LAYOUT_UNFOCUSED[];
 
 extern Eina_Bool _config_profile_lock;
 
-#ifdef HAVE_ELEMENTARY_WL2
+# ifdef HAVE_ELEMENTARY_WL2
 extern Ecore_Wl2_Display *_elm_wl_display;
-#endif
+# endif
 
-#ifdef ENABLE_NLS
+# ifdef ENABLE_NLS
 /* Our gettext wrapper, used to disable translation of elm if the app
  * is not translated. */
 static inline const char *
@@ -750,7 +760,7 @@ _elm_dgettext(const char *string)
    return dgettext(PACKAGE, string);
 }
 
-#endif
+# endif
 
 /* Used by the paste handler */
 void   _elm_entry_entry_paste(Evas_Object *obj, const char *entry);
@@ -770,26 +780,26 @@ const Elm_Layout_Part_Alias_Description 
*elm_layout_content_aliases_get(const Eo
 const Elm_Layout_Part_Alias_Description *elm_layout_text_aliases_get(const Eo 
*obj);
 //void elm_layout_sizing_eval_eoapi(Eo *obj);
 
-#define _ELM_LAYOUT_ALIASES_IMPLEMENT(_pfx, _typ) \
+# define _ELM_LAYOUT_ALIASES_IMPLEMENT(_pfx, _typ) \
    static const Elm_Layout_Part_Alias_Description * \
    _##_pfx##_##_typ##_aliases_get(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED) \
    { \
       return _##_typ##_aliases; \
    }
 
-#define _ELM_LAYOUT_ALIASES_OPS(_pfx, _typ) \
+# define _ELM_LAYOUT_ALIASES_OPS(_pfx, _typ) \
    EFL_OBJECT_OP_FUNC(elm_layout_##_typ##_aliases_get, 
_##_pfx##_##_typ##_aliases_get)
 
-#define ELM_LAYOUT_CONTENT_ALIASES_IMPLEMENT(_pfx) 
_ELM_LAYOUT_ALIASES_IMPLEMENT(_pfx, content)
-#define ELM_LAYOUT_TEXT_ALIASES_IMPLEMENT(_pfx) 
_ELM_LAYOUT_ALIASES_IMPLEMENT(_pfx, text)
+# define ELM_LAYOUT_CONTENT_ALIASES_IMPLEMENT(_pfx) 
_ELM_LAYOUT_ALIASES_IMPLEMENT(_pfx, content)
+# define ELM_LAYOUT_TEXT_ALIASES_IMPLEMENT(_pfx) 
_ELM_LAYOUT_ALIASES_IMPLEMENT(_pfx, text)
 
-#define ELM_LAYOUT_CONTENT_ALIASES_OPS(_pfx) _ELM_LAYOUT_ALIASES_OPS(_pfx, 
content)
-#define ELM_LAYOUT_TEXT_ALIASES_OPS(_pfx) _ELM_LAYOUT_ALIASES_OPS(_pfx, text)
+# define ELM_LAYOUT_CONTENT_ALIASES_OPS(_pfx) _ELM_LAYOUT_ALIASES_OPS(_pfx, 
content)
+# define ELM_LAYOUT_TEXT_ALIASES_OPS(_pfx) _ELM_LAYOUT_ALIASES_OPS(_pfx, text)
 
-#define ELM_LAYOUT_SIZING_EVAL_OPS(_pfx) \
+# define ELM_LAYOUT_SIZING_EVAL_OPS(_pfx) \
    EFL_OBJECT_OP_FUNC(elm_layout_sizing_eval, _##_pfx##_elm_layout_sizing_eval)
 
-#define ELM_WIDGET_KEY_DOWN_DEFAULT_IMPLEMENT(_pfx, _typ) \
+# define ELM_WIDGET_KEY_DOWN_DEFAULT_IMPLEMENT(_pfx, _typ) \
 EOLIAN static Eina_Bool \
 _##_pfx##_elm_widget_widget_event(Eo *obj, _typ *_pd EINA_UNUSED, const 
Efl_Event *eo_event, Evas_Object *src EINA_UNUSED) \
 { \
@@ -819,7 +829,4 @@ efl_ui_dir_is_horizontal(Efl_Ui_Dir dir, Eina_Bool def_val)
      }
 }
 
-#undef EAPI
-#define EAPI
-
 #endif

-- 


Reply via email to