help: updated help.

Summary: GUI composed of the edc layout.

Test Plan:
1. enventor
2. press F1 Key

Reviewers: Hermet, Jaehyun_Cho, herb

Differential Revision: https://phab.enlightenment.org/D4187
This commit is contained in:
Bowon Ryu 2016-07-25 21:04:24 +09:00 committed by Hermet Park
parent 7752d3cc93
commit 0822f1f246
6 changed files with 178 additions and 93 deletions

View File

@ -48,7 +48,7 @@ images {
image: "left.png" COMP;
image: "right.png" COMP;
image: "filetab.png" COMP;
image: "about.png" COMP;
image: "about_bg.png" COMP;
}
#define ICON_GROUP(_group_name, _image_path) \
@ -110,6 +110,6 @@ ICON_GROUP("wireframes_icon", "icon_wireframes.png")
ICON_GROUP("left_arrow", "left.png")
ICON_GROUP("right_arrow", "right.png")
ICON_GROUP("filetab", "filetab.png")
ICON_GROUP("about", "about.png")
ICON_GROUP("about_bg", "about_bg.png")
#undef ICON_GROUP

View File

@ -1,5 +1,6 @@
MAINTAINERCLEANFILES = Makefile.in
EXTRA_DIST = \
about_bg.png \
bevel_in.png \
bevel_out.png \
bg_glow_in.png \
@ -101,5 +102,4 @@ EXTRA_DIST = \
bevel_curved_vert_out.png \
vgrad_med_dark.png \
shadow_rounded_vert.png \
wireframes.png \
about.png
wireframes.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

View File

