forked from enlightenment/enventor
enventor - applied view switching effect.
This commit is contained in:
parent
7a23ac221f
commit
eb38a5da4d
|
@ -1,9 +1,72 @@
|
|||
styles {
|
||||
style { name: "entry_statusbar_style";
|
||||
base: "font="FN" font_size=11 color=#000000 text_class=entry color=#606060";
|
||||
base: "font="FN" font_size=11 color=#000000 text_class=entry color=#606060 align=center";
|
||||
}
|
||||
}
|
||||
|
||||
group { name: "viewer_layout";
|
||||
parts {
|
||||
part { name: "prev_clipper";
|
||||
type: RECT;
|
||||
description { state: "default" 0.0;
|
||||
}
|
||||
description { state: "switched" 0.0;
|
||||
color: 255 255 255 0;
|
||||
}
|
||||
}
|
||||
part { name: "cur_clipper";
|
||||
type: RECT;
|
||||
description { state: "default" 0.0;
|
||||
rel1.relative: -1 0;
|
||||
rel2.relative: 0 1;
|
||||
color: 255 255 255 0;
|
||||
}
|
||||
description { state: "switched" 0.0;
|
||||
rel1.relative: 0 0;
|
||||
rel2.relative: 1 1;
|
||||
color: 255 255 255 255;
|
||||
}
|
||||
}
|
||||
part { name: "elm.swallow.prev";
|
||||
type: SWALLOW;
|
||||
clip_to: "prev_clipper";
|
||||
description { state: "default" 0.0;
|
||||
}
|
||||
}
|
||||
part { name: "elm.swallow.content";
|
||||
type: SWALLOW;
|
||||
clip_to: "cur_clipper";
|
||||
description { state: "default" 0.0;
|
||||
rel1.to: "cur_clipper";
|
||||
rel2.to: "cur_clipper";
|
||||
}
|
||||
}
|
||||
}
|
||||
programs {
|
||||
program { name: "switch_instant";
|
||||
signal: "elm,view,switch,instant";
|
||||
source: "";
|
||||
action: STATE_SET "switched" 0.0;
|
||||
target: "prev_clipper";
|
||||
target: "cur_clipper";
|
||||
}
|
||||
program { name: "switch";
|
||||
signal: "elm,view,switch";
|
||||
source: "";
|
||||
action: STATE_SET "default" 0.0;
|
||||
target: "prev_clipper";
|
||||
target: "cur_clipper";
|
||||
after: "switched";
|
||||
}
|
||||
program { name: "switched";
|
||||
action: STATE_SET "switched" 0.0;
|
||||
target: "prev_clipper";
|
||||
target: "cur_clipper";
|
||||
transition: DECELERATE 0.25;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
group { name: "preview_layout";
|
||||
parts {
|
||||
part { name: "bg";
|
||||
|
|
|
@ -7,12 +7,17 @@ struct edj_mgr_s
|
|||
{
|
||||
Eina_List *vds;
|
||||
view_data *vd;
|
||||
Evas_Object *layout;
|
||||
};
|
||||
|
||||
edj_mgr *
|
||||
edj_mgr_init()
|
||||
edj_mgr_init(Evas_Object *parent)
|
||||
{
|
||||
edj_mgr *em = calloc(1, sizeof(edj_mgr));
|
||||
Evas_Object *layout = elm_layout_add(parent);
|
||||
elm_layout_file_set(layout, EDJE_PATH, "viewer_layout");
|
||||
evas_object_show(layout);
|
||||
em->layout = layout;
|
||||
g_em = em;
|
||||
return em;
|
||||
}
|
||||
|
@ -29,6 +34,7 @@ edj_mgr_term(edj_mgr *em)
|
|||
view_data *vd;
|
||||
EINA_LIST_FREE(em->vds, vd)
|
||||
view_term(vd);
|
||||
evas_object_del(em->layout);
|
||||
free(em);
|
||||
}
|
||||
|
||||
|
@ -52,29 +58,45 @@ edj_mgr_view_get(edj_mgr *em, Eina_Stringshare *group)
|
|||
}
|
||||
|
||||
view_data *
|
||||
edj_mgr_view_new(edj_mgr *em, Evas_Object *parent, const char *group,
|
||||
stats_data *sd, config_data *cd)
|
||||
edj_mgr_view_new(edj_mgr *em, const char *group, stats_data *sd,
|
||||
config_data *cd)
|
||||
{
|
||||
view_data *vd = edj_mgr_view_get(em, group);
|
||||
|
||||
if (!vd) vd = view_init(parent, group, sd, cd);
|
||||
if (!vd) vd = view_init(em->layout, group, sd, cd);
|
||||
if (!vd) return NULL;
|
||||
|
||||
if (em->vd) evas_object_hide(view_obj_get(em->vd));
|
||||
edj_mgr_view_switch_to(em, vd);
|
||||
|
||||
em->vds = eina_list_append(em->vds, vd);
|
||||
em->vd = vd;
|
||||
|
||||
return vd;
|
||||
}
|
||||
|
||||
view_data *
|
||||
edj_mgr_view_switch_to(edj_mgr *em, const char *group)
|
||||
edj_mgr_view_switch_to(edj_mgr *em, view_data *vd)
|
||||
{
|
||||
view_data *vd = edj_mgr_view_get(em, group);
|
||||
if (!vd) return NULL;
|
||||
Evas_Object *prev =
|
||||
elm_object_part_content_unset(em->layout, "elm.swallow.content");
|
||||
elm_object_part_content_set(em->layout, "elm.swallow.content",
|
||||
view_obj_get(vd));
|
||||
if (prev && (prev != view_obj_get(vd)))
|
||||
{
|
||||
elm_object_part_content_set(em->layout, "elm.swallow.prev", prev);
|
||||
elm_object_signal_emit(em->layout, "elm,view,switch", "");
|
||||
}
|
||||
else
|
||||
{
|
||||
elm_object_signal_emit(em->layout, "elm,view,switch,instant", "");
|
||||
}
|
||||
|
||||
em->vd = vd;
|
||||
|
||||
return vd;
|
||||
}
|
||||
|
||||
Evas_Object *
|
||||
edj_mgr_obj_get(edj_mgr *em)
|
||||
{
|
||||
return em->layout;
|
||||
}
|
||||
|
|
|
@ -407,14 +407,12 @@ static void
|
|||
edc_view_set(app_data *ad, config_data *cd, stats_data *sd,
|
||||
Eina_Stringshare *group)
|
||||
{
|
||||
const char *LEFT_PART = "left";
|
||||
view_data *vd = edj_mgr_view_switch_to(ad->em, group);
|
||||
if (!vd) vd = edj_mgr_view_new(ad->em, ad->panes, group, sd, cd);
|
||||
view_data *vd = edj_mgr_view_get(ad->em, group);
|
||||
if (vd) edj_mgr_view_switch_to(ad->em, vd);
|
||||
else vd = edj_mgr_view_new(ad->em, group, sd, cd);
|
||||
|
||||
if (!vd) return;
|
||||
|
||||
Evas_Object *o = elm_object_part_content_unset(ad->panes, LEFT_PART);
|
||||
elm_object_part_content_set(ad->panes, LEFT_PART, view_obj_get(vd));
|
||||
evas_object_hide(o);
|
||||
stats_edc_file_set(sd, group);
|
||||
}
|
||||
|
||||
|
@ -423,7 +421,8 @@ view_sync_cb(void *data, Eina_Stringshare *part_name,
|
|||
Eina_Stringshare *group_name)
|
||||
{
|
||||
app_data *ad = data;
|
||||
edc_view_set(ad, ad->cd, ad->sd, group_name);
|
||||
if (stats_group_name_get(ad->sd) != group_name)
|
||||
edc_view_set(ad, ad->cd, ad->sd, group_name);
|
||||
view_part_highlight_set(VIEW_DATA, part_name);
|
||||
}
|
||||
|
||||
|
@ -591,6 +590,13 @@ menu_close_cb(void *data)
|
|||
ad->menu_opened = EINA_FALSE;
|
||||
}
|
||||
|
||||
static void
|
||||
edj_mgr_set(app_data *ad)
|
||||
{
|
||||
ad->em = edj_mgr_init(ad->panes);
|
||||
elm_object_part_content_set(ad->panes, "left", edj_mgr_obj_get(ad->em));
|
||||
}
|
||||
|
||||
static Eina_Bool
|
||||
init(app_data *ad, int argc, char **argv)
|
||||
{
|
||||
|
@ -608,7 +614,7 @@ init(app_data *ad, int argc, char **argv)
|
|||
if (!edc_proto_setup(ad->cd)) return EINA_FALSE;
|
||||
if (!base_gui_construct(ad)) return EINA_FALSE;
|
||||
|
||||
ad->em = edj_mgr_init();
|
||||
edj_mgr_set(ad);
|
||||
statusbar_set(ad, ad->cd);
|
||||
edc_edit_set(ad, ad->sd, ad->cd);
|
||||
edc_view_set(ad, ad->cd, ad->sd, stats_group_name_get(ad->sd));
|
||||
|
|
|
@ -9,4 +9,5 @@ EXTRA_DIST = common.h \
|
|||
menu.h \
|
||||
panes.h \
|
||||
statusbar.h \
|
||||
syntax_color.h
|
||||
edj_mgr.h \
|
||||
syntax_color.h
|
||||
|
|
|
@ -13,6 +13,7 @@ typedef struct attr_value_s attr_value;
|
|||
typedef struct dummy_obj_s dummy_obj;
|
||||
typedef struct syntax_helper_s syntax_helper;
|
||||
typedef struct indent_s indent_data;
|
||||
typedef struct edj_mgr_s edj_mgr;
|
||||
|
||||
#include "edc_editor.h"
|
||||
#include "menu.h"
|
||||
|
@ -26,6 +27,7 @@ typedef struct indent_s indent_data;
|
|||
#include "dummy_obj.h"
|
||||
#include "ctxpopup.h"
|
||||
#include "indent.h"
|
||||
#include "edj_mgr.h"
|
||||
#include "globals.h"
|
||||
|
||||
#endif
|
||||
|
|
|
@ -8,11 +8,9 @@ void edit_changed_set(edit_data *ed, Eina_Bool changed);
|
|||
void edit_line_number_toggle(edit_data *ed);
|
||||
void edit_editable_set(edit_data *ed, Eina_Bool editable);
|
||||
Eina_Bool edit_save(edit_data *ed);
|
||||
const char *edit_group_name_get(edit_data *ed);
|
||||
void edit_new(edit_data* ed);
|
||||
void edit_part_changed_cb_set(edit_data *ed, void (*cb)(void *data, const char *part_name), void *data);
|
||||
void edit_cur_part_update(edit_data *ed);
|
||||
void edit_view_sync_cb_set(edit_data *ed, void (*cb)(void *data, Eina_Stringshare *part_name, Eina_Stringshare *group_name), void *data);
|
||||
void edit_view_sync(edit_data *ed);
|
||||
void edit_font_size_update(edit_data *ed, Eina_Bool msg);
|
||||
void edit_template_insert(edit_data *ed);
|
||||
void edit_template_part_insert(edit_data *ed, Edje_Part_Type type);
|
||||
void edit_vd_set(edit_data *ed, view_data *vd);
|
||||
|
|
|
@ -4,8 +4,8 @@
|
|||
|
||||
parser_data *parser_init();
|
||||
void parser_term(parser_data *pd);
|
||||
Eina_Stringshare *parser_group_name_get(parser_data *pd, Evas_Object *entry);
|
||||
void parser_part_name_get(parser_data *pd, Evas_Object *entry, void (*cb)(void *data, Eina_Stringshare *part_name), void *data);
|
||||
Eina_Stringshare *parser_first_group_name_get(parser_data *pd, Evas_Object *entry);
|
||||
void parser_cur_name_get(parser_data *pd, Evas_Object *entry, void (*cb)(void *data, Eina_Stringshare *part_name, Eina_Stringshare *group_name), void *data);
|
||||
Eina_Bool parser_type_name_compare(parser_data *pd, const char *str);
|
||||
const char *parser_markup_escape(parser_data *pd EINA_UNUSED, const char *str);
|
||||
attr_value *parser_attribute_get(parser_data *pd, const char *text, const char *cur);
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
edj_mgr *edj_mgr_get();
|
||||
edj_mgr *edj_mgr_init(Evas_Object *parent);
|
||||
void edj_mgr_term(edj_mgr *em);
|
||||
view_data * edj_mgr_view_new(edj_mgr *em, const char *group, stats_data *sd, config_data *cd);
|
||||
view_data *edj_mgr_view_get(edj_mgr *em, Eina_Stringshare *group);
|
||||
Evas_Object * edj_mgr_obj_get(edj_mgr *em);
|
||||
view_data *edj_mgr_view_switch_to(edj_mgr *em, view_data *vd);
|
||||
|
|
@ -7,4 +7,4 @@ Eina_Bool view_reload_need_get(view_data *vd);
|
|||
void view_reload_need_set(view_data *vd, Eina_Bool reload);
|
||||
void view_dummy_toggle(view_data *vd, Eina_Bool msg);
|
||||
void view_program_run(view_data *vd, const char *program);
|
||||
|
||||
Eina_Stringshare *view_group_name_get(view_data *vd);
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
menu_data *menu_init(Evas_Object *win, edit_data *ed, config_data *cd, view_data *vd, void (*close_cb)(void *data), void *data);
|
||||
#define VIEW_DATA edj_mgr_view_get(NULL, NULL)
|
||||
|
||||
menu_data *menu_init(Evas_Object *win, edit_data *ed, config_data *cd, void (*close_cb)(void *data), void *data);
|
||||
void menu_term(menu_data *md);
|
||||
Eina_Bool menu_toggle();
|
||||
void menu_ctxpopup_register(Evas_Object *ctxpopup);
|
||||
|
|
|
@ -6,4 +6,5 @@ void stats_info_msg_update(stats_data *sd, const char *msg);
|
|||
void stats_line_num_update(stats_data *sd, int cur_line, int max_line);
|
||||
Evas_Object *stats_obj_get(stats_data *sd);
|
||||
void stats_edc_file_set(stats_data *sd, const char *group_name);
|
||||
Eina_Stringshare *stats_group_name_get(stats_data *sd);
|
||||
|
||||
|
|
Loading…
Reference in New Issue