make terminology foward compatible with upcoming efl/elm 1.10
This commit is contained in:
parent
c5f6b7cfeb
commit
1b5c54d924
|
@ -6,7 +6,23 @@
|
|||
#include "termio.h"
|
||||
#include "app_server_eet.h"
|
||||
|
||||
#if (ELM_VERSION_MAJOR > 1) || (ELM_VERSION_MINOR >= 8)
|
||||
#if (ELM_VERSION_MAJOR > 1) || (ELM_VERSION_MINOR >= 10)
|
||||
|
||||
#ifndef ELM_APP_SERVER_VIEW_EVENT_CLOSED
|
||||
#define ELM_APP_SERVER_VIEW_EVENT_CLOSED ELM_APP_SERVER_VIEW_EV_CLOSED
|
||||
#endif
|
||||
|
||||
#ifndef ELM_APP_SERVER_VIEW_EVENT_RESUMED
|
||||
#define ELM_APP_SERVER_VIEW_EVENT_RESUMED ELM_APP_SERVER_VIEW_EV_RESUMED
|
||||
#endif
|
||||
|
||||
#ifndef ELM_APP_SERVER_VIEW_EVENT_SAVE
|
||||
#define ELM_APP_SERVER_VIEW_EVENT_SAVE ELM_APP_SERVER_VIEW_EV_SAVE
|
||||
#endif
|
||||
|
||||
#ifndef ELM_APP_SERVER_EVENT_TERMINATE
|
||||
#define ELM_APP_SERVER_EVENT_TERMINATE ELM_APP_SERVER_EV_TERMINATE
|
||||
#endif
|
||||
|
||||
static Elm_App_Server *_server = NULL;
|
||||
static Eina_Bool _ignore_term_add = EINA_FALSE;
|
||||
|
@ -31,13 +47,13 @@ void
|
|||
app_server_term_del(Evas_Object *term)
|
||||
{
|
||||
Elm_App_Server_View *view;
|
||||
const char *id;
|
||||
const char *id = NULL;
|
||||
|
||||
view = evas_object_data_del(term, "app_view");
|
||||
if (!view)
|
||||
return;
|
||||
|
||||
eo_do(view, elm_app_server_view_id_get(&id));
|
||||
eo_do(view, id = elm_app_server_view_id_get());
|
||||
terminology_item_term_entries_del(views_eet, id);
|
||||
|
||||
eo_del(view);
|
||||
|
@ -49,7 +65,7 @@ _view_closed_cb(void *data, Eo *view,
|
|||
void *event_info EINA_UNUSED)
|
||||
{
|
||||
Term *term = data;
|
||||
const char *id;
|
||||
const char *id = NULL;
|
||||
|
||||
if (term)
|
||||
{
|
||||
|
@ -61,7 +77,7 @@ _view_closed_cb(void *data, Eo *view,
|
|||
term_object);
|
||||
}
|
||||
|
||||
eo_do(view, elm_app_server_view_id_get(&id));
|
||||
eo_do(view, id = elm_app_server_view_id_get());
|
||||
terminology_item_term_entries_del(views_eet, id);
|
||||
|
||||
eo_del(view);
|
||||
|
@ -92,7 +108,7 @@ _view_save_cb(void *data EINA_UNUSED,
|
|||
{
|
||||
char dir[PATH_MAX];
|
||||
Evas_Object *term_object;
|
||||
const char *id;
|
||||
const char *id = NULL;
|
||||
Term_Item *term_eet;
|
||||
|
||||
term_object = main_term_evas_object_get(data);
|
||||
|
@ -104,7 +120,7 @@ _view_save_cb(void *data EINA_UNUSED,
|
|||
evas_object_data_del(term_object, "app_view");
|
||||
|
||||
termio_cwd_get(term_object, dir, sizeof(dir));
|
||||
eo_do(view, elm_app_server_view_id_get(&id));
|
||||
eo_do(view, id = elm_app_server_view_id_get());
|
||||
|
||||
term_eet = terminology_item_term_entries_get(views_eet, id);
|
||||
if (term_eet)
|
||||
|
@ -126,8 +142,8 @@ _view_resumed_cb(void *data, Eo *view,
|
|||
{
|
||||
Term *term = data;
|
||||
Win *wn;
|
||||
Eina_List **wins;
|
||||
const char *title, *id;
|
||||
Eina_List **wins = NULL;
|
||||
const char *title, *id = NULL;
|
||||
Evas_Object *term_object;
|
||||
const char *dir = NULL;
|
||||
Term_Item *term_eet;
|
||||
|
@ -138,9 +154,8 @@ _view_resumed_cb(void *data, Eo *view,
|
|||
return EINA_TRUE;
|
||||
}
|
||||
|
||||
eo_do(_server, eo_base_data_get("wins", (void **)&wins));
|
||||
wn = eina_list_data_get(*wins);
|
||||
if (!wn)
|
||||
eo_do(_server, wins = eo_key_data_get("wins"));
|
||||
if (!wins || !(wn = eina_list_data_get(*wins)))
|
||||
{
|
||||
ERR("There is no window open");
|
||||
return EINA_TRUE;
|
||||
|
@ -148,7 +163,7 @@ _view_resumed_cb(void *data, Eo *view,
|
|||
|
||||
term = eina_list_data_get(main_win_terms_get(wn));
|
||||
|
||||
eo_do(view, elm_app_server_view_id_get(&id));
|
||||
eo_do(view, id = elm_app_server_view_id_get());
|
||||
term_eet = terminology_item_term_entries_get(views_eet, id);
|
||||
if (term_eet)
|
||||
{
|
||||
|
@ -179,15 +194,15 @@ _view_resumed_cb(void *data, Eo *view,
|
|||
eo_do(view, elm_app_server_view_title_set(title),
|
||||
elm_app_server_view_window_set(
|
||||
main_win_evas_object_get(main_term_win_get(term))),
|
||||
eo_event_callback_del(ELM_APP_SERVER_VIEW_EV_CLOSED, _view_closed_cb,
|
||||
eo_event_callback_del(ELM_APP_SERVER_VIEW_EVENT_CLOSED, _view_closed_cb,
|
||||
NULL),
|
||||
eo_event_callback_del(ELM_APP_SERVER_VIEW_EV_RESUMED, _view_resumed_cb,
|
||||
eo_event_callback_del(ELM_APP_SERVER_VIEW_EVENT_RESUMED, _view_resumed_cb,
|
||||
NULL),
|
||||
eo_event_callback_add(ELM_APP_SERVER_VIEW_EV_CLOSED, _view_closed_cb,
|
||||
eo_event_callback_add(ELM_APP_SERVER_VIEW_EVENT_CLOSED, _view_closed_cb,
|
||||
term),
|
||||
eo_event_callback_add(ELM_APP_SERVER_VIEW_EV_RESUMED, _view_resumed_cb,
|
||||
eo_event_callback_add(ELM_APP_SERVER_VIEW_EVENT_RESUMED, _view_resumed_cb,
|
||||
term),
|
||||
eo_event_callback_add(ELM_APP_SERVER_VIEW_EV_SAVE, _view_save_cb,
|
||||
eo_event_callback_add(ELM_APP_SERVER_VIEW_EVENT_SAVE, _view_save_cb,
|
||||
term));
|
||||
|
||||
evas_object_smart_callback_add(term_object, "title,change",
|
||||
|
@ -245,14 +260,14 @@ app_server_win_del_request_cb(void *data EINA_UNUSED,
|
|||
Evas_Object *obj EINA_UNUSED,
|
||||
void *event_info EINA_UNUSED)
|
||||
{
|
||||
Eina_List **wins;
|
||||
Eina_List **wins = NULL;
|
||||
|
||||
if (!_server)
|
||||
return;
|
||||
|
||||
eo_do(_server, eo_base_data_get("wins", (void **)&wins));
|
||||
eo_do(_server, wins = eo_key_data_get("wins"));
|
||||
|
||||
if (eina_list_count(*wins) > 1)
|
||||
if (wins && eina_list_count(*wins) > 1)
|
||||
return;
|
||||
|
||||
/*
|
||||
|
@ -283,11 +298,11 @@ _app_server_term_add(Term *term)
|
|||
elm_app_server_view_window_set(
|
||||
main_win_evas_object_get(main_term_win_get(term))),
|
||||
elm_app_server_view_resume(),
|
||||
eo_event_callback_add(ELM_APP_SERVER_VIEW_EV_CLOSED,
|
||||
eo_event_callback_add(ELM_APP_SERVER_VIEW_EVENT_CLOSED,
|
||||
_view_closed_cb, term),
|
||||
eo_event_callback_add(ELM_APP_SERVER_VIEW_EV_RESUMED,
|
||||
eo_event_callback_add(ELM_APP_SERVER_VIEW_EVENT_RESUMED,
|
||||
_view_resumed_cb, term),
|
||||
eo_event_callback_add(ELM_APP_SERVER_VIEW_EV_SAVE,
|
||||
eo_event_callback_add(ELM_APP_SERVER_VIEW_EVENT_SAVE,
|
||||
_view_save_cb, term));
|
||||
|
||||
evas_object_smart_callback_add(term_object, "title,change",
|
||||
|
@ -321,11 +336,10 @@ _app_server_create_view_cb(Elm_App_Server *server, const Eina_Value *args EINA_U
|
|||
{
|
||||
Win *wn;
|
||||
Term *term;
|
||||
Eina_List **wins;
|
||||
Eina_List **wins = NULL;
|
||||
|
||||
eo_do(server, eo_base_data_get("wins", (void **)&wins));
|
||||
wn = eina_list_data_get(*wins);
|
||||
if (!wn)
|
||||
eo_do(server, wins = eo_key_data_get("wins"));
|
||||
if (!wins || !(wn = eina_list_data_get(*wins)))
|
||||
{
|
||||
ERR("There is no window open");
|
||||
*error_name = eina_stringshare_add("There is no window open");
|
||||
|
@ -355,12 +369,14 @@ void
|
|||
app_server_init(Eina_List **wins, Eina_Bool restore_views)
|
||||
{
|
||||
Win *wn;
|
||||
Eina_Iterator *views;
|
||||
Eina_Iterator *views = NULL;
|
||||
Elm_App_Server_View *view;
|
||||
const char *title;
|
||||
char lock_file[PATH_MAX], eet_dir[PATH_MAX];
|
||||
FILE *f;
|
||||
|
||||
if (!wins)
|
||||
return;
|
||||
wn = eina_list_data_get(*wins);
|
||||
if (!wn)
|
||||
return;
|
||||
|
@ -392,9 +408,9 @@ app_server_init(Eina_List **wins, Eina_Bool restore_views)
|
|||
_app_server_create_view_cb));
|
||||
|
||||
eo_do(_server, elm_app_server_title_set(title),
|
||||
eo_base_data_set("wins", wins, NULL),
|
||||
elm_app_server_views_get(&views),
|
||||
eo_event_callback_add(ELM_APP_SERVER_EV_TERMINATE,
|
||||
eo_key_data_set("wins", wins, NULL),
|
||||
views = elm_app_server_views_get(),
|
||||
eo_event_callback_add(ELM_APP_SERVER_EVENT_TERMINATE,
|
||||
_server_terminate_cb, wins));
|
||||
//views saved
|
||||
EINA_ITERATOR_FOREACH(views, view)
|
||||
|
@ -402,9 +418,9 @@ app_server_init(Eina_List **wins, Eina_Bool restore_views)
|
|||
if (restore_views)
|
||||
ecore_idler_add(_restore_view_cb, view);
|
||||
eo_do(view,
|
||||
eo_event_callback_add(ELM_APP_SERVER_VIEW_EV_CLOSED,
|
||||
eo_event_callback_add(ELM_APP_SERVER_VIEW_EVENT_CLOSED,
|
||||
_view_closed_cb, NULL),
|
||||
eo_event_callback_add(ELM_APP_SERVER_VIEW_EV_RESUMED,
|
||||
eo_event_callback_add(ELM_APP_SERVER_VIEW_EVENT_RESUMED,
|
||||
_view_resumed_cb, NULL));
|
||||
}
|
||||
eina_iterator_free(views);
|
||||
|
|
Loading…
Reference in New Issue