示例#1
0
static void _entry_unfocused_cb(void *data, Evas_Object * obj, void *event_info)
{

	if (elm_entry_is_empty(obj))
		elm_object_signal_emit(data, "elm,state,guidetext,show", "elm");
	elm_object_signal_emit(data, "elm,state,eraser,hide", "elm");
}
static void __common_utils_entry_changed_cb(void* data, Evas_Object* obj, void* event_info)
{
	if (obj == NULL)
		return;

	if (elm_object_focus_get(data)) {
		if (elm_entry_is_empty(obj))
			elm_object_signal_emit(data, "elm,state,eraser,hide", "elm");
		else
			elm_object_signal_emit(data, "elm,state,eraser,show", "elm");
	}
}
Evas_Object *common_utils_add_edit_box(Evas_Object *parent, const common_utils_entry_info_t *entry_info)
{
	Evas_Object *layout = elm_layout_add(parent);
	Evas_Object *entry = NULL;
	elm_layout_theme_set(layout, "layout", "editfield", "title");
	evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
	evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
	elm_object_part_text_set(layout, "elm.text", entry_info->title);
	elm_object_part_text_set(layout, "elm.guidetext", entry_info->guide_txt); // Set guidetext.

	entry = elm_entry_add(layout);
	elm_object_part_content_set(layout, "elm.swallow.content", entry);
	elm_entry_single_line_set(entry, EINA_TRUE);
	elm_entry_scrollable_set(entry, EINA_TRUE);
	elm_entry_entry_set(entry, entry_info->entry_txt);
	elm_entry_input_panel_layout_set(entry, entry_info->panel_type);
	if (!elm_entry_is_empty(entry)) {
		INFO_LOG(UG_NAME_NORMAL, "entry is not empty");
		elm_object_signal_emit(layout, "elm,state,guidetext,hide", "elm");
		if (!entry_info->guide_txt || strlen(entry_info->guide_txt) <= 0)
			evas_object_data_set(layout, COMMON_UTILS_DEFAULT_ENTRY_TEXT_KEY, g_strdup(entry_info->entry_txt));
	}

	evas_object_smart_callback_add(entry, "changed", __common_utils_entry_changed_cb, layout);
	evas_object_smart_callback_add(entry, "focused", __common_utils_entry_focused_cb, layout);
	evas_object_smart_callback_add(entry, "unfocused", __common_utils_entry_unfocused_cb, layout);
	elm_object_signal_callback_add(layout, "elm,eraser,clicked", "elm", __common_utils_eraser_clicked_cb, entry);
	evas_object_show(entry);

	return layout;
}
void Browser_Common_View::show_notify_popup_layout(const char *msg, int timeout, Evas_Object *parent)
{
	if (m_selinfo_layout) {
		evas_object_del(m_selinfo_layout);
		m_selinfo_layout = NULL;
	}

	m_selinfo_layout = elm_layout_add(parent);
	if (!m_selinfo_layout) {
		BROWSER_LOGD("elm_layout_add failed");
		return;
	}
	elm_object_part_content_set(parent,
			"selinfo.swallow.contents",
			m_selinfo_layout);
	evas_object_size_hint_weight_set(m_selinfo_layout,
			EVAS_HINT_EXPAND,
			EVAS_HINT_EXPAND);
	evas_object_size_hint_align_set(m_selinfo_layout,
			EVAS_HINT_FILL,
			EVAS_HINT_FILL);

	elm_object_content_set(m_selection_info, m_selection_info_layout);

	/* Set the layout theme */
	elm_layout_theme_set(m_selinfo_layout, "standard", "selectioninfo", "default");
	/* Set the text */
	elm_object_part_text_set(m_selinfo_layout, "elm.text", msg);
	elm_object_signal_emit(parent, "show,selection,info", "elm");
}
示例#5
0
static void
_scroll(void *data, Evas_Object *obj, void *ei)
{
	int cur_page;
	page_data *pd = (page_data *)data;
	elm_scroller_current_page_get(pd->scroller, &cur_page, NULL);
	if (cur_page != pd->cur_page) {
		printf("scroll: %d\n", pd->cur_page);
		pd->prev_page = pd->cur_page;
		pd->cur_page = cur_page;
		if ((pd->cur_page >= NUM_ITEMS_CIRCLE_EVEN) || (pd->prev_page >= NUM_ITEMS_CIRCLE_EVEN))
			return;
		elm_object_signal_emit(pd->page_layout[pd->cur_page], "elm,state,thumbnail,select", "elm");
		elm_object_signal_emit(pd->page_layout[pd->prev_page], "elm,state,thumbnail,unselect", "elm");
		_index_sync(pd);
	}
}
示例#6
0
static void
_set_osd_timer(Enna_View_Player_Video_Data *priv, double t)
{
   FREE_NULL_FUNC(ecore_timer_del, priv->osd_timer);

   if (t > 0.0)
     priv->osd_timer = ecore_timer_add(t, _osd_timer_cb, priv);
   elm_object_signal_emit(priv->layout, "show,osd", "enna");
}
void Browser_Common_View::hide_notify_popup_layout(Evas_Object *parent)
{
	if (m_selinfo_layout) {
		evas_object_del(m_selinfo_layout);
		m_selinfo_layout = NULL;
	}

	elm_object_signal_emit(parent, "hide,selection,info", "elm");
}
static void
_swallow_btn_cb(void *data, Evas_Object *btn, void *event_info)
{
   Evas_Object *layout = data;

   if (_btn_large == EINA_FALSE)
     {
	_btn_large = EINA_TRUE;
	elm_object_signal_emit(layout, "button,enlarge", "");
	elm_object_text_set(btn, "Reduce me!");
     }
   else
     {
	_btn_large = EINA_FALSE;
	elm_object_signal_emit(layout, "button,reduce", "");
	elm_object_text_set(btn, "Enlarge me!");
     }
}
static void __common_utils_entry_unfocused_cb(void *data, Evas_Object *obj, void *event_info)
{
	INFO_LOG(UG_NAME_NORMAL, "__common_utils_entry_unfocused_cb entered");

	if (elm_entry_is_empty(obj)) {
		const char *guide_txt = elm_object_part_text_get(data, "elm.guidetext");
		INFO_LOG(UG_NAME_NORMAL, "entry is empty");
		if (guide_txt && strlen(guide_txt)) { /* If guide text exists then show it */
			elm_object_signal_emit(data, "elm,state,guidetext,show", "elm");
		} else {	/* If default entry text exists then show it */
			char *default_entry_txt = NULL;
			default_entry_txt = evas_object_data_get(data, COMMON_UTILS_DEFAULT_ENTRY_TEXT_KEY);
			if (default_entry_txt && strlen(default_entry_txt)) {
				elm_entry_entry_set(obj, default_entry_txt);
			}
		}
	}
	elm_object_signal_emit(data, "elm,state,eraser,hide", "elm");
}
示例#10
0
static Eina_Bool
_osd_timer_cb(void *data)
{
   Enna_View_Player_Video_Data *priv = data;

   if (priv->on_hold)
   {
       return EINA_FALSE;
   }
   elm_object_signal_emit(priv->layout, "hide,osd", "enna");
   return EINA_TRUE;
}
/* set focus to edit field idler callback to show ime. */
Eina_Bool Browser_Common_View::__set_focus_editfield_idler_cb(void *edit_field)
{
	BROWSER_LOGD("[%s]", __func__);
	if (!edit_field)
		return ECORE_CALLBACK_CANCEL;
	elm_object_focus_set((Evas_Object *)edit_field, EINA_TRUE);
	elm_object_signal_emit((Evas_Object *)edit_field, "clicked", "elm");

	Evas_Object *entry = br_elm_editfield_entry_get((Evas_Object *)edit_field);
	elm_entry_cursor_end_set(entry);

	return ECORE_CALLBACK_CANCEL;
}
static void
_btn_clicked(void *data, Evas_Object *obj, void *event_info)
{
    Evas_Object *win = data;
    Evas_Object *ctxpopup;
    Evas_Coord x,y;

    ctxpopup = elm_ctxpopup_add(win);

    elm_object_style_set(ctxpopup, "1text.1icon");
    elm_object_signal_emit(ctxpopup, "elm,action,focus", "elm");
    item_new(ctxpopup, "Text List1", "home");
    item_new(ctxpopup, "Text List2", "file");
    item_new(ctxpopup, "Text List3", "delete");

    switch (dir) {
        case 0:
            elm_ctxpopup_direction_priority_set(ctxpopup,
                                                ELM_CTXPOPUP_DIRECTION_UP, 0, 0, 0);
            break;
        case 1:
            elm_ctxpopup_direction_priority_set(ctxpopup,
                                                ELM_CTXPOPUP_DIRECTION_DOWN, 0, 0, 0);
            break;
        case 2:
            elm_ctxpopup_direction_priority_set(ctxpopup,
                                                ELM_CTXPOPUP_DIRECTION_LEFT, 0, 0, 0);
            break;
        case 3:
            elm_ctxpopup_direction_priority_set(ctxpopup,
                                                ELM_CTXPOPUP_DIRECTION_RIGHT, 0, 0, 0);
            break;
    }

    evas_pointer_canvas_xy_get(evas_object_evas_get(obj), &x, &y);
    evas_object_move(ctxpopup, x, y);
    evas_object_show(ctxpopup);
    eext_object_event_callback_add(ctxpopup, EEXT_CALLBACK_BACK, _ctxpopup_back_key_cb, NULL);
}
示例#13
0
static void
_create_view_layout(Evas_Object *parent, char *layout_file, char *index_style, char it_style[][20], Eina_Bool even_num)
{
	Evas_Object *layout, *scroller, *box, *left_right_rect, *img, *page_layout, *index;
	Elm_Object_Item *nf_it;
	char img_path[PATH_MAX];
	int i, max_items;

	page_data *pd = (page_data *)calloc(1, sizeof(page_data));

	/* Create Layout */
	layout = elm_layout_add(parent);
	elm_layout_file_set(layout, ELM_DEMO_EDJ, layout_file);
	evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
	evas_object_show(layout);
	evas_object_event_callback_add(layout, EVAS_CALLBACK_DEL, _layout_del_cb, pd);
	pd->main_layout = layout;

	/* Create Scroller */
	scroller = elm_scroller_add(layout);
	elm_scroller_loop_set(scroller, EINA_FALSE, EINA_FALSE);
	evas_object_size_hint_weight_set(scroller, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
	evas_object_size_hint_align_set(scroller, EVAS_HINT_FILL, EVAS_HINT_FILL);
	elm_scroller_policy_set(scroller, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
	elm_scroller_page_scroll_limit_set(scroller, 1, 0);
	elm_object_scroll_lock_y_set(scroller, EINA_TRUE);
	elm_object_part_content_set(layout, "scroller", scroller);
	evas_object_show(scroller);
	evas_object_smart_callback_add(scroller, "scroll", _scroll, pd);
	pd->scroller = scroller;

	/* Create Box */
	box = elm_box_add(scroller);
	elm_box_horizontal_set(box, EINA_TRUE);
	elm_object_content_set(scroller, box);
	evas_object_show(box);
	pd->box = box;

	/* Create Rect object for page_layout center align in Box */
	left_right_rect = evas_object_rectangle_add(evas_object_evas_get(box));
	elm_box_pack_end(box, left_right_rect);

	/* Create Pages */
	if (even_num)
		max_items = NUM_INDEX_CIRCLE_EVEN;
	else
		max_items = NUM_ITEMS;
	for (i = 0; i < max_items; ++i)
	{
		page_layout = elm_layout_add(box);
		pd->page_layout[i] = page_layout;
		evas_object_size_hint_weight_set(page_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
		evas_object_size_hint_align_set(page_layout, 0, EVAS_HINT_FILL);
		elm_layout_theme_set(page_layout, "layout", "body_thumbnail", "default");
		evas_object_show(page_layout);

		img = elm_image_add(page_layout);
		snprintf(img_path, sizeof(img_path), "%s/100_%d.jpg", ICON_DIR, (i % 6) + 1);
		elm_image_file_set(img, img_path, NULL);
		elm_object_part_content_set(page_layout, "elm.icon", img);

		/* Make unselect state all of the pages except first one */
		if (i)
			elm_object_signal_emit(page_layout, "elm,state,thumbnail,unselect", "elm");

		elm_box_pack_end(box, page_layout);
	}

	/*Add resize callback for get a actual size of layout and main layout */
	evas_object_event_callback_add(pd->page_layout[0], EVAS_CALLBACK_RESIZE, _layout_resize_cb, pd);

	elm_box_pack_end(box, left_right_rect);
	pd->left_right_rect = left_right_rect;

	/* Add animator for page transfer effect */
	ecore_animator_add(animator_cb, pd);

	/* Create Index */
	index = elm_index_add(layout);
	elm_object_style_set(index, index_style);
	evas_object_size_hint_weight_set(index, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
	evas_object_size_hint_align_set(index, EVAS_HINT_FILL, EVAS_HINT_FILL);
	elm_index_horizontal_set(index, EINA_TRUE);
	elm_index_autohide_disabled_set(index, EINA_TRUE);
	elm_object_part_content_set(layout, "controller", index);

	for (i = 0; i < max_items; ++i)
	{
		pd->it[i] = elm_index_item_append(index, NULL, NULL, (void *) i);
		if (it_style)
			elm_object_item_style_set(pd->it[i], it_style[i]);
	}

	pd->min_page = 0;
	pd->max_page = max_items - 1;
	elm_index_level_go(index, 0);
	elm_index_item_selected_set(pd->it[0], EINA_TRUE);

	pd->cur_page = 0;
	pd->index = index;
	pd->last_it = pd->it[0];

	evas_object_event_callback_add(index, EVAS_CALLBACK_MOUSE_DOWN, _on_index_mouse_down_cb, pd);
	evas_object_event_callback_add(index, EVAS_CALLBACK_MOUSE_MOVE, _on_index_mouse_move_cb, pd);
	evas_object_event_callback_add(index, EVAS_CALLBACK_MOUSE_UP, _on_index_mouse_up_cb, pd);

	nf_it = elm_naviframe_item_push(parent, NULL, NULL, NULL, layout, NULL);
	elm_naviframe_item_title_enabled_set(nf_it, EINA_FALSE, EINA_FALSE);
}