summaryrefslogtreecommitdiff
path: root/src/lib/elementary/elm_web2.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/elementary/elm_web2.c')
-rw-r--r--src/lib/elementary/elm_web2.c77
1 files changed, 65 insertions, 12 deletions
diff --git a/src/lib/elementary/elm_web2.c b/src/lib/elementary/elm_web2.c
index 170ae425c7..8fb606c2d4 100644
--- a/src/lib/elementary/elm_web2.c
+++ b/src/lib/elementary/elm_web2.c
@@ -2,10 +2,11 @@
# include "elementary_config.h"
#endif
-#define EFL_ACCESS_PROTECTED
+#define EFL_ACCESS_OBJECT_PROTECTED
#include <Elementary.h>
+#include "../../static_libs/buildsystem/buildsystem.h"
#include "elm_priv.h"
#include "elm_widget_web.h"
@@ -98,7 +99,7 @@ _elm_web_efl_object_constructor(Eo *obj, Elm_Web_Data *sd)
sd->obj = obj;
efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
evas_object_smart_callbacks_descriptions_set(obj, _elm_web_smart_callbacks);
- efl_access_role_set(obj, EFL_ACCESS_ROLE_HTML_CONTAINER);
+ efl_access_object_role_set(obj, EFL_ACCESS_ROLE_HTML_CONTAINER);
return obj;
}
@@ -156,6 +157,64 @@ elm_web_window_features_region_get(const Elm_Web_Window_Features *wf,
ewm.window_features_region_get(wf, x, y, w, h);
}
+
+static inline void
+_convert_web_zoom_mode(Elm_Web_Zoom_Mode *legacy_mode, Efl_Ui_Zoom_Mode *mode, Eina_Bool to_legacy)
+{
+ #define CONVERT(LEGACY_MODE, NEW_MODE) \
+ if (to_legacy && *mode == NEW_MODE) \
+ { \
+ *legacy_mode =LEGACY_MODE; \
+ return; \
+ } \
+ if (!to_legacy && *legacy_mode == LEGACY_MODE) \
+ { \
+ *mode = NEW_MODE; \
+ return; \
+ } \
+
+ CONVERT(ELM_WEB_ZOOM_MODE_MANUAL, EFL_UI_ZOOM_MODE_MANUAL)
+ CONVERT(ELM_WEB_ZOOM_MODE_AUTO_FIT, EFL_UI_ZOOM_MODE_AUTO_FIT)
+ CONVERT(ELM_WEB_ZOOM_MODE_AUTO_FILL, EFL_UI_ZOOM_MODE_AUTO_FILL)
+ CONVERT(ELM_WEB_ZOOM_MODE_LAST, EFL_UI_ZOOM_MODE_LAST)
+ CONVERT(ELM_WEB_ZOOM_MODE_LAST, EFL_UI_ZOOM_MODE_AUTO_FIT_IN)
+
+ #undef CONVERT
+}
+
+EAPI void
+elm_web_zoom_mode_set(Evas_Object *obj, Elm_Web_Zoom_Mode mode)
+{
+ Efl_Ui_Zoom_Mode new_mode;
+
+ _convert_web_zoom_mode(&mode, &new_mode, EINA_FALSE);
+
+ efl_ui_zoom_mode_set(obj, new_mode);
+}
+
+EAPI Elm_Web_Zoom_Mode
+elm_web_zoom_mode_get(const Evas_Object *obj)
+{
+ Efl_Ui_Zoom_Mode new_mode = efl_ui_zoom_mode_get(obj);;
+ Elm_Web_Zoom_Mode mode;
+
+ _convert_web_zoom_mode(&mode, &new_mode, EINA_TRUE);
+
+ return mode;
+}
+
+EAPI void
+elm_web_zoom_set(Evas_Object *obj, double zoom)
+{
+ efl_ui_zoom_level_set(obj, zoom);
+}
+
+EAPI double
+elm_web_zoom_get(const Evas_Object *obj)
+{
+ return efl_ui_zoom_level_get(obj);
+}
+
static void
_elm_web_class_constructor(Efl_Class *klass)
{
@@ -173,16 +232,10 @@ _elm_web_init(const char *engine)
{
char buf[PATH_MAX];
-#ifdef NEED_RUN_IN_TREE
- if (getenv("ELM_RUN_IN_TREE"))
- snprintf(buf, sizeof(buf),
- ELM_TOP_BUILD_DIR"/src/modules/web/%s/.libs/module"EFL_SHARED_EXTENSION,
- engine);
- else
-#endif
- snprintf(buf, sizeof(buf),
- "%s/elementary/modules/web/%s/%s/module"EFL_SHARED_EXTENSION,
- _elm_lib_dir, engine, MODULE_ARCH);
+ if (!bs_mod_get(buf, sizeof(buf), "elementary/web", engine))
+ snprintf(buf, sizeof(buf),
+ "%s/elementary/modules/web/%s/%s/module"EFL_SHARED_EXTENSION,
+ _elm_lib_dir, engine, MODULE_ARCH);
if (ewm.m)
{