Merge with upstream r66368
[framework/uifw/elementary.git] / src / lib / elm_priv.h
index 3a07bc9..ae1278c 100644 (file)
 # include <Ecore_WinCE.h>
 #endif
 
-//#include "els_pan.h"
-//#include "els_scroller.h"
-//#include "els_box.h"
-//#include "els_icon.h"
-
 #include "elm_widget.h"
 
 #define CRITICAL(...) EINA_LOG_DOM_CRIT(_elm_log_dom, __VA_ARGS__)
 #define INF(...)      EINA_LOG_DOM_INFO(_elm_log_dom, __VA_ARGS__)
 #define DBG(...)      EINA_LOG_DOM_DBG (_elm_log_dom, __VA_ARGS__)
 
-Evas_Object *_elm_smart_pan_add            (Evas *evas);
-void         _elm_smart_pan_child_set      (Evas_Object *obj, Evas_Object *child);
-Evas_Object *_elm_smart_pan_child_get      (Evas_Object *obj);
-void         _elm_smart_pan_set            (Evas_Object *obj, Evas_Coord x, Evas_Coord y);
-void         _elm_smart_pan_get            (Evas_Object *obj, Evas_Coord *x, Evas_Coord *y);
-void         _elm_smart_pan_max_get        (Evas_Object *obj, Evas_Coord *x, Evas_Coord *y);
-void         _elm_smart_pan_min_get        (Evas_Object *obj, Evas_Coord *x, Evas_Coord *y);
-void         _elm_smart_pan_child_size_get (Evas_Object *obj, Evas_Coord *w, Evas_Coord *h);
-
-typedef enum _Elm_Smart_Scroller_Policy
-{
-   ELM_SMART_SCROLLER_POLICY_AUTO,
-   ELM_SMART_SCROLLER_POLICY_ON,
-   ELM_SMART_SCROLLER_POLICY_OFF
-}
-Elm_Smart_Scroller_Policy;
-
-Evas_Object *elm_smart_scroller_add             (Evas *evas);
-void elm_smart_scroller_child_set               (Evas_Object *obj, Evas_Object *child);
-void elm_smart_scroller_extern_pan_set          (Evas_Object *obj, Evas_Object *pan, void (*pan_set) (Evas_Object *obj, Evas_Coord x, Evas_Coord y), void (*pan_get) (Evas_Object *obj, Evas_Coord *x, Evas_Coord *y), void (*pan_max_get) (Evas_Object *obj, Evas_Coord *x, Evas_Coord *y), void (*pan_min_get) (Evas_Object *obj, Evas_Coord *x, Evas_Coord *y), void (*pan_child_size_get) (Evas_Object *obj, Evas_Coord *x, Evas_Coord *y));
-void elm_smart_scroller_custom_edje_file_set    (Evas_Object *obj, char *file, char *group);
-void elm_smart_scroller_child_pos_set           (Evas_Object *obj, Evas_Coord x, Evas_Coord y);
-void elm_smart_scroller_child_pos_get           (Evas_Object *obj, Evas_Coord *x, Evas_Coord *y);
-void elm_smart_scroller_child_region_show       (Evas_Object *obj, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h);
-void elm_smart_scroller_child_viewport_size_get (Evas_Object *obj, Evas_Coord *w, Evas_Coord *h);
-void elm_smart_scroller_step_size_set           (Evas_Object *obj, Evas_Coord x, Evas_Coord y);
-void elm_smart_scroller_step_size_get           (Evas_Object *obj, Evas_Coord *x, Evas_Coord *y);
-void elm_smart_scroller_page_size_set           (Evas_Object *obj, Evas_Coord x, Evas_Coord y);
-void elm_smart_scroller_page_size_get           (Evas_Object *obj, Evas_Coord *x, Evas_Coord *y);
-void elm_smart_scroller_policy_set              (Evas_Object *obj, Elm_Smart_Scroller_Policy hbar, Elm_Smart_Scroller_Policy vbar);
-void elm_smart_scroller_policy_get              (Evas_Object *obj, Elm_Smart_Scroller_Policy *hbar, Elm_Smart_Scroller_Policy *vbar);
-Evas_Object *elm_smart_scroller_edje_object_get (Evas_Object *obj);
-void elm_smart_scroller_single_dir_set          (Evas_Object *obj, Eina_Bool single_dir);
-Eina_Bool elm_smart_scroller_single_dir_get     (Evas_Object *obj);
-void elm_smart_scroller_object_theme_set        (Evas_Object *parent, Evas_Object *obj, const char *clas, const char *group, const char *style);
-void elm_smart_scroller_hold_set                (Evas_Object *obj, Eina_Bool hold);
-void elm_smart_scroller_freeze_set              (Evas_Object *obj, Eina_Bool freeze);
-void elm_smart_scroller_bounce_allow_set        (Evas_Object *obj, Eina_Bool horiz, Eina_Bool vert);
-void elm_smart_scroller_bounce_allow_get        (const Evas_Object *obj, Eina_Bool *horiz, Eina_Bool *vert);
-void elm_smart_scroller_paging_set              (Evas_Object *obj, double pagerel_h, double pagerel_v, Evas_Coord pagesize_h, Evas_Coord pagesize_v);
-void elm_smart_scroller_paging_get              (Evas_Object *obj, double *pagerel_h, double *pagerel_v, Evas_Coord *pagesize_h, Evas_Coord *pagesize_v);
-void elm_smart_scroller_region_bring_in         (Evas_Object *obj, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h);
-void elm_smart_scroller_widget_set              (Evas_Object *obj, Evas_Object *wid);
-Eina_Bool elm_smart_scroller_momentum_animator_disabled_get   (Evas_Object *obj);
-void elm_smart_scroller_momentum_animator_disabled_set             (Evas_Object *obj, Eina_Bool disabled);
-void elm_smart_scroller_bounce_animator_disabled_set               (Evas_Object *obj, Eina_Bool disabled);
-Eina_Bool elm_smart_scroller_bounce_animator_disabled_get     (Evas_Object *obj);
-
-void _els_box_layout(Evas_Object *o, Evas_Object_Box_Data *priv, int horizontal, int homogeneous);
-
-Evas_Object *_els_smart_icon_add              (Evas *evas);
-Eina_Bool    _els_smart_icon_file_key_set     (Evas_Object *obj, const char *file, const char *key);
-Eina_Bool    _els_smart_icon_file_edje_set    (Evas_Object *obj, const char *file, const char *part);
-void         _els_smart_icon_file_get         (const Evas_Object *obj, const char **file, const char **key);
-void         _els_smart_icon_smooth_scale_set (Evas_Object *obj, Eina_Bool smooth);
-Eina_Bool    _els_smart_icon_smooth_scale_get (const Evas_Object *obj);
-Evas_Object *_els_smart_icon_object_get       (const Evas_Object *obj);
-void         _els_smart_icon_size_get         (const Evas_Object *obj, int *w, int *h);
-void         _els_smart_icon_fill_inside_set  (Evas_Object *obj, Eina_Bool fill_inside);
-Eina_Bool    _els_smart_icon_fill_inside_get  (const Evas_Object *obj);
-void         _els_smart_icon_scale_up_set     (Evas_Object *obj, Eina_Bool scale_up);
-Eina_Bool    _els_smart_icon_scale_up_get     (const Evas_Object *obj);
-void         _els_smart_icon_scale_down_set   (Evas_Object *obj, Eina_Bool scale_down);
-Eina_Bool    _els_smart_icon_scale_down_get   (const Evas_Object *obj);
-void         _els_smart_icon_scale_size_set   (Evas_Object *obj, int size);
-int          _els_smart_icon_scale_size_get   (const Evas_Object *obj);
-void         _els_smart_icon_scale_set        (Evas_Object *obj, double scale);
-double       _els_smart_icon_scale_get        (const Evas_Object *obj);
-void         _els_smart_icon_orient_set       (Evas_Object *obj, Elm_Image_Orient orient);
-Elm_Image_Orient _els_smart_icon_orient_get   (const Evas_Object *obj);
-void         _els_smart_icon_edit_set         (Evas_Object *obj, Eina_Bool, Evas_Object *parent);
-Eina_Bool    _els_smart_icon_edit_get         (const Evas_Object *obj);
-Evas_Object *_els_smart_icon_edje_get(Evas_Object *obj);
-
+#ifdef ENABLE_NLS
+# include <libintl.h>
+# define E_(string) dgettext(PACKAGE, string)
+#else
+# define bindtextdomain(domain,dir)
+# define E_(string) (string)
+#endif
+#define N_(string) (string)
 
 typedef struct _Elm_Config    Elm_Config;
 typedef struct _Elm_Module    Elm_Module;
