/* This file has been automatically generated by geneet.py */ /* DO NOT MODIFY */ #include #include #include #include #include #include "prefs.h" struct _Prefs { char enable_mouse_cursor; char enable_touch_interface; char enable_plugins; char enable_javascript; const char * user_agent; const char * home_page; const char * proxy; char enable_private_mode; const char *__eet_filename; }; static const char PREFS_ENTRY[] = "prefs"; static Eet_Data_Descriptor *_prefs_descriptor = NULL; static inline void _prefs_init(void) { Eet_Data_Descriptor_Class eddc; if (_prefs_descriptor) return; EET_EINA_STREAM_DATA_DESCRIPTOR_CLASS_SET(&eddc, Prefs); _prefs_descriptor = eet_data_descriptor_stream_new(&eddc); EET_DATA_DESCRIPTOR_ADD_BASIC(_prefs_descriptor, Prefs, "enable_mouse_cursor", enable_mouse_cursor, EET_T_CHAR); EET_DATA_DESCRIPTOR_ADD_BASIC(_prefs_descriptor, Prefs, "enable_touch_interface", enable_touch_interface, EET_T_CHAR); EET_DATA_DESCRIPTOR_ADD_BASIC(_prefs_descriptor, Prefs, "enable_plugins", enable_plugins, EET_T_CHAR); EET_DATA_DESCRIPTOR_ADD_BASIC(_prefs_descriptor, Prefs, "enable_javascript", enable_javascript, EET_T_CHAR); EET_DATA_DESCRIPTOR_ADD_BASIC(_prefs_descriptor, Prefs, "user_agent", user_agent, EET_T_STRING); EET_DATA_DESCRIPTOR_ADD_BASIC(_prefs_descriptor, Prefs, "home_page", home_page, EET_T_STRING); EET_DATA_DESCRIPTOR_ADD_BASIC(_prefs_descriptor, Prefs, "proxy", proxy, EET_T_STRING); EET_DATA_DESCRIPTOR_ADD_BASIC(_prefs_descriptor, Prefs, "enable_private_mode", enable_private_mode, EET_T_CHAR); } static inline void _prefs_shutdown(void) { if (!_prefs_descriptor) return; eet_data_descriptor_free(_prefs_descriptor); _prefs_descriptor = NULL; } Prefs * prefs_new(char enable_mouse_cursor, char enable_touch_interface, char enable_plugins, char enable_javascript, const char * user_agent, const char * home_page, const char * proxy, char enable_private_mode) { Prefs *prefs = calloc(1, sizeof(Prefs)); if (!prefs) { fprintf(stderr, "ERROR: could not calloc Prefs\n"); return NULL; } prefs->enable_mouse_cursor = enable_mouse_cursor; prefs->enable_touch_interface = enable_touch_interface; prefs->enable_plugins = enable_plugins; prefs->enable_javascript = enable_javascript; prefs->user_agent = eina_stringshare_add(user_agent ? user_agent : "eve"); prefs->home_page = eina_stringshare_add(home_page ? home_page : "http://www.google.com"); prefs->proxy = eina_stringshare_add(proxy); prefs->enable_private_mode = enable_private_mode; return prefs; } void prefs_free(Prefs *prefs) { eina_stringshare_del(prefs->user_agent); eina_stringshare_del(prefs->home_page); eina_stringshare_del(prefs->proxy); free(prefs); } inline char prefs_enable_mouse_cursor_get(const Prefs *prefs) { return prefs->enable_mouse_cursor; } inline void prefs_enable_mouse_cursor_set(Prefs *prefs, char enable_mouse_cursor) { EINA_SAFETY_ON_NULL_RETURN(prefs); prefs->enable_mouse_cursor = enable_mouse_cursor; } inline char prefs_enable_touch_interface_get(const Prefs *prefs) { return prefs->enable_touch_interface; } inline void prefs_enable_touch_interface_set(Prefs *prefs, char enable_touch_interface) { EINA_SAFETY_ON_NULL_RETURN(prefs); prefs->enable_touch_interface = enable_touch_interface; } inline char prefs_enable_plugins_get(const Prefs *prefs) { return prefs->enable_plugins; } inline void prefs_enable_plugins_set(Prefs *prefs, char enable_plugins) { EINA_SAFETY_ON_NULL_RETURN(prefs); prefs->enable_plugins = enable_plugins; } inline char prefs_enable_javascript_get(const Prefs *prefs) { return prefs->enable_javascript; } inline void prefs_enable_javascript_set(Prefs *prefs, char enable_javascript) { EINA_SAFETY_ON_NULL_RETURN(prefs); prefs->enable_javascript = enable_javascript; } inline const char * prefs_user_agent_get(const Prefs *prefs) { return prefs->user_agent; } inline void prefs_user_agent_set(Prefs *prefs, const char *user_agent) { EINA_SAFETY_ON_NULL_RETURN(prefs); eina_stringshare_del(prefs->user_agent); prefs->user_agent = eina_stringshare_add(user_agent); } inline const char * prefs_home_page_get(const Prefs *prefs) { return prefs->home_page; } inline void prefs_home_page_set(Prefs *prefs, const char *home_page) { EINA_SAFETY_ON_NULL_RETURN(prefs); eina_stringshare_del(prefs->home_page); prefs->home_page = eina_stringshare_add(home_page); } inline const char * prefs_proxy_get(const Prefs *prefs) { return prefs->proxy; } inline void prefs_proxy_set(Prefs *prefs, const char *proxy) { EINA_SAFETY_ON_NULL_RETURN(prefs); eina_stringshare_del(prefs->proxy); prefs->proxy = eina_stringshare_add(proxy); } inline char prefs_enable_private_mode_get(const Prefs *prefs) { return prefs->enable_private_mode; } inline void prefs_enable_private_mode_set(Prefs *prefs, char enable_private_mode) { EINA_SAFETY_ON_NULL_RETURN(prefs); prefs->enable_private_mode = enable_private_mode; } Prefs * prefs_load(const char *filename) { Prefs *prefs; Eet_File *ef = eet_open(filename, EET_FILE_MODE_READ); if (!ef) { fprintf(stderr, "ERROR: could not open '%s' for read\n", filename); return NULL; } prefs = eet_data_read(ef, _prefs_descriptor, PREFS_ENTRY); prefs->__eet_filename = eina_stringshare_add(filename); eet_close(ef); return prefs; } Eina_Bool prefs_save(Prefs *prefs, const char *filename) { char tmp[PATH_MAX]; Eet_File *ef; Eina_Bool ret; unsigned int i, len; struct stat st; if (filename) prefs->__eet_filename = eina_stringshare_add(filename); else if (prefs->__eet_filename) filename = prefs->__eet_filename; else return EINA_FALSE; len = eina_strlcpy(tmp, filename, sizeof(tmp)); if (len + 12 >= (int)sizeof(tmp)) { fprintf(stderr, "ERROR: filename is too big: %s\n", filename); return EINA_FALSE; } i = 0; do { snprintf(tmp + len, 12, ".%u", i); i++; } while(stat(tmp, &st) == 0); ef = eet_open(tmp, EET_FILE_MODE_WRITE); if (!ef) { fprintf(stderr, "ERROR: could not open '%s' for write\n", tmp); return EINA_FALSE; } ret = !!eet_data_write(ef, _prefs_descriptor, PREFS_ENTRY, prefs, EINA_TRUE); eet_close(ef); if (ret) { unlink(filename); rename(tmp, filename); } return ret; } void preferences_init(void) { _prefs_init(); } void preferences_shutdown(void) { _prefs_shutdown(); }