@ -11,6 +11,7 @@ images {
image: "cursor_arrow.png" COMP;
image: "navi_group.png" COMP;
image: "bg_demo.png" COMP;
image: "about_bg.png" COMP;
}
group { "fileselector_layout";
@ -3371,7 +3372,116 @@ group { "edit_layout";
}
}
}
group { "help_layout";
parts {
rect { "base";
scale: 1;
desc { "default";
color: 65 65 65 255;
min: 430 220;
}
}
image { "image_bg";
scale: 1;
desc { "default";
image.normal: "about_bg.png";
image.border: 0 350 0 0;
align: 0.5 0.0;
rel1.to: "base";
rel2.to: "base";
min: 430 90;
max: 9999 90;
}
}
image { "image_logo";
scale: 1;
desc { "default";
image.normal: "full_logo.png";
align: 0.0 0.5;
rel1.to: "image_bg";
rel2.to: "image_bg";
min: 115 90;
max: 115 90;
}
}
swallow { "swallow_list";
scale: 1;
desc { "default";
rel1.to: "image_bg";
rel1.relative: 0.0 1.0;
rel2.to: "base";
}
}
rect { "content_bg";
scale: 1;
desc { "default";
rel1.to: "base";
rel2.to: "base";
color: 65 65 65 255;
}
desc { "hide";
inherit: "default";
visible: 0;
}
}
swallow { "swallow_label";
scale: 1;
desc { "default";
align: 0.5 0.0;
min: 430 25;
max: 9999 25;
}
desc { "hide";
inherit: "default";
visible: 0;
}
}
swallow { "swallow_entry";
scale: 1;
desc { "default";
rel1.to: "swallow_label";
rel1.relative: 0.0 1.0;
rel2.to: "base";
}
desc { "hide";
inherit: "default";
visible: 0;
}
}
swallow { "swallow_button";
scale: 1;
desc { "default";
align: 1.0 0.5;
rel1.to: "swallow_label";
rel2.to: "swallow_label";
min: 25 25;
max: 25 25;
}
desc { "hide";
inherit: "default";
visible: 0;
}
}
}
programs {
program { "content_show";
signal: "elm,state,content,show";
action: STATE_SET "default";
target: "content_bg";
target: "swallow_label";
target: "swallow_entry";
target: "swallow_button";
}
program { "content_hide";
signal: "elm,state,content,hide";
action: STATE_SET "hide";
target: "content_bg";
target: "swallow_label";
target: "swallow_entry";
target: "swallow_button";
}
}
}
#define REFERENCE_LAYOUT_WIDTH 300
#define REFERENCE_LAYOUT_HEIGHT 100
group { "reference_layout";

View File

@ -4,19 +4,12 @@
#include "common.h"
typedef struct help_data_s
{
Evas_Object *list;
Evas_Object *box;
Evas_Object *button;
} help_data;
static help_data *g_hd = NULL;
static Evas_Coord win_x = -1;
static Evas_Coord win_y = -1;
static Evas_Coord win_w = DEFAULT_HELP_WIN_W;
static Evas_Coord win_h = DEFAULT_HELP_WIN_H;
static Evas_Object *g_win = NULL;
static Evas_Object *g_layout = NULL;
/*****************************************************************************/
/* Internal method implementation */
@ -50,30 +43,16 @@ win_moved_cb(void *data EINA_UNUSED, Evas_Object *obj,
static void
list_item_selected_cb(void *data, Evas_Object *obj, void *event_info)
{
Evas_Object *layout;
Evas_Object *label;
Evas_Object *entry;
char buf[PATH_MAX];
help_data *hd = g_hd;
char *item = data;
elm_box_clear(hd->box);
//Label
label = elm_label_add(hd->box);
evas_object_size_hint_align_set(label, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_box_pack_end(hd->box, label);
evas_object_show(label);
//Entry
entry = elm_entry_add(hd->box);
elm_entry_scrollable_set(entry, EINA_TRUE);
elm_entry_line_wrap_set(entry, EINA_TRUE);
elm_entry_editable_set(entry, EINA_FALSE);
elm_entry_line_wrap_set(entry, ELM_WRAP_MIXED);
evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(entry, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_box_pack_end(hd->box, entry);
evas_object_show(entry);
layout = g_layout;
label = elm_object_part_content_get(layout, "swallow_label");
entry = elm_object_part_content_get(layout, "swallow_entry");
elm_object_signal_emit(layout, "elm,state,content,show", "");
//Read File
if (!strcmp(item, "about"))
@ -111,20 +90,15 @@ list_item_selected_cb(void *data, Evas_Object *obj, void *event_info)
elm_entry_autosave_set(entry, EINA_FALSE);
elm_entry_file_set(entry, buf, ELM_TEXT_FORMAT_MARKUP_UTF8);
}
//Back Button
evas_object_show(hd->button);
}
static void
backbutton_clicked_cb(void *data, Evas_Object *obj, void *event_info)
button_clicked_cb(void *data, Evas_Object *obj, void *event_info)
{
help_data *hd = g_hd;
Evas_Object *box = data;
elm_box_clear(box);
elm_list_item_selected_set(elm_list_selected_item_get(hd->list), EINA_FALSE);
evas_object_hide(hd->button);
Evas_Object *layout = g_layout;
Evas_Object *list = elm_object_part_content_get(layout, "swallow_list");
elm_list_item_selected_set(elm_list_selected_item_get(list), EINA_FALSE);
elm_object_signal_emit(layout, "elm,state,content,hide", "");
}
/*****************************************************************************/
@ -141,14 +115,6 @@ help_open(void)
return;
}
help_data *hd = malloc(sizeof(help_data));
if (!hd)
{
mem_fail_msg();
return ;
}
g_hd = hd;
char buf[PATH_MAX];
//Win
@ -160,42 +126,24 @@ help_open(void)
NULL);
evas_object_smart_callback_add(win, "moved", win_moved_cb, NULL);
//Bg
Evas_Object *bg = elm_bg_add(win);
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_show(bg);
elm_win_resize_object_add(win, bg);
//Box
Evas_Object *box = elm_box_add(win);
evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
elm_win_resize_object_add(win, box);
evas_object_show(box);
//Title Bg
Evas_Object *title_bg = elm_image_add(box);
elm_image_file_set(title_bg, EDJE_PATH, "about");
evas_object_size_hint_align_set(title_bg, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_size_hint_min_set(title_bg, 430, 100);
elm_box_pack_end(box, title_bg);
evas_object_show(title_bg);
//Entry Box
Evas_Object *entry_box = elm_box_add(win);
evas_object_size_hint_weight_set(entry_box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
elm_win_resize_object_add(win, entry_box);
evas_object_show(entry_box);
hd->box = entry_box;
//Layout
Evas_Object *layout = elm_layout_add(win);
elm_layout_file_set(layout, EDJE_PATH, "help_layout");
evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
elm_win_resize_object_add(win, layout);
evas_object_show(layout);
g_layout = layout;
//List
Evas_Object *list = elm_list_add(box);
Evas_Object *list = elm_list_add(win);
evas_object_size_hint_weight_set(list, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(list, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_tree_focus_allow_set(list, EINA_FALSE);
elm_list_select_mode_set(list, ELM_OBJECT_SELECT_MODE_DEFAULT);
evas_object_show(list);
elm_box_pack_end(box, list);
hd->list = list;
elm_object_part_content_set(layout, "swallow_list", list);
elm_list_item_append(list, "About", NULL, NULL, list_item_selected_cb,
"about");
@ -208,23 +156,46 @@ help_open(void)
elm_list_item_append(list, "Developers", NULL, NULL, list_item_selected_cb,
"devel");
// Back Button Box
Evas_Object *button_box = elm_box_add(win);
evas_object_size_hint_weight_set(button_box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
elm_win_resize_object_add(win, button_box);
evas_object_show(button_box);
//Label
Evas_Object *label = elm_label_add(win);
evas_object_size_hint_weight_set(label, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(label, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_show(label);
elm_object_part_content_set(layout, "swallow_label", label);
//Entry
Evas_Object *entry = elm_entry_add(win);
elm_entry_scrollable_set(entry, EINA_TRUE);
elm_entry_line_wrap_set(entry, EINA_TRUE);
elm_entry_editable_set(entry, EINA_FALSE);
elm_entry_line_wrap_set(entry, ELM_WRAP_MIXED);
evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(entry, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_show(entry);
elm_object_part_content_set(layout, "swallow_entry", entry);
//Back Button
Evas_Object *button = elm_button_add(button_box);
Evas_Object *button = elm_button_add(win);
evas_object_size_hint_weight_set(button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(button, 0.95, 0.95);
evas_object_size_hint_min_set(button, 60, 30);
elm_object_text_set(button, "Back");
evas_object_smart_callback_add(button, "clicked", backbutton_clicked_cb, entry_box);
elm_box_pack_end(button_box, button);
evas_object_hide(button);
hd->button = button;
evas_object_size_hint_align_set(button, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_smart_callback_add(button, "clicked", button_clicked_cb, NULL);
elm_object_focus_allow_set(button, EINA_FALSE);
elm_object_style_set(button, ENVENTOR_NAME);
evas_object_show(button);
//Back Button Icon
Evas_Object *back_img = elm_image_add(button);
elm_image_file_set(back_img, EDJE_PATH, "close");
elm_object_content_set(button, back_img);
elm_object_part_content_set(layout, "swallow_button", button);
//Content hide
elm_object_signal_emit(layout, "elm,state,content,hide", "");
//Window
win_w = (Evas_Coord) ((double) win_w * elm_config_scale_get());
win_h = (Evas_Coord) ((double) win_h * elm_config_scale_get());
evas_object_resize(win, win_w, win_h);
@ -246,7 +217,11 @@ help_close(void)
{
Evas_Object *win = g_win;
if (!win) return;
free(g_hd);
Evas_Object *layout = g_layout;
if (!layout) return;
evas_object_del(layout);
g_layout = NULL;
//Save last state
evas_object_geometry_get(win, NULL, NULL, &win_w, &win_h);