2014-02-15 15:17:40 -08:00
|
|
|
#ifdef HAVE_CONFIG_H
|
|
|
|
# include "config.h"
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#include <libgen.h>
|
|
|
|
|
|
|
|
#include <Eina.h>
|
2014-02-15 16:29:00 -08:00
|
|
|
#include <Eio.h>
|
2016-11-06 08:24:55 -08:00
|
|
|
#include <Elementary.h>
|
2014-02-15 15:17:40 -08:00
|
|
|
|
2014-09-13 08:48:16 -07:00
|
|
|
#include "mainview/edi_mainview_item.h"
|
2017-07-23 13:54:47 -07:00
|
|
|
#include "mainview/edi_mainview_panel.h"
|
2014-09-13 08:48:16 -07:00
|
|
|
#include "mainview/edi_mainview.h"
|
2014-02-15 15:17:40 -08:00
|
|
|
|
2014-05-15 14:40:19 -07:00
|
|
|
#include "editor/edi_editor.h"
|
2014-11-28 15:34:36 -08:00
|
|
|
#include "edi_content_provider.h"
|
2017-09-27 17:23:18 -07:00
|
|
|
#include "edi_searchpanel.h"
|
|
|
|
#include "edi_file.h"
|
2014-05-15 14:40:19 -07:00
|
|
|
|
2014-02-15 15:17:40 -08:00
|
|
|
#include "edi_private.h"
|
2015-02-07 00:13:40 -08:00
|
|
|
#include "edi_config.h"
|
2014-02-15 15:17:40 -08:00
|
|
|
|
2017-07-26 02:17:44 -07:00
|
|
|
static Evas_Object *_main_win, *_mainview_panel;
|
2017-03-30 15:03:19 -07:00
|
|
|
static Evas_Object *_edi_mainview_search_project_popup;
|
|
|
|
|
2017-07-23 13:54:47 -07:00
|
|
|
static Edi_Mainview_Panel *_current_panel;
|
|
|
|
static Eina_List *_edi_mainview_panels = NULL, *_edi_mainview_wins = NULL;
|
2014-03-13 11:31:24 -07:00
|
|
|
|
2014-02-15 16:29:00 -08:00
|
|
|
static void
|
|
|
|
dummy()
|
|
|
|
{}
|
|
|
|
|
2017-08-12 09:50:27 -07:00
|
|
|
Eina_Bool
|
|
|
|
edi_mainview_is_empty(void)
|
|
|
|
{
|
|
|
|
if (edi_mainview_panel_count() == 1 &&
|
|
|
|
!edi_mainview_panel_item_count(edi_mainview_panel_by_index(0)))
|
|
|
|
return EINA_TRUE;
|
|
|
|
|
|
|
|
return EINA_FALSE;
|
|
|
|
}
|
|
|
|
|
2017-07-23 13:54:47 -07:00
|
|
|
int
|
|
|
|
edi_mainview_panel_count(void)
|
2014-09-13 08:48:16 -07:00
|
|
|
{
|
2017-07-23 13:54:47 -07:00
|
|
|
return eina_list_count(_edi_mainview_panels);
|
2014-09-13 08:48:16 -07:00
|
|
|
}
|
|
|
|
|
2017-07-23 13:54:47 -07:00
|
|
|
int edi_mainview_panel_id(Edi_Mainview_Panel *panel)
|
2017-06-08 18:31:45 -07:00
|
|
|
{
|
2017-07-23 13:54:47 -07:00
|
|
|
Eina_List *it;
|
|
|
|
Edi_Mainview_Panel *p;
|
|
|
|
int i = 0;
|
2017-06-08 18:31:45 -07:00
|
|
|
|
2017-07-23 13:54:47 -07:00
|
|
|
EINA_LIST_FOREACH(_edi_mainview_panels, it, p)
|
2017-06-08 18:31:45 -07:00
|
|
|
{
|
2017-07-23 13:54:47 -07:00
|
|
|
if (panel == p)
|
2017-06-08 18:31:45 -07:00
|
|
|
break;
|
2017-07-23 13:54:47 -07:00
|
|
|
i++;
|
2017-06-08 18:31:45 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
return i;
|
|
|
|
}
|
|
|
|
|
2017-07-23 13:54:47 -07:00
|
|
|
Edi_Mainview_Panel *
|
|
|
|
edi_mainview_panel_by_index(int index)
|
2016-09-10 14:28:31 -07:00
|
|
|
{
|
2017-07-23 13:54:47 -07:00
|
|
|
return eina_list_nth(_edi_mainview_panels, index);
|
2016-09-10 14:28:31 -07:00
|
|
|
}
|
|
|
|
|
2017-07-23 13:54:47 -07:00
|
|
|
void edi_mainview_panel_focus(Edi_Mainview_Panel *panel)
|
2014-03-26 09:48:21 -07:00
|
|
|
{
|
2017-07-23 13:54:47 -07:00
|
|
|
_current_panel = panel;
|
2014-03-26 09:48:21 -07:00
|
|
|
}
|
|
|
|
|
2017-07-23 13:54:47 -07:00
|
|
|
Edi_Mainview_Item *
|
|
|
|
edi_mainview_item_current_get()
|
2014-03-26 09:48:21 -07:00
|
|
|
{
|
2017-07-23 13:54:47 -07:00
|
|
|
return edi_mainview_panel_item_current_get(_current_panel);
|
2014-03-26 09:48:21 -07:00
|
|
|
}
|
|
|
|
|
2017-07-23 13:54:47 -07:00
|
|
|
Edi_Mainview_Panel *
|
|
|
|
edi_mainview_panel_current_get()
|
2017-06-08 18:31:45 -07:00
|
|
|
{
|
2017-07-23 13:54:47 -07:00
|
|
|
return _current_panel;
|
2017-06-08 18:31:45 -07:00
|
|
|
}
|
|
|
|
|
2017-07-23 13:54:47 -07:00
|
|
|
Edi_Mainview_Panel *
|
|
|
|
edi_mainview_panel_for_item_get(Edi_Mainview_Item *item)
|
2017-06-08 18:31:45 -07:00
|
|
|
{
|
2017-07-23 13:54:47 -07:00
|
|
|
Eina_List *it;
|
|
|
|
Edi_Mainview_Panel *panel;
|
2017-06-08 18:31:45 -07:00
|
|
|
|
2017-07-23 13:54:47 -07:00
|
|
|
EINA_LIST_FOREACH(_edi_mainview_panels, it, panel)
|
2017-06-08 18:31:45 -07:00
|
|
|
{
|
2017-07-23 13:54:47 -07:00
|
|
|
if (edi_mainview_panel_item_contains(panel, item))
|
|
|
|
return panel;
|
2017-06-08 18:31:45 -07:00
|
|
|
}
|
|
|
|
|
2017-07-23 13:54:47 -07:00
|
|
|
return NULL;
|
2017-06-08 18:31:45 -07:00
|
|
|
}
|
|
|
|
|
2017-10-10 15:29:17 -07:00
|
|
|
Edi_Mainview_Panel *
|
|
|
|
edi_mainview_panel_for_path_get(const char *path)
|
|
|
|
{
|
|
|
|
Eina_List *item;
|
|
|
|
Edi_Mainview_Panel *panel;
|
|
|
|
Edi_Mainview_Item *it;
|
|
|
|
int i;
|
|
|
|
|
|
|
|
for (i = 0; i < edi_mainview_panel_count(); i++)
|
|
|
|
{
|
|
|
|
panel = edi_mainview_panel_by_index(i);
|
|
|
|
EINA_LIST_FOREACH(panel->items, item, it)
|
|
|
|
{
|
|
|
|
if (it && !strcmp(it->path, path))
|
|
|
|
return panel;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
|
2017-07-24 15:28:48 -07:00
|
|
|
unsigned int
|
|
|
|
edi_mainview_panel_index_get(Edi_Mainview_Panel *panel)
|
|
|
|
{
|
|
|
|
Eina_List *it;
|
|
|
|
Edi_Mainview_Panel *panel2;
|
|
|
|
unsigned int i = 0;
|
|
|
|
|
|
|
|
EINA_LIST_FOREACH(_edi_mainview_panels, it, panel2)
|
|
|
|
{
|
|
|
|
if (panel == panel2)
|
|
|
|
break;
|
|
|
|
|
|
|
|
i++;
|
|
|
|
}
|
|
|
|
|
|
|
|
return i;
|
|
|
|
}
|
|
|
|
|
2015-01-10 09:43:12 -08:00
|
|
|
void
|
2017-07-23 13:54:47 -07:00
|
|
|
edi_mainview_item_prev()
|
2014-03-26 09:48:21 -07:00
|
|
|
{
|
2017-07-23 13:54:47 -07:00
|
|
|
edi_mainview_panel_item_prev(_current_panel);
|
2014-03-26 09:48:21 -07:00
|
|
|
}
|
|
|
|
|
2017-07-23 13:54:47 -07:00
|
|
|
void
|
|
|
|
edi_mainview_item_next()
|
2016-09-11 08:50:53 -07:00
|
|
|
{
|
2017-07-23 13:54:47 -07:00
|
|
|
edi_mainview_panel_item_next(_current_panel);
|
2016-09-11 08:50:53 -07:00
|
|
|
}
|
|
|
|
|
2017-07-23 13:54:47 -07:00
|
|
|
void
|
|
|
|
edi_mainview_tab_select(unsigned int id)
|
2014-02-15 15:17:40 -08:00
|
|
|
{
|
2017-07-23 13:54:47 -07:00
|
|
|
edi_mainview_panel_tab_select(_current_panel, id);
|
2014-02-15 15:17:40 -08:00
|
|
|
}
|
|
|
|
|
2016-09-11 08:50:53 -07:00
|
|
|
static void
|
2017-07-23 13:54:47 -07:00
|
|
|
_edi_mainview_win_exit(void *data EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED)
|
2014-02-15 16:29:00 -08:00
|
|
|
{
|
2014-03-13 11:31:24 -07:00
|
|
|
Edi_Mainview_Item *it;
|
2014-02-15 16:31:10 -08:00
|
|
|
|
2017-07-23 13:54:47 -07:00
|
|
|
evas_object_hide(obj);
|
|
|
|
|
|
|
|
it = evas_object_data_get(obj, "edi_mainview_item");
|
|
|
|
_edi_mainview_wins = eina_list_remove(_edi_mainview_wins, it);
|
|
|
|
|
2017-07-24 15:28:48 -07:00
|
|
|
_edi_project_config_tab_remove(it->path, EINA_TRUE, 0);
|
2017-07-23 13:54:47 -07:00
|
|
|
eina_stringshare_del(it->path);
|
|
|
|
|
|
|
|
if (edi_noproject())
|
|
|
|
edi_close();
|
|
|
|
free(it);
|
2014-02-15 16:29:00 -08:00
|
|
|
}
|
|
|
|
|
2017-07-23 13:54:47 -07:00
|
|
|
static char *
|
|
|
|
_edi_mainview_win_title_get(const char *path)
|
2014-02-26 01:13:28 -08:00
|
|
|
{
|
2017-07-23 13:54:47 -07:00
|
|
|
char *winname, *filename;
|
2014-03-13 11:31:24 -07:00
|
|
|
|
2017-07-23 13:54:47 -07:00
|
|
|
filename = basename((char*)path);
|
|
|
|
winname = malloc((8 + strlen(filename)) * sizeof(char));
|
|
|
|
snprintf(winname, 8 + strlen(filename), "Edi :: %s", filename);
|
2014-02-26 01:13:28 -08:00
|
|
|
|
2017-07-23 13:54:47 -07:00
|
|
|
return winname;
|
2014-02-26 01:13:28 -08:00
|
|
|
}
|
|
|
|
|
2014-03-13 11:31:24 -07:00
|
|
|
static Evas_Object *
|
2014-09-13 08:48:16 -07:00
|
|
|
_edi_mainview_content_create(Edi_Mainview_Item *item, Evas_Object *parent)
|
2014-03-13 11:31:24 -07:00
|
|
|
{
|
2017-07-23 13:54:47 -07:00
|
|
|
|
2017-06-08 18:31:45 -07:00
|
|
|
Evas_Object *container;
|
2014-03-13 11:31:24 -07:00
|
|
|
|
2017-06-08 18:31:45 -07:00
|
|
|
container = elm_box_add(parent);
|
|
|
|
evas_object_size_hint_weight_set(container, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
|
|
|
evas_object_size_hint_align_set(container, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
|
|
|
evas_object_show(container);
|
|
|
|
|
|
|
|
item->loaded = EINA_FALSE;
|
|
|
|
item->container = container;
|
2017-07-23 13:54:47 -07:00
|
|
|
// TODO not in 2 halfs
|
|
|
|
Edi_Content_Provider *provider;
|
|
|
|
Evas_Object *child;
|
2014-11-28 15:34:36 -08:00
|
|
|
|
2017-07-23 13:54:47 -07:00
|
|
|
provider = edi_content_provider_for_id_get(item->editortype);
|
|
|
|
if (!provider)
|
2017-06-09 10:36:52 -07:00
|
|
|
{
|
2017-07-23 13:54:47 -07:00
|
|
|
ERR("No content provider found for type %s", item->editortype);
|
|
|
|
return container;
|
2017-06-09 10:36:52 -07:00
|
|
|
}
|
2017-07-23 13:54:47 -07:00
|
|
|
child = provider->content_ui_add(item->container, item);
|
2015-09-16 02:21:21 -07:00
|
|
|
|
2017-07-23 13:54:47 -07:00
|
|
|
evas_object_size_hint_weight_set(child, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
|
|
|
evas_object_size_hint_align_set(child, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
|
|
|
elm_box_pack_end(item->container, child);
|
|
|
|
evas_object_show(child);
|
2014-03-13 11:48:28 -07:00
|
|
|
|
2017-07-23 13:54:47 -07:00
|
|
|
item->loaded = EINA_TRUE;
|
|
|
|
return container;
|
2014-03-13 11:48:28 -07:00
|
|
|
}
|
|
|
|
|
2014-03-13 11:31:24 -07:00
|
|
|
static void
|
2014-09-13 08:48:16 -07:00
|
|
|
_edi_mainview_item_win_add(Edi_Path_Options *options, const char *mime)
|
2014-03-13 11:31:24 -07:00
|
|
|
{
|
|
|
|
Evas_Object *win, *content;
|
|
|
|
Edi_Mainview_Item *item;
|
2015-01-30 07:39:54 -08:00
|
|
|
Edi_Editor *editor;
|
2014-03-13 11:31:24 -07:00
|
|
|
|
2014-03-16 09:01:35 -07:00
|
|
|
win = elm_win_util_standard_add("mainview", _edi_mainview_win_title_get(options->path));
|
2014-03-13 11:31:24 -07:00
|
|
|
if (!win) return;
|
|
|
|
|
|
|
|
elm_win_focus_highlight_enabled_set(win, EINA_TRUE);
|
|
|
|
evas_object_smart_callback_add(win, "delete,request", _edi_mainview_win_exit, NULL);
|
2017-07-23 13:54:47 -07:00
|
|
|
item = edi_mainview_item_add(options, mime, NULL, win);
|
|
|
|
_edi_mainview_wins = eina_list_append(_edi_mainview_wins, item);
|
2014-03-13 11:31:24 -07:00
|
|
|
evas_object_data_set(win, "edi_mainview_item", item);
|
|
|
|
|
2014-09-13 08:48:16 -07:00
|
|
|
content = _edi_mainview_content_create(item, win);
|
2014-03-13 11:31:24 -07:00
|
|
|
elm_win_resize_object_add(win, content);
|
|
|
|
|
2015-01-30 07:39:54 -08:00
|
|
|
// Set focus on the newly opening window so that one can just start typing
|
|
|
|
editor = (Edi_Editor *)evas_object_data_get(content, "editor");
|
|
|
|
if (editor)
|
|
|
|
elm_object_focus_set(editor->entry, EINA_TRUE);
|
|
|
|
|
2014-05-19 15:52:50 -07:00
|
|
|
evas_object_resize(win, 380 * elm_config_scale_get(), 260 * elm_config_scale_get());
|
2014-03-13 11:31:24 -07:00
|
|
|
evas_object_show(win);
|
2015-09-16 02:21:21 -07:00
|
|
|
|
2017-07-23 13:54:47 -07:00
|
|
|
_edi_project_config_tab_add(options->path, mime?mime:options->type, EINA_TRUE, 0);
|
2014-03-13 11:31:24 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
|
|
|
_edi_mainview_win_stat_done(void *data, Eio_File *handler EINA_UNUSED, const Eina_Stat *stat)
|
2014-02-15 16:29:00 -08:00
|
|
|
{
|
2014-03-16 09:01:35 -07:00
|
|
|
Edi_Path_Options *options;
|
2014-11-28 15:34:36 -08:00
|
|
|
Edi_Content_Provider *provider;
|
2014-03-16 09:01:35 -07:00
|
|
|
const char *mime;
|
2014-02-15 16:31:10 -08:00
|
|
|
|
2014-03-16 09:01:35 -07:00
|
|
|
options = data;
|
2030-07-09 16:04:01 -07:00
|
|
|
if (!S_ISREG(stat->mode))
|
|
|
|
return;
|
|
|
|
|
|
|
|
mime = efreet_mime_type_get(options->path);
|
2014-11-28 15:34:36 -08:00
|
|
|
provider = edi_content_provider_for_mime_get(mime);
|
|
|
|
if (!provider)
|
2014-02-15 16:29:00 -08:00
|
|
|
{
|
2017-07-23 13:54:47 -07:00
|
|
|
//TODO _edi_mainview_mime_content_safe_popup();
|
2030-07-09 16:04:01 -07:00
|
|
|
return;
|
2014-02-15 16:29:00 -08:00
|
|
|
}
|
2014-02-15 16:31:10 -08:00
|
|
|
|
2014-11-28 15:34:36 -08:00
|
|
|
options->type = provider->id;
|
2014-09-13 08:48:16 -07:00
|
|
|
_edi_mainview_item_win_add(options, mime);
|
2014-02-15 16:29:00 -08:00
|
|
|
}
|
|
|
|
|
2015-01-10 09:43:12 -08:00
|
|
|
void
|
2014-03-16 09:01:35 -07:00
|
|
|
edi_mainview_open_path(const char *path)
|
2014-02-25 23:28:24 -08:00
|
|
|
{
|
2017-07-23 13:54:47 -07:00
|
|
|
edi_mainview_panel_open_path(_current_panel, path);
|
2014-03-16 09:01:35 -07:00
|
|
|
}
|
|
|
|
|
2017-10-10 15:29:17 -07:00
|
|
|
static void
|
|
|
|
_focused_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
|
|
|
|
{
|
|
|
|
Elm_Code *code;
|
|
|
|
const char *path;
|
|
|
|
Edi_Mainview_Panel *panel;
|
|
|
|
Edi_Editor *editor = data;
|
|
|
|
|
|
|
|
code = elm_code_widget_code_get(editor->entry);
|
|
|
|
path = elm_code_file_path_get(code->file);
|
|
|
|
panel = edi_mainview_panel_for_path_get(path);
|
|
|
|
|
|
|
|
edi_mainview_panel_focus(panel);
|
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
|
|
|
_changed_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
|
|
|
|
{
|
|
|
|
Edi_Editor *editor = data;
|
|
|
|
|
|
|
|
editor->modified = EINA_TRUE;
|
|
|
|
|
|
|
|
ecore_event_add(EDI_EVENT_FILE_CHANGED, NULL, NULL, NULL);
|
|
|
|
}
|
|
|
|
|
|
|
|
void edi_mainview_split_current(void)
|
|
|
|
{
|
|
|
|
Elm_Code *code;
|
|
|
|
Elm_Code_Widget *widget;
|
|
|
|
Edi_Editor *editor;
|
|
|
|
Edi_Mainview_Panel *panel;
|
|
|
|
|
|
|
|
if (edi_mainview_is_empty())
|
|
|
|
return;
|
|
|
|
|
|
|
|
panel = edi_mainview_panel_current_get();
|
|
|
|
edi_mainview_panel_focus(panel);
|
|
|
|
|
|
|
|
editor = evas_object_data_get(panel->current->view, "editor");
|
|
|
|
if (!editor)
|
|
|
|
return;
|
|
|
|
|
|
|
|
code = elm_code_widget_code_get(editor->entry);
|
|
|
|
widget = elm_code_widget_add(panel->content, code);
|
|
|
|
elm_code_widget_editable_set(widget, EINA_TRUE);
|
|
|
|
elm_code_widget_line_numbers_set(widget, EINA_TRUE);
|
|
|
|
evas_object_smart_callback_add(widget, "changed,user", _changed_cb, editor);
|
|
|
|
evas_object_smart_callback_add(widget, "focused", _focused_cb, editor);
|
|
|
|
edi_editor_widget_config_get(widget);
|
|
|
|
|
|
|
|
evas_object_size_hint_weight_set(widget, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
|
|
|
evas_object_size_hint_align_set(widget, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
|
|
|
evas_object_show(widget);
|
|
|
|
elm_box_pack_start(panel->current->container, widget);
|
|
|
|
}
|
|
|
|
|
2015-01-10 09:43:12 -08:00
|
|
|
void
|
2014-03-16 09:01:35 -07:00
|
|
|
edi_mainview_open(Edi_Path_Options *options)
|
|
|
|
{
|
2017-07-23 13:54:47 -07:00
|
|
|
edi_mainview_panel_open(_current_panel, options);
|
2014-03-13 11:31:24 -07:00
|
|
|
}
|
|
|
|
|
2015-01-10 09:43:12 -08:00
|
|
|
void
|
2014-03-16 09:01:35 -07:00
|
|
|
edi_mainview_open_window_path(const char *path)
|
2014-03-13 11:31:24 -07:00
|
|
|
{
|
2014-03-16 09:01:35 -07:00
|
|
|
Edi_Path_Options *options;
|
2014-03-13 11:31:24 -07:00
|
|
|
|
2014-03-16 09:01:35 -07:00
|
|
|
options = edi_path_options_create(path);
|
2017-07-23 13:54:47 -07:00
|
|
|
// TODO this will not work right now - windows come from tabs so do we need it?
|
2015-06-09 14:31:33 -07:00
|
|
|
edi_mainview_open_window(options);
|
2014-03-16 09:01:35 -07:00
|
|
|
}
|
|
|
|
|
2015-01-10 09:43:12 -08:00
|
|
|
void
|
2014-03-16 09:01:35 -07:00
|
|
|
edi_mainview_open_window(Edi_Path_Options *options)
|
|
|
|
{
|
2017-07-23 13:54:47 -07:00
|
|
|
edi_mainview_item_close_path(options->path);
|
2014-03-16 09:01:35 -07:00
|
|
|
|
|
|
|
if (options->type == NULL)
|
2014-02-25 23:28:24 -08:00
|
|
|
{
|
2014-03-16 09:01:35 -07:00
|
|
|
eio_file_direct_stat(options->path, _edi_mainview_win_stat_done, dummy, options);
|
2014-03-13 11:31:24 -07:00
|
|
|
}
|
2017-06-27 08:48:49 -07:00
|
|
|
else if (!edi_content_provider_for_id_get(options->type))
|
|
|
|
{
|
|
|
|
const char *mime = options->type;
|
|
|
|
Edi_Content_Provider *provider = edi_content_provider_for_mime_get(mime);
|
|
|
|
|
|
|
|
if (provider)
|
|
|
|
options->type = provider->id;
|
|
|
|
else
|
|
|
|
options->type = NULL;
|
|
|
|
|
|
|
|
_edi_mainview_item_win_add(options, mime);
|
|
|
|
}
|
2014-03-13 11:31:24 -07:00
|
|
|
else
|
|
|
|
{
|
2014-09-13 08:48:16 -07:00
|
|
|
_edi_mainview_item_win_add(options, NULL);
|
2014-02-25 23:28:24 -08:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2017-06-06 17:45:44 -07:00
|
|
|
void
|
|
|
|
edi_mainview_close_all(void)
|
|
|
|
{
|
|
|
|
Eina_List *item;
|
2017-08-12 16:05:45 -07:00
|
|
|
Edi_Mainview_Panel *panel, *it;
|
|
|
|
|
|
|
|
if (edi_mainview_is_empty()) return;
|
2017-06-06 17:45:44 -07:00
|
|
|
|
2017-07-23 13:54:47 -07:00
|
|
|
EINA_LIST_FOREACH(_edi_mainview_panels, item, it)
|
2017-08-12 16:05:45 -07:00
|
|
|
{
|
|
|
|
if (edi_mainview_panel_item_count(it))
|
|
|
|
edi_mainview_panel_close_all(it);
|
|
|
|
edi_mainview_panel_remove(it);
|
|
|
|
}
|
|
|
|
|
|
|
|
panel = edi_mainview_panel_append();
|
|
|
|
edi_mainview_panel_focus(panel);
|
2017-06-06 17:45:44 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
void
|
|
|
|
edi_mainview_refresh_all(void)
|
|
|
|
{
|
|
|
|
Eina_List *item;
|
2017-07-23 13:54:47 -07:00
|
|
|
Edi_Mainview_Panel *it;
|
2017-06-06 17:45:44 -07:00
|
|
|
|
2017-07-23 13:54:47 -07:00
|
|
|
EINA_LIST_FOREACH(_edi_mainview_panels, item, it)
|
|
|
|
edi_mainview_panel_refresh_all(it);
|
2017-06-06 17:45:44 -07:00
|
|
|
}
|
|
|
|
|
2017-03-24 15:24:33 -07:00
|
|
|
void
|
|
|
|
edi_mainview_item_close_path(const char *path)
|
|
|
|
{
|
|
|
|
Eina_List *item;
|
2017-07-23 13:54:47 -07:00
|
|
|
Edi_Mainview_Panel *it;
|
2017-03-24 15:24:33 -07:00
|
|
|
|
2017-07-23 13:54:47 -07:00
|
|
|
EINA_LIST_FOREACH(_edi_mainview_panels, item, it)
|
|
|
|
edi_mainview_panel_item_close_path(it, path);
|
2017-03-24 15:24:33 -07:00
|
|
|
}
|
|
|
|
|
2015-01-10 09:43:12 -08:00
|
|
|
void
|
2014-02-16 09:09:55 -08:00
|
|
|
edi_mainview_save()
|
|
|
|
{
|
2017-08-12 09:50:27 -07:00
|
|
|
if (edi_mainview_is_empty()) return;
|
|
|
|
|
2017-07-23 13:54:47 -07:00
|
|
|
edi_mainview_panel_save(_current_panel);
|
2014-02-16 09:09:55 -08:00
|
|
|
}
|
|
|
|
|
2015-01-10 09:43:12 -08:00
|
|
|
void
|
2014-03-13 11:31:24 -07:00
|
|
|
edi_mainview_new_window()
|
|
|
|
{
|
|
|
|
Edi_Mainview_Item *item;
|
|
|
|
|
2014-09-13 08:48:16 -07:00
|
|
|
item = edi_mainview_item_current_get();
|
2014-03-13 11:31:24 -07:00
|
|
|
if (!item)
|
|
|
|
return;
|
2017-07-23 13:54:47 -07:00
|
|
|
// TODO OPTIONS!
|
2014-03-16 09:01:35 -07:00
|
|
|
edi_mainview_open_window_path(item->path);
|
2014-03-13 11:31:24 -07:00
|
|
|
}
|
|
|
|
|
2016-02-15 16:15:52 -08:00
|
|
|
void
|
|
|
|
edi_mainview_close()
|
|
|
|
{
|
2017-08-12 16:05:45 -07:00
|
|
|
if (!_current_panel || edi_mainview_is_empty()) return;
|
2017-08-12 09:50:27 -07:00
|
|
|
|
2017-07-23 13:54:47 -07:00
|
|
|
edi_mainview_panel_close(_current_panel);
|
2017-08-12 16:05:45 -07:00
|
|
|
if (edi_mainview_panel_count() > 1 &&
|
|
|
|
!edi_mainview_panel_item_count(_current_panel))
|
|
|
|
edi_mainview_panel_remove(_current_panel);
|
2016-02-15 16:15:52 -08:00
|
|
|
}
|
|
|
|
|
2016-02-21 15:46:44 -08:00
|
|
|
void
|
|
|
|
edi_mainview_undo()
|
|
|
|
{
|
2017-08-12 09:50:27 -07:00
|
|
|
if (edi_mainview_is_empty()) return;
|
|
|
|
|
2017-07-23 13:54:47 -07:00
|
|
|
edi_mainview_panel_undo(_current_panel);
|
2016-02-21 15:46:44 -08:00
|
|
|
}
|
|
|
|
|
2017-04-07 15:39:44 -07:00
|
|
|
Eina_Bool
|
|
|
|
edi_mainview_can_undo()
|
|
|
|
{
|
2017-08-12 09:50:27 -07:00
|
|
|
if (edi_mainview_is_empty()) return EINA_FALSE;
|
|
|
|
|
2017-07-23 13:54:47 -07:00
|
|
|
return edi_mainview_panel_can_undo(_current_panel);
|
2017-04-07 15:39:44 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
void
|
|
|
|
edi_mainview_redo()
|
|
|
|
{
|
2017-08-12 09:50:27 -07:00
|
|
|
if (edi_mainview_is_empty()) return;
|
|
|
|
|
2017-07-23 13:54:47 -07:00
|
|
|
edi_mainview_panel_redo(_current_panel);
|
2017-04-07 15:39:44 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
Eina_Bool
|
|
|
|
edi_mainview_can_redo()
|
|
|
|
{
|
2017-08-12 09:50:27 -07:00
|
|
|
if (edi_mainview_is_empty()) return EINA_FALSE;
|
|
|
|
|
2017-07-23 13:54:47 -07:00
|
|
|
return edi_mainview_panel_can_redo(_current_panel);
|
2017-04-07 15:39:44 -07:00
|
|
|
}
|
|
|
|
|
2017-04-22 14:23:32 -07:00
|
|
|
Eina_Bool
|
|
|
|
edi_mainview_modified()
|
|
|
|
{
|
2017-08-12 09:50:27 -07:00
|
|
|
if (edi_mainview_is_empty()) return EINA_FALSE;
|
|
|
|
|
2017-07-23 13:54:47 -07:00
|
|
|
return edi_mainview_panel_modified(_current_panel);
|
2017-04-22 14:23:32 -07:00
|
|
|
}
|
|
|
|
|
2015-01-10 09:43:12 -08:00
|
|
|
void
|
2014-02-16 09:09:55 -08:00
|
|
|
edi_mainview_cut()
|
|
|
|
{
|
2017-08-12 09:50:27 -07:00
|
|
|
if (edi_mainview_is_empty()) return;
|
|
|
|
|
2017-07-23 13:54:47 -07:00
|
|
|
edi_mainview_panel_cut(_current_panel);
|
2014-02-16 09:09:55 -08:00
|
|
|
}
|
|
|
|
|
2015-01-10 09:43:12 -08:00
|
|
|
void
|
2014-02-16 09:09:55 -08:00
|
|
|
edi_mainview_copy()
|
|
|
|
{
|
2017-08-12 09:50:27 -07:00
|
|
|
if (edi_mainview_is_empty()) return;
|
|
|
|
|
2017-07-23 13:54:47 -07:00
|
|
|
edi_mainview_panel_copy(_current_panel);
|
2014-02-16 09:09:55 -08:00
|
|
|
}
|
|
|
|
|
2015-01-10 09:43:12 -08:00
|
|
|
void
|
2014-02-16 09:09:55 -08:00
|
|
|
edi_mainview_paste()
|
|
|
|
{
|
2017-08-12 09:50:27 -07:00
|
|
|
if (edi_mainview_is_empty()) return;
|
|
|
|
|
2017-07-23 13:54:47 -07:00
|
|
|
edi_mainview_panel_paste(_current_panel);
|
2014-02-16 09:09:55 -08:00
|
|
|
}
|
|
|
|
|
2015-01-10 09:43:12 -08:00
|
|
|
void
|
2014-04-30 15:06:16 -07:00
|
|
|
edi_mainview_search()
|
|
|
|
{
|
2017-08-12 09:50:27 -07:00
|
|
|
if (edi_mainview_is_empty()) return;
|
|
|
|
|
2017-07-23 13:54:47 -07:00
|
|
|
edi_mainview_panel_search(_current_panel);
|
2014-04-30 15:06:16 -07:00
|
|
|
}
|
|
|
|
|
2015-01-10 09:43:12 -08:00
|
|
|
void
|
2017-06-09 10:36:52 -07:00
|
|
|
edi_mainview_goto(unsigned int number)
|
|
|
|
{
|
2017-08-12 09:50:27 -07:00
|
|
|
if (edi_mainview_is_empty()) return;
|
|
|
|
|
2017-07-23 13:54:47 -07:00
|
|
|
edi_mainview_panel_goto(_current_panel, number);
|
2017-06-09 10:36:52 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
void
|
|
|
|
edi_mainview_goto_position(unsigned int row, unsigned int col)
|
2014-03-15 06:12:34 -07:00
|
|
|
{
|
2017-08-12 09:50:27 -07:00
|
|
|
if (edi_mainview_is_empty()) return;
|
|
|
|
|
2017-07-23 13:54:47 -07:00
|
|
|
edi_mainview_panel_goto_position(_current_panel, row, col);
|
2015-07-16 14:36:15 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
void
|
|
|
|
edi_mainview_goto_popup_show()
|
|
|
|
{
|
2017-07-23 13:54:47 -07:00
|
|
|
edi_mainview_panel_goto_popup_show(_current_panel);
|
2017-03-30 15:03:19 -07:00
|
|
|
}
|
|
|
|
|
2017-09-27 17:23:18 -07:00
|
|
|
static void
|
|
|
|
_edi_mainview_popup_message_close_cb(void *data EINA_UNUSED,
|
|
|
|
Evas_Object *obj EINA_UNUSED,
|
|
|
|
void *event_info EINA_UNUSED)
|
|
|
|
{
|
|
|
|
Evas_Object *popup = data;
|
|
|
|
|
|
|
|
evas_object_del(popup);
|
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
|
|
|
_edi_mainview_popup_message_open(const char *message)
|
|
|
|
{
|
|
|
|
Evas_Object *popup, *button;
|
|
|
|
|
|
|
|
popup = elm_popup_add(_main_win);
|
|
|
|
elm_object_part_text_set(popup, "title,text",
|
|
|
|
message);
|
|
|
|
|
|
|
|
button = elm_button_add(popup);
|
|
|
|
|
|
|
|
elm_object_text_set(button, _("OK"));
|
|
|
|
elm_object_part_content_set(popup, "button1", button);
|
|
|
|
evas_object_smart_callback_add(button, "clicked",
|
|
|
|
_edi_mainview_popup_message_close_cb, popup);
|
|
|
|
|
|
|
|
evas_object_show(popup);
|
|
|
|
}
|
|
|
|
|
2017-03-30 15:03:19 -07:00
|
|
|
static void
|
|
|
|
_edi_mainview_project_search_popup_cancel_cb(void *data EINA_UNUSED,
|
|
|
|
Evas_Object *obj EINA_UNUSED,
|
|
|
|
void *event_info EINA_UNUSED)
|
|
|
|
{
|
|
|
|
evas_object_del(_edi_mainview_search_project_popup);
|
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
2017-08-09 06:26:02 -07:00
|
|
|
_edi_mainview_project_search_cb(void *data,
|
|
|
|
Evas_Object *obj EINA_UNUSED,
|
2017-03-30 15:03:19 -07:00
|
|
|
void *event_info EINA_UNUSED)
|
|
|
|
{
|
2017-06-18 14:55:58 -07:00
|
|
|
const char *text_markup;
|
|
|
|
char *text;
|
2017-03-30 15:03:19 -07:00
|
|
|
|
2017-08-09 06:26:02 -07:00
|
|
|
text_markup = elm_object_text_get((Evas_Object *) data);
|
2017-09-27 17:23:18 -07:00
|
|
|
if (!text_markup || !text_markup[0])
|
|
|
|
{
|
|
|
|
_edi_mainview_popup_message_open(_("Please enter a valid search term."));
|
|
|
|
return;
|
|
|
|
}
|
2017-06-18 14:55:58 -07:00
|
|
|
|
|
|
|
text = elm_entry_markup_to_utf8(text_markup);
|
2017-03-30 15:03:19 -07:00
|
|
|
|
2017-04-05 11:15:47 -07:00
|
|
|
edi_searchpanel_show();
|
2017-03-30 15:03:19 -07:00
|
|
|
edi_searchpanel_find(text);
|
2017-06-18 14:55:58 -07:00
|
|
|
|
|
|
|
free(text);
|
2017-03-30 15:03:19 -07:00
|
|
|
evas_object_del(_edi_mainview_search_project_popup);
|
|
|
|
}
|
|
|
|
|
2017-07-23 13:54:47 -07:00
|
|
|
static void
|
|
|
|
_edi_mainview_project_search_popup_key_up_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED,
|
|
|
|
Evas_Object *obj, void *event_info)
|
|
|
|
{
|
|
|
|
Evas_Event_Key_Up *ev = (Evas_Event_Key_Up *)event_info;
|
|
|
|
const char *str;
|
|
|
|
|
|
|
|
str = elm_object_text_get(obj);
|
|
|
|
|
|
|
|
if (strlen(str) && (!strcmp(ev->key, "KP_Enter") || !strcmp(ev->key, "Return")))
|
2017-08-09 06:26:02 -07:00
|
|
|
_edi_mainview_project_search_cb(obj, NULL, NULL);
|
2017-07-23 13:54:47 -07:00
|
|
|
}
|
|
|
|
|
2017-03-30 15:03:19 -07:00
|
|
|
void
|
|
|
|
edi_mainview_project_search_popup_show(void)
|
|
|
|
{
|
2017-10-01 03:43:52 -07:00
|
|
|
Evas_Object *popup, *frame, *box, *input, *button, *label;
|
2017-03-30 15:03:19 -07:00
|
|
|
|
|
|
|
popup = elm_popup_add(_main_win);
|
|
|
|
_edi_mainview_search_project_popup = popup;
|
|
|
|
elm_object_part_text_set(popup, "title,text",
|
2017-09-11 13:06:22 -07:00
|
|
|
_("Search for (whole project)"));
|
2017-08-22 04:41:05 -07:00
|
|
|
|
2017-03-30 15:03:19 -07:00
|
|
|
box = elm_box_add(popup);
|
2017-09-27 17:23:18 -07:00
|
|
|
evas_object_show(box);
|
2017-09-11 10:54:02 -07:00
|
|
|
|
2017-08-22 04:41:05 -07:00
|
|
|
label = elm_label_add(popup);
|
2017-10-01 03:43:52 -07:00
|
|
|
elm_object_text_set(label, _("Please enter a term to search for within<br> the whole project.<br>"));
|
2017-08-22 04:41:05 -07:00
|
|
|
evas_object_show(label);
|
|
|
|
elm_box_pack_end(box, label);
|
2017-03-30 15:03:19 -07:00
|
|
|
|
|
|
|
input = elm_entry_add(box);
|
|
|
|
elm_entry_single_line_set(input, EINA_TRUE);
|
2017-08-22 04:41:05 -07:00
|
|
|
elm_entry_editable_set(input, EINA_TRUE);
|
2017-06-14 13:00:23 -07:00
|
|
|
elm_entry_scrollable_set(input, EINA_TRUE);
|
2017-06-08 18:31:45 -07:00
|
|
|
evas_object_size_hint_weight_set(input, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
2017-03-30 15:03:19 -07:00
|
|
|
evas_object_size_hint_align_set(input, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
2017-08-22 04:41:05 -07:00
|
|
|
evas_object_event_callback_add(input, EVAS_CALLBACK_KEY_UP, _edi_mainview_project_search_popup_key_up_cb, NULL);
|
2017-03-30 15:03:19 -07:00
|
|
|
evas_object_show(input);
|
|
|
|
elm_box_pack_end(box, input);
|
2017-08-22 04:41:05 -07:00
|
|
|
evas_object_show(box);
|
|
|
|
|
2017-10-01 03:43:52 -07:00
|
|
|
frame = elm_frame_add(box);
|
|
|
|
evas_object_show(frame);
|
|
|
|
elm_object_content_set(frame, box);
|
|
|
|
elm_object_content_set(popup, frame);
|
2017-08-22 04:41:05 -07:00
|
|
|
|
2017-03-30 15:03:19 -07:00
|
|
|
|
|
|
|
button = elm_button_add(popup);
|
2017-09-11 13:06:22 -07:00
|
|
|
elm_object_text_set(button, _("Cancel"));
|
2017-03-30 15:03:19 -07:00
|
|
|
elm_object_part_content_set(popup, "button1", button);
|
|
|
|
evas_object_smart_callback_add(button, "clicked",
|
|
|
|
_edi_mainview_project_search_popup_cancel_cb, NULL);
|
|
|
|
|
|
|
|
button = elm_button_add(popup);
|
2017-09-11 13:06:22 -07:00
|
|
|
elm_object_text_set(button, _("Search"));
|
2017-03-30 15:03:19 -07:00
|
|
|
elm_object_part_content_set(popup, "button2", button);
|
|
|
|
evas_object_smart_callback_add(button, "clicked",
|
|
|
|
_edi_mainview_project_search_cb, input);
|
|
|
|
|
|
|
|
evas_object_show(popup);
|
|
|
|
elm_object_focus_set(input, EINA_TRUE);
|
2015-07-16 14:36:15 -07:00
|
|
|
}
|
2017-09-27 17:23:18 -07:00
|
|
|
|
|
|
|
static void
|
|
|
|
_edi_mainview_project_replace_cb(void *data,
|
|
|
|
Evas_Object *obj,
|
|
|
|
void *event_info EINA_UNUSED)
|
|
|
|
{
|
|
|
|
const char *search_markup, *replace_markup;
|
|
|
|
char *search, *replace;
|
|
|
|
|
|
|
|
search_markup = elm_object_text_get(evas_object_data_get(obj, "search"));
|
|
|
|
if (!search_markup || !search_markup[0])
|
|
|
|
{
|
|
|
|
_edi_mainview_popup_message_open(_("Please enter a valid search string."));
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
replace_markup = elm_object_text_get(data);
|
|
|
|
if (!replace_markup || !replace_markup[0])
|
|
|
|
{
|
|
|
|
_edi_mainview_popup_message_open(_("Please enter a valid replace string."));
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!strcmp(replace_markup, search_markup))
|
|
|
|
{
|
|
|
|
_edi_mainview_popup_message_open(_("Strings cannot match."));
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
search = elm_entry_markup_to_utf8(search_markup);
|
|
|
|
replace = elm_entry_markup_to_utf8(replace_markup);
|
|
|
|
|
|
|
|
edi_file_text_replace_all(search, replace);
|
|
|
|
|
|
|
|
free(search);
|
|
|
|
free(replace);
|
|
|
|
|
|
|
|
evas_object_del(_edi_mainview_search_project_popup);
|
|
|
|
}
|
|
|
|
|
|
|
|
void
|
|
|
|
edi_mainview_project_replace_popup_show(void)
|
|
|
|
{
|
2017-10-01 03:43:52 -07:00
|
|
|
Evas_Object *popup, *table, *box, *label, *search, *replace, *button;
|
|
|
|
Evas_Object *frame;
|
2017-09-27 17:23:18 -07:00
|
|
|
popup = elm_popup_add(_main_win);
|
|
|
|
_edi_mainview_search_project_popup = popup;
|
2017-10-10 15:40:52 -07:00
|
|
|
elm_object_part_text_set(popup, "title,text", _("Search & Replace"));
|
2017-09-27 17:23:18 -07:00
|
|
|
|
|
|
|
box = elm_box_add(popup);
|
|
|
|
|
|
|
|
label = elm_label_add(box);
|
2017-10-01 03:43:52 -07:00
|
|
|
elm_object_text_set(label, _("Replace all occurences of text within <br>the whole project.<br>"));
|
2017-09-27 17:23:18 -07:00
|
|
|
evas_object_show(label);
|
|
|
|
elm_box_pack_end(box, label);
|
|
|
|
|
|
|
|
table = elm_table_add(box);
|
|
|
|
evas_object_size_hint_weight_set(table, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
|
|
|
evas_object_size_hint_align_set(table, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
2017-10-01 03:43:52 -07:00
|
|
|
elm_table_padding_set(table, 5, 5);
|
2017-09-27 17:23:18 -07:00
|
|
|
evas_object_show(table);
|
|
|
|
|
|
|
|
label = elm_label_add(table);
|
2017-10-11 08:16:12 -07:00
|
|
|
elm_object_text_set(label, _("Search"));
|
2017-09-27 17:23:18 -07:00
|
|
|
evas_object_show(label);
|
|
|
|
elm_table_pack(table, label, 0, 0, 1, 1);
|
|
|
|
|
|
|
|
search = elm_entry_add(table);
|
|
|
|
elm_entry_single_line_set(search, EINA_TRUE);
|
|
|
|
elm_entry_scrollable_set(search, EINA_TRUE);
|
|
|
|
evas_object_size_hint_weight_set(search, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
|
|
|
evas_object_size_hint_align_set(search, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
|
|
|
evas_object_show(search);
|
|
|
|
elm_table_pack(table, search, 1, 0, 1, 1);
|
|
|
|
|
|
|
|
label = elm_label_add(table);
|
2017-10-11 08:16:12 -07:00
|
|
|
elm_object_text_set(label, _("Replace"));
|
2017-09-27 17:23:18 -07:00
|
|
|
evas_object_show(label);
|
|
|
|
elm_table_pack(table, label, 0, 1, 1, 1);
|
|
|
|
|
|
|
|
replace = elm_entry_add(table);
|
|
|
|
elm_entry_single_line_set(replace, EINA_TRUE);
|
|
|
|
elm_entry_scrollable_set(replace, EINA_TRUE);
|
|
|
|
evas_object_size_hint_weight_set(replace, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
|
|
|
evas_object_size_hint_align_set(replace, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
|
|
|
evas_object_show(replace);
|
|
|
|
elm_table_pack(table, replace, 1, 1, 1, 1);
|
|
|
|
|
|
|
|
elm_box_pack_end(box, table);
|
2017-10-01 03:43:52 -07:00
|
|
|
frame = elm_frame_add(table);
|
|
|
|
evas_object_show(frame);
|
|
|
|
elm_object_content_set(popup, frame);
|
|
|
|
elm_object_content_set(frame, box);
|
2017-09-27 17:23:18 -07:00
|
|
|
|
|
|
|
button = elm_button_add(popup);
|
|
|
|
elm_object_text_set(button, _("Cancel"));
|
|
|
|
elm_object_part_content_set(popup, "button1", button);
|
|
|
|
evas_object_smart_callback_add(button, "clicked",
|
|
|
|
_edi_mainview_project_search_popup_cancel_cb, NULL);
|
|
|
|
|
|
|
|
button = elm_button_add(popup);
|
|
|
|
evas_object_data_set(button, "search", search);
|
|
|
|
elm_object_text_set(button, _("Replace"));
|
|
|
|
elm_object_part_content_set(popup, "button2", button);
|
|
|
|
evas_object_smart_callback_add(button, "clicked",
|
|
|
|
_edi_mainview_project_replace_cb, replace);
|
|
|
|
|
|
|
|
evas_object_show(popup);
|
|
|
|
}
|
|
|
|
|
2017-07-23 13:54:47 -07:00
|
|
|
void
|
|
|
|
edi_mainview_panel_remove(Edi_Mainview_Panel *panel)
|
2017-04-05 11:04:16 -07:00
|
|
|
{
|
2017-07-25 13:43:28 -07:00
|
|
|
int panel_id = edi_mainview_panel_id(panel);
|
|
|
|
|
|
|
|
_edi_project_config_panel_remove(panel_id);
|
2017-08-09 04:46:20 -07:00
|
|
|
edi_mainview_panel_free(panel);
|
2017-04-05 11:04:16 -07:00
|
|
|
|
2017-07-23 13:54:47 -07:00
|
|
|
_edi_mainview_panels = eina_list_remove(_edi_mainview_panels, panel);
|
2017-08-12 16:05:45 -07:00
|
|
|
|
|
|
|
_current_panel = edi_mainview_panel_by_index(0);
|
2017-04-05 11:04:16 -07:00
|
|
|
}
|
|
|
|
|
2017-07-23 13:54:47 -07:00
|
|
|
Edi_Mainview_Panel *
|
|
|
|
edi_mainview_panel_append()
|
2017-04-05 11:04:16 -07:00
|
|
|
{
|
2017-07-23 13:54:47 -07:00
|
|
|
Edi_Mainview_Panel *panel;
|
2017-04-05 11:04:16 -07:00
|
|
|
|
2017-07-26 02:17:44 -07:00
|
|
|
panel = edi_mainview_panel_add(_mainview_panel);
|
|
|
|
_current_panel = panel;
|
2017-07-23 13:54:47 -07:00
|
|
|
_edi_mainview_panels = eina_list_append(_edi_mainview_panels, panel);
|
|
|
|
|
|
|
|
return panel;
|
2017-04-05 11:04:16 -07:00
|
|
|
}
|
|
|
|
|
2015-01-10 09:43:12 -08:00
|
|
|
void
|
2014-03-14 06:44:09 -07:00
|
|
|
edi_mainview_add(Evas_Object *parent, Evas_Object *win)
|
2014-02-15 15:17:40 -08:00
|
|
|
{
|
2017-07-26 02:17:44 -07:00
|
|
|
_mainview_panel = parent;
|
2014-03-14 06:44:09 -07:00
|
|
|
_main_win = win;
|
2015-09-16 02:21:21 -07:00
|
|
|
|
2017-07-26 02:17:44 -07:00
|
|
|
elm_box_horizontal_set(parent, EINA_TRUE);
|
|
|
|
edi_mainview_panel_append();
|
2014-02-15 15:17:40 -08:00
|
|
|
}
|
2017-07-23 13:54:47 -07:00
|
|
|
|