272 lines
6.8 KiB
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();
|
|
}
|
|
|