@@ -110,6 +39,7 @@ struct _Elm_Theme
    Eina_List  *themes;
    Eina_List  *extension;
    Eina_Hash  *cache;
+   Eina_Hash  *cache_data;
    Elm_Theme  *ref_theme;
    Eina_List  *referrers;
    const char *theme;
@@ -144,52 +74,80 @@ extern const char *_elm_engines[];
 #define ELM_SOFTWARE_SDL      (_elm_engines[9])
 #define ELM_SOFTWARE_16_SDL   (_elm_engines[10])
 #define ELM_OPENGL_SDL        (_elm_engines[11])
+#define ELM_BUFFER            (_elm_engines[12])
+#define ELM_EWS               (_elm_engines[13])
+#define ELM_OPENGL_COCOA      (_elm_engines[14])
+#define ELM_SOFTWARE_PSL1GHT  (_elm_engines[15])
 
 #define ELM_FONT_TOKEN_STYLE ":style="
 
+#define ELM_ACCESS_MODE_OFF 0
+#define ELM_ACCESS_MODE_ON 1
+
 struct _Elm_Config
 {
-   int          config_version;
-   const char  *engine;
-   Eina_Bool    thumbscroll_enable;
-   int          thumbscroll_threshold;
-   double       thumbscroll_momentum_threshold;
-   double       thumbscroll_friction;
-   double       thumbscroll_bounce_friction;
-   double       page_scroll_friction;
-   double       bring_in_scroll_friction;
-   double       zoom_friction;
-   Eina_Bool    thumbscroll_bounce_enable;
-   double       thumbscroll_border_friction;
-   double       scale;
-   int          bgpixmap;
-   int          compositing;
-   Eina_List   *font_dirs;
-   Eina_List   *font_overlays;
-   int          font_hinting;
-   int          cache_flush_poll_interval;
-   Eina_Bool    cache_flush_enable;
-   int          image_cache;
-   int          font_cache;
-   int          edje_cache;
-   int          edje_collection_cache;
-   int          finger_size;
-   double       fps;
-   const char  *theme;
-   const char  *modules;
-   double       tooltip_delay;
-   Eina_Bool    cursor_engine_only;
-   Eina_Bool    focus_highlight_enable;
-   Eina_Bool    focus_highlight_animate;
-   int          toolbar_shrink_mode;
-   Eina_Bool    fileselector_expand_enable;
-   Eina_Bool    inwin_dialogs_enable;
-   int          icon_size;
-   double       longpress_timeout;
-   int input_panel_enable;
-   int autocapital_allow;
-   int autoperiod_allow;   
-   Eina_Bool    password_show_last_character;
+   int            config_version;
+   const char    *engine;
+   unsigned char  vsync;
+   unsigned char  thumbscroll_enable;
+   int            thumbscroll_threshold;
+   double         thumbscroll_momentum_threshold;
+   double         thumbscroll_friction;
+   double         thumbscroll_bounce_friction;
+   double         page_scroll_friction;
+   double         bring_in_scroll_friction;
+   double         zoom_friction;
+   unsigned char  thumbscroll_bounce_enable;
+   double         thumbscroll_border_friction;
+   double         thumbscroll_sensitivity_friction;
+   double         scroll_smooth_time_interval;
+   double         scroll_smooth_amount;
+   double         scroll_smooth_history_weight;
+   double         scroll_smooth_future_time;
+   double         scroll_smooth_time_window;
+   double         scale;
+   int            bgpixmap;
+   int            compositing;
+   Eina_List     *font_dirs;
+   Eina_List     *font_overlays;
+   int            font_hinting;
+   int            cache_flush_poll_interval;
+   unsigned char  cache_flush_enable;
+   int            image_cache;
+   int            font_cache;
+   int            edje_cache;
+   int            edje_collection_cache;
+   int            finger_size;
+   double         fps;
+   const char    *theme;
+   const char    *modules;
+   double         tooltip_delay;
+   unsigned char  cursor_engine_only;
+   unsigned char  focus_highlight_enable;
+   unsigned char  focus_highlight_animate;
+   int            toolbar_shrink_mode;
+   unsigned char  fileselector_expand_enable;
+   unsigned char  inwin_dialogs_enable;
+   int            icon_size;
+   double         longpress_timeout;
+   unsigned char  effect_enable;
+   unsigned char  desktop_entry;
+   Eina_Bool      is_mirrored : 1;
+   Eina_Bool      password_show_last;
+   double         password_show_last_timeout;
+   Eina_Bool      glayer_zoom_finger_enable;
+   double         glayer_zoom_finger_factor;
+   double         glayer_zoom_wheel_factor;
+   double         glayer_zoom_distance_tolerance;
+   double         glayer_rotate_finger_enable;
+   double         glayer_rotate_angular_tolerance;
+   double         glayer_line_min_length;
+   double         glayer_line_distance_tolerance;
+   double         glayer_line_angular_tolerance;
+   unsigned int   glayer_flick_time_limit_ms;
+   double         glayer_long_tap_start_timeout;
+   int            access_mode;
+   Eina_Bool      glayer_continues_enable;
 };
 
 struct _Elm_Module
