+elementary (0.4.0+svn.49550slp2+3build40) unstable; urgency=low
+
+ * Beat Winset updates.
+ * Git: 165.213.180.234:/git/slp/pkgs/elementary
+ * Tag: elementary_0.4.0+svn.49550slp2+3build40
+
+ -- Juyung Seo <juyung.seo@samsung.com> Wed, 25 Aug 2010 09:08:30 +0900
+
elementary (0.4.0+svn.49550slp2+3build39) unstable; urgency=low
* Beat Winset Beta Release.
Source: elementary
Section: x11
Priority: optional
-Maintainer: Jaehwan Kim <jae.hwan.kim@samsung.com>, Chuneon Park <chuneon.park@samsung.com>, Juyung Seo <juyung.seo@samsung.com>, Myungjae Lee <mjae.lee@samsung.com>, Woohyun Jung <wh0705.jung@samsung.com>
-Uploaders: Doyoun Kang <doyoun.kang@samsung.com>, Jihoon Kim <jihoon48.kim@samsung.com>, Wonguk Jeong <wonguk.jeong@samsung.com>
+Maintainer: Jaehwan Kim <jae.hwan.kim@samsung.com>, Chuneon Park <chuneon.park@samsung.com>, Juyung Seo <juyung.seo@samsung.com>, Myungjae Lee <mjae.lee@samsung.com>, Woohyun Jung <wh0705.jung@samsung.com>, Jihoon Kim <jihoon48.kim@samsung.com>
+Uploaders: Doyoun Kang <doyoun.kang@samsung.com>
Build-Depends: debhelper (>= 6), cdbs, libecore-dev, libevas-dev, libeet-dev, libeet-bin, libedje-dev, pkg-config, libtool, libeina-dev, libefreet-dev, libethumb-dev, libwebkit-engine-dev
Standards-Version: 3.8.1
Homepage: http://www.enlightenment.org
EAPI void *elm_multibuttonentry_item_data_get(Elm_Multibuttonentry_Item *item);
EAPI void elm_multibuttonentry_item_data_set(Elm_Multibuttonentry_Item *item, void *data);
/* smart callback called:
- * "selected"
- * "added"
+ * "selected" - when the selected item of multibuttonentry is changed.
+ * "added" - when the new item of multibuttonentry is added.
*/
/* available styles:
* default
Widget_Data *wd = elm_widget_data_get(obj);
int i;
if (!wd || !wd->base) return;
-
+
if (wd->layout == ELM_DATEFIELD_LAYOUT_DATEANDTIME)
{
_elm_theme_object_set(obj, wd->base, "datefield", "dateandtime", elm_widget_style_get(obj));
edje_object_part_swallow(wd->base, "elm.swallow.date.month", wd->date[DATE_MON]);
edje_object_part_swallow(wd->base, "elm.swallow.date.day", wd->date[DATE_DAY]);
edje_object_part_text_set(wd->base, "elm.text.date.comma", ",");
-
- edje_object_signal_callback_add(wd->base, "mouse,down,1", "elm.rect.date.left.pad", _signal_rect_mouse_down, obj);
- edje_object_signal_callback_add(wd->base, "mouse,down,1", "elm.rect.date.year.over", _signal_rect_mouse_down, obj);
- edje_object_signal_callback_add(wd->base, "mouse,down,1", "elm.rect.date.month.over", _signal_rect_mouse_down, obj);
- edje_object_signal_callback_add(wd->base, "mouse,down,1", "elm.rect.date.day.over", _signal_rect_mouse_down, obj);
- edje_object_signal_callback_add(wd->base, "mouse,down,1", "elm.rect.date.right.pad", _signal_rect_mouse_down, obj);
}
if (wd->layout == ELM_DATEFIELD_LAYOUT_DATEANDTIME || wd->layout == ELM_DATEFIELD_LAYOUT_TIME)
edje_object_part_swallow(wd->base, "elm.swallow.time.hour", wd->time[TIME_HOUR]);
edje_object_part_swallow(wd->base, "elm.swallow.time.min", wd->time[TIME_MIN]);
edje_object_part_text_set(wd->base, "elm.text.colon", ":");
-
- edje_object_signal_callback_add(wd->base, "mouse,down,1", "elm.rect.time.hour.over", _signal_rect_mouse_down, obj);
- edje_object_signal_callback_add(wd->base, "mouse,down,1", "elm.rect.time.min.over", _signal_rect_mouse_down, obj);
- edje_object_signal_callback_add(wd->base, "mouse,down,1", "elm.rect.time.ampm.over", _signal_ampm_mouse_down, obj);
- edje_object_signal_callback_add(wd->base, "mouse,clicked,1", "elm.rect.time.ampm.over", _signal_ampm_clicked, obj);
}
edje_object_scale_set(wd->base, elm_widget_scale_get(obj) * _elm_config->scale);
{
wd->date[i] = elm_entry_add(obj);
elm_entry_context_menu_disabled_set(wd->date[i], EINA_TRUE);
- elm_entry_input_panel_layout_set(wd->date[i], ELM_INPUT_PANEL_LAYOUT_NUMBER);
+ if (i == DATE_MON)
+ {
+ elm_entry_input_panel_layout_set(wd->date[i], ELM_INPUT_PANEL_LAYOUT_MONTH);
+ }
+ else
+ {
+ elm_entry_input_panel_layout_set(wd->date[i], ELM_INPUT_PANEL_LAYOUT_NUMBERONLY);
+ }
evas_object_size_hint_weight_set(wd->date[i], EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(wd->date[i], EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_smart_callback_add(wd->date[i], "focused", _entry_focused_cb, obj);
{
wd->time[i] = elm_entry_add(obj);
elm_entry_context_menu_disabled_set(wd->time[i], EINA_TRUE);
- elm_entry_input_panel_layout_set(wd->time[i], ELM_INPUT_PANEL_LAYOUT_NUMBER);
+ elm_entry_input_panel_layout_set(wd->time[i], ELM_INPUT_PANEL_LAYOUT_NUMBERONLY);
elm_entry_maximum_bytes_set(wd->time[i], TIME_MAX_LENGTH);
evas_object_size_hint_weight_set(wd->time[i], EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(wd->time[i], EVAS_HINT_FILL, EVAS_HINT_FILL);
wd->base = edje_object_add(e);
elm_widget_resize_object_set(obj, wd->base);
+ edje_object_signal_callback_add(wd->base, "mouse,down,1", "elm.rect.date.left.pad", _signal_rect_mouse_down, obj);
+ edje_object_signal_callback_add(wd->base, "mouse,down,1", "elm.rect.date.year.over", _signal_rect_mouse_down, obj);
+ edje_object_signal_callback_add(wd->base, "mouse,down,1", "elm.rect.date.month.over", _signal_rect_mouse_down, obj);
+ edje_object_signal_callback_add(wd->base, "mouse,down,1", "elm.rect.date.day.over", _signal_rect_mouse_down, obj);
+ edje_object_signal_callback_add(wd->base, "mouse,down,1", "elm.rect.date.right.pad", _signal_rect_mouse_down, obj);
+
+ edje_object_signal_callback_add(wd->base, "mouse,down,1", "elm.rect.time.hour.over", _signal_rect_mouse_down, obj);
+ edje_object_signal_callback_add(wd->base, "mouse,down,1", "elm.rect.time.min.over", _signal_rect_mouse_down, obj);
+ edje_object_signal_callback_add(wd->base, "mouse,down,1", "elm.rect.time.ampm.over", _signal_ampm_mouse_down, obj);
+ edje_object_signal_callback_add(wd->base, "mouse,clicked,1", "elm.rect.time.ampm.over", _signal_ampm_clicked, obj);
wd->handler = ecore_event_handler_add(ECORE_IMF_EVENT_COMMIT, _imf_event_commit_cb, obj);
_date_entry_add(obj);
wd->time_mode = EINA_TRUE;
_theme_hook(obj);
-
+
return obj;
}
// item->line_show = EINA_TRUE;
eina_stringshare_replace(&item->location, location);
- item->bg_layout = elm_layout_add(wd->parent);
+ item->bg_layout = elm_layout_add(wd->box);
_set_item_theme(item, location);
evas_object_size_hint_weight_set(item->bg_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(item->bg_layout, EVAS_HINT_FILL, 0.0);
evas_object_show(item->bg_layout);
- elm_widget_sub_object_add(obj, item->bg_layout);
elm_layout_content_set(item->bg_layout, "swallow", item->content);
wd->parent = parent;
wd->num = 0;
- wd->box = elm_box_add(parent);
+ wd->box = elm_box_add(obj);
evas_object_event_callback_add(wd->box, EVAS_CALLBACK_CHANGED_SIZE_HINTS, _changed_size_hints, obj);
evas_object_show(wd->box);
elm_widget_resize_object_set(obj, wd->box);
elm_box_unpack(wd->box, wd->title_layout);
}
if (!wd->title_layout) {
- wd->title_layout = elm_layout_add(wd->parent);
- elm_widget_sub_object_add(obj, wd->title_layout);
+ wd->title_layout = elm_layout_add(wd->box);
elm_layout_theme_set(wd->title_layout, "dialoguegroup", "base", "title");
evas_object_size_hint_weight_set(wd->title_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(wd->title_layout, EVAS_HINT_FILL, 0.0);
Ecore_Event_Handler *sel_notify_handler;
Ecore_Event_Handler *sel_clear_handler;
Ecore_Timer *longpress_timer;
+ /* Only for clipboard */
const char *cut_sel;
const char *text;
Evas_Coord wrap_w;
if (wd->sel_notify_handler)
{
#ifdef HAVE_ELEMENTARY_X
- Evas_Object *top;
-
- top = elm_widget_top_get(data);
- if ((top) && (elm_win_xwindow_get(top)))
- {
- ecore_x_selection_primary_request
- (elm_win_xwindow_get(top),
- ECORE_X_SELECTION_TARGET_UTF8_STRING);
- wd->selection_asked = EINA_TRUE;
- }
+ wd->selection_asked = EINA_TRUE;
+ elm_selection_get(ELM_SEL_CLIPBOARD, ELM_SEL_MARKUP, data);
#endif
}
}
static void
-_store_selection(Evas_Object *obj)
+_store_selection(enum _elm_sel_type seltype, Evas_Object *obj)
{
Widget_Data *wd = elm_widget_data_get(obj);
const char *sel;
if (!wd) return;
sel = edje_object_part_text_selection_get(wd->ent, "elm.text");
- eina_stringshare_replace(&wd->cut_sel, sel);
+ elm_selection_set(seltype, obj, ELM_SEL_MARKUP, sel);
+ if (seltype == ELM_SEL_CLIPBOARD)
+ eina_stringshare_replace(&wd->cut_sel, sel);
}
static void
{
Widget_Data *wd = elm_widget_data_get(data);
+ /* Store it */
wd->selmode = EINA_FALSE;
edje_object_part_text_select_allow_set(wd->ent, "elm.text", 0);
edje_object_signal_emit(wd->ent, "elm,state,select,off", "elm");
elm_widget_scroll_hold_pop(data);
- _store_selection(data);
+ _store_selection(ELM_SEL_CLIPBOARD, data);
edje_object_part_text_insert(wd->ent, "elm.text", "");
edje_object_part_text_select_none(wd->ent, "elm.text");
}
edje_object_part_text_select_allow_set(wd->ent, "elm.text", 0);
edje_object_signal_emit(wd->ent, "elm,state,select,off", "elm");
elm_widget_scroll_hold_pop(data);
- _store_selection(data);
- edje_object_part_text_select_none(wd->ent, "elm.text");
+ _store_selection(ELM_SEL_CLIPBOARD, data);
+// edje_object_part_text_select_none(wd->ent, "elm.text");
}
static void
top = elm_widget_top_get(data);
if ((top) && (elm_win_xwindow_get(top)))
{
- ecore_x_selection_primary_request(elm_win_xwindow_get(top),
- ECORE_X_SELECTION_TARGET_UTF8_STRING);
- wd->selection_asked = EINA_TRUE;
+ wd->selection_asked = EINA_TRUE;
+ elm_selection_get(ELM_SEL_CLIPBOARD, ELM_SEL_MARKUP, data);
}
#endif
}
Widget_Data *wd = elm_widget_data_get(data);
if (!wd) return;
evas_object_smart_callback_call(data, SIG_SELECTION_COPY, NULL);
+ elm_selection_set(ELM_SEL_CLIPBOARD, obj, ELM_SEL_MARKUP,
+ elm_entry_selection_get(data));
}
static void
_signal_entry_cut_notify(void *data, Evas_Object *obj __UNUSED__, const char *emission __UNUSED__, const char *source __UNUSED__)
{
Widget_Data *wd = elm_widget_data_get(data);
- char *txt;
if (!wd) return;
evas_object_smart_callback_call(data, SIG_SELECTION_CUT, NULL);
- txt = _mkup_to_text(elm_entry_selection_get(data));
- eina_stringshare_replace(&wd->cut_sel, txt);
- if (txt) free(txt);
+ elm_selection_set(ELM_SEL_CLIPBOARD, obj, ELM_SEL_MARKUP,
+ elm_entry_selection_get(data));
edje_object_part_text_insert(wd->ent, "elm.text", "");
wd->changed = EINA_TRUE;
_sizing_eval(data);
}
wd->selection_asked = EINA_FALSE;
}
- return 1;
+ return ECORE_CALLBACK_PASS_ON;
}
static int
_event_selection_clear(void *data, int type __UNUSED__, void *event)
{
+/*
Widget_Data *wd = elm_widget_data_get(data);
Ecore_X_Event_Selection_Clear *ev = event;
if (!wd) return 1;
{
elm_entry_select_none(data);
}
- return 1;
+ return 1;*/
+ return ECORE_CALLBACK_PASS_ON;
}
#endif
* Get the entry of the multibuttonentry object\r
*\r
* @param obj The multibuttonentry object\r
- * @return entry object\r
+ * @return The entry object, or NULL if none\r
*\r
* @ingroup Multibuttonentry\r
*/\r
* reference.\r
* @param obj The multibuttonentry object\r
* @param label The label of new item\r
+ * @param before The item before which to add it\r
* @param data The ponter to the data to be attached\r
* @return A handle to the item added or NULL if not possible\r
*\r
*\r
* @param obj The multibuttonentry object\r
* @param label The label of new item\r
+ * @param after The item after which to add it\r
* @param data The ponter to the data to be attached\r
* @return A handle to the item added or NULL if not possible\r
*\r
Widget_Data *wd = elm_widget_data_get(data);
if (!wd) return;
- elm_entry_cursor_end_set(wd->eb);
+ elm_entry_cursor_end_set(elm_editfield_entry_get(wd->eb));
if (wd->cancel_btn_ani_flag == EINA_TRUE)
edje_object_signal_emit(wd->base, "CANCELIN", "PROG");
else
if (!wd) return;
int len = 0;
- const char* text = elm_entry_entry_get(wd->eb);
+ const char* text = elm_entry_entry_get(elm_editfield_entry_get(wd->eb));
+/*
if (text != NULL)
{
len = strlen(text);
{
edje_object_signal_emit(wd->base, "RESETHIDE", "PROG");
}
+*/
evas_object_smart_callback_call(data, "changed", NULL);
}
const char* text;
- text = elm_entry_entry_get(wd->eb);
+ text = elm_entry_entry_get(elm_editfield_entry_get(wd->eb));
if (text != NULL && strlen(text) > 0)
- elm_entry_entry_set(wd->eb, NULL);
+ elm_entry_entry_set(elm_editfield_entry_get(wd->eb), NULL);
evas_object_smart_callback_call(data, "cancel,clicked", NULL);
}
{
Widget_Data *wd = elm_widget_data_get(data);
if (!wd) return;
- elm_entry_entry_set(wd->eb, NULL);
+ elm_entry_entry_set(elm_editfield_entry_get(wd->eb), NULL);
}
/**
// evas_object_size_hint_align_set(wd->base, EVAS_HINT_FILL, EVAS_HINT_FILL);
// Add Entry
- wd->eb = elm_entry_add(parent);
+ wd->eb = elm_editfield_add(parent);
+ elm_object_style_set(wd->eb, "searchbar");
edje_object_part_swallow(wd->base, "btn_text", wd->eb);
- // elm_object_style_set(wd->eb, "search_input");
- elm_entry_single_line_set(wd->eb, EINA_TRUE);
+// elm_editfield_guide_text_set(di, _("Text Input"));
+ elm_editfield_entry_single_line_set(wd->eb, EINA_TRUE);
+ elm_editfield_eraser_set(wd->eb, EINA_TRUE);
evas_object_smart_callback_add(wd->eb, "clicked", _clicked, obj);
evas_object_smart_callback_add(wd->eb, "changed", _changed, obj);
elm_widget_sub_object_add(obj, wd->eb);
Widget_Data *wd = elm_widget_data_get(obj);
if (!wd) return NULL;
- elm_entry_entry_set(wd->eb, entry);
+ elm_entry_entry_set(elm_editfield_entry_get(wd->eb), entry);
}
/**
Widget_Data *wd = elm_widget_data_get(obj);
if (!wd) return NULL;
- return elm_entry_entry_get(wd->eb);
+ return elm_entry_entry_get(elm_editfield_entry_get(wd->eb));
}
/**
Widget_Data *wd = elm_widget_data_get(obj);
if (!wd) return NULL;
- return wd->eb;
+ return elm_editfield_entry_get(wd->eb);
}
/**
unsigned int del_index;
unsigned int cur_seg_id;
double scale_factor;
- Eina_Bool longpressed : 1;
+// Eina_Bool longpressed : 1;
Eina_Bool selected : 1;
};
const char *label;
Eina_Bool delete_me : 1;
int segment_id;
- Ecore_Timer *long_timer;
+// Ecore_Timer *long_timer;
};
static void _mouse_down(void *data, Evas *evas, Evas_Object *obj, void *event_info);
wd->selected = EINA_TRUE;
- if (item->long_timer)
+ /* if (item->long_timer)
{
ecore_timer_del(item->long_timer);
item->long_timer = NULL;
- }
- wd->longpressed = EINA_TRUE;
+ }*/
+ //wd->longpressed = EINA_TRUE;
edje_object_signal_emit(item->base, "elm,state,segment,on", "elm");
edje_object_signal_emit(item->base, "elm,state,text,change", "elm");
return;
}
- if(wd->longpressed == EINA_FALSE)
+ // if(wd->longpressed == EINA_FALSE)
{
edje_object_signal_emit(item->base, "elm,action,unfocus", "elm");
edje_object_signal_emit(item->base, "elm,state,text,visible", "elm");
}
- if (item->long_timer)
+ /* if (item->long_timer)
{
ecore_timer_del(item->long_timer);
item->long_timer = NULL;
- }
+ }*/
}
static void
return;
}
- if(wd->longpressed == EINA_FALSE)
+// if(wd->longpressed == EINA_FALSE)
{
edje_object_signal_emit(item->base, "elm,action,unfocus", "elm");
edje_object_signal_emit(item->base, "elm,state,text,visible", "elm");
}
- if (item->long_timer)
+ /* if (item->long_timer)
{
ecore_timer_del(item->long_timer);
item->long_timer = NULL;
- }
+ }*/
}
static void
Widget_Data *wd = elm_widget_data_get(item->obj);
if (!wd) return;
- wd->longpressed = EINA_FALSE;
+ //wd->longpressed = EINA_FALSE;
if (item->segment_id == wd->cur_seg_id)
{
edje_object_signal_emit(item->base, "elm,action,focus", "elm");
edje_object_signal_emit(item->base, "elm,state,text,visible", "elm");
- if (item->long_timer) ecore_timer_del(item->long_timer);
- item->long_timer = ecore_timer_add(0.3, _signal_segment_on, item);
+ _signal_segment_on(item);
+
+/* if (item->long_timer) ecore_timer_del(item->long_timer);
+ item->long_timer = ecore_timer_add(0.3, _signal_segment_on, item);*/
}
static void
if(it->icon) evas_object_del(it->icon);
if(it->base) evas_object_del(it->base);
if(it->label) eina_stringshare_del(it->label);
- if (it->long_timer) ecore_timer_del(it->long_timer);
+// if (it->long_timer) ecore_timer_del(it->long_timer);
if(it)
free(it);
_smart_extents_calculate(Evas_Object *box, Evas_Object_Box_Data *priv, int horizontal, int homogeneous, int extended)
{
Evas_Coord minw, minh, maxw, maxh, mnw, mnh, ww;
- Evas_Coord w, h, cal_w = 0, cal_h = 0, cur_line_max_h = 0;
+ Evas_Coord w, h, cw = 0, ch = 0, cmaxh = 0, sumw = 0;
const Eina_List *l;
Evas_Object_Box_Option *opt;
double wx;
if (horizontal && extended)
{
evas_object_geometry_get(box, NULL, NULL, &w, &h);
- minw = w;
}
EINA_LIST_FOREACH(priv->children, l, opt)
{
if(wx)
{
- if (mnw != -1 && (w - cal_w) >= mnw)
- ww = w - cal_w;
+ if (mnw != -1 && (w - cw) >= mnw)
+ ww = w - cw;
else
ww = w;
}
else
ww = mnw;
- if ((cal_w + mnw) > w)
+ if ((cw + mnw) > w)
{
- minh += cur_line_max_h;
- cal_w = 0;
- cur_line_max_h = 0;
+ minh += cmaxh;
+ if (sumw > minw) minw = sumw;
+
+ cw = 0;
+ cmaxh = 0;
+ sumw = 0;
}
- cal_w += ww;
- if (cur_line_max_h < mnh) cur_line_max_h = mnh;
+ cw += ww;
+ if (cmaxh < mnh) cmaxh = mnh;
+
+ sumw += mnw;
}
else
{
if(horizontal && extended)
{
- minh += cur_line_max_h;
+ minh += cmaxh;
+ if (sumw > minw) minw = sumw;
}
}
static Evas_Coord
_smart_extents_calculate_max_height(Evas_Object *box, Evas_Object_Box_Data *priv, int obj_index)
{
- Evas_Coord mnw, mnh, cal_w = 0, cur_line_max_h = 0, w, ww;
+ Evas_Coord mnw, mnh, cw = 0, cmaxh = 0, w, ww;
const Eina_List *l;
Evas_Object_Box_Option *opt;
int index = 0;
if(wx)
{
- if (mnw != -1 && (w - cal_w) >= mnw)
- ww = w - cal_w;
+ if (mnw != -1 && (w - cw) >= mnw)
+ ww = w - cw;
else
ww = w;
}
else
ww = mnw;
- if ((cal_w + ww) > w)
+ if ((cw + ww) > w)
{
if (index > obj_index )
{
- return cur_line_max_h;
+ return cmaxh;
}
- cal_w = 0;
- cur_line_max_h = 0;
+ cw = 0;
+ cmaxh = 0;
}
- cal_w += ww;
- if (cur_line_max_h < mnh) cur_line_max_h = mnh;
+ cw += ww;
+ if (cmaxh < mnh) cmaxh = mnh;
index++;
}
- return cur_line_max_h;
+ return cmaxh;
}
xx = x;
yy = y;
- Evas_Coord cal_w = 0, cal_h = 0, cur_line_max_h = 0, obj_index = 0;
+ Evas_Coord cw = 0, ch = 0, cmaxh = 0, obj_index = 0;
EINA_LIST_FOREACH(priv->children, l, opt)
{
Evas_Coord ww, hh, ow, oh;
if(wx)
{
- if (mnw != -1 && (w - cal_w) >= mnw)
- ww = w - cal_w;
+ if (mnw != -1 && (w - cw) >= mnw)
+ ww = w - cw;
else
ww = w;
}
if (fh) oh = hh;
if ((mxh >= 0) && (mxh < oh)) oh = mxh;
- if ((cal_w + ww) > w)
+ if ((cw + ww) > w)
{
- cal_h += cur_line_max_h;
+ ch += cmaxh;
- cal_w = 0;
- cur_line_max_h = 0;
+ cw = 0;
+ cmaxh = 0;
}
evas_object_move(obj,
- xx + cal_w + (Evas_Coord)(((double)(ww - ow)) * ax),
- yy + cal_h + (Evas_Coord)(((double)(hh - oh)) * ay));
+ xx + cw + (Evas_Coord)(((double)(ww - ow)) * ax),
+ yy + ch + (Evas_Coord)(((double)(hh - oh)) * ay));
evas_object_resize(obj, ow, oh);
- cal_w += ww;
- if (cur_line_max_h < hh) cur_line_max_h = hh;
+ cw += ww;
+ if (cmaxh < hh) cmaxh = hh;
}
else
{
_smart_enter_none(sd);
- sd->is_one_drag_mode = EINA_TRUE;
+ sd->is_one_drag_mode = EINA_FALSE;
}
evas_object_smart_callback_call(sd->smart_obj, "changed", NULL);
if (dx == 0 && dy == 0)
{
_smart_stop_animator_flick(sd);
- _smart_enter_none(sd);
+ if (sd->state == TOUCH_STATE_DRAG)
+ _smart_enter_none(sd);
return ECORE_CALLBACK_CANCEL;
}
else
int locked_dy;
unsigned char bounce_horiz : 1;
unsigned char bounce_vert : 1;
+ unsigned char events_feed : 1;
unsigned char auto_fitting : 1;
unsigned char mouse_clicked : 1;
Evas_Event_Mouse_Up mouse_up_copy;
cairo_surface_t* thumbnail;
- Ecore_Animator* animator;
- int hold_counter;
float current_zoom_level;
Eina_Bool tiled;
- Eina_Bool events_feed;
- Eina_Bool event_blocked;
- Eina_Bool event_only;
Eina_Bool on_panning;
Eina_Bool on_zooming;
Eina_Bool is_mobile_page;
static void _smart_hide(Evas_Object* obj);
static void _smart_resize(Evas_Object* obj, Evas_Coord w, Evas_Coord h);
static void _smart_move(Evas_Object* obj, Evas_Coord x, Evas_Coord y);
+#ifdef DEBUG
static void _smart_calculate(Evas_Object* obj);
+#endif
static Eina_Bool _smart_mouse_down(Ewk_View_Smart_Data *esd, const Evas_Event_Mouse_Down* ev);
static Eina_Bool _smart_mouse_up(Ewk_View_Smart_Data *esd, const Evas_Event_Mouse_Up* ev);
static Eina_Bool _smart_mouse_move(Ewk_View_Smart_Data *esd, const Evas_Event_Mouse_Move* ev);
_parent_sc.sc.move(obj, x, y);
}
-//TODO: Is it required? I just add to test
+#ifdef DEBUG
static void
_smart_calculate(Evas_Object* obj)
{
- DBG("%s\n", __func__);
_parent_sc.sc.calculate(obj);
- DBG("%s end\n", __func__);
}
+#endif
static Eina_Bool
_smart_mouse_down(Ewk_View_Smart_Data *esd, const Evas_Event_Mouse_Down* ev)
{
- DBG("%s is called\n", __func__);
+ DBG("[NATIVE]%s is called\n", __func__);
Smart_Data *sd = (Smart_Data *)esd;
sd->mouse_down_copy = *ev;
- sd->mouse_clicked = EINA_TRUE;
- return EINA_TRUE;
- //return _parent_sc.mouse_down(esd, ev);
+ if (sd->events_feed)
+ {
+ sd->mouse_clicked = EINA_TRUE;
+ return _parent_sc.mouse_down(esd, ev);
+ }
+ else return EINA_TRUE;
}
static Eina_Bool
_smart_mouse_up(Ewk_View_Smart_Data *esd, const Evas_Event_Mouse_Up* ev)
{
- DBG("%s is called\n", __func__);
+ DBG("[NATIVE]%s is called\n", __func__);
Smart_Data *sd = (Smart_Data *)esd;
sd->mouse_up_copy = *ev;
- sd->mouse_clicked = EINA_FALSE;
- if (sd->event_blocked == EINA_TRUE) return EINA_TRUE;
- if (sd->event_only == EINA_TRUE) goto forward_event;
- if (sd->animator != NULL)
+ if (sd->events_feed)
{
- ecore_animator_del(sd->animator);
- sd->animator = NULL;
- }
- sd->hold_counter = 0;
+ //check if user hold touch
+ if (ev && (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD))
+ {
+ return EINA_TRUE;
+ }
- //check if user hold touch
- if (ev && (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD))
- {
- return EINA_TRUE;
+ Eina_Bool ret = _parent_sc.mouse_up(esd, ev);
+ sd->mouse_clicked = EINA_FALSE;
+ return ret;
}
-
- //TODO:check if use click input or textarea
-forward_event:
- //return _parent_sc.mouse_up(esd, ev);
- _smart_cb_mouse_up(NULL, esd->self, (void*)&ev->output);
- return EINA_TRUE;
+ else
+ return EINA_TRUE;
}
static Eina_Bool
_smart_mouse_move(Ewk_View_Smart_Data *esd, const Evas_Event_Mouse_Move* ev)
{
- //DBG("%s is called\n", __func__);
Smart_Data *sd = (Smart_Data *)esd;
- if (sd->event_blocked == EINA_TRUE) return EINA_TRUE;
- if (sd->event_only == EINA_TRUE) goto forward_event;
-
- return EINA_TRUE;
-forward_event:
- return _parent_sc.mouse_move(esd, ev);
+ if (sd->events_feed) _parent_sc.mouse_move(esd, ev);
+ else return EINA_TRUE;
}
static void
default: ecore_imf_context_input_panel_layout_set(imContext, ECORE_IMF_INPUT_PANEL_LAYOUT_NORMAL);
}
DBG("ecore_imf_context_input_panel_show");
+ ecore_imf_context_focus_in(imContext);
+ ecore_imf_context_client_canvas_set(imContext, evas_object_evas_get(sd->base.self));
ecore_imf_context_input_panel_show (imContext);
}
}
sd->minimap.eo = NULL;
sd->dropdown.options = NULL;
sd->dropdown.option_cnt = 0;
- sd->animator = NULL;
- sd->event_only = EINA_FALSE;
sd->use_text_selection = EINA_FALSE;
sd->text_selection_on = EINA_FALSE;
sd->events_feed = EINA_FALSE;
- sd->event_blocked = EINA_TRUE;
sd->touch_obj = _elm_smart_touch_add(evas_object_evas_get(obj));
sd->layout.default_w = DEFAULT_LAYOUT_WIDTH;
DBG("%s\n", __func__);
Smart_Data* sd = (Smart_Data *)data;
if (!sd) return;
+ if (sd->events_feed == EINA_TRUE) return;
//Evas_Point* point = (Evas_Point*)ev;
if (sd->use_text_selection == EINA_TRUE && sd->text_selection_on == EINA_TRUE) return;
+#ifdef NEED_TO_REMOVE
evas_object_focus_set(webview, EINA_TRUE);
if (!sd->ewk_view_frame_main_get)
sd->ewk_view_frame_main_get = (Evas_Object *(*)(const Evas_Object *))dlsym(ewk_handle, "ewk_view_frame_main_get");
if (!sd->ewk_frame_feed_focus_in)
sd->ewk_frame_feed_focus_in = (Eina_Bool (*)(Evas_Object *))dlsym(ewk_handle, "ewk_frame_feed_focus_in");
sd->ewk_frame_feed_focus_in(sd->ewk_view_frame_main_get(webview));
+#endif
+
+ sd->mouse_clicked = EINA_TRUE;
_parent_sc.mouse_down((Ewk_View_Smart_Data*)sd, &sd->mouse_down_copy);
+#if 0 // comment out below code until it is completed
if (sd->bounce_horiz)
elm_widget_drag_lock_x_set(sd->widget, EINA_TRUE);
if (sd->bounce_vert)
elm_widget_drag_lock_y_set(sd->widget, EINA_TRUE);
+#endif
}
static void
DBG("%s\n", __func__);
Smart_Data* sd = (Smart_Data *)data;
if (!sd) return;
+ if (sd->events_feed == EINA_TRUE) return;
Evas_Point* point = (Evas_Point*)ev;
DBG(" argument : (%d, %d)\n", point->x, point->y);
-
- if (sd->events_feed == EINA_TRUE)
- _parent_sc.mouse_up((Ewk_View_Smart_Data*)sd, &sd->mouse_up_copy);
}
static void
DBG("%s\n", __func__);
Smart_Data* sd = (Smart_Data *)data;
if (!sd) return;
+ if (sd->events_feed == EINA_TRUE) return;
Evas_Point* point = (Evas_Point*)ev;
DBG(" argument : (%d, %d)\n", point->x, point->y);
}
_parent_sc.mouse_up((Ewk_View_Smart_Data*)sd, &sd->mouse_up_copy);
+ sd->mouse_clicked = EINA_FALSE;
}
static void
if (!sd) return;
Evas_Point* point = (Evas_Point*)ev;
+ if (sd->events_feed == EINA_TRUE) return;
+
sd->pan_s = *point;
sd->on_panning = EINA_TRUE;
if (!sd) return;
Evas_Point* point = (Evas_Point*)ev;
+ if (sd->events_feed == EINA_TRUE) return;
if (sd->on_panning == EINA_FALSE) return;
if (sd->use_text_selection == EINA_TRUE && sd->text_selection_on == EINA_TRUE)
}
}
- if (sd->events_feed == EINA_TRUE)
- {
- Evas* evas = evas_object_evas_get(webview);
- Evas_Modifier *modifiers = (Evas_Modifier *)evas_key_modifier_get(evas);
- Evas_Lock *locks = (Evas_Lock *)evas_key_lock_get(evas);
-
- Evas_Event_Mouse_Move event_move;
- event_move.buttons = 1;
- event_move.cur.output.x = point->x;
- event_move.cur.output.y = point->y;
- event_move.cur.canvas.x = point->x;
- event_move.cur.canvas.y = point->y;
- event_move.data = NULL;
- event_move.modifiers = modifiers;
- event_move.locks = locks;
- event_move.timestamp = ecore_loop_time_get();
- event_move.event_flags = EVAS_EVENT_FLAG_NONE;
- event_move.dev = NULL;
-
- _parent_sc.mouse_move((Ewk_View_Smart_Data*)sd, &event_move);
- return;
- }
-
if (!sd->ewk_frame_scroll_pos_get)
sd->ewk_frame_scroll_pos_get = (Eina_Bool (*)(const Evas_Object *, int *, int *))dlsym(ewk_handle, "ewk_frame_scroll_pos_get");
content_h *= zoom;
DBG("<< ========content [%d, %d] new pos [%d, %d] >>\n", content_w, content_h, old_x + dx, old_y + dy);
-#if 0
- if ((old_x + dx) >= 0 && (old_x + dx) <= content_w && !elm_widget_drag_lock_x_get(sd->widget))
- elm_widget_drag_lock_x_set(sd->widget, EINA_TRUE);
- if ((old_y + dy) >= 0 && (old_y + dy) <= content_h && !elm_widget_drag_lock_y_get(sd->widget))
- elm_widget_drag_lock_y_set(sd->widget, EINA_TRUE);
-
- Eina_Bool locked = EINA_FALSE;
- if (!elm_widget_drag_lock_x_get(sd->widget))
- {
- if ((sd->locked_dx > 0 && (sd->locked_dx + dx) <= 0)
- || (sd->locked_dx < 0 && (sd->locked_dx + dx) >= 0))
- {
- elm_widget_drag_lock_x_set(sd->widget, EINA_TRUE);
- DBG("===============<< widget x lock >>\n");
- dx += sd->locked_dx;
-
- }
- else
- {
- sd->locked_dx += dx;
- locked = EINA_TRUE;
- }
- }
-
- if (!elm_widget_drag_lock_y_get(sd->widget))
- {
- if ((sd->locked_dy > 0 && (sd->locked_dy + dy) <= 0)
- || (sd->locked_dy < 0 && (sd->locked_dy + dy) >= 0))
- {
- elm_widget_drag_lock_y_set(sd->widget, EINA_TRUE);
- DBG("===============<< widget y lock >>\n");
- dy += sd->locked_dy;
-
- }
- else
- {
- sd->locked_dy += dy;
- locked = EINA_TRUE;
- }
- }
-#else
+#if 0 // comment out below code until it is completed
Eina_Bool locked = EINA_FALSE;
if (!elm_widget_drag_lock_x_get(sd->widget))
{
locked = EINA_TRUE;
}
}
-#endif
if (locked) return;
+#endif
if (!sd->ewk_view_frame_main_get)
sd->ewk_view_frame_main_get = (Evas_Object *(*)(const Evas_Object *))dlsym(ewk_handle, "ewk_view_frame_main_get");
if (sd->use_text_selection == EINA_TRUE && sd->text_selection_on == EINA_TRUE)
_text_selection_move_by(sd, old_x - new_x, old_y - new_y);
+#if 0 // comment out below code until it is completed
if (!sd->bounce_horiz &&
(dx && elm_widget_drag_lock_x_get(sd->widget) && (old_x == new_x)))
{
elm_widget_drag_lock_y_set(sd->widget, EINA_FALSE);
DBG("===============<< widget y unlock >>\n");
}
+#endif
}
static void
DBG("%s\n", __func__);
Smart_Data* sd = (Smart_Data *)data;
if (!sd) return;
+ if (sd->events_feed == EINA_TRUE) return;
+
Evas_Point* point = (Evas_Point*)ev;
sd->on_panning = EINA_FALSE;
(sd->mouse_down_copy.canvas.x - point->x), (sd->mouse_down_copy.canvas.y - point->y));
}
+#if 0 // comment out below code until it is completed
if (!sd->bounce_horiz && elm_widget_drag_lock_x_get(sd->widget))
{
DBG("==============<< widget x unlock >>\n");
DBG("==============<< widget y unlock >>\n");
elm_widget_drag_lock_y_set(sd->widget, EINA_FALSE);
}
+#endif
}
static void
DBG("%s\n", __func__);
Smart_Data* sd = (Smart_Data *)data;
if (!sd) return;
+ if (sd->events_feed == EINA_TRUE) return;
+
Evas_Point* point = (Evas_Point*)ev;
if (sd->use_text_selection == EINA_FALSE) return;
if (!sd) return;
Evas_Point* point = (Evas_Point*)event_info;
+ if (sd->events_feed == EINA_TRUE) return;
+
if (!sd->ewk_view_frame_main_get)
sd->ewk_view_frame_main_get = (Evas_Object *(*)(const Evas_Object *))dlsym(ewk_handle, "ewk_view_frame_main_get");
- // feed double tap
- if (sd->events_feed == EINA_TRUE)
- {
- Evas_Event_Mouse_Down mouse_double_down = sd->mouse_down_copy;
- mouse_double_down.flags |= EVAS_BUTTON_DOUBLE_CLICK;
- if (!sd->ewk_frame_feed_mouse_down)
- sd->ewk_frame_feed_mouse_down = (Eina_Bool (*)(Evas_Object *, const Evas_Event_Mouse_Down *))dlsym(ewk_handle, "ewk_frame_feed_mouse_down");
- if (!sd->ewk_frame_feed_mouse_up)
- sd->ewk_frame_feed_mouse_up = (Eina_Bool (*)(Evas_Object *, const Evas_Event_Mouse_Up *))dlsym(ewk_handle, "ewk_frame_feed_mouse_up");
- sd->ewk_frame_feed_mouse_down(sd->ewk_view_frame_main_get(sd->base.self), &mouse_double_down);
- sd->ewk_frame_feed_mouse_up(sd->ewk_view_frame_main_get(sd->base.self), &sd->mouse_up_copy);
- return;
- }
-
_elm_smart_touch_stop(sd->touch_obj);
// get rect