tools: support mirror mode
Summary: Added new toolbar item to support mirror mode Test Plan: 1. luanch enventor 2. toggle mirror mode item of toolbar at the left-top or press ctrl + M 3. see the mirror mode working well Reviewers: Jaehyun_Cho, NikaWhite, Hermet Differential Revision: https://phab.enlightenment.org/D3813
This commit is contained in:
parent
21ed85b72b
commit
df7a9f51f8
1
README
1
README
|
@ -45,6 +45,7 @@ Ctrl+I - Toggle Auto Indentation
|
|||
Ctrl+O - Toggle Auto Completion
|
||||
Ctrl+W - Toggle Dummy Parts
|
||||
Ctrl+H - Toggle Part Highlighting
|
||||
Ctrl+M - Toggle Mirror Mode
|
||||
Ctrl+T - Insert Defaut Template Code
|
||||
Ctrl+Mouse Wheel Up - View Zoom In / Font Size Up
|
||||
Ctrl+Mouse Wheel Down - View Zoom Out / Font Size Down
|
||||
|
|
|
@ -27,6 +27,7 @@ Ctrl+I - Toggle Auto Indentation</br>
|
|||
Ctrl+O - Toggle Auto Completion</br>
|
||||
Ctrl+W - Toggle Dummy Parts</br>
|
||||
Ctrl+H - Toggle Part Highlighting</br>
|
||||
Ctrl+M - Toggle Mirror Mode</br>
|
||||
Ctrl+T - Insert Defaut Template Code</br>
|
||||
Ctrl+Mouse Wheel Up - View Zoom In / Font Size Up</br>
|
||||
Ctrl+Mouse Wheel Down - View Zoom Out / Font Size Down</br>
|
||||
|
|
|
@ -33,6 +33,7 @@ typedef struct config_s
|
|||
Eina_Bool linenumber;
|
||||
Eina_Bool part_highlight;
|
||||
Eina_Bool dummy_parts;
|
||||
Eina_Bool mirror_mode;
|
||||
Eina_Bool auto_indent;
|
||||
Eina_Bool tools;
|
||||
Eina_Bool console;
|
||||
|
@ -177,6 +178,7 @@ config_load(void)
|
|||
cd->linenumber = EINA_TRUE;
|
||||
cd->part_highlight = EINA_TRUE;
|
||||
cd->dummy_parts = EINA_TRUE;
|
||||
cd->mirror_mode = EINA_FALSE;
|
||||
cd->auto_indent = EINA_TRUE;
|
||||
cd->tools = EINA_TRUE;
|
||||
cd->console = EINA_TRUE;
|
||||
|
@ -289,6 +291,8 @@ eddc_init(void)
|
|||
part_highlight, EET_T_UCHAR);
|
||||
EET_DATA_DESCRIPTOR_ADD_BASIC(edd_base, config_data, "dummy_parts",
|
||||
dummy_parts, EET_T_UCHAR);
|
||||
EET_DATA_DESCRIPTOR_ADD_BASIC(edd_base, config_data, "mirror_mode",
|
||||
mirror_mode, EET_T_UCHAR);
|
||||
EET_DATA_DESCRIPTOR_ADD_BASIC(edd_base, config_data, "auto_indent",
|
||||
auto_indent, EET_T_UCHAR);
|
||||
EET_DATA_DESCRIPTOR_ADD_BASIC(edd_base, config_data, "tools",
|
||||
|
@ -702,6 +706,20 @@ config_dummy_parts_set(Eina_Bool dummy_parts)
|
|||
cd->dummy_parts = dummy_parts;
|
||||
}
|
||||
|
||||
Eina_Bool
|
||||
config_mirror_mode_get(void)
|
||||
{
|
||||
config_data *cd = g_cd;
|
||||
return cd->mirror_mode;
|
||||
}
|
||||
|
||||
void
|
||||
config_mirror_mode_set(Eina_Bool mirror_mode)
|
||||
{
|
||||
config_data *cd = g_cd;
|
||||
cd->mirror_mode = mirror_mode;
|
||||
}
|
||||
|
||||
Eina_Bool
|
||||
config_auto_indent_get(void)
|
||||
{
|
||||
|
|
|
@ -42,6 +42,7 @@ tools_update(void)
|
|||
tools_lines_update(EINA_FALSE);
|
||||
tools_highlight_update(EINA_FALSE);
|
||||
tools_dummy_update(EINA_FALSE);
|
||||
tools_mirror_mode_update(EINA_FALSE);
|
||||
tools_status_update(EINA_FALSE);
|
||||
tools_edc_navigator_update(EINA_FALSE);
|
||||
}
|
||||
|
@ -674,6 +675,12 @@ ctrl_func(app_data *ad, Evas_Event_Key_Down *event)
|
|||
tools_dummy_update(EINA_TRUE);
|
||||
return EINA_TRUE;
|
||||
}
|
||||
//Mirror Mode
|
||||
if (!strcmp(event->key, "m") || !strcmp(event->key, "M"))
|
||||
{
|
||||
tools_mirror_mode_update(EINA_TRUE);
|
||||
return EINA_TRUE;
|
||||
}
|
||||
//Template Code
|
||||
if (!strcmp(event->key, "t") || !strcmp(event->key, "T"))
|
||||
{
|
||||
|
@ -871,6 +878,8 @@ keygrabber_init(app_data *ad)
|
|||
GRAB_ADD("H", modifier);
|
||||
GRAB_ADD("w", modifier);
|
||||
GRAB_ADD("W", modifier);
|
||||
GRAB_ADD("m", modifier);
|
||||
GRAB_ADD("M", modifier);
|
||||
GRAB_ADD("t", modifier);
|
||||
GRAB_ADD("T", modifier);
|
||||
GRAB_ADD("i", modifier);
|
||||
|
|
|
@ -11,6 +11,7 @@ typedef struct tools_s
|
|||
Evas_Object *edc_navigator_btn;
|
||||
Evas_Object *lines_btn;
|
||||
Evas_Object *highlight_btn;
|
||||
Evas_Object *mirror_btn;
|
||||
Evas_Object *goto_btn;
|
||||
Evas_Object *find_btn;
|
||||
Evas_Object *console_btn;
|
||||
|
@ -45,6 +46,13 @@ dummy_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
|
|||
tools_dummy_update(EINA_TRUE);
|
||||
}
|
||||
|
||||
static void
|
||||
mirror_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
|
||||
void *event_info EINA_UNUSED)
|
||||
{
|
||||
tools_mirror_mode_update(EINA_TRUE);
|
||||
}
|
||||
|
||||
static void
|
||||
lines_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
|
||||
void *event_info EINA_UNUSED)
|
||||
|
@ -187,6 +195,15 @@ tools_init(Evas_Object *parent)
|
|||
elm_box_pack_end(box, btn);
|
||||
td->swallow_btn = btn;
|
||||
|
||||
//icon image is temporary, it should be changed to its own icon.
|
||||
btn = tools_btn_create(box, "highlight", _("Mirror Mode (Ctrl + M)"),
|
||||
mirror_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);
|
||||
td->mirror_btn = btn;
|
||||
|
||||
Evas_Object *sp;
|
||||
sp = elm_separator_add(box);
|
||||
evas_object_show(sp);
|
||||
|
@ -387,6 +404,30 @@ tools_dummy_update(Eina_Bool toggle)
|
|||
elm_object_signal_emit(td->swallow_btn, "icon,highlight,disabled", "");
|
||||
}
|
||||
|
||||
void
|
||||
tools_mirror_mode_update(Eina_Bool toggle)
|
||||
{
|
||||
tools_data *td = g_td;
|
||||
if (!td) return;
|
||||
|
||||
if (toggle) config_mirror_mode_set(!config_mirror_mode_get());
|
||||
enventor_object_mirror_mode_set(base_enventor_get(),
|
||||
config_mirror_mode_get());
|
||||
if (toggle)
|
||||
{
|
||||
if (config_mirror_mode_get())
|
||||
stats_info_msg_update(_("Mirror Mode Enabled."));
|
||||
else
|
||||
stats_info_msg_update(_("Mirror Mode Disabled."));
|
||||
}
|
||||
|
||||
//Toggle on/off
|
||||
if (config_mirror_mode_get())
|
||||
elm_object_signal_emit(td->mirror_btn, "icon,highlight,enabled", "");
|
||||
else
|
||||
elm_object_signal_emit(td->mirror_btn, "icon,highlight,disabled", "");
|
||||
}
|
||||
|
||||
void
|
||||
tools_status_update(Eina_Bool toggle)
|
||||
{
|
||||
|
|
|
@ -54,7 +54,7 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
|
|||
|
||||
#define ROUNDING(x, dig) (floor((x) * pow(10, dig) + 0.5) / pow(10, dig))
|
||||
|
||||
#define ENVENTOR_CONFIG_VERSION 6
|
||||
#define ENVENTOR_CONFIG_VERSION 7
|
||||
|
||||
#define EVENT_KEY_MODIFIER_CHECK(NAME, MASK) \
|
||||
((MASK & ECORE_EVENT_MODIFIER_##NAME) && \
|
||||
|
|
|
@ -4,6 +4,7 @@ Evas_Object *tools_live_edit_get(Evas_Object *tools);
|
|||
void tools_highlight_update(Eina_Bool toggle);
|
||||
void tools_lines_update(Eina_Bool toggle);
|
||||
void tools_dummy_update(Eina_Bool toggle);
|
||||
void tools_mirror_mode_update(Eina_Bool toggle);
|
||||
void tools_status_update(Eina_Bool toggle);
|
||||
void tools_edc_navigator_update(Eina_Bool toggle);
|
||||
void tools_goto_update(void);
|
||||
|
|
|
@ -50,6 +50,7 @@ struct viewer_s
|
|||
|
||||
Eina_Bool edj_reload_need : 1;
|
||||
Eina_Bool file_set_finished : 1;
|
||||
Eina_Bool mirror_mode : 1;
|
||||
};
|
||||
|
||||
const char *PART_NAME = "part_name";
|
||||
|
@ -151,6 +152,13 @@ view_images_monitor_set(view_data *vd)
|
|||
edje_edit_string_list_free(imgs);
|
||||
}
|
||||
|
||||
static void
|
||||
view_mirror_mode_update(view_data *vd)
|
||||
{
|
||||
if (!vd) return;
|
||||
edje_object_mirrored_set(vd->layout, vd->mirror_mode);
|
||||
}
|
||||
|
||||
static void
|
||||
view_obj_create_post_job(view_data *vd)
|
||||
{
|
||||
|
@ -169,6 +177,8 @@ view_obj_create_post_job(view_data *vd)
|
|||
if (enventor_obj_dummy_parts_get(vd->enventor))
|
||||
dummy_obj_new(vd->layout);
|
||||
|
||||
view_mirror_mode_update(vd);
|
||||
|
||||
if (vd->changed_part.part)
|
||||
edje_edit_part_selected_state_set(vd->layout, vd->changed_part.part,
|
||||
vd->changed_part.desc,
|
||||
|
@ -367,6 +377,7 @@ update_edj_file_internal(view_data *vd)
|
|||
view_obj_min_update(vd);
|
||||
view_part_highlight_set(vd, vd->part_name);
|
||||
dummy_obj_update(vd->layout);
|
||||
view_mirror_mode_update(vd);
|
||||
if (vd->changed_part.part)
|
||||
edje_edit_part_selected_state_set(vd->layout, vd->changed_part.part,
|
||||
vd->changed_part.desc,
|
||||
|
@ -612,6 +623,8 @@ view_init(Evas_Object *enventor, const char *group,
|
|||
vd->view_config_size.w = 0;
|
||||
vd->view_config_size.h = 0;
|
||||
|
||||
vd->mirror_mode = enventor_object_mirror_mode_get(vd->enventor);
|
||||
|
||||
return vd;
|
||||
}
|
||||
|
||||
|
@ -812,6 +825,15 @@ view_size_get(view_data *vd, Evas_Coord *w, Evas_Coord *h)
|
|||
*h = vd->view_config_size.h;
|
||||
}
|
||||
|
||||
void
|
||||
view_mirror_mode_set(view_data *vd, Eina_Bool mirror_mode)
|
||||
{
|
||||
if (!vd) return;
|
||||
|
||||
vd->mirror_mode = mirror_mode;
|
||||
view_mirror_mode_update(vd);
|
||||
}
|
||||
|
||||
Eina_List *
|
||||
view_parts_list_get(view_data *vd)
|
||||
{
|
||||
|
|
|
@ -28,6 +28,15 @@ class Enventor.Object (Elm.Widget, Efl.File) {
|
|||
dummy_parts: bool;
|
||||
}
|
||||
}
|
||||
@property mirror_mode {
|
||||
set {
|
||||
}
|
||||
get {
|
||||
}
|
||||
values {
|
||||
mirror_mode: bool;
|
||||
}
|
||||
}
|
||||
@property auto_complete {
|
||||
set {
|
||||
}
|
||||
|
|
|
@ -219,6 +219,8 @@ Evas_Object *view_obj_get(view_data *vd);
|
|||
void view_new(view_data *vd, const char *group);
|
||||
void view_part_highlight_set(view_data *vd, const char *part_name);
|
||||
void view_dummy_set(view_data *vd, Eina_Bool dummy_on);
|
||||
void view_mirror_mode_set(view_data *vd, Eina_Bool mirror_mode);
|
||||
Eina_Bool view_mirror_mode_get(view_data *vd);
|
||||
void view_program_run(view_data *vd, const char *program);
|
||||
Eina_Stringshare *view_group_name_get(view_data *vd);
|
||||
void *view_data_get(view_data *vd);
|
||||
|
|
|
@ -31,6 +31,7 @@ typedef struct _Enventor_Object_Data
|
|||
Eina_Bool dummy_parts : 1;
|
||||
Eina_Bool key_down : 1;
|
||||
Eina_Bool part_cursor_jump : 1;
|
||||
Eina_Bool mirror_mode : 1;
|
||||
|
||||
} Enventor_Object_Data;
|
||||
|
||||
|
@ -539,6 +540,22 @@ _enventor_object_part_highlight_get(Eo *obj EINA_UNUSED,
|
|||
return edit_part_highlight_get(pd->ed);
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_enventor_object_mirror_mode_set(Eo *obj EINA_UNUSED,
|
||||
Enventor_Object_Data *pd,
|
||||
Eina_Bool mirror_mode)
|
||||
{
|
||||
pd->mirror_mode = !!mirror_mode;
|
||||
view_mirror_mode_set(VIEW_DATA, mirror_mode);
|
||||
}
|
||||
|
||||
EOLIAN static Eina_Bool
|
||||
_enventor_object_mirror_mode_get(Eo *obj EINA_UNUSED,
|
||||
Enventor_Object_Data *pd)
|
||||
{
|
||||
return pd->mirror_mode;
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_enventor_object_focus_set(Eo *obj EINA_UNUSED,
|
||||
Enventor_Object_Data *pd EINA_UNUSED,
|
||||
|
|
Loading…
Reference in New Issue