commit c8d0126aba11f4a3c2ea6940eb53708a3b428f4e
parent aad9a91a61e949ad8877f1cbc8d711739f650411
Author: Kyle Milz <kmilz@ucalgary.ca>
Date: Wed, 3 Oct 2012 11:44:09 -0600
generate eet {h,c} files automatically on compile
also add a global history enabled field.
Diffstat:
5 files changed, 53 insertions(+), 1160 deletions(-)
diff --git a/src/Makefile b/src/Makefile
@@ -8,7 +8,7 @@ MAN5 = evirc.5
# Used libraries to get needed CFLAGS and LDFLAGS form pkg-config
LIBS = elementary ewebkit2
# Files to removo by clean target
-CLEAN = $(TARGET) $(OBJ) $(DEPS) javascript.h
+CLEAN = $(TARGET) $(OBJ) $(DEPS) javascript.h viking_state.c viking_state.h
# Files to install by install target or remove by uninstall target
MANINSTALL = $(addprefix $(MANDIR)/man1/,$(MAN1)) \
$(addprefix $(MANDIR)/man5/,$(MAN5))
@@ -46,10 +46,13 @@ all: $(TARGET)
-include $(DEPS)
-main.o: javascript.h
+main.o: javascript.h viking_state.c
javascript.h: hinting.js
perl ./js-merge-helper.pl
+viking_state.c: viking_state.geneet
+ geneet.py viking_state.geneet
+
$(TARGET): $(OBJ)
$(CC) $^ $(LDFLAGS) -o $@
diff --git a/src/main.c b/src/main.c
@@ -278,6 +278,7 @@ setup_config(App_Data *ad, int argc, char **argv)
enable_plugins,
EINA_FALSE /* enable_private_mode */,
enable_touch_interface,
+ EINA_TRUE,
DEFAULT_URL /* home_page */,
NULL /* proxy */,
EINA_TRUE /* restore_state */,
diff --git a/src/viking_state.c b/src/viking_state.c
@@ -1,1027 +0,0 @@
-/* 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 "viking_state.h"
-
-struct _Config {
- unsigned char allow_popup;
- unsigned char enable_auto_load_images;
- unsigned char enable_auto_shrink_images;
- unsigned char enable_javascript;
- unsigned char enable_mouse_cursor;
- unsigned char enable_plugins;
- unsigned char enable_private_mode;
- unsigned char enable_touch_interface;
- const char * home_page;
- const char * proxy;
- unsigned char restore_state;
- const char * user_agent;
- unsigned char frame_flattening;
- int text_zoom;
- int minimum_font_size;
- int cookie_policy;
- int backing_store;
- const char *__eet_filename;
-};
-
-struct _Hist_Item {
- const char * title;
- const char * url;
- unsigned int visit_count;
- double last_visit;
-};
-
-struct _Hist {
- Eina_Hash * items;
- const char *__eet_filename;
-};
-
-struct _Session_Item {
- const char * url;
- unsigned char focused;
- int scroll_x;
- int scroll_y;
-};
-
-struct _Session_Window {
- Eina_List * tabs;
- unsigned char focused;
-};
-
-struct _Session {
- Eina_List * windows;
- const char *__eet_filename;
-};
-
-static const char CONFIG_ENTRY[] = "config";
-static const char HIST_ITEM_ENTRY[] = "hist_item";
-static const char HIST_ENTRY[] = "hist";
-static const char SESSION_ITEM_ENTRY[] = "session_item";
-static const char SESSION_WINDOW_ENTRY[] = "session_window";
-static const char SESSION_ENTRY[] = "session";
-
-static Eet_Data_Descriptor *_config_descriptor = NULL;
-static Eet_Data_Descriptor *_hist_item_descriptor = NULL;
-static Eet_Data_Descriptor *_hist_descriptor = NULL;
-static Eet_Data_Descriptor *_session_item_descriptor = NULL;
-static Eet_Data_Descriptor *_session_window_descriptor = NULL;
-static Eet_Data_Descriptor *_session_descriptor = NULL;
-
-static inline void
-_config_init(void)
-{
- Eet_Data_Descriptor_Class eddc;
-
- if (_config_descriptor) return;
-
- EET_EINA_STREAM_DATA_DESCRIPTOR_CLASS_SET(&eddc, Config);
- _config_descriptor = eet_data_descriptor_stream_new(&eddc);
-
- EET_DATA_DESCRIPTOR_ADD_BASIC(_config_descriptor, Config, "allow_popup", allow_popup, EET_T_UCHAR);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_config_descriptor, Config, "enable_auto_load_images", enable_auto_load_images, EET_T_UCHAR);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_config_descriptor, Config, "enable_auto_shrink_images", enable_auto_shrink_images, EET_T_UCHAR);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_config_descriptor, Config, "enable_javascript", enable_javascript, EET_T_UCHAR);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_config_descriptor, Config, "enable_mouse_cursor", enable_mouse_cursor, EET_T_UCHAR);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_config_descriptor, Config, "enable_plugins", enable_plugins, EET_T_UCHAR);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_config_descriptor, Config, "enable_private_mode", enable_private_mode, EET_T_UCHAR);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_config_descriptor, Config, "enable_touch_interface", enable_touch_interface, EET_T_UCHAR);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_config_descriptor, Config, "home_page", home_page, EET_T_STRING);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_config_descriptor, Config, "proxy", proxy, EET_T_STRING);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_config_descriptor, Config, "restore_state", restore_state, EET_T_UCHAR);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_config_descriptor, Config, "user_agent", user_agent, EET_T_STRING);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_config_descriptor, Config, "frame_flattening", frame_flattening, EET_T_UCHAR);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_config_descriptor, Config, "text_zoom", text_zoom, EET_T_INT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_config_descriptor, Config, "minimum_font_size", minimum_font_size, EET_T_INT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_config_descriptor, Config, "cookie_policy", cookie_policy, EET_T_INT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_config_descriptor, Config, "backing_store", backing_store, EET_T_INT);
-}
-
-static inline void
-_config_shutdown(void)
-{
- if (!_config_descriptor) return;
- eet_data_descriptor_free(_config_descriptor);
- _config_descriptor = NULL;
-}
-
-Config *
-config_new(unsigned char allow_popup, unsigned char enable_auto_load_images, unsigned char enable_auto_shrink_images, unsigned char enable_javascript, unsigned char enable_mouse_cursor, unsigned char enable_plugins, unsigned char enable_private_mode, unsigned char enable_touch_interface, const char * home_page, const char * proxy, unsigned char restore_state, const char * user_agent, unsigned char frame_flattening, int text_zoom, int minimum_font_size, int cookie_policy, int backing_store)
-{
- Config *config = calloc(1, sizeof(Config));
-
- if (!config)
- {
- fprintf(stderr, "ERROR: could not calloc Config\n");
- return NULL;
- }
-
- config->allow_popup = allow_popup;
- config->enable_auto_load_images = enable_auto_load_images;
- config->enable_auto_shrink_images = enable_auto_shrink_images;
- config->enable_javascript = enable_javascript;
- config->enable_mouse_cursor = enable_mouse_cursor;
- config->enable_plugins = enable_plugins;
- config->enable_private_mode = enable_private_mode;
- config->enable_touch_interface = enable_touch_interface;
- config->home_page = eina_stringshare_add(home_page ? home_page : "http://www.google.com");
- config->proxy = eina_stringshare_add(proxy);
- config->restore_state = restore_state;
- config->user_agent = eina_stringshare_add(user_agent ? user_agent : "eve");
- config->frame_flattening = frame_flattening;
- config->text_zoom = text_zoom;
- config->minimum_font_size = minimum_font_size;
- config->cookie_policy = cookie_policy;
- config->backing_store = backing_store;
-
- return config;
-}
-
-void
-config_free(Config *config)
-{
- eina_stringshare_del(config->home_page);
- eina_stringshare_del(config->proxy);
- eina_stringshare_del(config->user_agent);
- free(config);
-}
-
-inline unsigned char
-config_allow_popup_get(const Config *config)
-{
- return config->allow_popup;
-}
-
-inline void
-config_allow_popup_set(Config *config, unsigned char allow_popup)
-{
- EINA_SAFETY_ON_NULL_RETURN(config);
- config->allow_popup = allow_popup;
-}
-
-inline unsigned char
-config_enable_auto_load_images_get(const Config *config)
-{
- return config->enable_auto_load_images;
-}
-
-inline void
-config_enable_auto_load_images_set(Config *config, unsigned char enable_auto_load_images)
-{
- EINA_SAFETY_ON_NULL_RETURN(config);
- config->enable_auto_load_images = enable_auto_load_images;
-}
-
-inline unsigned char
-config_enable_auto_shrink_images_get(const Config *config)
-{
- return config->enable_auto_shrink_images;
-}
-
-inline void
-config_enable_auto_shrink_images_set(Config *config, unsigned char enable_auto_shrink_images)
-{
- EINA_SAFETY_ON_NULL_RETURN(config);
- config->enable_auto_shrink_images = enable_auto_shrink_images;
-}
-
-inline unsigned char
-config_enable_javascript_get(const Config *config)
-{
- return config->enable_javascript;
-}
-
-inline void
-config_enable_javascript_set(Config *config, unsigned char enable_javascript)
-{
- EINA_SAFETY_ON_NULL_RETURN(config);
- config->enable_javascript = enable_javascript;
-}
-
-inline unsigned char
-config_enable_mouse_cursor_get(const Config *config)
-{
- return config->enable_mouse_cursor;
-}
-
-inline void
-config_enable_mouse_cursor_set(Config *config, unsigned char enable_mouse_cursor)
-{
- EINA_SAFETY_ON_NULL_RETURN(config);
- config->enable_mouse_cursor = enable_mouse_cursor;
-}
-
-inline unsigned char
-config_enable_plugins_get(const Config *config)
-{
- return config->enable_plugins;
-}
-
-inline void
-config_enable_plugins_set(Config *config, unsigned char enable_plugins)
-{
- EINA_SAFETY_ON_NULL_RETURN(config);
- config->enable_plugins = enable_plugins;
-}
-
-inline unsigned char
-config_enable_private_mode_get(const Config *config)
-{
- return config->enable_private_mode;
-}
-
-inline void
-config_enable_private_mode_set(Config *config, unsigned char enable_private_mode)
-{
- EINA_SAFETY_ON_NULL_RETURN(config);
- config->enable_private_mode = enable_private_mode;
-}
-
-inline unsigned char
-config_enable_touch_interface_get(const Config *config)
-{
- return config->enable_touch_interface;
-}
-
-inline void
-config_enable_touch_interface_set(Config *config, unsigned char enable_touch_interface)
-{
- EINA_SAFETY_ON_NULL_RETURN(config);
- config->enable_touch_interface = enable_touch_interface;
-}
-
-inline const char *
-config_home_page_get(const Config *config)
-{
- return config->home_page;
-}
-
-inline void
-config_home_page_set(Config *config, const char *home_page)
-{
- EINA_SAFETY_ON_NULL_RETURN(config);
- eina_stringshare_replace(&(config->home_page), home_page);
-}
-
-inline const char *
-config_proxy_get(const Config *config)
-{
- return config->proxy;
-}
-
-inline void
-config_proxy_set(Config *config, const char *proxy)
-{
- EINA_SAFETY_ON_NULL_RETURN(config);
- eina_stringshare_replace(&(config->proxy), proxy);
-}
-
-inline unsigned char
-config_restore_state_get(const Config *config)
-{
- return config->restore_state;
-}
-
-inline void
-config_restore_state_set(Config *config, unsigned char restore_state)
-{
- EINA_SAFETY_ON_NULL_RETURN(config);
- config->restore_state = restore_state;
-}
-
-inline const char *
-config_user_agent_get(const Config *config)
-{
- return config->user_agent;
-}
-
-inline void
-config_user_agent_set(Config *config, const char *user_agent)
-{
- EINA_SAFETY_ON_NULL_RETURN(config);
- eina_stringshare_replace(&(config->user_agent), user_agent);
-}
-
-inline unsigned char
-config_frame_flattening_get(const Config *config)
-{
- return config->frame_flattening;
-}
-
-inline void
-config_frame_flattening_set(Config *config, unsigned char frame_flattening)
-{
- EINA_SAFETY_ON_NULL_RETURN(config);
- config->frame_flattening = frame_flattening;
-}
-
-inline int
-config_text_zoom_get(const Config *config)
-{
- return config->text_zoom;
-}
-
-inline void
-config_text_zoom_set(Config *config, int text_zoom)
-{
- EINA_SAFETY_ON_NULL_RETURN(config);
- config->text_zoom = text_zoom;
-}
-
-inline int
-config_minimum_font_size_get(const Config *config)
-{
- return config->minimum_font_size;
-}
-
-inline void
-config_minimum_font_size_set(Config *config, int minimum_font_size)
-{
- EINA_SAFETY_ON_NULL_RETURN(config);
- config->minimum_font_size = minimum_font_size;
-}
-
-inline int
-config_cookie_policy_get(const Config *config)
-{
- return config->cookie_policy;
-}
-
-inline void
-config_cookie_policy_set(Config *config, int cookie_policy)
-{
- EINA_SAFETY_ON_NULL_RETURN(config);
- config->cookie_policy = cookie_policy;
-}
-
-inline int
-config_backing_store_get(const Config *config)
-{
- return config->backing_store;
-}
-
-inline void
-config_backing_store_set(Config *config, int backing_store)
-{
- EINA_SAFETY_ON_NULL_RETURN(config);
- config->backing_store = backing_store;
-}
-
-Config *
-config_load(const char *filename)
-{
- Config *config = NULL;
- 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;
- }
-
- config = eet_data_read(ef, _config_descriptor, CONFIG_ENTRY);
- if (!config) goto end;
- config->__eet_filename = eina_stringshare_add(filename);
-
-end:
- eet_close(ef);
- return config;
-}
-
-Eina_Bool
-config_save(Config *config, const char *filename)
-{
- Eet_File *ef;
- Eina_Bool ret;
-
- if (filename) eina_stringshare_replace(&(config->__eet_filename), filename);
- else if (config->__eet_filename) filename = config->__eet_filename;
- else return EINA_FALSE;
-
- ef = eet_open(filename, EET_FILE_MODE_READ_WRITE);
- if (!ef)
- {
- fprintf(stderr, "ERROR: could not open '%s' for write\n", filename);
- return EINA_FALSE;
- }
-
- ret = !!eet_data_write(ef, _config_descriptor, CONFIG_ENTRY, config, EINA_TRUE);
- eet_close(ef);
-
- return ret;
-}
-
-static inline void
-_hist_item_init(void)
-{
- Eet_Data_Descriptor_Class eddc;
-
- if (_hist_item_descriptor) return;
-
- EET_EINA_STREAM_DATA_DESCRIPTOR_CLASS_SET(&eddc, Hist_Item);
- _hist_item_descriptor = eet_data_descriptor_stream_new(&eddc);
-
- EET_DATA_DESCRIPTOR_ADD_BASIC(_hist_item_descriptor, Hist_Item, "title", title, EET_T_STRING);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_hist_item_descriptor, Hist_Item, "url", url, EET_T_STRING);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_hist_item_descriptor, Hist_Item, "visit_count", visit_count, EET_T_UINT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_hist_item_descriptor, Hist_Item, "last_visit", last_visit, EET_T_DOUBLE);
-}
-
-static inline void
-_hist_item_shutdown(void)
-{
- if (!_hist_item_descriptor) return;
- eet_data_descriptor_free(_hist_item_descriptor);
- _hist_item_descriptor = NULL;
-}
-
-Hist_Item *
-hist_item_new(const char * title, const char * url, unsigned int visit_count, double last_visit)
-{
- Hist_Item *hist_item = calloc(1, sizeof(Hist_Item));
-
- if (!hist_item)
- {
- fprintf(stderr, "ERROR: could not calloc Hist_Item\n");
- return NULL;
- }
-
- hist_item->title = eina_stringshare_add(title ? title : "Untitled");
- hist_item->url = eina_stringshare_add(url ? url : "about:blank");
- hist_item->visit_count = visit_count;
- hist_item->last_visit = last_visit;
-
- return hist_item;
-}
-
-void
-hist_item_free(Hist_Item *hist_item)
-{
- eina_stringshare_del(hist_item->title);
- eina_stringshare_del(hist_item->url);
- free(hist_item);
-}
-
-inline const char *
-hist_item_title_get(const Hist_Item *hist_item)
-{
- return hist_item->title;
-}
-
-inline void
-hist_item_title_set(Hist_Item *hist_item, const char *title)
-{
- EINA_SAFETY_ON_NULL_RETURN(hist_item);
- eina_stringshare_replace(&(hist_item->title), title);
-}
-
-inline const char *
-hist_item_url_get(const Hist_Item *hist_item)
-{
- return hist_item->url;
-}
-
-inline void
-hist_item_url_set(Hist_Item *hist_item, const char *url)
-{
- EINA_SAFETY_ON_NULL_RETURN(hist_item);
- eina_stringshare_replace(&(hist_item->url), url);
-}
-
-inline unsigned int
-hist_item_visit_count_get(const Hist_Item *hist_item)
-{
- return hist_item->visit_count;
-}
-
-inline void
-hist_item_visit_count_set(Hist_Item *hist_item, unsigned int visit_count)
-{
- EINA_SAFETY_ON_NULL_RETURN(hist_item);
- hist_item->visit_count = visit_count;
-}
-
-inline double
-hist_item_last_visit_get(const Hist_Item *hist_item)
-{
- return hist_item->last_visit;
-}
-
-inline void
-hist_item_last_visit_set(Hist_Item *hist_item, double last_visit)
-{
- EINA_SAFETY_ON_NULL_RETURN(hist_item);
- hist_item->last_visit = last_visit;
-}
-
-
-static inline void
-_hist_init(void)
-{
- Eet_Data_Descriptor_Class eddc;
-
- if (_hist_descriptor) return;
-
- EET_EINA_STREAM_DATA_DESCRIPTOR_CLASS_SET(&eddc, Hist);
- _hist_descriptor = eet_data_descriptor_stream_new(&eddc);
-
- EET_DATA_DESCRIPTOR_ADD_HASH(_hist_descriptor, Hist, "items", items, _hist_item_descriptor);
-}
-
-static inline void
-_hist_shutdown(void)
-{
- if (!_hist_descriptor) return;
- eet_data_descriptor_free(_hist_descriptor);
- _hist_descriptor = NULL;
-}
-
-Hist *
-hist_new()
-{
- Hist *hist = calloc(1, sizeof(Hist));
-
- if (!hist)
- {
- fprintf(stderr, "ERROR: could not calloc Hist\n");
- return NULL;
- }
-
- hist->items = eina_hash_stringshared_new(EINA_FREE_CB(hist_item_free));
-
- return hist;
-}
-
-void
-hist_free(Hist *hist)
-{
- if (hist->items) eina_hash_free(hist->items);
- free(hist);
-}
-
-void
-hist_items_add(Hist *hist, const char * url, Hist_Item *hist_item)
-{
- EINA_SAFETY_ON_NULL_RETURN(hist);
- eina_hash_add(hist->items, url, hist_item);
-}
-
-void
-hist_items_del(Hist *hist, const char * url)
-{
- EINA_SAFETY_ON_NULL_RETURN(hist);
- eina_hash_del(hist->items, url, NULL);
-}
-
-inline Hist_Item *
-hist_items_get(const Hist *hist, const char * url)
-{
- EINA_SAFETY_ON_NULL_RETURN_VAL(hist, NULL);
- return eina_hash_find(hist->items, url);
-}
-
-inline Eina_Hash *
-hist_items_hash_get(const Hist *hist)
-{
- EINA_SAFETY_ON_NULL_RETURN_VAL(hist, NULL);
- return hist->items;
-}
-
-void
-hist_items_modify(Hist *hist, const char * key, void *value)
-{
- EINA_SAFETY_ON_NULL_RETURN(hist);
- eina_hash_modify(hist->items, key, value);
-}
-
-Hist *
-hist_load(const char *filename)
-{
- Hist *hist = NULL;
- 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;
- }
-
- hist = eet_data_read(ef, _hist_descriptor, HIST_ENTRY);
- if (!hist) goto end;
- hist->__eet_filename = eina_stringshare_add(filename);
-
- if (!hist->items) hist->items = eina_hash_stringshared_new(EINA_FREE_CB(hist_item_free));
-
-end:
- eet_close(ef);
- return hist;
-}
-
-Eina_Bool
-hist_save(Hist *hist, const char *filename)
-{
- Eet_File *ef;
- Eina_Bool ret;
-
- if (filename) eina_stringshare_replace(&(hist->__eet_filename), filename);
- else if (hist->__eet_filename) filename = hist->__eet_filename;
- else return EINA_FALSE;
-
- ef = eet_open(filename, EET_FILE_MODE_READ_WRITE);
- if (!ef)
- {
- fprintf(stderr, "ERROR: could not open '%s' for write\n", filename);
- return EINA_FALSE;
- }
-
- ret = !!eet_data_write(ef, _hist_descriptor, HIST_ENTRY, hist, EINA_TRUE);
- eet_close(ef);
-
- return ret;
-}
-
-static inline void
-_session_item_init(void)
-{
- Eet_Data_Descriptor_Class eddc;
-
- if (_session_item_descriptor) return;
-
- EET_EINA_STREAM_DATA_DESCRIPTOR_CLASS_SET(&eddc, Session_Item);
- _session_item_descriptor = eet_data_descriptor_stream_new(&eddc);
-
- EET_DATA_DESCRIPTOR_ADD_BASIC(_session_item_descriptor, Session_Item, "url", url, EET_T_STRING);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_session_item_descriptor, Session_Item, "focused", focused, EET_T_UCHAR);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_session_item_descriptor, Session_Item, "scroll_x", scroll_x, EET_T_INT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_session_item_descriptor, Session_Item, "scroll_y", scroll_y, EET_T_INT);
-}
-
-static inline void
-_session_item_shutdown(void)
-{
- if (!_session_item_descriptor) return;
- eet_data_descriptor_free(_session_item_descriptor);
- _session_item_descriptor = NULL;
-}
-
-Session_Item *
-session_item_new(const char * url, unsigned char focused, int scroll_x, int scroll_y)
-{
- Session_Item *session_item = calloc(1, sizeof(Session_Item));
-
- if (!session_item)
- {
- fprintf(stderr, "ERROR: could not calloc Session_Item\n");
- return NULL;
- }
-
- session_item->url = eina_stringshare_add(url);
- session_item->focused = focused;
- session_item->scroll_x = scroll_x;
- session_item->scroll_y = scroll_y;
-
- return session_item;
-}
-
-void
-session_item_free(Session_Item *session_item)
-{
- eina_stringshare_del(session_item->url);
- free(session_item);
-}
-
-inline const char *
-session_item_url_get(const Session_Item *session_item)
-{
- return session_item->url;
-}
-
-inline void
-session_item_url_set(Session_Item *session_item, const char *url)
-{
- EINA_SAFETY_ON_NULL_RETURN(session_item);
- eina_stringshare_replace(&(session_item->url), url);
-}
-
-inline unsigned char
-session_item_focused_get(const Session_Item *session_item)
-{
- return session_item->focused;
-}
-
-inline void
-session_item_focused_set(Session_Item *session_item, unsigned char focused)
-{
- EINA_SAFETY_ON_NULL_RETURN(session_item);
- session_item->focused = focused;
-}
-
-inline int
-session_item_scroll_x_get(const Session_Item *session_item)
-{
- return session_item->scroll_x;
-}
-
-inline void
-session_item_scroll_x_set(Session_Item *session_item, int scroll_x)
-{
- EINA_SAFETY_ON_NULL_RETURN(session_item);
- session_item->scroll_x = scroll_x;
-}
-
-inline int
-session_item_scroll_y_get(const Session_Item *session_item)
-{
- return session_item->scroll_y;
-}
-
-inline void
-session_item_scroll_y_set(Session_Item *session_item, int scroll_y)
-{
- EINA_SAFETY_ON_NULL_RETURN(session_item);
- session_item->scroll_y = scroll_y;
-}
-
-
-static inline void
-_session_window_init(void)
-{
- Eet_Data_Descriptor_Class eddc;
-
- if (_session_window_descriptor) return;
-
- EET_EINA_STREAM_DATA_DESCRIPTOR_CLASS_SET(&eddc, Session_Window);
- _session_window_descriptor = eet_data_descriptor_stream_new(&eddc);
-
- EET_DATA_DESCRIPTOR_ADD_LIST(_session_window_descriptor, Session_Window, "tabs", tabs, _session_item_descriptor);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_session_window_descriptor, Session_Window, "focused", focused, EET_T_UCHAR);
-}
-
-static inline void
-_session_window_shutdown(void)
-{
- if (!_session_window_descriptor) return;
- eet_data_descriptor_free(_session_window_descriptor);
- _session_window_descriptor = NULL;
-}
-
-Session_Window *
-session_window_new(Eina_List * tabs, unsigned char focused)
-{
- Session_Window *session_window = calloc(1, sizeof(Session_Window));
-
- if (!session_window)
- {
- fprintf(stderr, "ERROR: could not calloc Session_Window\n");
- return NULL;
- }
-
- session_window->tabs = tabs;
- session_window->focused = focused;
-
- return session_window;
-}
-
-void
-session_window_free(Session_Window *session_window)
-{
- if (session_window->tabs)
- {
- Session_Item *tabs_elem;
- EINA_LIST_FREE(session_window->tabs, tabs_elem)
- session_item_free(tabs_elem);
- }
- free(session_window);
-}
-
-inline void
-session_window_tabs_add(Session_Window *session_window, Session_Item *session_item)
-{
- EINA_SAFETY_ON_NULL_RETURN(session_window);
- session_window->tabs = eina_list_append(session_window->tabs, session_item);
-}
-
-inline void
-session_window_tabs_del(Session_Window *session_window, Session_Item *session_item)
-{
- EINA_SAFETY_ON_NULL_RETURN(session_window);
- session_window->tabs = eina_list_remove(session_window->tabs, session_item);
-}
-
-inline Session_Item *
-session_window_tabs_get(const Session_Window *session_window, unsigned int nth)
-{
- EINA_SAFETY_ON_NULL_RETURN_VAL(session_window, NULL);
- return eina_list_nth(session_window->tabs, nth);
-}
-
-inline unsigned int
-session_window_tabs_count(const Session_Window *session_window)
-{
- EINA_SAFETY_ON_NULL_RETURN_VAL(session_window, 0);
- return eina_list_count(session_window->tabs);
-}
-
-void
-session_window_tabs_list_clear(Session_Window *session_window)
-{
- EINA_SAFETY_ON_NULL_RETURN(session_window);
- Session_Item *data;
- EINA_LIST_FREE(session_window->tabs, data) session_item_free(data);
-}
-
-inline Eina_List *
-session_window_tabs_list_get(const Session_Window *session_window)
-{
- EINA_SAFETY_ON_NULL_RETURN_VAL(session_window, NULL);
- return session_window->tabs;
-}
-
-inline void
-session_window_tabs_list_set(Session_Window *session_window, Eina_List *list)
-{
- EINA_SAFETY_ON_NULL_RETURN(session_window);
- session_window->tabs = list;
-}
-
-inline unsigned char
-session_window_focused_get(const Session_Window *session_window)
-{
- return session_window->focused;
-}
-
-inline void
-session_window_focused_set(Session_Window *session_window, unsigned char focused)
-{
- EINA_SAFETY_ON_NULL_RETURN(session_window);
- session_window->focused = focused;
-}
-
-
-static inline void
-_session_init(void)
-{
- Eet_Data_Descriptor_Class eddc;
-
- if (_session_descriptor) return;
-
- EET_EINA_STREAM_DATA_DESCRIPTOR_CLASS_SET(&eddc, Session);
- _session_descriptor = eet_data_descriptor_stream_new(&eddc);
-
- EET_DATA_DESCRIPTOR_ADD_LIST(_session_descriptor, Session, "windows", windows, _session_window_descriptor);
-}
-
-static inline void
-_session_shutdown(void)
-{
- if (!_session_descriptor) return;
- eet_data_descriptor_free(_session_descriptor);
- _session_descriptor = NULL;
-}
-
-Session *
-session_new(Eina_List * windows)
-{
- Session *session = calloc(1, sizeof(Session));
-
- if (!session)
- {
- fprintf(stderr, "ERROR: could not calloc Session\n");
- return NULL;
- }
-
- session->windows = windows;
-
- return session;
-}
-
-void
-session_free(Session *session)
-{
- if (session->windows)
- {
- Session_Window *windows_elem;
- EINA_LIST_FREE(session->windows, windows_elem)
- session_window_free(windows_elem);
- }
- free(session);
-}
-
-inline void
-session_windows_add(Session *session, Session_Window *session_window)
-{
- EINA_SAFETY_ON_NULL_RETURN(session);
- session->windows = eina_list_append(session->windows, session_window);
-}
-
-inline void
-session_windows_del(Session *session, Session_Window *session_window)
-{
- EINA_SAFETY_ON_NULL_RETURN(session);
- session->windows = eina_list_remove(session->windows, session_window);
-}
-
-inline Session_Window *
-session_windows_get(const Session *session, unsigned int nth)
-{
- EINA_SAFETY_ON_NULL_RETURN_VAL(session, NULL);
- return eina_list_nth(session->windows, nth);
-}
-
-inline unsigned int
-session_windows_count(const Session *session)
-{
- EINA_SAFETY_ON_NULL_RETURN_VAL(session, 0);
- return eina_list_count(session->windows);
-}
-
-void
-session_windows_list_clear(Session *session)
-{
- EINA_SAFETY_ON_NULL_RETURN(session);
- Session_Window *data;
- EINA_LIST_FREE(session->windows, data) session_window_free(data);
-}
-
-inline Eina_List *
-session_windows_list_get(const Session *session)
-{
- EINA_SAFETY_ON_NULL_RETURN_VAL(session, NULL);
- return session->windows;
-}
-
-inline void
-session_windows_list_set(Session *session, Eina_List *list)
-{
- EINA_SAFETY_ON_NULL_RETURN(session);
- session->windows = list;
-}
-
-Session *
-session_load(const char *filename)
-{
- Session *session = NULL;
- 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;
- }
-
- session = eet_data_read(ef, _session_descriptor, SESSION_ENTRY);
- if (!session) goto end;
- session->__eet_filename = eina_stringshare_add(filename);
-
-end:
- eet_close(ef);
- return session;
-}
-
-Eina_Bool
-session_save(Session *session, const char *filename)
-{
- Eet_File *ef;
- Eina_Bool ret;
-
- if (filename) eina_stringshare_replace(&(session->__eet_filename), filename);
- else if (session->__eet_filename) filename = session->__eet_filename;
- else return EINA_FALSE;
-
- ef = eet_open(filename, EET_FILE_MODE_READ_WRITE);
- if (!ef)
- {
- fprintf(stderr, "ERROR: could not open '%s' for write\n", filename);
- return EINA_FALSE;
- }
-
- ret = !!eet_data_write(ef, _session_descriptor, SESSION_ENTRY, session, EINA_TRUE);
- eet_close(ef);
-
- return ret;
-}
-
-void
-viking_state_init(void)
-{
- _config_init();
- _hist_item_init();
- _hist_init();
- _session_item_init();
- _session_window_init();
- _session_init();
-}
-
-void
-viking_state_shutdown(void)
-{
- _config_shutdown();
- _hist_item_shutdown();
- _hist_shutdown();
- _session_item_shutdown();
- _session_window_shutdown();
- _session_shutdown();
-}
-
diff --git a/src/viking_state.geneet b/src/viking_state.geneet
@@ -0,0 +1,47 @@
+Config {
+ allow_popup : uchar;
+ enable_auto_load_images : uchar;
+ enable_auto_shrink_images : uchar;
+ enable_javascript : uchar;
+ enable_mouse_cursor : uchar;
+ enable_plugins : uchar;
+ enable_private_mode : uchar;
+ enable_touch_interface : uchar;
+ enable_history : uchar;
+ home_page : str default "http://www.getaddrinfo.net";
+ proxy : str;
+ restore_state : uchar;
+ user_agent : str default "chrome";
+ frame_flattening : uchar;
+ text_zoom : int;
+ minimum_font_size : int;
+ cookie_policy : int;
+ backing_store : int;
+}
+
+Hist_Item {
+ title : str default "Untitled";
+ url : str default "about:blank";
+ visit_count : uint;
+ last_visit : double;
+}
+
+Hist {
+ items : hash of Hist_Item by url;
+}
+
+Session_Item {
+ url : str;
+ focused : uchar;
+ scroll_x : int;
+ scroll_y : int;
+}
+
+Session_Window {
+ tabs : list of Session_Item;
+ focused : uchar;
+}
+
+Session {
+ windows : list of Session_Window;
+}
diff --git a/src/viking_state.h b/src/viking_state.h
@@ -1,131 +0,0 @@
-/* This file has been automatically generated by geneet.py */
-/* DO NOT MODIFY */
-
-#ifndef __VIKING_STATE_H__
-#define __VIKING_STATE_H__
-
-#include <Eina.h>
-#include <Eet.h>
-
-typedef struct _Config Config;
-typedef struct _Hist_Item Hist_Item;
-typedef struct _Hist Hist;
-typedef struct _Session_Item Session_Item;
-typedef struct _Session_Window Session_Window;
-typedef struct _Session Session;
-
-/* Config */
-Config *config_new(unsigned char allow_popup, unsigned char enable_auto_load_images, unsigned char enable_auto_shrink_images, unsigned char enable_javascript, unsigned char enable_mouse_cursor, unsigned char enable_plugins, unsigned char enable_private_mode, unsigned char enable_touch_interface, const char * home_page, const char * proxy, unsigned char restore_state, const char * user_agent, unsigned char frame_flattening, int text_zoom, int minimum_font_size, int cookie_policy, int backing_store);
-void config_free(Config *config);
-
-void config_allow_popup_set(Config *config, unsigned char allow_popup);
-unsigned char config_allow_popup_get(const Config *config);
-void config_enable_auto_load_images_set(Config *config, unsigned char enable_auto_load_images);
-unsigned char config_enable_auto_load_images_get(const Config *config);
-void config_enable_auto_shrink_images_set(Config *config, unsigned char enable_auto_shrink_images);
-unsigned char config_enable_auto_shrink_images_get(const Config *config);
-void config_enable_javascript_set(Config *config, unsigned char enable_javascript);
-unsigned char config_enable_javascript_get(const Config *config);
-void config_enable_mouse_cursor_set(Config *config, unsigned char enable_mouse_cursor);
-unsigned char config_enable_mouse_cursor_get(const Config *config);
-void config_enable_plugins_set(Config *config, unsigned char enable_plugins);
-unsigned char config_enable_plugins_get(const Config *config);
-void config_enable_private_mode_set(Config *config, unsigned char enable_private_mode);
-unsigned char config_enable_private_mode_get(const Config *config);
-void config_enable_touch_interface_set(Config *config, unsigned char enable_touch_interface);
-unsigned char config_enable_touch_interface_get(const Config *config);
-void config_home_page_set(Config *config, const char * home_page);
-const char * config_home_page_get(const Config *config);
-void config_proxy_set(Config *config, const char * proxy);
-const char * config_proxy_get(const Config *config);
-void config_restore_state_set(Config *config, unsigned char restore_state);
-unsigned char config_restore_state_get(const Config *config);
-void config_user_agent_set(Config *config, const char * user_agent);
-const char * config_user_agent_get(const Config *config);
-void config_frame_flattening_set(Config *config, unsigned char frame_flattening);
-unsigned char config_frame_flattening_get(const Config *config);
-void config_text_zoom_set(Config *config, int text_zoom);
-int config_text_zoom_get(const Config *config);
-void config_minimum_font_size_set(Config *config, int minimum_font_size);
-int config_minimum_font_size_get(const Config *config);
-void config_cookie_policy_set(Config *config, int cookie_policy);
-int config_cookie_policy_get(const Config *config);
-void config_backing_store_set(Config *config, int backing_store);
-int config_backing_store_get(const Config *config);
-
-Config *config_load(const char *filename);
-Eina_Bool config_save(Config *config, const char *filename);
-
-/* Hist_Item */
-Hist_Item *hist_item_new(const char * title, const char * url, unsigned int visit_count, double last_visit);
-void hist_item_free(Hist_Item *hist_item);
-
-void hist_item_title_set(Hist_Item *hist_item, const char * title);
-const char * hist_item_title_get(const Hist_Item *hist_item);
-void hist_item_url_set(Hist_Item *hist_item, const char * url);
-const char * hist_item_url_get(const Hist_Item *hist_item);
-void hist_item_visit_count_set(Hist_Item *hist_item, unsigned int visit_count);
-unsigned int hist_item_visit_count_get(const Hist_Item *hist_item);
-void hist_item_last_visit_set(Hist_Item *hist_item, double last_visit);
-double hist_item_last_visit_get(const Hist_Item *hist_item);
-
-/* Hist */
-Hist *hist_new(void);
-void hist_free(Hist *hist);
-
-void hist_items_add(Hist *hist, const char * url, Hist_Item *hist_item);
-void hist_items_del(Hist *hist, const char * url);
-Hist_Item *hist_items_get(const Hist *hist, const char * key);
-Eina_Hash *hist_items_hash_get(const Hist *hist);
-void hist_items_modify(Hist *hist, const char * key, void *value);
-
-Hist *hist_load(const char *filename);
-Eina_Bool hist_save(Hist *hist, const char *filename);
-
-/* Session_Item */
-Session_Item *session_item_new(const char * url, unsigned char focused, int scroll_x, int scroll_y);
-void session_item_free(Session_Item *session_item);
-
-void session_item_url_set(Session_Item *session_item, const char * url);
-const char * session_item_url_get(const Session_Item *session_item);
-void session_item_focused_set(Session_Item *session_item, unsigned char focused);
-unsigned char session_item_focused_get(const Session_Item *session_item);
-void session_item_scroll_x_set(Session_Item *session_item, int scroll_x);
-int session_item_scroll_x_get(const Session_Item *session_item);
-void session_item_scroll_y_set(Session_Item *session_item, int scroll_y);
-int session_item_scroll_y_get(const Session_Item *session_item);
-
-/* Session_Window */
-Session_Window *session_window_new(Eina_List * tabs, unsigned char focused);
-void session_window_free(Session_Window *session_window);
-
-void session_window_tabs_add(Session_Window *session_window, Session_Item *session_item);
-void session_window_tabs_del(Session_Window *session_window, Session_Item *session_item);
-Session_Item *session_window_tabs_get(const Session_Window *session_window, unsigned int nth);
-unsigned int session_window_tabs_count(const Session_Window *session_window);
-Eina_List *session_window_tabs_list_get(const Session_Window *session_window);
-void session_window_tabs_list_clear(Session_Window *session_window);
-void session_window_tabs_list_set(Session_Window *session_window, Eina_List *list);
-void session_window_focused_set(Session_Window *session_window, unsigned char focused);
-unsigned char session_window_focused_get(const Session_Window *session_window);
-
-/* Session */
-Session *session_new(Eina_List * windows);
-void session_free(Session *session);
-
-void session_windows_add(Session *session, Session_Window *session_window);
-void session_windows_del(Session *session, Session_Window *session_window);
-Session_Window *session_windows_get(const Session *session, unsigned int nth);
-unsigned int session_windows_count(const Session *session);
-Eina_List *session_windows_list_get(const Session *session);
-void session_windows_list_clear(Session *session);
-void session_windows_list_set(Session *session, Eina_List *list);
-
-Session *session_load(const char *filename);
-Eina_Bool session_save(Session *session, const char *filename);
-
-/* Global initializer / shutdown functions */
-void viking_state_init(void);
-void viking_state_shutdown(void);
-
-#endif /* __VIKING_STATE_H__ */