2006-02-19 15:53:35 -08:00
|
|
|
#ifdef E_TYPEDEFS
|
2007-05-28 04:15:04 -07:00
|
|
|
|
|
|
|
typedef struct _E_Event_Desklock E_Event_Desklock;
|
2013-10-25 06:20:45 -07:00
|
|
|
typedef Eina_Bool (*E_Desklock_Show_Cb)(void);
|
|
|
|
typedef void (*E_Desklock_Hide_Cb)(void);
|
2007-05-28 04:15:04 -07:00
|
|
|
|
2012-09-19 06:22:45 -07:00
|
|
|
typedef enum _E_Desklock_Background_Method {
|
|
|
|
E_DESKLOCK_BACKGROUND_METHOD_THEME_DESKLOCK = 0,
|
|
|
|
E_DESKLOCK_BACKGROUND_METHOD_THEME,
|
|
|
|
E_DESKLOCK_BACKGROUND_METHOD_WALLPAPER,
|
|
|
|
E_DESKLOCK_BACKGROUND_METHOD_CUSTOM,
|
|
|
|
} E_Desklock_Background_Method;
|
2013-10-26 01:59:32 -07:00
|
|
|
|
|
|
|
typedef enum
|
|
|
|
{
|
|
|
|
E_DESKLOCK_AUTH_METHOD_SYSTEM = 0,
|
|
|
|
E_DESKLOCK_AUTH_METHOD_PERSONAL = 1,
|
|
|
|
E_DESKLOCK_AUTH_METHOD_EXTERNAL = 2,
|
2013-10-26 10:02:20 -07:00
|
|
|
E_DESKLOCK_AUTH_METHOD_PIN = 3,
|
2013-10-26 01:59:32 -07:00
|
|
|
} E_Desklock_Auth_Method;
|
|
|
|
|
2013-12-21 07:59:23 -08:00
|
|
|
typedef struct E_Desklock_Interface E_Desklock_Interface;
|
|
|
|
|
2006-02-19 15:53:35 -08:00
|
|
|
#else
|
2006-03-02 04:03:48 -08:00
|
|
|
#ifndef E_DESKLOCK_H
|
|
|
|
#define E_DESKLOCK_H
|
2006-02-19 15:53:35 -08:00
|
|
|
|
2013-12-21 07:59:23 -08:00
|
|
|
struct E_Desklock_Interface
|
|
|
|
{
|
|
|
|
const char *name;
|
|
|
|
E_Desklock_Show_Cb show;
|
|
|
|
E_Desklock_Hide_Cb hide;
|
|
|
|
Eina_Bool active : 1; //interface is currently being used for locking
|
|
|
|
};
|
|
|
|
|
2007-05-28 04:15:04 -07:00
|
|
|
struct _E_Event_Desklock
|
|
|
|
{
|
|
|
|
int on;
|
2012-07-17 06:33:21 -07:00
|
|
|
int suspend;
|
2007-05-28 04:15:04 -07:00
|
|
|
};
|
|
|
|
|
2010-11-22 07:21:32 -08:00
|
|
|
EINTERN int e_desklock_init(void);
|
|
|
|
EINTERN int e_desklock_shutdown(void);
|
2006-02-19 15:53:35 -08:00
|
|
|
|
2015-05-07 12:13:10 -07:00
|
|
|
E_API int e_desklock_show(Eina_Bool suspend);
|
|
|
|
E_API int e_desklock_show_autolocked(void);
|
|
|
|
E_API void e_desklock_hide(void);
|
|
|
|
E_API Eina_Bool e_desklock_state_get(void);
|
2006-02-19 15:53:35 -08:00
|
|
|
|
2015-05-07 12:13:10 -07:00
|
|
|
E_API void e_desklock_interface_append(E_Desklock_Interface *iface);
|
|
|
|
E_API void e_desklock_interface_remove(E_Desklock_Interface *iface);
|
|
|
|
E_API Eina_Stringshare *e_desklock_user_wallpaper_get(E_Zone *zone);
|
|
|
|
E_API void e_desklock_show_hook_add(E_Desklock_Show_Cb cb);
|
|
|
|
E_API void e_desklock_show_hook_del(E_Desklock_Show_Cb cb);
|
|
|
|
E_API void e_desklock_hide_hook_add(E_Desklock_Hide_Cb cb);
|
|
|
|
E_API void e_desklock_hide_hook_del(E_Desklock_Hide_Cb cb);
|
2013-10-25 06:20:45 -07:00
|
|
|
|
2015-05-07 12:13:10 -07:00
|
|
|
extern E_API int E_EVENT_DESKLOCK;
|
2007-05-28 04:08:36 -07:00
|
|
|
|
2013-10-26 01:59:32 -07:00
|
|
|
static inline Eina_Bool
|
|
|
|
e_desklock_is_external(void)
|
|
|
|
{
|
|
|
|
return e_config->desklock_auth_method == E_DESKLOCK_AUTH_METHOD_EXTERNAL;
|
|
|
|
}
|
|
|
|
|
|
|
|
static inline Eina_Bool
|
|
|
|
e_desklock_is_personal(void)
|
|
|
|
{
|
|
|
|
return e_config->desklock_auth_method == E_DESKLOCK_AUTH_METHOD_PERSONAL;
|
|
|
|
}
|
|
|
|
|
|
|
|
static inline Eina_Bool
|
|
|
|
e_desklock_is_system(void)
|
|
|
|
{
|
|
|
|
return e_config->desklock_auth_method == E_DESKLOCK_AUTH_METHOD_SYSTEM;
|
|
|
|
}
|
|
|
|
|
2006-02-19 15:53:35 -08:00
|
|
|
#endif
|
|
|
|
#endif
|