mainview: show path in tooltip when hovering tab.

Previously I implemented this with a "menu". This
wasn't very clever. Changing so we use a tooltip
as it's much cleaner and less cruft code.
This commit is contained in:
Alastair Poole 2018-08-03 11:05:55 +01:00
parent 1c00bdb17f
commit 179acb1918
1 changed files with 9 additions and 43 deletions

View File

@ -394,47 +394,6 @@ _promote(void *data, Evas_Object *obj EINA_UNUSED,
edi_filepanel_select_path(item->path);
}
static void
_tab_info_menu_dismissed_cb(void *data EINA_UNUSED, Evas_Object *obj,
void *ev EINA_UNUSED)
{
evas_object_del(obj);
}
static void
_tab_info_menu_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
void *event_info)
{
Evas_Event_Mouse_Down *ev;
Elm_Object_Item *menu_it;
Edi_Mainview_Item *item;
Evas_Object *menu;
const char *path;
ev = event_info;
/* right-click for tab information */
if (ev->button != 3)
return;
item = data;
path = strstr(item->path, edi_project_get());
if (path)
path += 1 + strlen(edi_project_get());
else
path = item->path;
menu = elm_menu_add(_main_win);
evas_object_smart_callback_add(menu, "dismissed", _tab_info_menu_dismissed_cb, NULL);
menu_it = elm_menu_item_add(menu, NULL, "document-properties", path, NULL, NULL);
elm_menu_move(menu, ev->canvas.x, ev->canvas.y);
evas_object_show(menu);
}
static void
_closetab(void *data, Evas_Object *obj EINA_UNUSED,
const char *emission EINA_UNUSED, const char *source EINA_UNUSED)
@ -514,6 +473,7 @@ _edi_mainview_panel_item_tab_add(Edi_Mainview_Panel *panel, Edi_Path_Options *op
Edi_Mainview_Item *item;
Edi_Editor *editor;
Elm_Code *code;
const char *path;
if (!panel) return;
@ -536,6 +496,14 @@ _edi_mainview_panel_item_tab_add(Edi_Mainview_Panel *panel, Edi_Path_Options *op
evas_object_size_hint_align_set(tab, 0.0, EVAS_HINT_FILL);
elm_object_focus_allow_set(tab, EINA_FALSE);
path = strstr(item->path, edi_project_get());
if (path)
path += 1 + strlen(edi_project_get());
else
path = item->path;
elm_object_tooltip_text_set(tab, path);
elm_layout_theme_set(tab, "multibuttonentry", "btn", "default");
elm_object_part_text_set(tab, "elm.btn.text", ecore_file_file_get(options->path));
/*
@ -545,8 +513,6 @@ _edi_mainview_panel_item_tab_add(Edi_Mainview_Panel *panel, Edi_Path_Options *op
*/
elm_layout_signal_callback_add(tab, "mouse,clicked,1", "*", _promote, item);
elm_layout_signal_callback_add(tab, "elm,deleted", "elm", _closetab, item);
evas_object_event_callback_add(tab, EVAS_CALLBACK_MOUSE_DOWN, _tab_info_menu_cb, item);
elm_box_pack_end(panel->tabs, tab);
evas_object_show(tab);