@@ -208,10 +166,9 @@ struct _Elm_Module
    int          references;
 };
 
-#define ELM_NEW(t) calloc(1, sizeof(t))
-
 void                _elm_win_shutdown(void);
 void                _elm_win_rescale(Elm_Theme *th, Eina_Bool use_theme);
+void                _elm_win_translate(void);
 
 Eina_Bool           _elm_theme_object_set(Evas_Object *parent, Evas_Object *o, const char *clas, const char *group, const char *style);
 Eina_Bool           _elm_theme_object_icon_set(Evas_Object *parent, Evas_Object *o, const char *group, const char *style);
@@ -232,10 +189,14 @@ const void         *_elm_module_symbol_get(Elm_Module *m, const char *name);
 
 void                _elm_widget_type_clear(void);
 void                _elm_widget_focus_region_show(const Evas_Object *obj);
+void                _elm_widget_top_win_focused_set(Evas_Object *obj, Eina_Bool top_win_focused);
+Eina_Bool           _elm_widget_top_win_focused_get(const Evas_Object *obj);
 
-void               _elm_unneed_ethumb(void);
+void                _elm_unneed_ethumb(void);
+void                _elm_unneed_web(void);
 
 void                _elm_rescale(void);
+void                _elm_widget_mirrored_reload(Evas_Object *obj);
 
 void                _elm_config_init(void);
 void                _elm_config_sub_init(void);
