From e88c2ac1a6718d0fb3243f452effa93ccbecadd8 Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Wed, 12 Jan 2005 16:03:09 +0000 Subject: [PATCH] fix up include system so u canhave one struct directly reference another (put typedefs in separate section and include twice... SVN revision: 12928 --- TODO | 5 +-- src/bin/Makefile.am | 1 + src/bin/e.h | 95 +++++++++++++------------------------------ src/bin/e_apps.h | 8 +++- src/bin/e_atoms.h | 5 ++- src/bin/e_border.c | 2 +- src/bin/e_border.h | 39 +++++++++--------- src/bin/e_box.h | 4 +- src/bin/e_canvas.h | 3 ++ src/bin/e_config.h | 71 ++++++++++++++++---------------- src/bin/e_container.h | 8 +++- src/bin/e_desk.h | 9 ++-- src/bin/e_error.h | 8 +++- src/bin/e_file.h | 7 ++-- src/bin/e_focus.h | 3 ++ src/bin/e_hints.h | 3 ++ src/bin/e_icon.h | 3 ++ src/bin/e_iconify.h | 4 +- src/bin/e_includes.h | 29 +++++++++++++ src/bin/e_init.h | 3 ++ src/bin/e_int_menus.h | 3 ++ src/bin/e_ipc.h | 8 +++- src/bin/e_main.c | 8 ---- src/bin/e_manager.h | 8 +++- src/bin/e_menu.h | 25 +++++++----- src/bin/e_module.h | 8 +++- src/bin/e_object.c | 7 ++++ src/bin/e_object.h | 22 ++++++---- src/bin/e_path.h | 10 +++-- src/bin/e_place.h | 3 ++ src/bin/e_pointer.h | 3 ++ src/bin/e_resist.h | 3 ++ src/bin/e_startup.h | 8 +++- src/bin/e_user.h | 3 ++ src/bin/e_utils.h | 3 ++ src/bin/e_zone.c | 7 ++-- src/bin/e_zone.h | 11 +++-- src/lib/E.h | 15 ++----- src/lib/e_main.c | 1 - src/lib/e_private.h | 8 ++-- 40 files changed, 272 insertions(+), 202 deletions(-) create mode 100644 src/bin/e_includes.h diff --git a/TODO b/TODO index f950d7e12..2bd9b68ff 100644 --- a/TODO +++ b/TODO @@ -29,14 +29,13 @@ Current freeze issues are: ISSUES: -* left mouse menu segv's at times * pager module doesnt shut down properly (disable and create window - segv) * pager module doesnt handle window deletes * pager module causes window resizes to be slower than normal -* virtual desktops need fixign to work with zones properly +* virtual desktops need fixing to work with zones properly * all modules need to respect zones * container resize needs to re-evalute zone geometry -* zone geometyr change needs to propagate to modules +* zone geometry change needs to propagate to modules * need desktop module geometry managing system (central) * dropshadow is not optimal and has extreme edge bugs * e_apps polling/updates is broken diff --git a/src/bin/Makefile.am b/src/bin/Makefile.am index 264e120c0..3ad442397 100644 --- a/src/bin/Makefile.am +++ b/src/bin/Makefile.am @@ -10,6 +10,7 @@ bin_PROGRAMS = enlightenment enlightenment_remote enlightenment_eapp ENLIGHTENMENTHEADERS = \ e.h \ +e_includes.h \ e_file.h \ e_user.h \ e_manager.h \ diff --git a/src/bin/e.h b/src/bin/e.h index 373ff004d..b25717756 100644 --- a/src/bin/e.h +++ b/src/bin/e.h @@ -43,41 +43,40 @@ # endif #endif -#include "e_object.h" -#include "e_file.h" -#include "e_user.h" -#include "e_manager.h" -#include "e_path.h" -#include "e_ipc.h" -#include "e_error.h" -#include "e_container.h" -#include "e_zone.h" -#include "e_desk.h" -#include "e_border.h" -#include "e_pointer.h" -#include "e_config.h" -#include "e_menu.h" -#include "e_icon.h" -#include "e_box.h" -#include "e_init.h" -#include "e_int_menus.h" -#include "e_module.h" -#include "e_apps.h" -#include "e_atoms.h" -#include "e_utils.h" -#include "e_canvas.h" -#include "e_focus.h" -#include "e_place.h" -#include "e_resist.h" -#include "e_startup.h" -#include "e_iconify.h" -#include "e_hints.h" - typedef struct _E_Before_Idler E_Before_Idler; +typedef struct _E_Rect E_Rect; + +/* convenience macro to compress code and avoid typos */ +#define E_FN_DEL(_fn, _h) if (_h) { _fn(_h); _h = NULL; } +#define E_INTERSECTS(x, y, w, h, xx, yy, ww, hh) (((x) < ((xx) + (ww))) && ((y) < ((yy) + (hh))) && (((x) + (w)) > (xx)) && (((y) + (h)) > (yy))) +#define E_SPANS_COMMON(x1, w1, x2, w2) (!((((x2) + (w2)) <= (x1)) || ((x2) >= ((x1) + (w1))))) +#define E_REALLOC(p, s, n) p = realloc(p, sizeof(s) * n) +#define E_NEW(s, n) calloc(n, sizeof(s)) +#define E_NEW_BIG(s, n) malloc(n * sizeof(s)) +#define E_FREE(p) { if (p) {free(p); p = NULL;} } + +#define E_TYPEDEFS 1 +#include "e_includes.h" +#undef E_TYPEDEFS +#include "e_includes.h" EAPI E_Before_Idler *e_main_idler_before_add(int (*func) (void *data), void *data, int once); EAPI void e_main_idler_before_del(E_Before_Idler *eb); + +struct _E_Before_Idler +{ + int (*func) (void *data); + void *data; + unsigned char once : 1; + unsigned char delete_me : 1; +}; + +struct _E_Rect +{ + int x, y, w, h; +}; + extern EAPI E_Path *path_data; extern EAPI E_Path *path_images; extern EAPI E_Path *path_fonts; @@ -86,40 +85,4 @@ extern EAPI E_Path *path_icons; extern EAPI E_Path *path_init; extern EAPI int restart; -/* convenience macro to compress code and avoid typos */ -#define E_FN_DEL(_fn, _h) \ -if (_h) \ -{ \ - _fn(_h); \ - _h = NULL; \ -} - -#define E_INTERSECTS(x, y, w, h, xx, yy, ww, hh) \ -(((x) < ((xx) + (ww))) && \ -((y) < ((yy) + (hh))) && \ -(((x) + (w)) > (xx)) && \ -(((y) + (h)) > (yy))) - -#define E_SPANS_COMMON(x1, w1, x2, w2) \ -(!((((x2) + (w2)) <= (x1)) || ((x2) >= ((x1) + (w1))))) - -#define E_REALLOC(p, s, n) \ - p = realloc(p, sizeof(s) * n) - -#define E_NEW(s, n) \ - calloc(n, sizeof(s)) - -#define E_NEW_BIG(s, n) \ - malloc(n * sizeof(s)) - -#define E_FREE(p) \ - { if (p) {free(p); p = NULL;} } - -typedef struct _E_Rect E_Rect; - -struct _E_Rect -{ - int x, y, w, h; -}; - #endif diff --git a/src/bin/e_apps.h b/src/bin/e_apps.h index 12f2b8bce..9a809b358 100644 --- a/src/bin/e_apps.h +++ b/src/bin/e_apps.h @@ -1,5 +1,4 @@ -#ifndef E_APPS_H -#define E_APPS_H +#ifdef E_TYPEDEFS typedef enum _E_App_Change { @@ -14,6 +13,10 @@ typedef enum _E_App_Change typedef struct _E_App E_App; +#else +#ifndef E_APPS_H +#define E_APPS_H + struct _E_App { E_Object e_obj_inherit; @@ -59,3 +62,4 @@ EAPI void e_app_change_callback_del(void (*func) (void *data, E_App *a, E_App_ EAPI E_App *e_app_window_name_class_find(char *name, char *class); #endif +#endif diff --git a/src/bin/e_atoms.h b/src/bin/e_atoms.h index f7ee4eeba..20b464864 100644 --- a/src/bin/e_atoms.h +++ b/src/bin/e_atoms.h @@ -1,9 +1,10 @@ +#ifdef E_TYPEDEFS +#else #ifndef E_ATOMS_H #define E_ATOMS_H -/* atom globals */ - EAPI int e_atoms_init(void); EAPI int e_atoms_shutdown(void); #endif +#endif diff --git a/src/bin/e_border.c b/src/bin/e_border.c index 95d889b0f..f824d8a0b 100644 --- a/src/bin/e_border.c +++ b/src/bin/e_border.c @@ -2606,7 +2606,7 @@ _e_border_menu_show(E_Border *bd, Evas_Coord x, Evas_Coord y) m = e_menu_new(); e_object_data_set(E_OBJECT(m), bd); - bd->border_menu = E_OBJECT(m); + bd->border_menu = m; e_menu_post_deactivate_callback_set(m, _e_border_cb_border_menu_end, NULL); mi = e_menu_item_new(m); diff --git a/src/bin/e_border.h b/src/bin/e_border.h index e433c3f44..5a1bbd84e 100644 --- a/src/bin/e_border.h +++ b/src/bin/e_border.h @@ -1,25 +1,33 @@ -#ifndef E_BORDER_H -#define E_BORDER_H +#ifdef E_TYPEDEFS -typedef struct _E_Border E_Border; - -enum _E_Direction +typedef enum _E_Direction { E_DIRECTION_UP, E_DIRECTION_DOWN, E_DIRECTION_LEFT, E_DIRECTION_RIGHT -}; -typedef enum _E_Direction E_Direction; +} E_Direction; -enum _E_Transition +typedef enum _E_Transition { E_TRANSITION_LINEAR, E_TRANSITION_SINUSOIDAL, E_TRANSITION_ACCELERATE, E_TRANSITION_DECELERATE -}; -typedef enum _E_Transition E_Transition; +} E_Transition; + +typedef struct _E_Border E_Border; +typedef struct _E_Event_Border_Resize E_Event_Border_Resize; +typedef struct _E_Event_Border_Move E_Event_Border_Move; +typedef struct _E_Event_Border_Add E_Event_Border_Add; +typedef struct _E_Event_Border_Remove E_Event_Border_Remove; +typedef struct _E_Event_Border_Show E_Event_Border_Show; +typedef struct _E_Event_Border_Hide E_Event_Border_Hide; +typedef struct _E_Event_Border_Desk_Set E_Event_Border_Desk_Set; + +#else +#ifndef E_BORDER_H +#define E_BORDER_H struct _E_Border { @@ -169,7 +177,7 @@ struct _E_Border } shade; Evas_List *stick_desks; - E_Object *border_menu; + E_Menu *border_menu; struct { unsigned int visible : 1; @@ -184,14 +192,6 @@ struct _E_Border } changes; }; -typedef struct _E_Event_Border_Resize E_Event_Border_Resize; -typedef struct _E_Event_Border_Move E_Event_Border_Move; -typedef struct _E_Event_Border_Add E_Event_Border_Add; -typedef struct _E_Event_Border_Remove E_Event_Border_Remove; -typedef struct _E_Event_Border_Show E_Event_Border_Show; -typedef struct _E_Event_Border_Hide E_Event_Border_Hide; -typedef struct _E_Event_Border_Desk_Set E_Event_Border_Desk_Set; - struct _E_Event_Border_Resize { E_Border *border; @@ -271,3 +271,4 @@ extern EAPI int E_EVENT_BORDER_REMOVE; extern EAPI int E_EVENT_BORDER_DESK_SET; #endif +#endif diff --git a/src/bin/e_box.h b/src/bin/e_box.h index 366c554aa..16c9a0811 100644 --- a/src/bin/e_box.h +++ b/src/bin/e_box.h @@ -1,8 +1,9 @@ +#ifdef E_TYPEDEFS +#else #ifndef E_BOX_H #define E_BOX_H EAPI Evas_Object *e_box_add (Evas *evas); - EAPI int e_box_freeze (Evas_Object *obj); EAPI int e_box_thaw (Evas_Object *obj); EAPI void e_box_orientation_set (Evas_Object *obj, int horizontal); @@ -23,3 +24,4 @@ EAPI void e_box_align_get (Evas_Object *obj, double *ax, double EAPI void e_box_align_set (Evas_Object *obj, double ax, double ay); #endif +#endif diff --git a/src/bin/e_canvas.h b/src/bin/e_canvas.h index 7c80b95e0..c6681c209 100644 --- a/src/bin/e_canvas.h +++ b/src/bin/e_canvas.h @@ -1,3 +1,5 @@ +#ifdef E_TYPEDEFS +#else #ifndef E_CANVAS_H #define E_CANVAS_H @@ -8,3 +10,4 @@ EAPI void e_canvas_cache_flush(void); EAPI void e_canvas_cache_reload(void); #endif +#endif diff --git a/src/bin/e_config.h b/src/bin/e_config.h index b3ce12075..beab7004f 100644 --- a/src/bin/e_config.h +++ b/src/bin/e_config.h @@ -1,10 +1,40 @@ -#ifndef E_CONFIG_H -#define E_CONFIG_H +#ifdef E_TYPEDEFS + +#define E_CONFIG_DD_NEW(str, typ) \ + eet_data_descriptor_new(str, sizeof(typ), \ + (void *(*) (void *))evas_list_next, \ + (void *(*) (void *, void *))evas_list_append, \ + (void *(*) (void *))evas_list_data, \ + (void *(*) (void *))evas_list_free, \ + (void (*) (void *, int (*) (void *, const char *, void *, void *), void *))evas_hash_foreach, \ + (void *(*) (void *, const char *, void *))evas_hash_add, \ + (void (*) (void *))evas_hash_free) +#define E_CONFIG_DD_FREE(eed) if (eed) { eet_data_descriptor_free((eed)); (eed) = NULL; } +#define E_CONFIG_VAL(edd, type, member, dtype) EET_DATA_DESCRIPTOR_ADD_BASIC(edd, type, #member, member, dtype) +#define E_CONFIG_SUB(edd, type, member, eddtype) EET_DATA_DESCRIPTOR_ADD_SUB(edd, type, #member, member, eddtype) +#define E_CONFIG_LIST(edd, type, member, eddtype) EET_DATA_DESCRIPTOR_ADD_LIST(edd, type, #member, member, eddtype) + +#define CHAR EET_T_CHAR +#define SHORT EET_T_SHORT +#define INT EET_T_INT +#define LL EET_T_LONG_LONG +#define FLOAT EET_T_FLOAT +#define DOUBLE EET_T_DOUBLE +#define UCHAR EET_T_UCHAR +#define USHORT EET_T_USHORT +#define UINT EET_T_UINT +#define ULL EET_T_ULONG_LONG +#define STR EET_T_STRING + +#define E_CONFIG_LIMIT(v, min, max) {if (v > max) v = max; else if (v < min) v = min;} typedef struct _E_Config E_Config; typedef struct _E_Config_Module E_Config_Module; +typedef Eet_Data_Descriptor E_Config_DD; -typedef Eet_Data_Descriptor E_Config_DD; +#else +#ifndef E_CONFIG_H +#define E_CONFIG_H struct _E_Config { @@ -29,40 +59,6 @@ struct _E_Config_Module unsigned char enabled; }; -#define E_CONFIG_DD_NEW(str, typ) \ - eet_data_descriptor_new(str, sizeof(typ), \ - (void *(*) (void *))evas_list_next, \ - (void *(*) (void *, void *))evas_list_append, \ - (void *(*) (void *))evas_list_data, \ - (void *(*) (void *))evas_list_free, \ - (void (*) (void *, int (*) (void *, const char *, void *, void *), void *))evas_hash_foreach, \ - (void *(*) (void *, const char *, void *))evas_hash_add, \ - (void (*) (void *))evas_hash_free) -#define E_CONFIG_DD_FREE(eed) \ - if (eed) { eet_data_descriptor_free((eed)); (eed) = NULL; } - -#define E_CONFIG_VAL(edd, type, member, dtype) \ - EET_DATA_DESCRIPTOR_ADD_BASIC(edd, type, #member, member, dtype) -#define E_CONFIG_SUB(edd, type, member, eddtype) \ - EET_DATA_DESCRIPTOR_ADD_SUB(edd, type, #member, member, eddtype) -#define E_CONFIG_LIST(edd, type, member, eddtype) \ - EET_DATA_DESCRIPTOR_ADD_LIST(edd, type, #member, member, eddtype) - -#define CHAR EET_T_CHAR -#define SHORT EET_T_SHORT -#define INT EET_T_INT -#define LL EET_T_LONG_LONG -#define FLOAT EET_T_FLOAT -#define DOUBLE EET_T_DOUBLE -#define UCHAR EET_T_UCHAR -#define USHORT EET_T_USHORT -#define UINT EET_T_UINT -#define ULL EET_T_ULONG_LONG -#define STR EET_T_STRING - -#define E_CONFIG_LIMIT(v, min, max) \ -{if (v > max) v = max; else if (v < min) v = min;} - EAPI int e_config_init(void); EAPI int e_config_shutdown(void); @@ -75,3 +71,4 @@ EAPI void e_config_save_queue(void); extern EAPI E_Config *e_config; #endif +#endif diff --git a/src/bin/e_container.h b/src/bin/e_container.h index dd9d2a6f8..2ba508fea 100644 --- a/src/bin/e_container.h +++ b/src/bin/e_container.h @@ -1,5 +1,4 @@ -#ifndef E_CONTAINER_H -#define E_CONTAINER_H +#ifdef E_TYPEDEFS typedef enum _E_Container_Shape_Change { @@ -17,6 +16,10 @@ typedef struct _E_Container_Shape E_Container_Shape; typedef struct _E_Container_Shape_Callback E_Container_Shape_Callback; typedef struct _E_Event_Container_Resize E_Event_Container_Resize; +#else +#ifndef E_CONTAINER_H +#define E_CONTAINER_H + struct _E_Container { E_Object e_obj_inherit; @@ -91,3 +94,4 @@ EAPI Evas_List *e_container_shape_rects_get(E_Container_Shape *es); extern EAPI int E_EVENT_CONTAINER_RESIZE; #endif +#endif diff --git a/src/bin/e_desk.h b/src/bin/e_desk.h index 3d8ac4281..69bdfc1ff 100644 --- a/src/bin/e_desk.h +++ b/src/bin/e_desk.h @@ -1,8 +1,11 @@ -#ifndef E_DESK_H -#define E_DESK_H +#ifdef E_TYPEDEFS typedef struct _E_Desk E_Desk; +#else +#ifndef E_DESK_H +#define E_DESK_H + struct _E_Desk { E_Object e_obj_inherit; @@ -32,4 +35,4 @@ EAPI void e_desk_col_add(E_Zone *zone); EAPI void e_desk_col_remove(E_Zone *zone); #endif - +#endif diff --git a/src/bin/e_error.h b/src/bin/e_error.h index 8e47280a5..161753da7 100644 --- a/src/bin/e_error.h +++ b/src/bin/e_error.h @@ -1,5 +1,4 @@ -#ifndef E_ERROR_H -#define E_ERROR_H +#ifdef E_TYPEDEFS #define print0(x, args...) x ,print1(## args) #define e_error_message_show(args...) \ @@ -18,6 +17,10 @@ e_error_dialog_show_internal(title, __tmpbuf); \ } +#else +#ifndef E_ERROR_H +#define E_ERROR_H + EAPI void e_error_message_show_internal(char *txt); EAPI void e_error_dialog_show_internal(char *title, char *txt); @@ -25,3 +28,4 @@ EAPI void e_error_gui_set(int on); EAPI void e_error_message_manager_show(E_Manager *man, char *title, char *txt); #endif +#endif diff --git a/src/bin/e_file.h b/src/bin/e_file.h index c7b67bb66..3520c2aa8 100644 --- a/src/bin/e_file.h +++ b/src/bin/e_file.h @@ -1,10 +1,8 @@ +#ifdef E_TYPEDEFS +#else #ifndef E_FILE_H #define E_FILE_H -#include -#include -#include - EAPI time_t e_file_mod_time(char *file); EAPI int e_file_exists(char *file); EAPI int e_file_is_dir(char *file); @@ -20,3 +18,4 @@ EAPI char *e_file_readlink(char *link); EAPI Evas_List *e_file_ls(char *dir); #endif +#endif diff --git a/src/bin/e_focus.h b/src/bin/e_focus.h index bada70dc3..29ffcbbbf 100644 --- a/src/bin/e_focus.h +++ b/src/bin/e_focus.h @@ -1,3 +1,5 @@ +#ifdef E_TYPEDEFS +#else #ifndef E_FOCUS_H #define E_FOCUS_H @@ -6,3 +8,4 @@ EAPI int e_focus_shutdown(void); EAPI void e_focus_idler_before(void); #endif +#endif diff --git a/src/bin/e_hints.h b/src/bin/e_hints.h index 1196a4af3..bb74aec53 100644 --- a/src/bin/e_hints.h +++ b/src/bin/e_hints.h @@ -1,3 +1,5 @@ +#ifdef E_TYPEDEFS +#else #ifndef E_HINTS_H #define E_HINTS_H @@ -12,3 +14,4 @@ EAPI void e_hints_window_name_get(Ecore_X_Window win); EAPI void e_hints_window_icon_name_get(Ecore_X_Window win); #endif +#endif diff --git a/src/bin/e_icon.h b/src/bin/e_icon.h index 343079456..bb62c21c7 100644 --- a/src/bin/e_icon.h +++ b/src/bin/e_icon.h @@ -1,3 +1,5 @@ +#ifdef E_TYPEDEFS +#else #ifndef E_ICON_H #define E_ICON_H @@ -11,3 +13,4 @@ EAPI int e_icon_fill_inside_get (Evas_Object *obj); EAPI void e_icon_fill_inside_set (Evas_Object *obj, int fill_inside); #endif +#endif diff --git a/src/bin/e_iconify.h b/src/bin/e_iconify.h index 5f0664fb9..b5509e76e 100644 --- a/src/bin/e_iconify.h +++ b/src/bin/e_iconify.h @@ -1,12 +1,14 @@ +#ifdef E_TYPEDEFS +#else #ifndef E_ICONIFY_H #define E_ICONIFY_H EAPI int e_iconify_init(void); EAPI int e_iconify_shutdown(void); - EAPI Evas_List *e_iconify_clients_list_get(void); EAPI int e_iconify_border_iconfied(E_Border *bd); EAPI void e_iconify_border_add(E_Border *bd); EAPI void e_iconify_border_remove(E_Border *bd); #endif +#endif diff --git a/src/bin/e_includes.h b/src/bin/e_includes.h new file mode 100644 index 000000000..f238bd24b --- /dev/null +++ b/src/bin/e_includes.h @@ -0,0 +1,29 @@ +#include "e_object.h" +#include "e_file.h" +#include "e_user.h" +#include "e_manager.h" +#include "e_path.h" +#include "e_ipc.h" +#include "e_error.h" +#include "e_container.h" +#include "e_zone.h" +#include "e_desk.h" +#include "e_border.h" +#include "e_pointer.h" +#include "e_config.h" +#include "e_menu.h" +#include "e_icon.h" +#include "e_box.h" +#include "e_init.h" +#include "e_int_menus.h" +#include "e_module.h" +#include "e_apps.h" +#include "e_atoms.h" +#include "e_utils.h" +#include "e_canvas.h" +#include "e_focus.h" +#include "e_place.h" +#include "e_resist.h" +#include "e_startup.h" +#include "e_iconify.h" +#include "e_hints.h" diff --git a/src/bin/e_init.h b/src/bin/e_init.h index 856536dd6..1dc9eb708 100644 --- a/src/bin/e_init.h +++ b/src/bin/e_init.h @@ -1,3 +1,5 @@ +#ifdef E_TYPEDEFS +#else #ifndef E_INIT_H #define E_INIT_H @@ -11,3 +13,4 @@ EAPI void e_init_status_set(const char *str); EAPI Ecore_X_Window e_init_window_get(void); #endif +#endif diff --git a/src/bin/e_int_menus.h b/src/bin/e_int_menus.h index 8311e1427..6b71c0064 100644 --- a/src/bin/e_int_menus.h +++ b/src/bin/e_int_menus.h @@ -1,3 +1,5 @@ +#ifdef E_TYPEDEFS +#else #ifndef E_INT_MENUS_H #define E_INT_MENUS_H @@ -8,3 +10,4 @@ EAPI E_Menu *e_int_menus_apps_new(char *dir); EAPI E_Menu *e_int_menus_favorite_apps_new(void); #endif +#endif diff --git a/src/bin/e_ipc.h b/src/bin/e_ipc.h index 0e4fbd54f..517456844 100644 --- a/src/bin/e_ipc.h +++ b/src/bin/e_ipc.h @@ -1,5 +1,4 @@ -#ifndef E_IPC_H -#define E_IPC_H +#ifdef E_TYPEDEFS typedef enum _E_Ipc_Domain { E_IPC_DOMAIN_NONE, @@ -24,7 +23,12 @@ typedef enum _E_Ipc_Op { E_IPC_OP_LAST } E_Ipc_Op; +#else +#ifndef E_IPC_H +#define E_IPC_H + EAPI int e_ipc_init(void); EAPI void e_ipc_shutdown(void); #endif +#endif diff --git a/src/bin/e_main.c b/src/bin/e_main.c index fee96d01f..7874053e9 100644 --- a/src/bin/e_main.c +++ b/src/bin/e_main.c @@ -3,14 +3,6 @@ */ #include "e.h" -struct _E_Before_Idler -{ - int (*func) (void *data); - void *data; - unsigned char once : 1; - unsigned char delete_me : 1; -}; - /* local subsystem functions */ static void _e_main_shutdown_push(int (*func)(void)); static void _e_main_shutdown(int errorcode); diff --git a/src/bin/e_manager.h b/src/bin/e_manager.h index 20599eaf3..f0b38574a 100644 --- a/src/bin/e_manager.h +++ b/src/bin/e_manager.h @@ -1,8 +1,11 @@ -#ifndef E_MANAGER_H -#define E_MANAGER_H +#ifdef E_TYPEDEFS typedef struct _E_Manager E_Manager; +#else +#ifndef E_MANAGER_H +#define E_MANAGER_H + struct _E_Manager { E_Object e_obj_inherit; @@ -29,3 +32,4 @@ EAPI void e_manager_raise(E_Manager *man); EAPI void e_manager_lower(E_Manager *man); #endif +#endif diff --git a/src/bin/e_menu.h b/src/bin/e_menu.h index 3e8b5c5ad..fe9f4e9b5 100644 --- a/src/bin/e_menu.h +++ b/src/bin/e_menu.h @@ -1,9 +1,20 @@ -#ifndef E_MENU_H -#define E_MENU_H +#ifdef E_TYPEDEFS + +#define E_MENU_POP_DIRECTION_NONE 0 +#define E_MENU_POP_DIRECTION_LEFT 1 +#define E_MENU_POP_DIRECTION_RIGHT 2 +#define E_MENU_POP_DIRECTION_UP 3 +#define E_MENU_POP_DIRECTION_DOWN 4 +#define E_MENU_POP_DIRECTION_AUTO 5 +#define E_MENU_POP_DIRECTION_LAST 6 typedef struct _E_Menu E_Menu; typedef struct _E_Menu_Item E_Menu_Item; +#else +#ifndef E_MENU_H +#define E_MENU_H + struct _E_Menu { E_Object e_obj_inherit; @@ -96,14 +107,6 @@ struct _E_Menu_Item unsigned char active : 1; }; -#define E_MENU_POP_DIRECTION_NONE 0 -#define E_MENU_POP_DIRECTION_LEFT 1 -#define E_MENU_POP_DIRECTION_RIGHT 2 -#define E_MENU_POP_DIRECTION_UP 3 -#define E_MENU_POP_DIRECTION_DOWN 4 -#define E_MENU_POP_DIRECTION_AUTO 5 -#define E_MENU_POP_DIRECTION_LAST 6 - EAPI int e_menu_init(void); EAPI int e_menu_shutdown(void); @@ -140,4 +143,6 @@ EAPI void e_menu_item_active_set(E_Menu_Item *mi, int active); EAPI void e_menu_idler_before(void); EAPI Ecore_X_Window e_menu_grab_window_get(void); + +#endif #endif diff --git a/src/bin/e_module.h b/src/bin/e_module.h index e23ffbcf7..3b2bf0a5c 100644 --- a/src/bin/e_module.h +++ b/src/bin/e_module.h @@ -1,11 +1,14 @@ -#ifndef E_MODULE_H -#define E_MODULE_H +#ifdef E_TYPEDEFS #define E_MODULE_API_VERSION 1 typedef struct _E_Module E_Module; typedef struct _E_Module_Api E_Module_Api; +#else +#ifndef E_MODULE_H +#define E_MODULE_H + struct _E_Module { E_Object e_obj_inherit; @@ -59,3 +62,4 @@ EAPI Evas_List *e_module_list(void); EAPI E_Menu *e_module_menu_new(void); #endif +#endif diff --git a/src/bin/e_object.c b/src/bin/e_object.c index 67a827b6f..eb70ff2f7 100644 --- a/src/bin/e_object.c +++ b/src/bin/e_object.c @@ -64,6 +64,13 @@ e_object_del_func_set(E_Object *obj, E_Object_Cleanup_Func del_func) obj->del_func = del_func; } +void +e_object_type_set(E_Object *obj, int type) +{ + E_OBJECT_CHECK(obj); + obj->type = type; +} + void e_object_free(E_Object *obj) { diff --git a/src/bin/e_object.h b/src/bin/e_object.h index 2a67ac022..5dabbc45b 100644 --- a/src/bin/e_object.h +++ b/src/bin/e_object.h @@ -1,6 +1,4 @@ -#ifndef E_OBJECT_H -#define E_OBJECT_H - +#ifdef E_TYPEDEFS /* Object safety/debugging checks */ /* */ /* OBJECT_PARANOIA_CHECK is paranoid and checkes pointers and traps segv's */ @@ -28,15 +26,18 @@ #define E_OBJECT_DEL_SET(x, del_func) e_object_del_func_set(E_OBJECT(x), E_OBJECT_CLEANUP_FUNC(del_func)) #ifdef OBJECT_PARANOIA_CHECK -# define E_OBJECT_CHECK(x) {if (e_object_error(E_OBJECT(x))) return;} -# define E_OBJECT_CHECK_RETURN(x, ret) {if (e_object_error(E_OBJECT(x))) return ret;} +# define E_OBJECT_CHECK(x) {if (e_object_error(E_OBJECT(x))) return;} +# define E_OBJECT_CHECK_RETURN(x, ret) {if (e_object_error(E_OBJECT(x))) return ret;} +# define E_OBJECT_IF_NOT_TYPE(x, type) if (E_OBJECT(x)->type != (type)) #else # ifdef OBJECT_CHECK -# define E_OBJECT_CHECK(x) {if ((!E_OBJECT(x)) || (E_OBJECT(x)->magic != E_OBJECT_MAGIC)) return;} -# define E_OBJECT_CHECK_RETURN(x, ret) {if ((!E_OBJECT(x)) || (E_OBJECT(x)->magic != E_OBJECT_MAGIC)) return ret;} +# define E_OBJECT_CHECK(x) {if ((!E_OBJECT(x)) || (E_OBJECT(x)->magic != E_OBJECT_MAGIC)) return;} +# define E_OBJECT_CHECK_RETURN(x, ret) {if ((!E_OBJECT(x)) || (E_OBJECT(x)->magic != E_OBJECT_MAGIC)) return ret;} +# define E_OBJECT_IF_NOT_TYPE(x, type) if (E_OBJECT(x)->type != (type)) # else # define E_OBJECT_CHECK(x) # define E_OBJECT_CHECK_RETURN(x, ret) +# define E_OBJECT_IF_NOT_TYPE(x, type) # endif #endif @@ -44,9 +45,14 @@ typedef void (*E_Object_Cleanup_Func) (void *obj); typedef struct _E_Object E_Object; +#else +#ifndef E_OBJECT_H +#define E_OBJECT_H + struct _E_Object { int magic; + int type; int references; E_Object_Cleanup_Func del_func; E_Object_Cleanup_Func cleanup_func; @@ -60,6 +66,7 @@ EAPI void *e_object_alloc (int size, E_Object_Cleanup_Func cleanup EAPI void e_object_del (E_Object *obj); EAPI int e_object_del_get (E_Object *obj); EAPI void e_object_del_func_set (E_Object *obj, E_Object_Cleanup_Func del_func); +EAPI void e_object_type_set (E_Object *obj, int type); EAPI void e_object_free (E_Object *obj); EAPI int e_object_ref (E_Object *obj); EAPI int e_object_unref (E_Object *obj); @@ -71,3 +78,4 @@ EAPI void e_object_free_attach_func_set(E_Object *obj, void (*func) (void *obj) EAPI void e_object_del_attach_func_set (E_Object *obj, void (*func) (void *obj)); #endif +#endif diff --git a/src/bin/e_path.h b/src/bin/e_path.h index e9327575b..686104a68 100644 --- a/src/bin/e_path.h +++ b/src/bin/e_path.h @@ -1,8 +1,11 @@ -#ifndef E_PATH_H -#define E_PATH_H +#ifdef E_TYPEDEFS typedef struct _E_Path E_Path; +#else +#ifndef E_PATH_H +#define E_PATH_H + struct _E_Path { E_Object e_obj_inherit; @@ -17,6 +20,7 @@ EAPI void e_path_path_append(E_Path *ep, const char *path); EAPI void e_path_path_prepend(E_Path *ep, const char *path); EAPI void e_path_path_remove(E_Path *ep, const char *path); EAPI char *e_path_find(E_Path *ep, const char *file); /* for conveience this doesnt return a malloc'd string. it's a static buffer, so a new call will replace this buffer, but thsi means there is no need to free the return */ - EAPI void e_path_evas_append(E_Path *ep, Evas *evas); + +#endif #endif diff --git a/src/bin/e_place.h b/src/bin/e_place.h index e76399acf..63693a3a5 100644 --- a/src/bin/e_place.h +++ b/src/bin/e_place.h @@ -1,6 +1,9 @@ +#ifdef E_TYPEDEFS +#else #ifndef E_PLACE_H #define E_PLACE_H EAPI int e_place_zone_region_smart(E_Zone *zone, Evas_List *skiplist, int x, int y, int w, int h, int *rx, int *ry); #endif +#endif diff --git a/src/bin/e_pointer.h b/src/bin/e_pointer.h index 89bfb4d9d..0e962e180 100644 --- a/src/bin/e_pointer.h +++ b/src/bin/e_pointer.h @@ -1,3 +1,5 @@ +#ifdef E_TYPEDEFS +#else #ifndef E_POINTER_H #define E_POINTER_H @@ -5,3 +7,4 @@ EAPI void e_pointer_container_set(E_Container *con); EAPI void e_pointer_ecore_evas_set(Ecore_Evas *ee); #endif +#endif diff --git a/src/bin/e_resist.h b/src/bin/e_resist.h index 7add63cf4..ee78adc08 100644 --- a/src/bin/e_resist.h +++ b/src/bin/e_resist.h @@ -1,6 +1,9 @@ +#ifdef E_TYPEDEFS +#else #ifndef E_RESIST_H #define E_RESIST_H EAPI int e_resist_container_position(E_Container *con, Evas_List *skiplist, int px, int py, int pw, int ph, int x, int y, int w, int h, int *rx, int *ry); #endif +#endif diff --git a/src/bin/e_startup.h b/src/bin/e_startup.h index 1c44d9c28..5abf51ba9 100644 --- a/src/bin/e_startup.h +++ b/src/bin/e_startup.h @@ -1,5 +1,4 @@ -#ifndef E_STARTUP_H -#define E_STARTUP_H +#ifdef E_TYPEDEFS typedef enum _E_Startup_Mode { @@ -7,6 +6,11 @@ typedef enum _E_Startup_Mode E_STARTUP_RESTART } E_Startup_Mode; +#else +#ifndef E_STARTUP_H +#define E_STARTUP_H + EAPI void e_startup(E_Startup_Mode mode); #endif +#endif diff --git a/src/bin/e_user.h b/src/bin/e_user.h index 478c3c68b..82dfd54db 100644 --- a/src/bin/e_user.h +++ b/src/bin/e_user.h @@ -1,6 +1,9 @@ +#ifdef E_TYPEDEFS +#else #ifndef E_USER_H #define E_USER_H EAPI char *e_user_homedir_get(void); #endif +#endif diff --git a/src/bin/e_utils.h b/src/bin/e_utils.h index 7c70c4828..b98427336 100644 --- a/src/bin/e_utils.h +++ b/src/bin/e_utils.h @@ -1,3 +1,5 @@ +#ifdef E_TYPEDEFS +#else #ifndef E_UTILS_H #define E_UTILS_H @@ -6,3 +8,4 @@ EAPI void e_util_container_fake_mouse_up_all_later(E_Container *con); EAPI void e_util_wakeup(void); #endif +#endif diff --git a/src/bin/e_zone.c b/src/bin/e_zone.c index 2e108ed05..ffd518c79 100644 --- a/src/bin/e_zone.c +++ b/src/bin/e_zone.c @@ -280,7 +280,7 @@ _e_zone_cb_bg_mouse_move(void *data, Evas *evas, Evas_Object *obj, void *event_i void e_zone_desk_count_set(E_Zone *zone, int x_count, int y_count) { - E_Object **new_desks; /* match the bug in e_zone.h */ + E_Desk **new_desks; E_Desk *desk, *new_desk; int x, y, xx, yy, moved; Evas_List *client; @@ -302,7 +302,7 @@ e_zone_desk_count_set(E_Zone *zone, int x_count, int y_count) desk = (E_Desk *) zone->desks[x + (y * zone->desk_x_count)]; else desk = e_desk_new(zone, x, y); - new_desks[x + (y * xx)] = (E_Object *) desk; + new_desks[x + (y * xx)] = desk; } /* catch windoes that have fallen off the end if we got smaller */ @@ -351,8 +351,7 @@ e_zone_desk_count_set(E_Zone *zone, int x_count, int y_count) } } - if (zone->desks) - free(zone->desks); + if (zone->desks) free(zone->desks); zone->desks = new_desks; zone->desk_x_count = xx; diff --git a/src/bin/e_zone.h b/src/bin/e_zone.h index 9df2d3577..ffd97b802 100644 --- a/src/bin/e_zone.h +++ b/src/bin/e_zone.h @@ -1,8 +1,11 @@ -#ifndef E_ZONE_H -#define E_ZONE_H +#ifdef E_TYPEDEFS typedef struct _E_Zone E_Zone; +#else +#ifndef E_ZONE_H +#define E_ZONE_H + struct _E_Zone { E_Object e_obj_inherit; @@ -17,7 +20,7 @@ struct _E_Zone int desk_x_count, desk_y_count; int desk_x_current, desk_y_current; - E_Object **desks; /* FIXME: why can this not be E_Desk? */ + E_Desk **desks; Evas_List *clients; }; @@ -35,4 +38,4 @@ EAPI void e_zone_desk_count_set(E_Zone *zone, int x_count, int y_count); EAPI void e_zone_desk_count_get(E_Zone *zone, int *x_count, int *y_count); #endif - +#endif diff --git a/src/lib/E.h b/src/lib/E.h index b758ade44..9f1b0561d 100644 --- a/src/lib/E.h +++ b/src/lib/E.h @@ -1,7 +1,6 @@ #ifndef _E_H #define _E_H - #ifdef EAPI #undef EAPI #endif @@ -19,9 +18,6 @@ # endif #endif -extern EAPI int E_RESPONSE_MODULE_LIST; -extern EAPI int E_RESPONSE_BACKGROUND_GET; - typedef struct _E_Response_Module_List E_Response_Module_List; typedef struct _E_Response_Background_Get E_Response_Background_Get; @@ -36,23 +32,20 @@ struct _E_Response_Background_Get char *data; }; +extern EAPI int E_RESPONSE_MODULE_LIST; +extern EAPI int E_RESPONSE_BACKGROUND_GET; #ifdef __cplusplus extern "C" { #endif - /* edje_main.c */ EAPI int e_init (const char *display); EAPI int e_shutdown (void); - - EAPI void e_module_enabled_set (const char *module, - int enable); - EAPI void e_module_loaded_set (const char *module, - int load); + EAPI void e_module_enabled_set (const char *module, int enable); + EAPI void e_module_loaded_set (const char *module, int load); EAPI void e_module_list (void); EAPI void e_background_set (const char *bgfile); EAPI void e_background_get (void); - #ifdef __cplusplus } diff --git a/src/lib/e_main.c b/src/lib/e_main.c index e871a755a..2e75824f7 100644 --- a/src/lib/e_main.c +++ b/src/lib/e_main.c @@ -19,7 +19,6 @@ #include "E.h" #include "e_private.h" - #include #include diff --git a/src/lib/e_private.h b/src/lib/e_private.h index a48d44422..9bd58acf0 100644 --- a/src/lib/e_private.h +++ b/src/lib/e_private.h @@ -1,11 +1,13 @@ -#ifndef _EDJE_PRIVATE_H -#define _EDJE_PRIVATE_H +#ifndef _E_PRIVATE_H +#define _E_PRIVATE_H #ifdef HAVE_CONFIG_H #include #endif +#define E_TYPEDEFS 1 +#include "e_ipc.h" +#undef E_TYPEDEFS #include "e_ipc.h" - #endif