diff --git a/src/bin/chrome.c b/src/bin/chrome.c index 043f86c..3234110 100644 --- a/src/bin/chrome.c +++ b/src/bin/chrome.c @@ -65,6 +65,8 @@ typedef enum { EVE_PREF_TOUCH_INTERFACE, EVE_PREF_MOUSE_CURSOR, EVE_PREF_ENABLE_PRIVATE_MODE, + EVE_PREF_AUTO_LOAD_IMAGES, + EVE_PREF_AUTO_SHRINK_IMAGES, EVE_PREF_LAST } Eve_Preference; @@ -159,6 +161,20 @@ static More_Menu_Item more_menu_preferences[] = .pref_get = prefs_enable_touch_interface_get, .pref_set = prefs_enable_touch_interface_set }}, NULL, ITEM_FLAG_NONE }, + { ITEM_TYPE_PREFERENCE, "Automatically load images", + (More_Menu_Preference[]) {{ + .type = PREF_TYPE_CHECKBOX, + .pref = EVE_PREF_AUTO_LOAD_IMAGES, + .pref_get = prefs_enable_auto_load_images_get, + .pref_set = prefs_enable_auto_load_images_set + }}, NULL, ITEM_FLAG_NONE }, + { ITEM_TYPE_PREFERENCE, "Automatically shrink images", + (More_Menu_Preference[]) {{ + .type = PREF_TYPE_CHECKBOX, + .pref = EVE_PREF_AUTO_SHRINK_IMAGES, + .pref_get = prefs_enable_auto_shrink_images_get, + .pref_set = prefs_enable_auto_shrink_images_set + }}, NULL, ITEM_FLAG_NONE }, { ITEM_TYPE_PREFERENCE, "User agent", (More_Menu_Preference[]) {{ .type = PREF_TYPE_LIST, @@ -937,6 +953,8 @@ chrome_prefs_apply(Evas_Object *chrome) ewk_view_setting_enable_plugins_set(view, prefs_enable_plugins_get(prefs)); ewk_view_setting_user_agent_set(view, prefs_user_agent_get(prefs)); ewk_view_setting_private_browsing_set(view, prefs_enable_private_mode_get(prefs)); + ewk_view_setting_auto_load_images_set(view, prefs_enable_auto_load_images_get(prefs)); + ewk_view_setting_auto_shrink_images_set(view, prefs_enable_auto_shrink_images_get(prefs)); window_mouse_enabled_set(win->win, prefs_enable_mouse_cursor_get(prefs)); } @@ -978,6 +996,16 @@ pref_updated(More_Menu_Preference *p, void *new_value) SET_PREF_TO_ALL_VIEWS(ewk_view_setting_private_browsing_set, *((int *)new_value)); break; } + case EVE_PREF_AUTO_LOAD_IMAGES: + { + SET_PREF_TO_ALL_VIEWS(ewk_view_setting_auto_load_images_set, *((int *)new_value)); + break; + } + case EVE_PREF_AUTO_SHRINK_IMAGES: + { + SET_PREF_TO_ALL_VIEWS(ewk_view_setting_auto_shrink_images_set, *((int *)new_value)); + break; + } case EVE_PREF_MOUSE_CURSOR: { EINA_LIST_FOREACH(app.windows, win_iter, win) diff --git a/src/bin/main.c b/src/bin/main.c index a825fb6..ed5746f 100644 --- a/src/bin/main.c +++ b/src/bin/main.c @@ -463,7 +463,9 @@ elm_main(int argc, char **argv) prefs = prefs_load(path); if (!prefs) { - prefs = prefs_new(EINA_FALSE, EINA_TRUE, EINA_FALSE, EINA_TRUE, "eve", DEFAULT_URL, NULL, EINA_FALSE); + prefs = prefs_new(EINA_FALSE, EINA_TRUE, EINA_FALSE, + EINA_TRUE, "eve", DEFAULT_URL, NULL, + EINA_FALSE, EINA_TRUE, EINA_FALSE); prefs_save(prefs, path); } diff --git a/src/bin/prefs.c b/src/bin/prefs.c index 8e6f6b7..d19f7da 100644 --- a/src/bin/prefs.c +++ b/src/bin/prefs.c @@ -18,6 +18,8 @@ struct _Prefs { const char * home_page; const char * proxy; char enable_private_mode; + char enable_auto_load_images; + char enable_auto_shrink_images; const char *__eet_filename; }; @@ -43,6 +45,8 @@ _prefs_init(void) 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); + EET_DATA_DESCRIPTOR_ADD_BASIC(_prefs_descriptor, Prefs, "enable_auto_load_images", enable_auto_load_images, EET_T_CHAR); + EET_DATA_DESCRIPTOR_ADD_BASIC(_prefs_descriptor, Prefs, "enable_auto_shrink_images", enable_auto_shrink_images, EET_T_CHAR); } static inline void @@ -54,7 +58,7 @@ _prefs_shutdown(void) } 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_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, char enable_auto_load_images, char enable_auto_shrink_images) { Prefs *prefs = calloc(1, sizeof(Prefs)); @@ -72,6 +76,8 @@ prefs_new(char enable_mouse_cursor, char enable_touch_interface, char enable_plu 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; + prefs->enable_auto_load_images = enable_auto_load_images; + prefs->enable_auto_shrink_images = enable_auto_shrink_images; return prefs; } @@ -192,6 +198,32 @@ prefs_enable_private_mode_set(Prefs *prefs, char enable_private_mode) prefs->enable_private_mode = enable_private_mode; } +inline char +prefs_enable_auto_load_images_get(const Prefs *prefs) +{ + return prefs->enable_auto_load_images; +} + +inline void +prefs_enable_auto_load_images_set(Prefs *prefs, char enable_auto_load_images) +{ + EINA_SAFETY_ON_NULL_RETURN(prefs); + prefs->enable_auto_load_images = enable_auto_load_images; +} + +inline char +prefs_enable_auto_shrink_images_get(const Prefs *prefs) +{ + return prefs->enable_auto_shrink_images; +} + +inline void +prefs_enable_auto_shrink_images_set(Prefs *prefs, char enable_auto_shrink_images) +{ + EINA_SAFETY_ON_NULL_RETURN(prefs); + prefs->enable_auto_shrink_images = enable_auto_shrink_images; +} + Prefs * prefs_load(const char *filename) { diff --git a/src/bin/prefs.h b/src/bin/prefs.h index f64f4f7..da3061b 100644 --- a/src/bin/prefs.h +++ b/src/bin/prefs.h @@ -10,7 +10,7 @@ typedef struct _Prefs Prefs; /* Prefs */ -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_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, char enable_auto_load_images, char enable_auto_shrink_images); void prefs_free(Prefs *prefs); void prefs_enable_mouse_cursor_set(Prefs *prefs, char enable_mouse_cursor); @@ -29,6 +29,10 @@ void prefs_proxy_set(Prefs *prefs, const char * proxy); const char * prefs_proxy_get(const Prefs *prefs); void prefs_enable_private_mode_set(Prefs *prefs, char enable_private_mode); char prefs_enable_private_mode_get(const Prefs *prefs); +void prefs_enable_auto_load_images_set(Prefs *prefs, char enable_auto_load_images); +char prefs_enable_auto_load_images_get(const Prefs *prefs); +void prefs_enable_auto_shrink_images_set(Prefs *prefs, char enable_auto_shrink_images); +char prefs_enable_auto_shrink_images_get(const Prefs *prefs); Prefs *prefs_load(const char *filename); Eina_Bool prefs_save(Prefs *prefs, const char *filename);