Add a simple content type picker if the mime is not recognised

This commit is contained in:
Andy Williams 2014-03-14 10:30:36 +00:00
parent cecc51cd90
commit e1f363783d
1 changed files with 60 additions and 3 deletions

View File

@ -12,6 +12,8 @@
#include "edi_private.h"
static Evas_Object *nf, *tb;
static Evas_Object *_edi_mainview_choose_popup;
static const char *_edi_mainview_choose_path;
static Eina_List *_edi_mainview_items = NULL;
@ -184,6 +186,62 @@ _edi_mainview_item_win_add(const char *path, const char *type)
evas_object_show(win);
}
static void
_edi_mainview_choose_type_tab_cb(void *data,
Evas_Object *obj EINA_UNUSED,
void *event_info EINA_UNUSED)
{
evas_object_del(_edi_mainview_choose_popup);
edi_mainview_open_path(_edi_mainview_choose_path, (const char *) data);
}
static void
_edi_mainview_choose_type_win_cb(void *data,
Evas_Object *obj EINA_UNUSED,
void *event_info EINA_UNUSED)
{
evas_object_del(_edi_mainview_choose_popup);
edi_mainview_open_window_path(_edi_mainview_choose_path, (const char *) data);
}
static void
_edi_mainview_choose_type_close_cb(void *data EINA_UNUSED,
Evas_Object *obj EINA_UNUSED,
void *event_info EINA_UNUSED)
{
evas_object_del(_edi_mainview_choose_popup);
}
static void
_edi_mainview_choose_type(Evas_Object *parent, const char *path, void *cb)
{
Evas_Object *popup, *cancel;
popup = elm_popup_add(parent);
_edi_mainview_choose_popup = popup;
_edi_mainview_choose_path = path;
// popup title
elm_object_part_text_set(popup, "title,text",
"Unrecognied file type");
elm_popup_item_append(popup, "text", NULL, cb, "text");
elm_popup_item_append(popup, "image", NULL, cb, "image");
cancel = elm_button_add(popup);
elm_object_text_set(cancel, "cancel");
elm_object_part_content_set(popup, "button1", cancel);
evas_object_smart_callback_add(cancel, "clicked",
_edi_mainview_choose_type_close_cb, NULL);
// popup show should be called after adding all the contents and the buttons
// of popup to set the focus into popup's contents correctly.
evas_object_show(popup);
}
static void
_edi_mainview_tab_stat_done(void *data, Eio_File *handler EINA_UNUSED, const Eina_Stat *stat)
{
@ -200,13 +258,12 @@ _edi_mainview_tab_stat_done(void *data, Eio_File *handler EINA_UNUSED, const Ein
else if (!strncasecmp(mime, "image/", 6))
_edi_mainview_item_tab_add(path, "image");
else
printf("Unknown mime %s\n", mime);
_edi_mainview_choose_type(nf, path, _edi_mainview_choose_type_tab_cb);
}
eina_stringshare_del(path);
}
static void
_edi_mainview_win_stat_done(void *data, Eio_File *handler EINA_UNUSED, const Eina_Stat *stat)
{
@ -223,7 +280,7 @@ _edi_mainview_win_stat_done(void *data, Eio_File *handler EINA_UNUSED, const Ein
else if (!strncasecmp(mime, "image/", 6))
_edi_mainview_item_win_add(path, "image");
else
printf("Unknown mime %s\n", mime);
_edi_mainview_choose_type(nf, path, _edi_mainview_choose_type_win_cb);
}
eina_stringshare_del(path);