eve/src/bin/prefs.c

272 lines
6.8 KiB
C

/* This file has been automatically generated by geneet.py */
/* DO NOT MODIFY */
#include <limits.h>
#include <stdio.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>
#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();
}