forked from enlightenment/enventor
parent
521d12f4cb
commit
350ee8c413
|
@ -19,6 +19,7 @@ images {
|
|||
image: "live_text.png" COMP;
|
||||
image: "live_textblock.png" COMP;
|
||||
image: "live_edit.png" COMP;
|
||||
image: "expand.png" COMP;
|
||||
}
|
||||
|
||||
#define ICON_GROUP(_group_name, _image_path) \
|
||||
|
@ -45,6 +46,7 @@ ICON_GROUP("live_edit", "live_edit.png")
|
|||
ICON_GROUP("save", "save.png")
|
||||
ICON_GROUP("undo", "undo.png")
|
||||
ICON_GROUP("redo", "redo.png")
|
||||
ICON_GROUP("expand", "expand.png")
|
||||
ICON_GROUP("IMAGE", "live_image.png")
|
||||
ICON_GROUP("RECT", "live_rectangle.png")
|
||||
ICON_GROUP("SPACER", "live_spacer.png")
|
||||
|
|
|
@ -67,4 +67,5 @@ EXTRA_DIST = \
|
|||
redo.png \
|
||||
undo.png \
|
||||
white_bar_vert_glow.png \
|
||||
horizontal_separated_bar_small_glow.png
|
||||
horizontal_separated_bar_small_glow.png \
|
||||
expand.png
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 202 B |
|
@ -1793,32 +1793,78 @@ group { name: "statusbar_layout";
|
|||
color: 0 0 0 0;
|
||||
}
|
||||
}
|
||||
part { name: "size_spacer";
|
||||
part { name: "scale_spacer";
|
||||
type: SPACER;
|
||||
scale: 1;
|
||||
description { state: "default" 0.0;
|
||||
rel1.relative: 0 0;
|
||||
rel2.relative: 0 1;
|
||||
min: 250 0;
|
||||
min: 120 0;
|
||||
fixed: 1 0;
|
||||
}
|
||||
}
|
||||
swallow { "scale_btn";
|
||||
clip_to: "base_clip";
|
||||
scale: 1;
|
||||
description { state: "default" 0.0;
|
||||
rel1.relative: 0.0 0.0;
|
||||
rel2.relative: 0.0 1.0;
|
||||
align: 0.0 0.5;
|
||||
min: 18 18;
|
||||
fixed: 1 0;
|
||||
}
|
||||
}
|
||||
part { name: "elm.text.scale";
|
||||
type: TEXT;
|
||||
clip_to: "base_clip";
|
||||
scale: 1;
|
||||
effect: GLOW;
|
||||
description { state: "default" 0.0;
|
||||
rel1.to_x: "scale_btn";
|
||||
rel2.to_x: "scale_btn";
|
||||
rel1.relative: 1.0 0.0;
|
||||
rel2.relative: 1.0 1.0;
|
||||
align: 0 0.5;
|
||||
fixed: 1 0;
|
||||
color: COL_HI;
|
||||
text {
|
||||
size: 11;
|
||||
align: 0 0.5;
|
||||
min: 1 0;
|
||||
ellipsis: -1;
|
||||
text:"1.00x";
|
||||
}
|
||||
}
|
||||
}
|
||||
part { name: "size_spacer";
|
||||
type: SPACER;
|
||||
scale: 1;
|
||||
description { state: "default" 0.0;
|
||||
rel1.relative: 1 0;
|
||||
rel2.relative: 1 1;
|
||||
rel1.to: "scale_spacer";
|
||||
rel2.to: "scale_spacer";
|
||||
min: 120 0;
|
||||
fixed: 1 0;
|
||||
align: 0 0.5;
|
||||
}
|
||||
}
|
||||
part { name: "elm.text.size[";
|
||||
type: TEXT;
|
||||
clip_to: "base_clip";
|
||||
scale: 1;
|
||||
effect: SHADOW BOTTOM;
|
||||
description { state: "default" 0.0;
|
||||
rel1.to_x: "size_spacer";
|
||||
rel1.relative: 0.0 0.0;
|
||||
rel2.relative: 0.0 1.0;
|
||||
align: 0 0.5;
|
||||
rel1.offset: 0 -2;
|
||||
rel2.offset: -1 -3;
|
||||
fixed: 1 0;
|
||||
color: COL_NM;
|
||||
text {
|
||||
text: "Size [";
|
||||
size: 11;
|
||||
align: 0 0;
|
||||
align: 0 0.5;
|
||||
min: 1 0;
|
||||
ellipsis: -1;
|
||||
}
|
||||
|
@ -2130,6 +2176,19 @@ group { name: "statusbar_layout";
|
|||
align: 1 0.5;
|
||||
}
|
||||
}
|
||||
swallow { "group_btn";
|
||||
clip_to: "base_clip";
|
||||
scale: 1;
|
||||
description { state: "default" 0.0;
|
||||
rel1.to_x: "elm.text.group[";
|
||||
rel2.to_x: "elm.text.group[";
|
||||
rel1.relative: 0.0 0.0;
|
||||
rel2.relative: 0.0 1.0;
|
||||
align: 1 0.5;
|
||||
min: 18 18;
|
||||
fixed: 1 0;
|
||||
}
|
||||
}
|
||||
part { name: "elm.text.group[";
|
||||
type: TEXT;
|
||||
clip_to: "base_clip";
|
||||
|
@ -2147,6 +2206,7 @@ group { name: "statusbar_layout";
|
|||
size: 11;
|
||||
align: 1 0.5;
|
||||
min: 1 0;
|
||||
max: 1 0;
|
||||
ellipsis: -1;
|
||||
}
|
||||
}
|
||||
|
@ -2204,6 +2264,19 @@ group { name: "statusbar_layout";
|
|||
fixed: 1 0;
|
||||
}
|
||||
}
|
||||
swallow { "line_btn";
|
||||
clip_to: "base_clip";
|
||||
scale: 1;
|
||||
description { state: "default" 0.0;
|
||||
rel1.to: "elm.text.line_[";
|
||||
rel2.to: "elm.text.line_[";
|
||||
rel1.relative: 0.0 0.0;
|
||||
rel2.relative: 0.0 1.0;
|
||||
align: 1 0.5;
|
||||
min: 18 18;
|
||||
fixed: 1 0;
|
||||
}
|
||||
}
|
||||
part { name: "elm.text.line_[";
|
||||
type: TEXT;
|
||||
clip_to: "base_clip";
|
||||
|
@ -2221,6 +2294,7 @@ group { name: "statusbar_layout";
|
|||
size: 11;
|
||||
align: 1 0.5;
|
||||
min: 1 0;
|
||||
max: 1 0;
|
||||
ellipsis: -1;
|
||||
}
|
||||
}
|
||||
|
@ -2295,15 +2369,13 @@ group { name: "statusbar_layout";
|
|||
effect: SHADOW BOTTOM;
|
||||
description { state: "default" 0.0;
|
||||
rel1.relative: 1 0;
|
||||
rel1.offset: 0 -2;
|
||||
rel2.offset: -1 -3;
|
||||
align: 1 0.5;
|
||||
fixed: 1 0;
|
||||
color: COL_NM;
|
||||
text {
|
||||
text: "]";
|
||||
size: 11;
|
||||
align: 1 0;
|
||||
align: 1 0.5;
|
||||
min: 1 0;
|
||||
ellipsis: -1;
|
||||
}
|
||||
|
@ -2441,7 +2513,7 @@ group { name: "main_layout";
|
|||
rel1.relative: 0 1;
|
||||
rel2.relative: 1 1;
|
||||
align: 0.5 0;
|
||||
min: 0 15;
|
||||
min: 0 18;
|
||||
fixed: 0 1;
|
||||
}
|
||||
description { state: "visible" 0.0;
|
||||
|
|
5
po/en.po
5
po/en.po
|
@ -131,11 +131,6 @@ msgstr ""
|
|||
msgid "Auto Indentation Disabled."
|
||||
msgstr ""
|
||||
|
||||
#: src/bin/main.c:180
|
||||
#, c-format
|
||||
msgid "Live View Scale: %2.2fx"
|
||||
msgstr ""
|
||||
|
||||
#: src/bin/main.c:206
|
||||
#, c-format
|
||||
msgid "Font Size: %1.1fx"
|
||||
|
|
5
po/ru.po
5
po/ru.po
|
@ -131,11 +131,6 @@ msgstr "Автовыравнивание Включено"
|
|||
msgid "Auto Indentation Disabled."
|
||||
msgstr "Автовыравнивание Выключено"
|
||||
|
||||
#: src/bin/main.c:180
|
||||
#, c-format
|
||||
msgid "Live View Scale: %2.2fx"
|
||||
msgstr "Масштаб предпросмотра: %2.2fx"
|
||||
|
||||
#: src/bin/main.c:206
|
||||
#, c-format
|
||||
msgid "Font Size: %1.1fx"
|
||||
|
|
|
@ -5,6 +5,7 @@ typedef struct base_s
|
|||
Evas_Object *win;
|
||||
Evas_Object *layout;
|
||||
Evas_Object *console;
|
||||
Evas_Object *enventor;
|
||||
Eina_Bool console_msg : 1;
|
||||
} base_data;
|
||||
|
||||
|
@ -271,8 +272,19 @@ base_gui_show(void)
|
|||
evas_object_show(g_bd->win);
|
||||
}
|
||||
|
||||
Evas_Object *
|
||||
base_enventor_get(void)
|
||||
{
|
||||
base_data *bd = g_bd;
|
||||
assert(bd);
|
||||
return bd->enventor;
|
||||
}
|
||||
|
||||
void
|
||||
base_enventor_set(Evas_Object *enventor)
|
||||
{
|
||||
base_data *bd = g_bd;
|
||||
assert(bd);
|
||||
bd->enventor = enventor;
|
||||
panes_text_editor_set(enventor);
|
||||
}
|
||||
|
|
|
@ -7,7 +7,6 @@
|
|||
|
||||
#define CTRL_PT_LAYER 3
|
||||
#define INFO_TEXT_LAYER (CTRL_PT_LAYER+1)
|
||||
#define ROUNDING(x, dig) (floor((x) * pow(10, dig) + 0.5) / pow(10, dig))
|
||||
|
||||
typedef enum
|
||||
{
|
||||
|
|
|
@ -176,9 +176,7 @@ main_mouse_wheel_cb(void *data, int type EINA_UNUSED, void *ev)
|
|||
//Just in live edit mode case.
|
||||
live_edit_update();
|
||||
|
||||
char buf[256];
|
||||
snprintf(buf, sizeof(buf), _("Live View Scale: %2.2fx"), scale);
|
||||
stats_info_msg_update(buf);
|
||||
stats_view_scale_update(scale);
|
||||
|
||||
return ECORE_CALLBACK_PASS_ON;
|
||||
}
|
||||
|
@ -699,6 +697,8 @@ keygrabber_key_down_cb(void *data, Evas *e EINA_UNUSED,
|
|||
//Main Menu
|
||||
if (!strcmp(ev->key, "Escape"))
|
||||
{
|
||||
if (stats_ctxpopup_dismiss()) return;
|
||||
|
||||
if (live_edit_get())
|
||||
{
|
||||
live_edit_cancel();
|
||||
|
@ -724,6 +724,7 @@ keygrabber_key_down_cb(void *data, Evas *e EINA_UNUSED,
|
|||
if (file_mgr_warning_is_opened()) return;
|
||||
|
||||
enventor_object_ctxpopup_dismiss(ad->enventor);
|
||||
stats_ctxpopup_dismiss();
|
||||
|
||||
if (ctrl_func(ad, ev)) return;
|
||||
if (alt_func(ad, ev)) return;
|
||||
|
@ -804,6 +805,8 @@ statusbar_set()
|
|||
Evas_Object *obj = stats_init(base_layout_get());
|
||||
elm_object_part_content_set(base_layout_get(), "elm.swallow.statusbar", obj);
|
||||
tools_status_update(NULL, EINA_FALSE);
|
||||
|
||||
stats_view_scale_update(config_view_scale_get());
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
@ -178,6 +178,8 @@ warning_open(menu_data *md, Evas_Smart_Cb yes_cb, Evas_Smart_Cb save_cb)
|
|||
{
|
||||
if (md->warning_layout) return;
|
||||
|
||||
stats_ctxpopup_dismiss();
|
||||
|
||||
//Layout
|
||||
Evas_Object *layout = elm_layout_add(base_win_get());
|
||||
elm_layout_file_set(layout, EDJE_PATH, "warning_layout");
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
typedef struct statusbar_s
|
||||
{
|
||||
Evas_Object *layout;
|
||||
Evas_Object *ctxpopup;
|
||||
Eina_Stringshare *group_name;
|
||||
int cur_line;
|
||||
int max_line;
|
||||
|
@ -10,6 +11,94 @@ typedef struct statusbar_s
|
|||
|
||||
stats_data *g_sd = NULL;
|
||||
|
||||
static void
|
||||
slider_changed_cb(void *data, Evas_Object *obj,
|
||||
void *event_info EINA_UNUSED)
|
||||
{
|
||||
|
||||
stats_data *sd = data;
|
||||
|
||||
double scale = elm_slider_value_get(obj);
|
||||
double rounded = ROUNDING(scale, 1);
|
||||
|
||||
if ((rounded - scale) > 0) rounded -= 0.05;
|
||||
|
||||
config_view_scale_set(rounded);
|
||||
scale = config_view_scale_get();
|
||||
enventor_object_live_view_scale_set(base_enventor_get(), scale);
|
||||
stats_view_scale_update(scale);
|
||||
}
|
||||
|
||||
static void
|
||||
ctxpopup_dismissed_cb(void *data, Evas_Object *obj,
|
||||
void *event_info EINA_UNUSED)
|
||||
{
|
||||
stats_data *sd = data;
|
||||
evas_object_del(obj);
|
||||
sd->ctxpopup = NULL;
|
||||
}
|
||||
|
||||
static void
|
||||
view_scale_btn_cb(void *data, Evas_Object *obj,
|
||||
void *event_info EINA_UNUSED)
|
||||
{
|
||||
stats_data *sd = data;
|
||||
|
||||
//Ctxpopup
|
||||
Evas_Object *ctxpopup = elm_ctxpopup_add(base_layout_get());
|
||||
elm_object_style_set(ctxpopup, elm_app_name_get());
|
||||
|
||||
//Slider
|
||||
Evas_Object *slider = elm_slider_add(ctxpopup);
|
||||
elm_slider_span_size_set(slider, 150);
|
||||
elm_slider_indicator_show_set(slider, EINA_FALSE);
|
||||
double step = 0.05 / (double) (MAX_VIEW_SCALE - MIN_VIEW_SCALE);
|
||||
elm_slider_step_set(slider, step);
|
||||
elm_slider_horizontal_set(slider, EINA_FALSE);
|
||||
elm_slider_inverted_set(slider, EINA_TRUE);
|
||||
elm_slider_min_max_set(slider, MIN_VIEW_SCALE, MAX_VIEW_SCALE);
|
||||
elm_slider_value_set(slider, (double) config_view_scale_get());
|
||||
evas_object_smart_callback_add(slider, "changed", slider_changed_cb,
|
||||
sd);
|
||||
|
||||
evas_object_smart_callback_add(ctxpopup, "dismissed", ctxpopup_dismissed_cb,
|
||||
sd);
|
||||
elm_object_content_set(ctxpopup, slider);
|
||||
|
||||
Evas_Coord x, y, w, h;
|
||||
evas_object_geometry_get(obj, &x, &y, &w, &h);
|
||||
evas_object_move(ctxpopup, x, y);
|
||||
evas_object_show(ctxpopup);
|
||||
|
||||
sd->ctxpopup = ctxpopup;
|
||||
}
|
||||
|
||||
static Evas_Object *
|
||||
create_statusbar_btn(Evas_Object *layout, const char *tooltip_msg,
|
||||
Evas_Smart_Cb func, void *data)
|
||||
{
|
||||
Evas_Object *box = elm_box_add(layout);
|
||||
|
||||
Evas_Object *btn = elm_button_add(box);
|
||||
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_scale_set(btn, 0.5);
|
||||
evas_object_smart_callback_add(btn, "clicked", func, data);
|
||||
evas_object_show(btn);
|
||||
|
||||
Evas_Object *img = elm_image_add(btn);
|
||||
elm_image_file_set(img, EDJE_PATH, "expand");
|
||||
elm_object_content_set(btn, img);
|
||||
|
||||
elm_object_tooltip_text_set(box, tooltip_msg);
|
||||
elm_object_tooltip_orient_set(box, ELM_TOOLTIP_ORIENT_TOP_RIGHT);
|
||||
|
||||
elm_box_pack_end(box, btn);
|
||||
elm_object_part_content_set(layout, "scale_btn", box);
|
||||
|
||||
return btn;
|
||||
}
|
||||
|
||||
void
|
||||
stats_line_num_update(int cur_line, int max_line)
|
||||
{
|
||||
|
@ -47,6 +136,10 @@ stats_init(Evas_Object *parent)
|
|||
Evas_Object *layout = elm_layout_add(parent);
|
||||
elm_layout_file_set(layout, EDJE_PATH, "statusbar_layout");
|
||||
|
||||
Evas_Object *btn;
|
||||
btn = create_statusbar_btn(layout,
|
||||
"View Scale (Ctrl + Mouse Wheel)",
|
||||
view_scale_btn_cb, sd);
|
||||
sd->layout = layout;
|
||||
|
||||
stats_cursor_pos_update(0, 0, 0, 0);
|
||||
|
@ -79,6 +172,16 @@ stats_info_msg_update(const char *msg)
|
|||
elm_object_signal_emit(sd->layout, "elm,action,info_msg,show", "");
|
||||
}
|
||||
|
||||
void
|
||||
stats_view_scale_update(double scale)
|
||||
{
|
||||
stats_data *sd = g_sd;
|
||||
|
||||
char buf[10];
|
||||
snprintf(buf, sizeof(buf), "%0.2fx", scale);
|
||||
elm_object_part_text_set(sd->layout, "elm.text.scale", buf);
|
||||
}
|
||||
|
||||
void
|
||||
stats_view_size_update(Evas_Coord w, Evas_Coord h)
|
||||
{
|
||||
|
@ -107,3 +210,15 @@ stats_cursor_pos_update(Evas_Coord x, Evas_Coord y, float rel_x, float rel_y)
|
|||
snprintf(buf, sizeof(buf), "%0.2f", rel_y);
|
||||
elm_object_part_text_set(sd->layout, "elm.text.cursor_rely", buf);
|
||||
}
|
||||
|
||||
Eina_Bool
|
||||
stats_ctxpopup_dismiss(void)
|
||||
{
|
||||
stats_data *sd = g_sd;
|
||||
if (sd->ctxpopup)
|
||||
{
|
||||
elm_ctxpopup_dismiss(sd->ctxpopup);
|
||||
return EINA_TRUE;
|
||||
}
|
||||
return EINA_FALSE;
|
||||
}
|
||||
|
|
|
@ -4,6 +4,7 @@ Eina_Bool base_gui_init(void);
|
|||
void base_gui_show(void);
|
||||
Evas_Object *base_win_get(void);
|
||||
Evas_Object *base_layout_get(void);
|
||||
Evas_Object *base_enventor_get(void);
|
||||
void base_win_resize_object_add(Evas_Object *resize_obj);
|
||||
void base_title_set(const char *path);
|
||||
void base_statusbar_toggle(Eina_Bool config);
|
||||
|
@ -20,4 +21,3 @@ void base_gui_term(void);
|
|||
void base_console_reset(void);
|
||||
void base_error_msg_set(const char *msg);
|
||||
void base_console_full_view(void);
|
||||
|
||||
|
|
|
@ -55,6 +55,8 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
|
|||
#define REL2_X 0.75f
|
||||
#define REL2_Y 0.75f
|
||||
|
||||
#define ROUNDING(x, dig) (floor((x) * pow(10, dig) + 0.5) / pow(10, dig))
|
||||
|
||||
#define ENVENTOR_CONFIG_VERSION 3
|
||||
|
||||
#define EVENT_KEY_MODIFIER_CHECK(NAME, MASK) \
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#define MAX_FONT_SCALE 5.0
|
||||
#define MIN_FONT_SCALE 0.5
|
||||
#define MAX_VIEW_SCALE 10.0
|
||||
#define MAX_VIEW_SCALE 5.0
|
||||
#define MIN_VIEW_SCALE 0.1
|
||||
|
||||
void config_init(const char *input_path, const char *output_path, Eina_List *img_path, Eina_List *snd_path, Eina_List *fnt_path, Eina_List *dat_path);
|
||||
|
|
|
@ -4,6 +4,8 @@ void stats_view_size_update(Evas_Coord w, Evas_Coord h);
|
|||
void stats_cursor_pos_update(Evas_Coord x, Evas_Coord y, float rel_x, float rel_y);
|
||||
void stats_info_msg_update(const char *msg);
|
||||
void stats_line_num_update(int cur_line, int max_line);
|
||||
void stats_view_scale_update(double scale);
|
||||
Evas_Object *stats_obj_get(void);
|
||||
void stats_edc_group_update(const char *group_name);
|
||||
Eina_Stringshare *stats_group_name_get(void);
|
||||
Eina_Bool stats_ctxpopup_dismiss(void);
|
||||
|
|
Loading…
Reference in New Issue