@@ -263,6 +224,7 @@ Elm_Font_Properties *_elm_font_properties_get(Eina_Hash **font_hash, const char
 Eina_Hash           *_elm_font_available_hash_add(Eina_Hash *font_hash, const char *full_name);
 void                 _elm_font_available_hash_del(Eina_Hash *hash);
 
+void                _els_box_layout(Evas_Object *o, Evas_Object_Box_Data *priv, int horizontal, int homogeneous, int rtl);
 void                 elm_tooltip_theme(Elm_Tooltip *tt);
 void                 elm_object_sub_tooltip_content_cb_set(Evas_Object *eventarea, Evas_Object *owner, Elm_Tooltip_Content_Cb func, const void *data, Evas_Smart_Cb del_cb);
 void                 elm_cursor_theme(Elm_Cursor *cur);
@@ -280,11 +242,15 @@ char               *_elm_util_text_to_mkup(const char *text);
 EAPI Eina_Bool    elm_cbhm_helper_init(Evas_Object *self);
 EAPI void         elm_cbhm_send_raw_data(char *cmd);
 
+Eina_Bool           _elm_video_check(Evas_Object *video);
+
+
 extern char        *_elm_appname;
 extern Elm_Config  *_elm_config;
 extern const char  *_elm_data_dir;
 extern const char  *_elm_lib_dir;
 extern int          _elm_log_dom;
 extern Eina_List   *_elm_win_list;
+extern int          _elm_win_deferred_free;
 
 #endif