char *Add_To_Most_Visited_Sites_View::__genlist_label_get_cb(void *data, Evas_Object *obj,
									const char *part)
{
	if (!data)
		return NULL;

	Browser_History_DB::history_item *item = (Browser_History_DB::history_item *)data;
	if (!item)
		return NULL;

	char *mark_up = NULL;

	BROWSER_LOGD("item->title.c_str()=[%s]", item->title.c_str());
	if (!strncmp(part, "elm.text.1", strlen("elm.text.1"))
		|| !strncmp(part, "elm.base.text", strlen("elm.base.text"))
		|| !strncmp(part, "elm.slide.text.1", strlen("elm.slide.text.1")))
	{
		mark_up = elm_entry_utf8_to_markup(item->title.c_str());
		return mark_up;
	} else if (!strncmp(part, "elm.text.2", strlen("elm.text.2"))
		|| !strncmp(part, "elm.slide.text.2", strlen("elm.slide.text.2"))) {
		mark_up = elm_entry_utf8_to_markup(item->url.c_str());
		return mark_up;
	}

	return NULL;
}
예제 #2
0
파일: shelm_macros.c 프로젝트: Limsik/e17
SH_API Evas_Object *
create_entry(Evas_Object *parent, Eina_Bool entry_has_one_line, const char *entry_text, Eina_Bool entry_hide_text, Eina_Bool entry_line_nowrap, Eina_Bool entry_editable)
{
  Evas_Object *entry;
  char *s = NULL;

  if (entry_text) s = elm_entry_utf8_to_markup(entry_text);

  entry = elm_entry_add(parent);

  if (entry_line_nowrap)
    elm_entry_line_wrap_set(entry, 0);
  else
    elm_entry_line_wrap_set(entry, 1);
  if (s)
    {
      elm_entry_entry_set(entry, s);
      E_FREE(s);
    }
  elm_entry_password_set(entry, entry_hide_text);

  evas_object_size_hint_weight_set(entry, 1.0, 1.0);
  evas_object_size_hint_align_set(entry, -1.0, -1.0);

  elm_entry_single_line_set(entry, entry_has_one_line);
  elm_entry_editable_set(entry, entry_editable);

  return entry;
}
예제 #3
0
SH_API int _read_stdin_entry(void *data, Ecore_Fd_Handler *fd_handler)
{
   char *buffer;
   char *s;
   char c;
   int i = 0;
   Evas_Object *obj = data;

   if (!_stdin_prepare(fd_handler)) return 0;

   // allocate initial buffer
   buffer = malloc(sizeof(char));

   // get the buffer
   do {
     c = getc(stdin);
     buffer[i] = c;
     buffer = realloc(buffer, i + sizeof(buffer));
     i++;
   } while (c != EOF);

   // terminate the string.
   buffer[i - 1] = '\0';

   // add into entry, but before convert to html markup
   s = elm_entry_utf8_to_markup(buffer);
   elm_entry_entry_set(obj, s);

   // free the the pointers, delete handler when we don't need it
   E_FREE(buffer);
   E_FREE(s);
   ecore_main_fd_handler_del(fd_handler);
   return 0;
}
static void
_insert_contacts_add_number_callback(const char *number, void *data)
{
	char *content;
	struct MessageNewViewData *view;
	int len;

	view = (struct MessageNewViewData *)data;
	content = elm_entry_markup_to_utf8(elm_entry_entry_get(view->content_entry));
	len = phone_utils_gsm_sms_strlen(content);

	// Make space for text, number and ending null character
	content = realloc(content, len + strlen(number) + 1);
	// Add the number to the end of the content
	sprintf(content + len, "%s ", number);

	if (view->content) {
		free(view->content);
	}
	view->content = content;

	if (view->content != NULL) {
		elm_entry_entry_set(view->content_entry,
				    elm_entry_utf8_to_markup(view->content));
	}
}
void Add_To_Most_Visited_Sites_View::__history_item_clicked_cb(void *data, Evas_Object *obj,
										void *event_info)
{
	BROWSER_LOGD("[%s]", __func__);
	if (!data)
		return;

	Add_To_Most_Visited_Sites_View *add_to_most_visited_sites_view = NULL;
	add_to_most_visited_sites_view = (Add_To_Most_Visited_Sites_View *)data;

	Elm_Object_Item *seleted_item = elm_genlist_selected_item_get(obj);
	Elm_Object_Item *index_item = elm_genlist_first_item_get(obj);
	int index = 0;

	/* calculate the index of the selected item */
	while (index_item != seleted_item) {
		/* Do not count date label item */
		if (elm_genlist_item_select_mode_get(index_item) != ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY)
			index++;

		index_item = elm_genlist_item_next_get(index_item);
	}

	Evas_Object *entry = br_elm_editfield_entry_get(add_to_most_visited_sites_view->m_url_edit_field);
	char *mark_up = elm_entry_utf8_to_markup(add_to_most_visited_sites_view->m_history_list[index]->url.c_str());
	if (mark_up) {
		elm_entry_entry_set(entry, mark_up);
		free(mark_up);
	}
}
static void
_init_content_page(struct MessageNewViewData *view)
{
	Evas_Object *win, *btn;

	win = ui_utils_view_window_get(VIEW_PTR(*view));

	view->layout_content = elm_layout_add(win);
	elm_win_resize_object_add(win, view->layout_content);
	evas_object_size_hint_weight_set(view->layout_content,
					 EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
	elm_layout_file_set(view->layout_content, phoneui_theme,
			    "phoneui/messages/new/content");
	evas_object_show(view->layout_content);

	edje_object_part_text_set(elm_layout_edje_get(view->layout_content),
			"content_title", D_("Enter your message"));

	view->content_entry = elm_entry_add(win);
	elm_entry_scrollable_set(view->content_entry, EINA_TRUE);
	evas_object_smart_callback_add(view->content_entry, "changed",
				       _content_changed, view);
	if (view->content != NULL) {
		elm_entry_entry_set(view->content_entry,
				    elm_entry_utf8_to_markup(view->content));
	}
	evas_object_show(view->content_entry);
	elm_object_part_content_set(view->layout_content, "content_entry", view->content_entry);
	elm_object_focus_set(view->content_entry, EINA_TRUE);

	btn = elm_button_add(win);
	elm_object_text_set(btn, D_("Insert"));
	evas_object_smart_callback_add(btn, "clicked",
				       _content_button_insert_clicked, view);
	elm_object_part_content_set(view->layout_content,
			       "content_button_insert", btn);
	evas_object_show(btn);

	btn = elm_button_add(win);
	elm_object_text_set(btn, D_("Close"));
	evas_object_smart_callback_add(btn, "clicked",
				       _content_button_close_clicked, view);
	elm_object_part_content_set(view->layout_content,
			       "content_button_close", btn);
	evas_object_show(btn);

	btn = elm_button_add(win);
	elm_object_text_set(btn, D_("Continue"));
	evas_object_smart_callback_add(btn, "clicked",
				       _content_button_continue_clicked, view);
	elm_object_part_content_set(view->layout_content,
			       "content_button_continue", btn);
	evas_object_show(btn);

	elm_naviframe_item_simple_push(view->pager, view->layout_content);
}
예제 #7
0
static void
retrieve_callback(GError * error, char *status, char *number, char *content,
		  GHashTable * properties, gpointer _data)
{
	struct MessageShowViewData *data = (struct MessageShowViewData *) _data;
	g_debug("retrieve_callback()");
	data->status = strdup(status);
	data->number = strdup(number);
	data->name = strdup(phonegui_contact_cache_lookup(number));

	data->content = elm_entry_utf8_to_markup(content);
	data->properties = properties;	// TODO: copy


	async_trigger(retrieve_callback2, data);
}
예제 #8
0
EVAS_SMART_SUBCLASS_NEW
  (ELM_FILESELECTOR_ENTRY_SMART_NAME, _elm_fileselector_entry,
  Elm_Fileselector_Entry_Smart_Class, Elm_Layout_Smart_Class,
  elm_layout_smart_class_get, _smart_callbacks);

static void
_FILE_CHOSEN_fwd(void *data,
                 Evas_Object *obj __UNUSED__,
                 void *event_info)
{
   const char *file = event_info;
   char *s;

   ELM_FILESELECTOR_ENTRY_DATA_GET(data, sd);

   s = elm_entry_utf8_to_markup(file);
   if (!s) return;
   elm_object_text_set(sd->entry, s);
   free(s);
   evas_object_smart_callback_call(data, SIG_FILE_CHOSEN, event_info);
}

static void
_ACTIVATED_fwd(void *data,
               Evas_Object *obj __UNUSED__,
               void *event_info)
{
   const char *file;

   ELM_FILESELECTOR_ENTRY_DATA_GET(data, sd);
int
message_show_view_init(char* path, GHashTable *properties)
{
	struct MessageShowViewData *view;
	Evas_Object *win, *ico, *box, *obj;
	int ret;
	GVariant *tmp;
	const char *direction = NULL;
	Eina_Bool in_msg = EINA_FALSE;

	/* path MUST always be set! It will be freed by
	destroying the messageviews hashtable in here, thus must be a copy */
	if (!path) {
		g_warning("Trying to initialize a message view without path!");
		return 1;
	}

	g_debug("Initializing the contact view for '%s'", path);

	view = malloc(sizeof(struct MessageShowViewData));
	if (!view) {
		g_critical("Failed to allocate message view for '%s'", path);
		if (properties) {
			g_hash_table_unref(properties);
		}
		free(path);
		return 1;
	}

	ret = ui_utils_view_init(VIEW_PTR(*view), ELM_WIN_BASIC, D_("Message"),
				 NULL, NULL, _destroy_cb);
	if (ret) {
		g_critical("Failed to init message view for '%s'", path);
		if (properties) {
			g_hash_table_unref(properties);
		}
		free(view);
		free(path);
		return ret;
	}

	/* cache the views to open only one view per message */
	if (messageviews == NULL) {
		messageviews = g_hash_table_new_full(g_str_hash, g_str_equal,
						     free, NULL);
	}
	g_hash_table_insert(messageviews, path, view);

	view->path = path;
	view->number = NULL;
	view->name = NULL;
	view->photopath = NULL;

	elm_theme_extension_add(NULL, phoneui_theme);

	win = ui_utils_view_window_get(VIEW_PTR(*view));
	ui_utils_view_delete_callback_set(VIEW_PTR(*view), _delete_cb);

	ui_utils_view_layout_set(VIEW_PTR(*view), phoneui_theme,
				 "phoneui/messages/show");

	GList *keys = g_hash_table_get_keys(properties);
	for (; keys; keys = keys->next) {
		tmp = g_hash_table_lookup(properties, keys->data);
		if (tmp) {
			g_debug("--- %s: %s", (char *)keys->data, g_variant_print(tmp, TRUE));
		}
	}
	tmp = g_hash_table_lookup(properties, "Peer");
	if (!tmp) {
		tmp = g_hash_table_lookup(properties, "Sender");
	}
	if (!tmp) {
		tmp = g_hash_table_lookup(properties, "Recipient");
	}
	if (tmp) {
		view->number = g_variant_dup_string(tmp, NULL);
		g_debug("Found number %s - starting lookup", view->number);
		// FIXME: use new @Contacts feature from opimd whenever it is
		//        clear how to do that :P
		phoneui_utils_contact_lookup(view->number,
					     _common_name_callback,
					     common_utils_object_ref(view));
		ui_utils_view_text_set(VIEW_PTR(*view), "text_number",
				       view->number);
	}

	tmp = g_hash_table_lookup(properties, "Timestamp");
	if (tmp) {
		char *date = common_utils_timestamp_to_date(
					(long)g_variant_get_int32(tmp));
		if (date) {
			g_debug("Found date %s", date);
			ui_utils_view_text_set(VIEW_PTR(*view), "text_date", date);
			free(date);
		}
	}

	view->photo = elm_icon_add(win);
	evas_object_size_hint_aspect_set(view->photo,
					 EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
	elm_image_file_set(view->photo, phoneui_theme, "icon/contact");
	ui_utils_view_swallow(VIEW_PTR(*view), "photo", view->photo);
	evas_object_show(view->photo);

	ico = elm_icon_add(win);
	tmp = g_hash_table_lookup(properties, "Direction");
	if (tmp) {
		direction = g_variant_get_string(tmp, NULL);
		if (strcmp(direction, "in") == 0) {
			g_debug("Setting status icon for an incoming message");
			in_msg = EINA_TRUE;
			elm_image_file_set(ico, phoneui_theme,
					  "icon/phonelog-incoming");
		}
		else {
			g_debug("Setting status icon for a sent message");
			in_msg = EINA_FALSE;
			elm_image_file_set(ico, phoneui_theme,
					  "icon/phonelog-outgoing");
		}
	}
	ui_utils_view_swallow(VIEW_PTR(*view), "icon_status", ico);
	evas_object_show(ico);

	const char *content = NULL;
	tmp = g_hash_table_lookup(properties, "Content");
	if (tmp) {
		content = elm_entry_utf8_to_markup(g_variant_get_string(tmp, NULL));
	}

	view->sc_content = elm_scroller_add(win);
	elm_scroller_bounce_set(view->sc_content, EINA_FALSE, EINA_FALSE);

	view->content = elm_entry_add(win);
	elm_entry_anchor_hover_style_set(view->content, "popout");
	elm_entry_anchor_hover_parent_set(view->content, win);
	evas_object_size_hint_weight_set(view->content, EVAS_HINT_EXPAND,
					 EVAS_HINT_EXPAND);
	if (content) {
		elm_object_text_set(view->content, content);
	}
	elm_object_content_set(view->sc_content, view->content);
	evas_object_show(view->content);
	ui_utils_view_swallow(VIEW_PTR(*view), "text_content", view->sc_content);
	evas_object_show(view->sc_content);


	obj = elm_button_add(win);
	elm_object_text_set(obj, D_("Close"));
	evas_object_smart_callback_add(obj, "clicked",
				       _close_clicked, view);
	ui_utils_view_swallow(VIEW_PTR(*view), "button_close", obj);
	evas_object_show(obj);

	// Options button with hover
	view->hv = elm_hover_add(win);

	obj = elm_button_add(win);
	elm_object_text_set(obj, D_("Options"));
	evas_object_smart_callback_add(obj, "clicked", _hover_bt_1,
				       view->hv);
	ui_utils_view_swallow(VIEW_PTR(*view), "button_options", obj);
	evas_object_show(obj);

	elm_hover_parent_set(view->hv, win);
	elm_hover_target_set(view->hv, obj);

	box = elm_box_add(win);
	elm_box_horizontal_set(box, 0);
	elm_box_homogeneous_set(box, 1);
	evas_object_show(box);

	obj = elm_button_add(win);
	elm_object_text_set(obj, D_("Delete"));
	evas_object_size_hint_min_set(obj, 140, 80);
	evas_object_smart_callback_add(obj, "clicked",
				       _delete_clicked, view);
	evas_object_show(obj);
	elm_box_pack_end(box, obj);

	if (in_msg) {
		obj = elm_button_add(win);
		elm_object_text_set(obj, D_("Call"));
		evas_object_size_hint_min_set(obj, 140, 80);
		evas_object_smart_callback_add(obj, "clicked",
						   _call_clicked, view);
		evas_object_show(obj);
		elm_box_pack_end(box, obj);
	}

	obj = elm_button_add(win);
	elm_object_text_set(obj, D_("Add Contact"));
	evas_object_size_hint_min_set(obj, 140, 80);
	evas_object_smart_callback_add(obj, "clicked",
					   _new_contact_clicked,
					   view);
	evas_object_show(obj);
	elm_box_pack_end(box, obj);
	view->add_contact_bt = obj;

	obj = elm_button_add(win);
	elm_object_text_set(obj, D_("Forward"));
	evas_object_size_hint_min_set(obj, 140, 80);
	evas_object_smart_callback_add(obj, "clicked", _forward_clicked, view);
	evas_object_show(obj);
	elm_box_pack_end(box, obj);

	elm_object_part_content_set(view->hv, "top", box);


	obj = elm_button_add(win);
	elm_object_text_set(obj, D_("Answer"));
	evas_object_smart_callback_add(obj, "clicked",
				       _answer_clicked, view);
	ui_utils_view_swallow(VIEW_PTR(*view), "button_answer", obj);
	evas_object_show(obj);

	if (in_msg) {
		g_debug("going to set read status for the message");
		phoneui_utils_message_set_read_status(view->path, 1, NULL, NULL);
		g_debug("done - destroying properties now");
	}

	g_hash_table_destroy(properties);

	g_debug("done");

	return 0;
}