extra: bring the detail view to the backgrounds
This commit is contained in:
parent
36661e17c4
commit
b8c6afe5a8
|
@ -51,6 +51,16 @@ _fullscreen_background(void *data, Evas_Object *obj EINA_UNUSED, void *event_inf
|
||||||
extra_ui_fullscreen_preview(path);
|
extra_ui_fullscreen_preview(path);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_show_details(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
|
||||||
|
{
|
||||||
|
Extra_Background *background = data;
|
||||||
|
Evas_Object *o;
|
||||||
|
|
||||||
|
o = extra_ui_base_object_detail(background, &background->obj, acc, _ui.win);
|
||||||
|
extra_ui_details_window_show(o);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_show_tooltip(Extra_Background *b)
|
_show_tooltip(Extra_Background *b)
|
||||||
{
|
{
|
||||||
|
@ -78,6 +88,16 @@ _show_tooltip(Extra_Background *b)
|
||||||
elm_box_pack_end(box, o);
|
elm_box_pack_end(box, o);
|
||||||
evas_object_show(o);
|
evas_object_show(o);
|
||||||
|
|
||||||
|
//show details
|
||||||
|
o = elm_button_add(box);
|
||||||
|
evas_object_smart_callback_add(o, "clicked", _show_details, b);
|
||||||
|
elm_object_text_set(o, "Show Details");
|
||||||
|
evas_object_show(o);
|
||||||
|
elm_box_pack_end(box, o);
|
||||||
|
icon = elm_icon_add(o);
|
||||||
|
elm_icon_standard_set(icon, "document-properties");
|
||||||
|
elm_object_part_content_set(o, "icon", icon);
|
||||||
|
|
||||||
//view-fullscreen
|
//view-fullscreen
|
||||||
o = elm_button_add(box);
|
o = elm_button_add(box);
|
||||||
elm_object_text_set(o, "Show fullscreen");
|
elm_object_text_set(o, "Show fullscreen");
|
||||||
|
|
|
@ -27,6 +27,7 @@ typedef struct {
|
||||||
} Extra_Ui_Small_Preview_Accessor;
|
} Extra_Ui_Small_Preview_Accessor;
|
||||||
|
|
||||||
Evas_Object* extra_ui_small_preview_new(Extra_Ui_Small_Preview_Accessor acc, Evas_Object *par, void *data);
|
Evas_Object* extra_ui_small_preview_new(Extra_Ui_Small_Preview_Accessor acc, Evas_Object *par, void *data);
|
||||||
|
Evas_Object* extra_ui_base_object_detail(void *real_obj, Extra_Base_Object *obj, Extra_Ui_Small_Preview_Accessor acc, Evas_Object *par);
|
||||||
void extra_ui_details_window_show(Evas_Object *content);
|
void extra_ui_details_window_show(Evas_Object *content);
|
||||||
void extra_ui_fullscreen_preview(char *path);
|
void extra_ui_fullscreen_preview(char *path);
|
||||||
void extra_ui_show_popup_toolbar(Evas_Object *content);
|
void extra_ui_show_popup_toolbar(Evas_Object *content);
|
||||||
|
|
|
@ -17,18 +17,6 @@ static Extra_Ui_Small_Preview_Accessor acc = {
|
||||||
((Extra_ui_preview_download*) extra_theme_preview_download),
|
((Extra_ui_preview_download*) extra_theme_preview_download),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
static void
|
|
||||||
_fullscreen_picture(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
|
|
||||||
{
|
|
||||||
char *path;
|
|
||||||
|
|
||||||
path = extra_theme_preview_get(data);
|
|
||||||
if (!path) return;
|
|
||||||
|
|
||||||
extra_ui_fullscreen_preview(path);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_install_done(void *data)
|
_install_done(void *data)
|
||||||
{
|
{
|
||||||
|
@ -122,45 +110,8 @@ static void
|
||||||
_popup_theme(Extra_Theme *theme)
|
_popup_theme(Extra_Theme *theme)
|
||||||
{
|
{
|
||||||
Evas_Object *o, *table;
|
Evas_Object *o, *table;
|
||||||
Eina_Strbuf *buf;
|
|
||||||
|
|
||||||
table = o = elm_table_add(_ui.win);
|
table = extra_ui_base_object_detail(theme, &theme->obj, acc, _ui.win);
|
||||||
evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
|
||||||
evas_object_size_hint_align_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
|
||||||
|
|
||||||
evas_object_show(o);
|
|
||||||
|
|
||||||
|
|
||||||
buf = eina_strbuf_new();
|
|
||||||
eina_strbuf_append_printf(buf, "<title>%s</title>", theme->obj.name);
|
|
||||||
|
|
||||||
o = elm_label_add(table);
|
|
||||||
elm_object_text_set(o, eina_strbuf_release(buf));
|
|
||||||
evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, 0.0);
|
|
||||||
evas_object_size_hint_align_set(o, 0.0, EVAS_HINT_FILL);
|
|
||||||
evas_object_show(o);
|
|
||||||
elm_table_pack(table, o, 0, 0, 1, 1);
|
|
||||||
|
|
||||||
o = _action_button_create(table, theme);
|
|
||||||
elm_table_pack(table, o, 1, 0, 1, 1);
|
|
||||||
|
|
||||||
o = extra_ui_small_preview_new(acc, table, theme);
|
|
||||||
evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_UP, _fullscreen_picture, theme);
|
|
||||||
evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
|
||||||
evas_object_size_hint_align_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
|
||||||
evas_object_show(o);
|
|
||||||
elm_table_pack(table, o, 0, 1, 2, 1);
|
|
||||||
|
|
||||||
buf = eina_strbuf_new();
|
|
||||||
eina_strbuf_append_printf(buf, "<link>%s</link>", theme->obj.author);
|
|
||||||
|
|
||||||
o = elm_entry_add(table);
|
|
||||||
elm_object_text_set(o, eina_strbuf_release(buf));
|
|
||||||
elm_entry_editable_set(o, EINA_FALSE);
|
|
||||||
evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, 0.0);
|
|
||||||
evas_object_size_hint_align_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
|
||||||
evas_object_show(o);
|
|
||||||
elm_table_pack(table, o, 0, 2, 2, 1);
|
|
||||||
|
|
||||||
o = elm_entry_add(table);
|
o = elm_entry_add(table);
|
||||||
elm_entry_editable_set(o, EINA_FALSE);
|
elm_entry_editable_set(o, EINA_FALSE);
|
||||||
|
@ -170,17 +121,6 @@ _popup_theme(Extra_Theme *theme)
|
||||||
evas_object_show(o);
|
evas_object_show(o);
|
||||||
elm_table_pack(table, o, 0, 3, 2, 2);
|
elm_table_pack(table, o, 0, 3, 2, 2);
|
||||||
|
|
||||||
buf = eina_strbuf_new();
|
|
||||||
eina_strbuf_append_printf(buf, "<link>%s</link>", theme->obj.source);
|
|
||||||
|
|
||||||
o = elm_entry_add(table);
|
|
||||||
elm_entry_editable_set(o, EINA_FALSE);
|
|
||||||
elm_object_text_set(o, eina_strbuf_release(buf));
|
|
||||||
evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, 0.0);
|
|
||||||
evas_object_size_hint_align_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
|
||||||
evas_object_show(o);
|
|
||||||
elm_table_pack(table, o, 0, 4, 2, 2);
|
|
||||||
|
|
||||||
extra_ui_details_window_show(table);
|
extra_ui_details_window_show(table);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -388,3 +388,87 @@ extra_ui_details_window_show(Evas_Object *content)
|
||||||
|
|
||||||
elm_object_focus_set(content, EINA_TRUE);
|
elm_object_focus_set(content, EINA_TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
_fullscreen(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED)
|
||||||
|
{
|
||||||
|
Extra_Ui_Small_Preview_Accessor *acc = evas_object_data_get(obj, "_acc");
|
||||||
|
char *path;
|
||||||
|
|
||||||
|
path = acc->preview_get(data);
|
||||||
|
|
||||||
|
if (!path) return;
|
||||||
|
|
||||||
|
extra_ui_fullscreen_preview(path);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
_link(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
|
||||||
|
{
|
||||||
|
Extra_Base_Object *ob = data;
|
||||||
|
Eina_Strbuf *buf;
|
||||||
|
|
||||||
|
buf = eina_strbuf_new();
|
||||||
|
eina_strbuf_append_printf(buf, "xdg-open %s", ob->source);
|
||||||
|
|
||||||
|
ecore_exe_run(eina_strbuf_release(buf), NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
Evas_Object*
|
||||||
|
extra_ui_base_object_detail(void *real_obj, Extra_Base_Object *obj, Extra_Ui_Small_Preview_Accessor acc, Evas_Object *par)
|
||||||
|
{
|
||||||
|
Evas_Object *o, *table;
|
||||||
|
Eina_Strbuf *buf;
|
||||||
|
|
||||||
|
table = o = elm_table_add(par);
|
||||||
|
evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||||
|
evas_object_size_hint_align_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||||
|
evas_object_show(o);
|
||||||
|
|
||||||
|
buf = eina_strbuf_new();
|
||||||
|
eina_strbuf_append_printf(buf, "<title>%s</title>", obj->name);
|
||||||
|
|
||||||
|
o = elm_label_add(table);
|
||||||
|
elm_object_text_set(o, eina_strbuf_release(buf));
|
||||||
|
evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, 0.0);
|
||||||
|
evas_object_size_hint_align_set(o, 0.0, EVAS_HINT_FILL);
|
||||||
|
evas_object_show(o);
|
||||||
|
elm_table_pack(table, o, 0, 0, 1, 1);
|
||||||
|
|
||||||
|
o = extra_ui_small_preview_new(acc, table, obj);
|
||||||
|
evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_UP, _fullscreen, real_obj);
|
||||||
|
evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||||
|
evas_object_size_hint_align_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||||
|
evas_object_show(o);
|
||||||
|
elm_table_pack(table, o, 0, 1, 2, 1);
|
||||||
|
|
||||||
|
buf = eina_strbuf_new();
|
||||||
|
eina_strbuf_append_printf(buf, "<link>%s</link>", obj->author);
|
||||||
|
|
||||||
|
o = elm_entry_add(table);
|
||||||
|
elm_object_text_set(o, eina_strbuf_release(buf));
|
||||||
|
elm_entry_editable_set(o, EINA_FALSE);
|
||||||
|
evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, 0.0);
|
||||||
|
evas_object_size_hint_align_set(o, EVAS_HINT_FILL, 0.0);
|
||||||
|
evas_object_show(o);
|
||||||
|
elm_table_pack(table, o, 0, 2, 1, 1);
|
||||||
|
|
||||||
|
if (obj->source)
|
||||||
|
{
|
||||||
|
buf = eina_strbuf_new();
|
||||||
|
eina_strbuf_append_printf(buf, "<link>Source</link>");
|
||||||
|
|
||||||
|
o = elm_entry_add(table);
|
||||||
|
evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_UP, _link, obj);
|
||||||
|
elm_entry_editable_set(o, EINA_FALSE);
|
||||||
|
elm_object_text_set(o, eina_strbuf_release(buf));
|
||||||
|
evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, 0.0);
|
||||||
|
evas_object_size_hint_align_set(o, EVAS_HINT_FILL, 0.0);
|
||||||
|
evas_object_show(o);
|
||||||
|
elm_table_pack(table, o, 1, 2, 1, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
return table;
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue