tools: Divide tools into live view tools and text editor tools.

Now tools are divided into live view tools and text editor tools based
on their functions.
Region for file browser tools and edc navigator tools is also reserved.
This commit is contained in:
Jaehyun Cho 2016-05-09 22:09:09 +09:00
parent 7a85d0bc3b
commit 5dbfbd64f3
14 changed files with 939 additions and 202 deletions

View File

@ -2538,50 +2538,12 @@ group { name: "main_layout";
min: 640 440;
}
}
part { name: "tools_base";
type: SPACER;
scale: 1;
description { state: "default" 0.0;
rel1.relative: 0 0;
rel2.relative: 1 0;
min: 0 23;
fixed: 0 1;
align: 0.5 1;
}
description { state: "visible" 0.0;
inherit: "default";
align: 0.5 0;
}
}
part { name: "elm.swallow.tools";
type: SWALLOW;
scale: 1;
description { state: "default" 0.0;
rel1.to: "tools_base";
rel2.to: "tools_base";
rel1.offset: 2 0;
rel2.offset: -4 -1;
}
}
part { name: "tools_overlay";
type: IMAGE;
scale: 1;
mouse_events: 0;
description { state: "default" 0.0;
rel1 { to: "tools_base"; }
rel2 { to: "tools_base"; }
image.normal: "bevel_out.png";
image.border: 1 1 1 1;
image.border_scale: 1;
}
}
swallow { "elm.swallow.panes";
scale: 1;
desc { "default";
rel1 {
relative: 1.0 1.0;
relative: 1.0 0.0;
to_x: "elm.swallow.file_browser";
to_y: "elm.swallow.tools";
}
rel2 {
relative: 0.0 0.0;
@ -2622,8 +2584,6 @@ group { name: "main_layout";
scale: 1;
desc { "default";
rel1 {
relative: 0.0 1.0;
to_y: "elm.swallow.tools";
offset: 1 0;
}
rel2 {
@ -2645,8 +2605,7 @@ group { name: "main_layout";
scale: 1;
desc { "default";
rel1 {
relative: 1.0 1.0;
to_y: "elm.swallow.tools";
relative: 1.0 0.0;
}
rel2 {
relative: 1.0 0.0;
@ -2662,8 +2621,7 @@ group { name: "main_layout";
inherit: "default";
align: 1 0;
rel1 {
relative: 1.0 1.0;
to_y: "elm.swallow.tools";
relative: 1.0 0.0;
}
rel2 {
relative: 1.0 0.0;
@ -2710,6 +2668,68 @@ group { name: "main_layout";
target: "elm.swallow.statusbar";
transition: DECELERATE 0.25;
}
program { name: "alert_show";
signal: "elm,state,alert,show";
action: STATE_SET "visible" 0.0;
target: "error_alert";
after: "alert_show2";
}
program { name: "alert_show2";
action: STATE_SET "default" 0.0;
target: "error_alert";
transition: DECELERATE 1;
}
}
}
group { "tools_layout";
parts {
rect { "tools_base";
scale: 1;
desc { "default";
rel1.relative: 0 0;
rel2.relative: 1 0;
min: 0 23;
fixed: 0 1;
align: 0.5 1;
color: 64 64 64 255;
}
desc { "visible";
inherit: "default";
align: 0.5 0;
}
}
swallow { "elm.swallow.tools";
scale: 1;
desc { "default";
rel1.to: "tools_base";
rel2.to: "tools_base";
rel1.offset: 2 0;
rel2.offset: -4 -1;
}
}
image { "tools_overlay";
scale: 1;
mouse_events: 0;
desc { "default";
rel1 { to: "tools_base"; }
rel2 { to: "tools_base"; }
image.normal: "bevel_out.png";
image.border: 1 1 1 1;
image.border_scale: 1;
}
}
swallow { "elm.swallow.content";
scale: 1;
desc { "default";
rel1 {
relative: 0.0 1.0;
to_y: "elm.swallow.tools";
}
}
}
}
programs {
program { name: "tools_show";
signal: "elm,state,tools,show";
action: STATE_SET "visible" 0.0;
@ -2722,16 +2742,579 @@ group { name: "main_layout";
target: "tools_base";
transition: DECELERATE 0.25;
}
program { name: "alert_show";
signal: "elm,state,alert,show";
action: STATE_SET "visible" 0.0;
target: "error_alert";
after: "alert_show2";
}
}
group { "live_view_tools_layout";
parts {
spacer { "padding1";
scale: 1;
desc { "default";
rel2.relative: 0.0 1.0;
min: 14 0;
fixed: 1 0;
align: 0.0 0.5;
}
}
program { name: "alert_show2";
action: STATE_SET "default" 0.0;
target: "error_alert";
transition: DECELERATE 1;
swallow { "elm.swallow.highlight";
scale: 1;
desc { "default";
rel1 {
to_x: "padding1";
relative: 1.0 0.0;
}
rel2.to_x: "padding1";
fixed: 1 0;
align: 0.0 0.5;
}
}
spacer { "padding2";
scale: 1;
desc { "default";
rel1 {
to_x: "elm.swallow.highlight";
relative: 1.0 0.0;
}
rel2.to_x: "elm.swallow.highlight";
min: 8 0;
fixed: 1 0;
align: 0.0 0.5;
}
}
swallow { "elm.swallow.dummy";
scale: 1;
desc { "default";
rel1 {
to_x: "padding2";
relative: 1.0 0.0;
}
rel2.to_x: "padding2";
fixed: 1 0;
align: 0.0 0.5;
}
}
spacer { "padding3";
scale: 1;
desc { "default";
rel1 {
to_x: "elm.swallow.dummy";
relative: 1.0 0.0;
}
rel2.to_x: "elm.swallow.dummy";
min: 8 0;
fixed: 1 0;
align: 0.0 0.5;
}
}
swallow { "elm.swallow.mirror";
scale: 1;
desc { "default";
rel1 {
to_x: "padding3";
relative: 1.0 0.0;
}
rel2.to_x: "padding3";
fixed: 1 0;
align: 0.0 0.5;
}
}
spacer { "padding4";
scale: 1;
desc { "default";
rel1 {
to_x: "elm.swallow.mirror";
relative: 1.0 0.0;
}
rel2.to_x: "elm.swallow.mirror";
min: 14 0;
fixed: 1 0;
align: 0.0 0.5;
}
}
rect { "separator";
scale: 1;
desc { "default";
rel1 {
to_x: "padding4";
relative: 1.0 0.5;
}
rel2 {
to_x: "padding4";
relative: 1.0 0.5;
}
min: 1 18;
fixed: 1 1;
align: 0.0 0.5;
color: 48 48 48 255;
}
}
spacer { "padding5";
scale: 1;
desc { "default";
rel1 {
to_x: "separator";
relative: 1.0 0.0;
}
rel2.to_x: "separator";
min: 14 0;
fixed: 1 0;
align: 0.0 0.5;
}
}
swallow { "elm.swallow.live_edit1";
scale: 1;
desc { "default";
rel1 {
to_x: "padding5";
relative: 1.0 0.0;
}
rel2.to_x: "padding5";
fixed: 1 0;
align: 0.0 0.5;
}
}
spacer { "padding6";
scale: 1;
desc { "default";
rel1 {
to_x: "elm.swallow.live_edit1";
relative: 1.0 0.0;
}
rel2.to_x: "elm.swallow.live_edit1";
min: 8 0;
fixed: 1 0;
align: 0.0 0.5;
}
}
swallow { "elm.swallow.live_edit2";
scale: 1;
desc { "default";
rel1 {
to_x: "padding6";
relative: 1.0 0.0;
}
rel2.to_x: "padding6";
fixed: 1 0;
align: 0.0 0.5;
}
}
spacer { "padding7";
scale: 1;
desc { "default";
rel1 {
to_x: "elm.swallow.live_edit2";
relative: 1.0 0.0;
}
rel2.to_x: "elm.swallow.live_edit2";
min: 8 0;
fixed: 1 0;
align: 0.0 0.5;
}
}
swallow { "elm.swallow.live_edit3";
scale: 1;
desc { "default";
rel1 {
to_x: "padding7";
relative: 1.0 0.0;
}
rel2.to_x: "padding7";
fixed: 1 0;
align: 0.0 0.5;
}
}
spacer { "padding8";
scale: 1;
desc { "default";
rel1 {
to_x: "elm.swallow.live_edit3";
relative: 1.0 0.0;
}
rel2.to_x: "elm.swallow.live_edit3";
min: 8 0;
fixed: 1 0;
align: 0.0 0.5;
}
}
swallow { "elm.swallow.live_edit4";
scale: 1;
desc { "default";
rel1 {
to_x: "padding8";
relative: 1.0 0.0;
}
rel2.to_x: "padding8";
fixed: 1 0;
align: 0.0 0.5;
}
}
spacer { "padding9";
scale: 1;
desc { "default";
rel1 {
to_x: "elm.swallow.live_edit4";
relative: 1.0 0.0;
}
rel2.to_x: "elm.swallow.live_edit4";
min: 8 0;
fixed: 1 0;
align: 0.0 0.5;
}
}
swallow { "elm.swallow.live_edit5";
scale: 1;
desc { "default";
rel1 {
to_x: "padding9";
relative: 1.0 0.0;
}
rel2.to_x: "padding9";
fixed: 1 0;
align: 0.0 0.5;
}
}
spacer { "padding10";
scale: 1;
desc { "default";
rel1 {
to_x: "elm.swallow.live_edit5";
relative: 1.0 0.0;
}
rel2.to_x: "elm.swallow.live_edit5";
min: 8 0;
fixed: 1 0;
align: 0.0 0.5;
}
}
swallow { "elm.swallow.live_edit6";
scale: 1;
desc { "default";
rel1 {
to_x: "padding10";
relative: 1.0 0.0;
}
rel2.to_x: "padding10";
fixed: 1 0;
align: 0.0 0.5;
}
}
}
}
group { "text_editor_tools_layout";
parts {
spacer { "base";
scale: 1;
desc { "default";
min: 300 0;
fixed: 1 0;
align: 0.0 0.5;
}
}
spacer { "padding1";
scale: 1;
desc { "default";
rel1.to_x: "base";
rel2 {
to_x: "base";
relative: 0.0 1.0;
}
min: 14 0;
fixed: 1 0;
align: 0.0 0.5;
}
}
swallow { "elm.swallow.save";
scale: 1;
desc { "default";
rel1 {
to_x: "padding1";
relative: 1.0 0.0;
}
rel2.to_x: "padding1";
fixed: 1 0;
align: 0.0 0.5;
}
}
spacer { "padding2";
scale: 1;
desc { "default";
rel1 {
to_x: "elm.swallow.save";
relative: 1.0 0.0;
}
rel2.to_x: "elm.swallow.save";
min: 8 0;
fixed: 1 0;
align: 0.0 0.5;
}
}
swallow { "elm.swallow.undo";
scale: 1;
desc { "default";
rel1 {
to_x: "padding2";
relative: 1.0 0.0;
}
rel2.to_x: "padding2";
fixed: 1 0;
align: 0.0 0.5;
}
}
spacer { "padding3";
scale: 1;
desc { "default";
rel1 {
to_x: "elm.swallow.undo";
relative: 1.0 0.0;
}
rel2.to_x: "elm.swallow.undo";
min: 8 0;
fixed: 1 0;
align: 0.0 0.5;
}
}
swallow { "elm.swallow.redo";
scale: 1;
desc { "default";
rel1 {
to_x: "padding3";
relative: 1.0 0.0;
}
rel2.to_x: "padding3";
fixed: 1 0;
align: 0.0 0.5;
}
}
spacer { "padding4";
scale: 1;
desc { "default";
rel1 {
to_x: "elm.swallow.redo";
relative: 1.0 0.0;
}
rel2.to_x: "elm.swallow.redo";
min: 8 0;
fixed: 1 0;
align: 0.0 0.5;
}
}
swallow { "elm.swallow.find";
scale: 1;
desc { "default";
rel1 {
to_x: "padding4";
relative: 1.0 0.0;
}
rel2.to_x: "padding4";
fixed: 1 0;
align: 0.0 0.5;
}
}
spacer { "padding5";
scale: 1;
desc { "default";
rel1 {
to_x: "elm.swallow.find";
relative: 1.0 0.0;
}
rel2.to_x: "elm.swallow.find";
min: 8 0;
fixed: 1 0;
align: 0.0 0.5;
}
}
swallow { "elm.swallow.goto";
scale: 1;
desc { "default";
rel1 {
to_x: "padding5";
relative: 1.0 0.0;
}
rel2.to_x: "padding5";
fixed: 1 0;
align: 0.0 0.5;
}
}
spacer { "padding6";
scale: 1;
desc { "default";
rel1 {
to_x: "elm.swallow.goto";
relative: 1.0 0.0;
}
rel2.to_x: "elm.swallow.goto";
min: 8 0;
fixed: 1 0;
align: 0.0 0.5;
}
}
swallow { "elm.swallow.lines";
scale: 1;
desc { "default";
rel1 {
to_x: "padding6";
relative: 1.0 0.0;
}
rel2.to_x: "padding6";
fixed: 1 0;
align: 0.0 0.5;
}
}
spacer { "padding7";
scale: 1;
desc { "default";
rel1 {
to_x: "base";
relative: 1.0 0.0;
}
rel2.to_x: "base";
min: 14 0;
fixed: 1 0;
align: 1.0 0.5;
}
}
swallow { "elm.swallow.menu";
scale: 1;
desc { "default";
rel1.to_x: "padding7";
rel2 {
to_x: "padding7";
relative: 0.0 1.0;
}
fixed: 1 0;
align: 1.0 0.5;
}
}
spacer { "padding8";
scale: 1;
desc { "default";
rel1.to_x: "elm.swallow.menu";
rel2 {
to_x: "elm.swallow.menu";
relative: 0.0 1.0;
}
min: 14 0;
fixed: 1 0;
align: 1.0 0.5;
}
}
rect { "separator";
scale: 1;
desc { "default";
rel1 {
to_x: "padding8";
relative: 0.0 0.5;
}
rel2 {
to_x: "padding8";
relative: 0.0 0.5;
}
min: 1 18;
fixed: 1 0;
align: 1.0 0.5;
color: 48 48 48 255;
}
}
spacer { "padding9";
scale: 1;
desc { "default";
rel1.to_x: "separator";
rel2 {
to_x: "separator";
relative: 0.0 1.0;
}
min: 8 0;
fixed: 1 0;
align: 1.0 0.5;
}
}
swallow { "elm.swallow.status";
scale: 1;
desc { "default";
rel1.to_x: "padding9";
rel2 {
to_x: "padding9";
relative: 0.0 1.0;
}
fixed: 1 0;
align: 1.0 0.5;
}
}
spacer { "padding10";
scale: 1;
desc { "default";
rel1.to_x: "elm.swallow.status";
rel2 {
to_x: "elm.swallow.status";
relative: 0.0 1.0;
}
min: 8 0;
fixed: 1 0;
align: 1.0 0.5;
}
}
swallow { "elm.swallow.edc_navigator";
scale: 1;
desc { "default";
rel1.to_x: "padding10";
rel2 {
to_x: "padding10";
relative: 0.0 1.0;
}
fixed: 1 0;
align: 1.0 0.5;
}
}
spacer { "padding11";
scale: 1;
desc { "default";
rel1.to_x: "elm.swallow.edc_navigator";
rel2 {
to_x: "elm.swallow.edc_navigator";
relative: 0.0 1.0;
}
min: 8 0;
fixed: 1 0;
align: 1.0 0.5;
}
}
swallow { "elm.swallow.file_browser";
scale: 1;
desc { "default";
rel1.to_x: "padding11";
rel2 {
to_x: "padding11";
relative: 0.0 1.0;
}
fixed: 1 0;
align: 1.0 0.5;
}
}
spacer { "padding12";
scale: 1;
desc { "default";
rel1.to_x: "elm.swallow.file_browser";
rel2 {
to_x: "elm.swallow.file_browser";
relative: 0.0 1.0;
}
min: 8 0;
fixed: 1 0;
align: 1.0 0.5;
}
}
swallow { "elm.swallow.console";
scale: 1;
desc { "default";
rel1.to_x: "padding12";
rel2 {
to_x: "padding12";
relative: 0.0 1.0;
}
fixed: 1 0;
align: 1.0 0.5;
}
}
}
}
@ -2828,4 +3411,4 @@ group { name: "edit_layout";
transition: DECELERATE 0.125;
}
}
}
}

View File

@ -122,15 +122,14 @@ void base_edc_navigator_toggle(Eina_Bool toggle)
void
base_tools_toggle(Eina_Bool config)
{
base_data *bd = g_bd;
assert(bd);
if (config) config_tools_set(!config_tools_get());
if (config_tools_get())
elm_object_signal_emit(bd->layout, "elm,state,tools,show", "");
else
elm_object_signal_emit(bd->layout, "elm,state,tools,hide", "");
Eina_Bool visible = config_tools_get();
panes_live_view_tools_visible_set(visible);
panes_text_editor_tools_visible_set(visible);
file_browser_tools_visible_set(visible);
edc_navigator_tools_visible_set(visible);
}
Evas_Object *
@ -157,16 +156,20 @@ base_win_resize_object_add(Evas_Object *resize_obj)
elm_win_resize_object_add(bd->win, resize_obj);
}
void base_tools_set(Evas_Object *tools)
void base_tools_set(Evas_Object *live_view_tools,
Evas_Object *text_editor_tools)
{
base_data *bd = g_bd;
assert(bd);
elm_object_part_content_set(bd->layout, "elm.swallow.tools", tools);
panes_live_view_tools_set(live_view_tools);
panes_text_editor_tools_set(text_editor_tools);
file_browser_tools_set();
edc_navigator_tools_set();
if (config_tools_get())
elm_object_signal_emit(bd->layout, "elm,state,tools,show", "");
else
elm_object_signal_emit(bd->layout, "elm,state,tools,hide", "");
Eina_Bool visible = config_tools_get();
panes_live_view_tools_visible_set(visible);
panes_text_editor_tools_visible_set(visible);
file_browser_tools_visible_set(visible);
edc_navigator_tools_visible_set(visible);
}
void

View File

@ -15,6 +15,7 @@ typedef struct list_it_s list_it;
typedef struct edc_navigator_s
{
Evas_Object *base_layout;
Evas_Object *genlist;
Eina_List *groups;
@ -1471,6 +1472,14 @@ edc_navigator_init(Evas_Object *parent)
}
g_nd = nd;
//Base layout
Evas_Object *base_layout = elm_layout_add(parent);
elm_layout_file_set(base_layout, EDJE_PATH, "tools_layout");
evas_object_size_hint_weight_set(base_layout, EVAS_HINT_EXPAND,
EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(base_layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_show(base_layout);
//Genlist
Evas_Object *genlist = elm_genlist_add(parent);
elm_object_focus_allow_set(genlist, EINA_FALSE);
@ -1485,7 +1494,7 @@ edc_navigator_init(Evas_Object *parent)
evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND,
EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(genlist, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_show(genlist);
elm_object_content_set(base_layout, genlist);
//Group Item Class
Elm_Genlist_Item_Class *itc;
@ -1531,9 +1540,10 @@ edc_navigator_init(Evas_Object *parent)
nd->program_itc = itc;
nd->base_layout = base_layout;
nd->genlist = genlist;
return genlist;
return base_layout;
}
void
@ -1550,8 +1560,32 @@ edc_navigator_term(void)
elm_genlist_item_class_free(nd->programs_itc);
elm_genlist_item_class_free(nd->program_itc);
evas_object_del(nd->genlist);
evas_object_del(nd->base_layout);
free(nd);
g_nd = NULL;
}
void
edc_navigator_tools_set(void)
{
navi_data *nd = g_nd;
if (!nd) return;
Evas_Object *rect =
evas_object_rectangle_add(evas_object_evas_get(nd->base_layout));
evas_object_color_set(rect, 0, 0, 0, 0);
elm_object_part_content_set(nd->base_layout, "elm.swallow.tools", rect);
}
void
edc_navigator_tools_visible_set(Eina_Bool visible)
{
navi_data *nd = g_nd;
if (!nd) return;
if (visible)
elm_object_signal_emit(nd->base_layout, "elm,state,tools,show", "");
else
elm_object_signal_emit(nd->base_layout, "elm,state,tools,hide", "");
}

View File

@ -33,7 +33,7 @@ typedef struct file_browser_s
{
brows_file *workspace; //workspace directory
Evas_Object *main_box;
Evas_Object *base_layout;
Evas_Object *search_entry;
Evas_Object *genlist;
Evas_Object *show_all_check;
@ -572,7 +572,7 @@ file_browser_workspace_set(const char *workspace_path)
if (!workspace) return;
bd->workspace = workspace;
elm_object_disabled_set(bd->main_box, EINA_FALSE);
elm_object_disabled_set(bd->base_layout, EINA_FALSE);
if (workspace->sub_file_list)
gl_exp_req(NULL, NULL, workspace->it);
@ -582,7 +582,7 @@ Evas_Object *
file_browser_init(Evas_Object *parent)
{
brows_data *bd = g_bd;
if (bd) return bd->main_box;
if (bd) return bd->base_layout;
bd = calloc(1, sizeof(brows_data));
if (!bd)
@ -592,12 +592,20 @@ file_browser_init(Evas_Object *parent)
}
g_bd = bd;
//Base layout
Evas_Object *base_layout = elm_layout_add(parent);
elm_layout_file_set(base_layout, EDJE_PATH, "tools_layout");
evas_object_size_hint_align_set(base_layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_size_hint_weight_set(base_layout, EVAS_HINT_EXPAND,
EVAS_HINT_EXPAND);
evas_object_show(base_layout);
//Main Box
Evas_Object *main_box = elm_box_add(parent);
Evas_Object *main_box = elm_box_add(base_layout);
evas_object_size_hint_align_set(main_box, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_size_hint_weight_set(main_box, EVAS_HINT_EXPAND,
EVAS_HINT_EXPAND);
evas_object_show(main_box);
EVAS_HINT_EXPAND);
elm_object_content_set(base_layout, main_box);
Evas_Object *sub_box;
@ -674,14 +682,14 @@ file_browser_init(Evas_Object *parent)
search_itc->func.content_get = gl_search_content_get_cb;
bd->search_itc = search_itc;
bd->main_box = main_box;
bd->base_layout = base_layout;
bd->search_entry = search_entry;
bd->genlist = genlist;
bd->show_all_check = show_all_check;
elm_object_disabled_set(main_box, EINA_TRUE);
elm_object_disabled_set(base_layout, EINA_TRUE);
return main_box;
return base_layout;
}
void
@ -695,8 +703,32 @@ file_browser_term(void)
elm_genlist_item_class_free(bd->itc);
elm_genlist_item_class_free(bd->search_itc);
evas_object_del(bd->main_box);
evas_object_del(bd->base_layout);
free(bd);
g_bd = NULL;
}
void
file_browser_tools_set(void)
{
brows_data *bd = g_bd;
if (!bd) return;
Evas_Object *rect =
evas_object_rectangle_add(evas_object_evas_get(bd->base_layout));
evas_object_color_set(rect, 0, 0, 0, 0);
elm_object_part_content_set(bd->base_layout, "elm.swallow.tools", rect);
}
void
file_browser_tools_visible_set(Eina_Bool visible)
{
brows_data *bd = g_bd;
if (!bd) return;
if (visible)
elm_object_signal_emit(bd->base_layout, "elm,state,tools,show", "");
else
elm_object_signal_emit(bd->base_layout, "elm,state,tools,hide", "");
}

View File

@ -1479,25 +1479,22 @@ live_edit_cancel(void)
return EINA_TRUE;
}
Evas_Object *
//Create and return a list of buttons.
Eina_List *
live_edit_tools_create(Evas_Object *parent)
{
Evas_Object *box = elm_box_add(parent);
elm_box_horizontal_set(box, EINA_TRUE);
elm_box_padding_set(box, ELM_SCALE_SIZE(5), 0);
Eina_List *btn_list = NULL;
Evas_Object *btn;
int i;
for (i = 0; i < LIVEEDIT_ITEMS_NUM; i++)
{
btn = live_btn_create(box, LIVEEDIT_ITEMS[i].name,
btn = live_btn_create(parent, LIVEEDIT_ITEMS[i].name,
(void *)(uintptr_t) i);
elm_box_pack_end(box, btn);
btn_list = eina_list_append(btn_list, btn);
}
evas_object_show(box);
return box;
return btn_list;
}
void

View File

@ -211,14 +211,12 @@ main_mouse_wheel_cb(void *data, int type EINA_UNUSED, void *ev)
return ECORE_CALLBACK_PASS_ON;
}
static Evas_Object *
static void
tools_set(void)
{
Evas_Object *tools = tools_init(base_layout_get());
base_tools_set(tools);
tools_init(base_layout_get());
base_tools_set(tools_live_view_get(), tools_text_editor_get());
tools_update();
return tools;
}
static void
@ -928,7 +926,7 @@ init(app_data *ad, int argc, char **argv)
statusbar_set();
enventor_setup(ad);
file_mgr_init();
Evas_Object *tools = tools_set();
tools_set();
live_edit_init();
base_gui_show();

View File

@ -283,14 +283,30 @@ void
panes_text_editor_set(Evas_Object *text_editor)
{
panes_data *pd = g_pd;
elm_object_part_content_set(pd->horiz.obj, "right", text_editor);
Evas_Object *base_layout = elm_layout_add(pd->horiz.obj);
elm_layout_file_set(base_layout, EDJE_PATH, "tools_layout");
evas_object_size_hint_weight_set(base_layout, EVAS_HINT_EXPAND,
EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(base_layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_content_set(base_layout, text_editor);
elm_object_part_content_set(pd->horiz.obj, "right", base_layout);
}
void
panes_live_view_set(Evas_Object *live_view)
{
panes_data *pd = g_pd;
elm_object_part_content_set(pd->horiz.obj, "left", live_view);
Evas_Object *base_layout = elm_layout_add(pd->horiz.obj);
elm_layout_file_set(base_layout, EDJE_PATH, "tools_layout");
evas_object_size_hint_weight_set(base_layout, EVAS_HINT_EXPAND,
EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(base_layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_content_set(base_layout, live_view);
elm_object_part_content_set(pd->horiz.obj, "left", base_layout);
}
void
@ -358,3 +374,53 @@ panes_init(Evas_Object *parent)
return panes_v;
}
void
panes_live_view_tools_set(Evas_Object *tools)
{
panes_data *pd = g_pd;
if (!pd) return;
Evas_Object *live_view = elm_object_part_content_get(pd->horiz.obj, "left");
elm_object_part_content_set(live_view, "elm.swallow.tools", tools);
}
void
panes_text_editor_tools_set(Evas_Object *tools)
{
panes_data *pd = g_pd;
if (!pd) return;
Evas_Object *text_editor = elm_object_part_content_get(pd->horiz.obj,
"right");
elm_object_part_content_set(text_editor, "elm.swallow.tools", tools);
}
void
panes_live_view_tools_visible_set(Eina_Bool visible)
{
panes_data *pd = g_pd;
if (!pd) return;
Evas_Object *live_view = elm_object_part_content_get(pd->horiz.obj, "left");
if (visible)
elm_object_signal_emit(live_view, "elm,state,tools,show", "");
else
elm_object_signal_emit(live_view, "elm,state,tools,hide", "");
}
void
panes_text_editor_tools_visible_set(Eina_Bool visible)
{
panes_data *pd = g_pd;
if (!pd) return;
Evas_Object *text_editor = elm_object_part_content_get(pd->horiz.obj,
"right");
if (visible)
elm_object_signal_emit(text_editor, "elm,state,tools,show", "");
else
elm_object_signal_emit(text_editor, "elm,state,tools,hide", "");
}

View File

@ -17,7 +17,8 @@ typedef struct tools_s
Evas_Object *find_btn;
Evas_Object *console_btn;
Evas_Object *menu_btn;
Evas_Object *box;
Evas_Object *live_view_ly;
Evas_Object *text_editor_ly;
} tools_data;
static tools_data *g_td = NULL;
@ -165,164 +166,178 @@ tools_term(void)
free(td);
}
Evas_Object *
void
tools_init(Evas_Object *parent)
{
tools_data *td = g_td;
if (td) return (td->box);
if (td) return;
td = calloc(1, sizeof(tools_data));
if (!td)
{
EINA_LOG_ERR(_("Failed to allocate Memory!"));
return NULL;
return;
}
g_td = td;
Evas_Object *box = elm_box_add(parent);
elm_box_horizontal_set(box, EINA_TRUE);
elm_box_padding_set(box, 10, 0);
evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND,
//Live view tools
Evas_Object *live_view_ly = elm_layout_add(parent);
elm_layout_file_set(live_view_ly, EDJE_PATH, "live_view_tools_layout");
evas_object_size_hint_weight_set(live_view_ly, EVAS_HINT_EXPAND,
EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_size_hint_align_set(live_view_ly, EVAS_HINT_FILL,
EVAS_HINT_FILL);
Evas_Object *btn;
btn = tools_btn_create(box, "highlight", _("Part Highlighting (Ctrl + H)"),
highlight_cb);
btn = tools_btn_create(live_view_ly, "highlight",
_("Part Highlighting (Ctrl + H)"), highlight_cb);
elm_object_tooltip_orient_set(btn, ELM_TOOLTIP_ORIENT_BOTTOM_RIGHT);
evas_object_size_hint_weight_set(btn, 0, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(btn, 0.0, EVAS_HINT_FILL);
elm_box_pack_end(box, btn);
evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_part_content_set(live_view_ly, "elm.swallow.highlight", btn);
td->highlight_btn = btn;
btn = tools_btn_create(box, "dummy", _("Dummy Parts (Ctrl + W)"),
btn = tools_btn_create(live_view_ly, "dummy", _("Dummy Parts (Ctrl + W)"),
dummy_cb);
elm_object_tooltip_orient_set(btn, ELM_TOOLTIP_ORIENT_BOTTOM_RIGHT);
evas_object_size_hint_weight_set(btn, 0, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(btn, 0.0, EVAS_HINT_FILL);
elm_box_pack_end(box, btn);
evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_part_content_set(live_view_ly, "elm.swallow.dummy", btn);
td->swallow_btn = btn;
//icon image is temporary, it should be changed to its own icon.
btn = tools_btn_create(box, "mirror", _("Mirror Mode (Ctrl + M)"),
btn = tools_btn_create(live_view_ly, "mirror", _("Mirror Mode (Ctrl + M)"),
mirror_cb);
evas_object_size_hint_weight_set(btn, 0, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(btn, 0.0, EVAS_HINT_FILL);
elm_box_pack_end(box, btn);
evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_part_content_set(live_view_ly, "elm.swallow.mirror", btn);
td->mirror_btn = btn;
Evas_Object *sp;
sp = elm_separator_add(box);
evas_object_show(sp);
elm_box_pack_end(box, sp);
//Live edit tools
Eina_List *btn_list = live_edit_tools_create(live_view_ly);
Eina_List *l = NULL;
int i = 1;
EINA_LIST_FOREACH(btn_list, l, btn)
{
evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, EVAS_HINT_FILL);
//Live edit tool
btn = live_edit_tools_create(box);
evas_object_size_hint_weight_set(btn, 0, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(btn, 0.0, EVAS_HINT_FILL);
elm_box_pack_end(box, btn);
char swallow_part[32];
snprintf(swallow_part, sizeof(swallow_part), "elm.swallow.live_edit%d",
i);
elm_object_part_content_set(live_view_ly, swallow_part, btn);
i++;
}
sp = elm_separator_add(box);
evas_object_show(sp);
elm_box_pack_end(box, sp);
td->live_view_ly = live_view_ly;
//For a empty space
Evas_Object *rect = evas_object_rectangle_add(evas_object_evas_get(box));
evas_object_size_hint_weight_set(rect, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(rect, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_box_pack_end(box, rect);
//Text editor tools
Evas_Object *text_editor_ly = elm_layout_add(parent);
elm_layout_file_set(text_editor_ly, EDJE_PATH, "text_editor_tools_layout");
evas_object_size_hint_weight_set(text_editor_ly, EVAS_HINT_EXPAND,
EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(text_editor_ly, EVAS_HINT_FILL,
EVAS_HINT_FILL);
btn = tools_btn_create(box, "save",_("Save File (Ctrl + S)"),
btn = tools_btn_create(text_editor_ly, "save",_("Save File (Ctrl + S)"),
save_cb);
evas_object_size_hint_weight_set(btn, 0, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(btn, 0.0, EVAS_HINT_FILL);
elm_box_pack_end(box, btn);
evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_part_content_set(text_editor_ly, "elm.swallow.save", btn);
btn = tools_btn_create(box, "undo", _("Undo Text (Ctrl + Z)"),
btn = tools_btn_create(text_editor_ly, "undo", _("Undo Text (Ctrl + Z)"),
undo_cb);
evas_object_size_hint_weight_set(btn, 0, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(btn, 0.0, EVAS_HINT_FILL);
elm_box_pack_end(box, btn);
evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_part_content_set(text_editor_ly, "elm.swallow.undo", btn);
btn = tools_btn_create(box, "redo", _("Redo Text (Ctrl + R)"),
btn = tools_btn_create(text_editor_ly, "redo", _("Redo Text (Ctrl + R)"),
redo_cb);
evas_object_size_hint_weight_set(btn, 0, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(btn, 0.0, EVAS_HINT_FILL);
elm_box_pack_end(box, btn);
evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_part_content_set(text_editor_ly, "elm.swallow.redo", btn);
btn = tools_btn_create(box, "find", _("Find/Replace (Ctrl + F)"),
btn = tools_btn_create(text_editor_ly, "find", _("Find/Replace (Ctrl + F)"),
find_cb);
evas_object_size_hint_weight_set(btn, 0, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(btn, 0.0, EVAS_HINT_FILL);
elm_box_pack_end(box, btn);
evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_part_content_set(text_editor_ly, "elm.swallow.find", btn);
td->find_btn = btn;
btn = tools_btn_create(box, "goto", _("Goto Lines (Ctrl + L)"),
btn = tools_btn_create(text_editor_ly, "goto", _("Goto Lines (Ctrl + L)"),
goto_cb);
evas_object_size_hint_weight_set(btn, 0, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(btn, 0.0, EVAS_HINT_FILL);
elm_box_pack_end(box, btn);
evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_part_content_set(text_editor_ly, "elm.swallow.goto", btn);
td->goto_btn = btn;
btn = tools_btn_create(box, "lines", _("Line Numbers (F5)"),
btn = tools_btn_create(text_editor_ly, "lines", _("Line Numbers (F5)"),
lines_cb);
evas_object_size_hint_weight_set(btn, 0, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(btn, 0.0, EVAS_HINT_FILL);
elm_box_pack_end(box, btn);
evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_part_content_set(text_editor_ly, "elm.swallow.lines", btn);
td->lines_btn = btn;
sp = elm_separator_add(box);
evas_object_show(sp);
elm_box_pack_end(box, sp);
btn = tools_btn_create(box, "console", _("Console Box (Alt + Down)"),
console_cb);
evas_object_size_hint_weight_set(btn, 0, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(btn, 1.0, EVAS_HINT_FILL);
elm_box_pack_end(box, btn);
btn = tools_btn_create(text_editor_ly, "console",
_("Console Box (Alt + Down)"), console_cb);
evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_part_content_set(text_editor_ly, "elm.swallow.console", btn);
td->console_btn = btn;
btn = tools_btn_create(box, "file_browser", _("File Browser (F9)"),
file_browser_cb);
evas_object_size_hint_weight_set(btn, 0, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(btn, 1.0, EVAS_HINT_FILL);
elm_box_pack_end(box, btn);
btn = tools_btn_create(text_editor_ly, "file_browser",
_("File Browser (F9)"), file_browser_cb);
evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_part_content_set(text_editor_ly, "elm.swallow.file_browser", btn);
td->file_browser_btn = btn;
btn = tools_btn_create(box, "edc_navigator", _("EDC Navigator (F10)"),
edc_navigator_cb);
evas_object_size_hint_weight_set(btn, 0, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(btn, 1.0, EVAS_HINT_FILL);
elm_box_pack_end(box, btn);
btn = tools_btn_create(text_editor_ly, "edc_navigator",
_("EDC Navigator (F10)"), edc_navigator_cb);
evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_part_content_set(text_editor_ly, "elm.swallow.edc_navigator",
btn);
td->edc_navigator_btn = btn;
btn = tools_btn_create(box, "status", _("Status (F11)"), status_cb);
evas_object_size_hint_weight_set(btn, 0, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(btn, 1.0, EVAS_HINT_FILL);
elm_box_pack_end(box, btn);
btn = tools_btn_create(text_editor_ly, "status", _("Status (F11)"),
status_cb);
evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_part_content_set(text_editor_ly, "elm.swallow.status", btn);
td->status_btn = btn;
sp = elm_separator_add(box);
evas_object_show(sp);
elm_box_pack_end(box, sp);
btn = tools_btn_create(box, "menu", _("Enventor Menu (Esc)"),
btn = tools_btn_create(text_editor_ly, "menu", _("Enventor Menu (Esc)"),
menu_cb);
elm_object_tooltip_orient_set(btn, ELM_TOOLTIP_ORIENT_BOTTOM_LEFT);
evas_object_size_hint_weight_set(btn, 0, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(btn, 0.0, EVAS_HINT_FILL);
elm_box_pack_end(box, btn);
evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_part_content_set(text_editor_ly, "elm.swallow.menu", btn);
td->menu_btn = btn;
evas_object_show(box);
td->box = box;
td->text_editor_ly = text_editor_ly;
//Turn on if console is valid size.
if (!config_console_get() && (config_console_size_get() > 0))
tools_console_update(EINA_TRUE);
}
return box;
Evas_Object *
tools_live_view_get(void)
{
tools_data *td = g_td;
if (!td) return;
return td->live_view_ly;
}
Evas_Object *
tools_text_editor_get(void)
{
tools_data *td = g_td;
if (!td) return;
return td->text_editor_ly;
}
void

View File

@ -13,7 +13,7 @@ void base_win_resize_object_add(Evas_Object *resize_obj);
void base_title_set(const char *path);
void base_statusbar_toggle(Eina_Bool config);
void base_tools_toggle(Eina_Bool config);
void base_tools_set(Evas_Object *tools);
void base_tools_set(Evas_Object *live_view_tools, Evas_Object *text_editor_tools);
void base_enventor_full_view(void);
void base_live_view_full_view(void);
void base_editors_full_view(void);

View File

@ -2,3 +2,5 @@ Evas_Object *edc_navigator_init(Evas_Object *parent);
void edc_navigator_term(void);
void edc_navigator_group_update(const char *cur_group);
void edc_navigator_deselect(void);
void edc_navigator_tools_set(void);
void edc_navigator_tools_visible_set(Eina_Bool visible);

View File

@ -1,3 +1,5 @@
Evas_Object *file_browser_init(Evas_Object *parent);
void file_browser_term(void);
void file_browser_workspace_set(const char *workspace_dir);
void file_browser_tools_set(void);
void file_browser_tools_visible_set(Eina_Bool visible);

View File

@ -10,4 +10,4 @@ void live_edit_term(void);
Eina_Bool live_edit_cancel(void);
Eina_Bool live_edit_get(void);
void live_edit_update(void);
Evas_Object *live_edit_tools_create(Evas_Object *parent);
Eina_List *live_edit_tools_create(Evas_Object *parent);

View File

@ -10,4 +10,7 @@ void panes_live_view_set(Evas_Object *live_view);
void panes_text_editor_set(Evas_Object *text_editor);
void panes_console_set(Evas_Object *console);
Eina_Bool panes_editors_full_view_get(void);
void panes_live_view_tools_set(Evas_Object *tools);
void panes_text_editor_tools_set(Evas_Object *tools);
void panes_live_view_tools_visible_set(Eina_Bool visible);
void panes_text_editor_tools_visible_set(Eina_Bool visible);

View File

@ -1,4 +1,4 @@
Evas_Object *tools_init(Evas_Object *parent);
void tools_init(Evas_Object *parent);
void tools_term(void);
void tools_highlight_update(Eina_Bool toggle);
void tools_lines_update(Eina_Bool toggle);
@ -12,3 +12,5 @@ void tools_search_update(void);
void tools_live_update(Eina_Bool on);
void tools_console_update(Eina_Bool on);
void tools_menu_update(Eina_Bool on);
Evas_Object *tools_live_view_get(void);
Evas_Object *tools_text_editor_get(void);