2017-05-18 11:40:19 -07:00
|
|
|
#ifndef _CLOUSEAU_H
|
|
|
|
#define _CLOUSEAU_H
|
|
|
|
|
|
|
|
#ifdef EAPI
|
|
|
|
# undef EAPI
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef _WIN32
|
|
|
|
# ifdef DEBUG_BUILD
|
|
|
|
# ifdef DLL_EXPORT
|
|
|
|
# define EAPI __declspec(dllexport)
|
|
|
|
# else
|
|
|
|
# define EAPI
|
|
|
|
# endif /* ! DLL_EXPORT */
|
|
|
|
# else
|
|
|
|
# define EAPI __declspec(dllimport)
|
|
|
|
# endif /* ! DEBUG_BUILD */
|
|
|
|
#else
|
|
|
|
# ifdef __GNUC__
|
|
|
|
# if __GNUC__ >= 4
|
|
|
|
# define EAPI __attribute__ ((visibility("default")))
|
|
|
|
# else
|
|
|
|
# define EAPI
|
|
|
|
# endif
|
|
|
|
# else
|
|
|
|
# define EAPI
|
|
|
|
# endif
|
|
|
|
#endif /* ! _WIN32 */
|
|
|
|
|
|
|
|
#include <Eina.h>
|
|
|
|
|
|
|
|
typedef struct _Extension_Config Extension_Config;
|
|
|
|
typedef struct _Clouseau_Extension Clouseau_Extension;
|
|
|
|
|
|
|
|
typedef Eo *(*Ui_Get_Cb)(Clouseau_Extension *ext, Eo *parent);
|
|
|
|
typedef void (*Session_Changed_Cb)(Clouseau_Extension *ext);
|
|
|
|
typedef void (*App_Changed_Cb)(Clouseau_Extension *ext);
|
2017-05-22 15:47:20 -07:00
|
|
|
typedef void (*Import_Data_Cb)(Clouseau_Extension *ext, void *buffer, int size, int version);
|
|
|
|
typedef void *(*Export_Data_Cb)(Clouseau_Extension *ext, int *size, int *version);
|
2017-05-18 11:40:19 -07:00
|
|
|
|
|
|
|
typedef Eo *(*Inwin_Create_Cb)();
|
|
|
|
typedef void (*Ui_Freeze_Cb)(Clouseau_Extension *ext, Eina_Bool freeze);
|
|
|
|
|
|
|
|
struct _Clouseau_Extension
|
|
|
|
{
|
|
|
|
const char *name; /* Name filled by the extension */
|
|
|
|
Eina_Debug_Session *session; /* Current session */
|
|
|
|
int app_id; /* Current application */
|
|
|
|
Eina_Stringshare *path_to_config; /* Path to configuration directory */
|
|
|
|
Eo *ui_object; /* Main object of the UI extension */
|
|
|
|
Session_Changed_Cb session_changed_cb; /* Function called when the session changed */
|
|
|
|
App_Changed_Cb app_changed_cb; /* Function called when the app changed */
|
2017-05-20 13:52:38 -07:00
|
|
|
Import_Data_Cb import_data_cb; /* Function called when data has to be imported */
|
2017-05-22 15:47:20 -07:00
|
|
|
Export_Data_Cb export_data_cb; /* Function called when data has to be exported */
|
2017-05-18 11:40:19 -07:00
|
|
|
Inwin_Create_Cb inwin_create_cb; /* Function to call to create a Inwin */
|
|
|
|
Ui_Freeze_Cb ui_freeze_cb; /* Function to call to freeze/thaw the UI */
|
|
|
|
void *data; /* Data allocated and managed by the extension */
|
|
|
|
Extension_Config *ext_cfg; /* Extention configuration - used by Clouseau */
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif
|