have the "xterm" cursor on the textgrid

This commit is contained in:
Boris Faure 2015-03-18 17:10:44 +01:00
parent 4abdf4b327
commit 144053f882
1 changed files with 38 additions and 37 deletions

View File

@ -39,7 +39,7 @@ struct _Term
Win *wn;
Config *config;
Evas_Object *bg;
Evas_Object *base;
Evas_Object *base; // elm_layout
Evas_Object *term;
Evas_Object *media;
Evas_Object *popmedia;
@ -189,7 +189,7 @@ _cb_win_focus_in(void *data, Evas_Object *obj EINA_UNUSED, void *event EINA_UNUS
if (term)
{
edje_object_signal_emit(term->bg, "focus,out", "terminology");
edje_object_signal_emit(term->base, "focus,out", "terminology");
elm_layout_signal_emit(term->base, "focus,out", "terminology");
if (!wn->cmdbox_up) elm_object_focus_set(term->term, EINA_FALSE);
}
term = term_mouse;
@ -205,7 +205,7 @@ _cb_win_focus_in(void *data, Evas_Object *obj EINA_UNUSED, void *event EINA_UNUS
else
{
edje_object_signal_emit(term->bg, "focus,in", "terminology");
edje_object_signal_emit(term->base, "focus,in", "terminology");
elm_layout_signal_emit(term->base, "focus,in", "terminology");
if (!wn->cmdbox_up) elm_object_focus_set(term->term, EINA_TRUE);
}
}
@ -223,7 +223,7 @@ _cb_win_focus_out(void *data, Evas_Object *obj EINA_UNUSED,
term = win_focused_term_get(wn);
if (!term) return;
edje_object_signal_emit(term->bg, "focus,out", "terminology");
edje_object_signal_emit(term->base, "focus,out", "terminology");
elm_layout_signal_emit(term->base, "focus,out", "terminology");
if (!wn->cmdbox_up) elm_object_focus_set(term->term, EINA_FALSE);
}
@ -296,7 +296,7 @@ _win_trans(Win *wn, Term *term, Eina_Bool trans)
else
msg.val = 100;
edje_object_message_send(term->bg, EDJE_MESSAGE_INT, 1, &msg);
edje_object_message_send(term->base, EDJE_MESSAGE_INT, 1, &msg);
edje_object_message_send(elm_layout_edje_get(term->base), EDJE_MESSAGE_INT, 1, &msg);
if (trans)
{
@ -771,7 +771,7 @@ _cb_size_hint(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, void *event EIN
evas_object_size_hint_min_get(obj, &mw, &mh);
evas_object_size_hint_request_get(obj, &rw, &rh);
edje_object_size_min_calc(term->base, &w, &h);
edje_object_size_min_calc(elm_layout_edje_get(term->base), &w, &h);
evas_object_size_hint_min_set(term->base, w, h);
edje_object_size_min_calc(term->bg, &w, &h);
evas_object_size_hint_min_set(term->bg, w, h);
@ -1425,14 +1425,14 @@ _term_focus(Term *term)
{
term2->focused = EINA_FALSE;
edje_object_signal_emit(term2->bg, "focus,out", "terminology");
edje_object_signal_emit(term2->base, "focus,out", "terminology");
elm_layout_signal_emit(term2->base, "focus,out", "terminology");
elm_object_focus_set(term2->term, EINA_FALSE);
}
}
}
term->focused = EINA_TRUE;
edje_object_signal_emit(term->bg, "focus,in", "terminology");
edje_object_signal_emit(term->base, "focus,in", "terminology");
elm_layout_signal_emit(term->base, "focus,in", "terminology");
if (term->wn->cmdbox) elm_object_focus_set(term->wn->cmdbox, EINA_FALSE);
elm_object_focus_set(term->term, EINA_TRUE);
elm_win_title_set(term->wn->win, termio_title_get(term->term));
@ -2241,7 +2241,7 @@ _cb_media_del(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, voi
if (term->bg)
{
edje_object_signal_emit(term->bg, "media,off", "terminology");
edje_object_signal_emit(term->base, "media,off", "terminology");
elm_layout_signal_emit(term->base, "media,off", "terminology");
}
if (!config) return;
if (config->temporary)
@ -2269,26 +2269,26 @@ _term_media_update(Term *term, const Config *config)
MEDIA_BG, type);
evas_object_event_callback_add(o, EVAS_CALLBACK_DEL,
_cb_media_del, term);
edje_object_part_swallow(term->base, "terminology.background", o);
elm_layout_content_set(term->base, "terminology.background", o);
evas_object_show(o);
term->mediatype = type;
switch (type)
{
case MEDIA_TYPE_IMG:
edje_object_signal_emit(term->bg, "media,image", "terminology");
edje_object_signal_emit(term->base, "media,image", "terminology");
elm_layout_signal_emit(term->base, "media,image", "terminology");
break;
case MEDIA_TYPE_SCALE:
edje_object_signal_emit(term->bg, "media,scale", "terminology");
edje_object_signal_emit(term->base, "media,scale", "terminology");
elm_layout_signal_emit(term->base, "media,scale", "terminology");
break;
case MEDIA_TYPE_EDJE:
edje_object_signal_emit(term->bg, "media,edje", "terminology");
edje_object_signal_emit(term->base, "media,edje", "terminology");
elm_layout_signal_emit(term->base, "media,edje", "terminology");
break;
case MEDIA_TYPE_MOV:
edje_object_signal_emit(term->bg, "media,movie", "terminology");
edje_object_signal_emit(term->base, "media,movie", "terminology");
elm_layout_signal_emit(term->base, "media,movie", "terminology");
break;
case MEDIA_TYPE_UNKNOWN:
default:
@ -2303,7 +2303,7 @@ _term_media_update(Term *term, const Config *config)
EVAS_CALLBACK_DEL,
_cb_media_del);
edje_object_signal_emit(term->bg, "media,off", "terminology");
edje_object_signal_emit(term->base, "media,off", "terminology");
elm_layout_signal_emit(term->base, "media,off", "terminology");
evas_object_del(term->media);
term->media = NULL;
}
@ -2479,18 +2479,18 @@ main_term_bg_config(Term *term)
msg.val = 100;
edje_object_message_send(term->bg, EDJE_MESSAGE_INT, 1, &msg);
edje_object_message_send(term->base, EDJE_MESSAGE_INT, 1, &msg);
edje_object_message_send(elm_layout_edje_get(term->base), EDJE_MESSAGE_INT, 1, &msg);
termio_theme_set(term->term, term->bg);
edje_object_signal_callback_add(term->bg, "popmedia,done", "terminology",
_cb_popmedia_done, term);
_cb_popmedia_done, term);
edje_object_signal_callback_add(term->bg, "tabcount,go", "terminology",
_cb_tabcount_go, term);
edje_object_signal_callback_add(term->bg, "tabcount,prev", "terminology",
_cb_tabcount_prev, term);
edje_object_signal_callback_add(term->bg, "tabcount,next", "terminology",
_cb_tabcount_next, term);
edje_object_part_swallow(term->base, "terminology.content", term->term);
elm_layout_content_set(term->base, "terminology.content", term->term);
edje_object_part_swallow(term->bg, "terminology.content", term->base);
edje_object_part_swallow(term->bg, "terminology.miniview", term->miniview);
if (term->popmedia)
@ -2516,24 +2516,24 @@ main_term_bg_config(Term *term)
}
if (term->media)
{
edje_object_part_swallow(term->base, "terminology.background", term->media);
elm_layout_content_set(term->base, "terminology.background", term->media);
switch (term->mediatype)
{
case MEDIA_TYPE_IMG:
edje_object_signal_emit(term->bg, "media,image", "terminology");
edje_object_signal_emit(term->base, "media,image", "terminology");
elm_layout_signal_emit(term->base, "media,image", "terminology");
break;
case MEDIA_TYPE_SCALE:
edje_object_signal_emit(term->bg, "media,scale", "terminology");
edje_object_signal_emit(term->base, "media,scale", "terminology");
elm_layout_signal_emit(term->base, "media,scale", "terminology");
break;
case MEDIA_TYPE_EDJE:
edje_object_signal_emit(term->bg, "media,edje", "terminology");
edje_object_signal_emit(term->base, "media,edje", "terminology");
elm_layout_signal_emit(term->base, "media,edje", "terminology");
break;
case MEDIA_TYPE_MOV:
edje_object_signal_emit(term->bg, "media,movie", "terminology");
edje_object_signal_emit(term->base, "media,movie", "terminology");
elm_layout_signal_emit(term->base, "media,movie", "terminology");
break;
case MEDIA_TYPE_UNKNOWN:
default:
@ -2544,7 +2544,7 @@ main_term_bg_config(Term *term)
if ((term->focused) && (term->wn->focused))
{
edje_object_signal_emit(term->bg, "focus,in", "terminology");
edje_object_signal_emit(term->base, "focus,in", "terminology");
elm_layout_signal_emit(term->base, "focus,in", "terminology");
if (term->wn->cmdbox)
elm_object_focus_set(term->wn->cmdbox, EINA_FALSE);
elm_object_focus_set(term->term, EINA_TRUE);
@ -2561,7 +2561,7 @@ _cb_tabregion_change(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, void *in
evas_object_geometry_get(obj, NULL, NULL, &w, &h);
evas_object_size_hint_min_set(term->tab_region_base, w, h);
edje_object_part_swallow(term->base, "terminology.tabregion", term->tab_region_base);
elm_layout_content_set(term->base, "terminology.tabregion", term->tab_region_base);
}
static void
@ -2578,7 +2578,7 @@ _term_tabregion_setup(Term *term)
term->tab_region_base = o = evas_object_rectangle_add(evas_object_evas_get(term->bg));
evas_object_color_set(o, 0, 0, 0, 0);
edje_object_part_swallow(term->base, "terminology.tabregion", o);
elm_layout_content_set(term->base, "terminology.tabregion", o);
}
static void
@ -2616,10 +2616,10 @@ _main_term_bg_redo(Term *term)
evas_object_del(term->base);
evas_object_del(term->bg);
term->base = o = edje_object_add(evas_object_evas_get(term->wn->win));
term->base = o = elm_layout_add(term->wn->win);
theme_apply(o, term->config, "terminology/core");
theme_auto_reload_enable(o);
theme_auto_reload_enable(elm_layout_edje_get(o));
evas_object_data_set(o, "theme_reload_func", main_term_bg_config);
evas_object_data_set(o, "theme_reload_func_data", term);
evas_object_show(o);
@ -2686,11 +2686,11 @@ _cb_bell(void *data, Evas_Object *obj EINA_UNUSED, void *event EINA_UNUSED)
Split *sp;
edje_object_signal_emit(term->bg, "bell", "terminology");
edje_object_signal_emit(term->base, "bell", "terminology");
elm_layout_signal_emit(term->base, "bell", "terminology");
if (config->bell_rings)
{
edje_object_signal_emit(term->bg, "bell,ring", "terminology");
edje_object_signal_emit(term->base, "bell,ring", "terminology");
elm_layout_signal_emit(term->base, "bell,ring", "terminology");
}
sp = _split_find(term->wn->win, term->term, NULL);
if (sp)
@ -2772,8 +2772,8 @@ term_new(Win *wn, Config *config, const char *cmd,
{
Term *term;
Evas_Object *o;
Evas *canvas = evas_object_evas_get(wn->win);
Edje_Message_Int msg;
Evas *canvas = evas_object_evas_get(wn->win);
term = calloc(1, sizeof(Term));
if (!term) return NULL;
@ -2789,11 +2789,12 @@ term_new(Win *wn, Config *config, const char *cmd,
term->wn = wn;
term->hold = hold;
term->config = config;
term->base = o = edje_object_add(canvas);
theme_apply(o, term->config, "terminology/core");
theme_auto_reload_enable(o);
term->base = o = elm_layout_add(wn->win);
theme_apply(o, term->config, "terminology/core");
elm_object_cursor_set(o, "xterm");
theme_auto_reload_enable(elm_layout_edje_get(term->base));
evas_object_data_set(o, "theme_reload_func", main_term_bg_config);
evas_object_data_set(o, "theme_reload_func_data", term);
evas_object_show(o);
@ -2822,7 +2823,7 @@ term_new(Win *wn, Config *config, const char *cmd,
msg.val = 100;
edje_object_message_send(term->bg, EDJE_MESSAGE_INT, 1, &msg);
edje_object_message_send(term->base, EDJE_MESSAGE_INT, 1, &msg);
edje_object_message_send(elm_layout_edje_get(term->base), EDJE_MESSAGE_INT, 1, &msg);
term->term = o = termio_add(wn->win, config, cmd, login_shell, cd,
size_w, size_h, term);
@ -2857,7 +2858,7 @@ term_new(Win *wn, Config *config, const char *cmd,
evas_object_size_hint_fill_set(o, 0, EVAS_HINT_FILL);
evas_object_event_callback_add(o, EVAS_CALLBACK_CHANGED_SIZE_HINTS,
_cb_size_hint, term);
edje_object_part_swallow(term->base, "terminology.content", o);
elm_layout_content_set(term->base, "terminology.content", o);
edje_object_part_swallow(term->bg, "terminology.content", term->base);
edje_object_part_swallow(term->bg, "terminology.miniview", term->miniview);
evas_object_smart_callback_add(o, "options", _cb_options, term);