2014-02-04 00:17:43 -08:00
|
|
|
#include <Elementary.h>
|
|
|
|
#include "common.h"
|
|
|
|
|
2014-02-04 04:48:06 -08:00
|
|
|
typedef struct base_s
|
2014-02-04 00:17:43 -08:00
|
|
|
{
|
|
|
|
Evas_Object *win;
|
|
|
|
Evas_Object *layout;
|
2014-02-04 04:48:06 -08:00
|
|
|
} base_data;
|
2014-02-04 00:17:43 -08:00
|
|
|
|
|
|
|
static base_data *g_bd = NULL;
|
|
|
|
|
|
|
|
static void
|
|
|
|
win_delete_request_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
|
|
|
|
void *event_info EINA_UNUSED)
|
|
|
|
{
|
|
|
|
menu_exit();
|
|
|
|
}
|
|
|
|
|
2014-05-31 23:35:54 -07:00
|
|
|
static void
|
|
|
|
win_focused_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
|
|
|
|
void *event_info EINA_UNUSED)
|
|
|
|
{
|
|
|
|
goto_close();
|
|
|
|
}
|
|
|
|
|
2014-02-04 00:55:56 -08:00
|
|
|
void
|
|
|
|
base_title_set(const char *path)
|
|
|
|
{
|
|
|
|
base_data *bd = g_bd;
|
|
|
|
char buf[PATH_MAX];
|
|
|
|
snprintf(buf, sizeof(buf), "%s - Enventor", path);
|
|
|
|
elm_win_title_set(bd->win, buf);
|
|
|
|
}
|
|
|
|
|
2014-02-04 00:17:43 -08:00
|
|
|
void
|
2014-03-08 08:12:28 -08:00
|
|
|
base_statusbar_toggle(Eina_Bool config)
|
2014-02-04 00:17:43 -08:00
|
|
|
{
|
|
|
|
base_data *bd = g_bd;
|
|
|
|
|
2014-03-08 08:12:28 -08:00
|
|
|
if (config) config_stats_bar_set(!config_stats_bar_get());
|
|
|
|
|
2014-02-04 00:17:43 -08:00
|
|
|
if (config_stats_bar_get())
|
|
|
|
elm_object_signal_emit(bd->layout, "elm,state,statusbar,show", "");
|
|
|
|
else
|
|
|
|
elm_object_signal_emit(bd->layout, "elm,state,statusbar,hide", "");
|
|
|
|
}
|
|
|
|
|
|
|
|
void
|
2014-03-08 08:22:54 -08:00
|
|
|
base_tools_toggle(Eina_Bool config)
|
2014-02-04 00:17:43 -08:00
|
|
|
{
|
|
|
|
base_data *bd = g_bd;
|
|
|
|
|
2014-03-08 08:22:54 -08:00
|
|
|
if (config) config_tools_set(!config_tools_get());
|
2014-02-04 00:17:43 -08:00
|
|
|
|
2014-03-08 08:22:54 -08:00
|
|
|
if (config_tools_get())
|
|
|
|
elm_object_signal_emit(bd->layout, "elm,state,tools,show", "");
|
2014-02-04 00:17:43 -08:00
|
|
|
else
|
2014-03-08 08:22:54 -08:00
|
|
|
elm_object_signal_emit(bd->layout, "elm,state,tools,hide", "");
|
2014-02-04 00:17:43 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
Evas_Object *
|
2014-08-04 23:32:12 -07:00
|
|
|
base_win_get(void)
|
2014-02-04 00:17:43 -08:00
|
|
|
{
|
|
|
|
base_data *bd = g_bd;
|
|
|
|
return bd->win;
|
|
|
|
}
|
|
|
|
|
|
|
|
Evas_Object *
|
2014-08-04 23:32:12 -07:00
|
|
|
base_layout_get(void)
|
2014-02-04 00:17:43 -08:00
|
|
|
{
|
|
|
|
base_data *bd = g_bd;
|
|
|
|
return bd->layout;
|
|
|
|
}
|
|
|
|
|
|
|
|
void
|
|
|
|
base_win_resize_object_add(Evas_Object *resize_obj)
|
|
|
|
{
|
|
|
|
base_data *bd = g_bd;
|
|
|
|
elm_win_resize_object_add(bd->win, resize_obj);
|
|
|
|
}
|
|
|
|
|
2014-03-08 08:22:54 -08:00
|
|
|
void base_tools_set(Evas_Object *tools)
|
2014-02-04 00:17:43 -08:00
|
|
|
{
|
|
|
|
base_data *bd = g_bd;
|
2014-03-08 08:22:54 -08:00
|
|
|
elm_object_part_content_set(bd->layout, "elm.swallow.tools", tools);
|
2014-02-18 03:14:15 -08:00
|
|
|
|
2014-03-08 08:22:54 -08:00
|
|
|
if (config_tools_get())
|
|
|
|
elm_object_signal_emit(bd->layout, "elm,state,tools,show", "");
|
2014-02-18 03:14:15 -08:00
|
|
|
else
|
2014-03-08 08:22:54 -08:00
|
|
|
elm_object_signal_emit(bd->layout, "elm,state,tools,hide", "");
|
2014-02-04 00:17:43 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
void
|
2014-08-04 23:32:12 -07:00
|
|
|
base_full_view_left(void)
|
2014-02-04 00:17:43 -08:00
|
|
|
{
|
2014-02-04 04:37:49 -08:00
|
|
|
panes_full_view_left();
|
2014-02-04 00:17:43 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
void
|
2014-08-04 23:32:12 -07:00
|
|
|
base_full_view_right(void)
|
2014-02-04 00:17:43 -08:00
|
|
|
{
|
2014-02-04 04:37:49 -08:00
|
|
|
panes_full_view_right();
|
2014-02-04 00:17:43 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
void
|
|
|
|
base_right_view_set(Evas_Object *right)
|
|
|
|
{
|
2014-02-04 04:37:49 -08:00
|
|
|
panes_content_set("right", right);
|
2014-02-04 00:17:43 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
void
|
|
|
|
base_left_view_set(Evas_Object *left)
|
|
|
|
{
|
2014-02-04 04:37:49 -08:00
|
|
|
panes_content_set("left", left);
|
2014-02-04 00:17:43 -08:00
|
|
|
}
|
|
|
|
|
2014-08-10 01:46:14 -07:00
|
|
|
void
|
|
|
|
base_console_toggle(Eina_Bool config)
|
|
|
|
{
|
|
|
|
base_data *bd = g_bd;
|
|
|
|
|
|
|
|
if (config) config_console_set(!config_console_get());
|
|
|
|
|
|
|
|
if (config_console_get())
|
|
|
|
elm_object_signal_emit(bd->layout, "elm,state,console,show", "");
|
|
|
|
else
|
|
|
|
elm_object_signal_emit(bd->layout, "elm,state,console,hide", "");
|
|
|
|
}
|
|
|
|
|
2014-02-04 00:17:43 -08:00
|
|
|
void
|
2014-08-04 23:32:12 -07:00
|
|
|
base_gui_term(void)
|
2014-02-04 00:17:43 -08:00
|
|
|
{
|
|
|
|
base_data *bd = g_bd;
|
2014-02-04 04:37:49 -08:00
|
|
|
panes_term();
|
2014-02-04 00:17:43 -08:00
|
|
|
free(bd);
|
|
|
|
}
|
|
|
|
|
2014-08-09 04:03:06 -07:00
|
|
|
static void
|
|
|
|
err_noti_cb(void *data, const char *msg)
|
|
|
|
{
|
|
|
|
base_data *bd = data;
|
|
|
|
|
|
|
|
printf("%s\n", msg);
|
|
|
|
fflush(stdout);
|
2014-08-10 01:46:14 -07:00
|
|
|
|
|
|
|
config_console_set(EINA_TRUE);
|
|
|
|
elm_object_signal_emit(bd->layout, "elm,state,console,show", "");
|
2014-08-09 04:03:06 -07:00
|
|
|
}
|
|
|
|
|
2014-02-04 00:17:43 -08:00
|
|
|
Eina_Bool
|
2014-08-04 23:32:12 -07:00
|
|
|
base_gui_init(void)
|
2014-02-04 00:17:43 -08:00
|
|
|
{
|
|
|
|
char buf[PATH_MAX];
|
|
|
|
|
|
|
|
base_data *bd = calloc(1, sizeof(base_data));
|
2014-07-27 21:40:58 -07:00
|
|
|
if (!bd)
|
|
|
|
{
|
|
|
|
EINA_LOG_ERR("Failed to allocate Memory!");
|
|
|
|
return EINA_FALSE;
|
|
|
|
}
|
2014-02-04 00:17:43 -08:00
|
|
|
g_bd = bd;
|
|
|
|
|
|
|
|
//Window
|
|
|
|
Evas_Object *win = elm_win_util_standard_add(elm_app_name_get(),
|
|
|
|
"Enventor");
|
|
|
|
elm_win_focus_highlight_enabled_set(win, EINA_TRUE);
|
|
|
|
evas_object_smart_callback_add(win, "delete,request", win_delete_request_cb,
|
|
|
|
NULL);
|
2014-05-31 23:35:54 -07:00
|
|
|
evas_object_smart_callback_add(win, "focused", win_focused_cb, NULL);
|
2014-02-04 00:17:43 -08:00
|
|
|
|
|
|
|
//Window icon
|
|
|
|
Evas_Object *icon = evas_object_image_add(evas_object_evas_get(win));
|
|
|
|
snprintf(buf, sizeof(buf), "%s/images/logo.png", elm_app_data_dir_get());
|
|
|
|
evas_object_image_file_set(icon, buf, NULL);
|
|
|
|
elm_win_icon_object_set(win, icon);
|
|
|
|
|
|
|
|
//Base Layout
|
|
|
|
Evas_Object *layout = elm_layout_add(win);
|
|
|
|
elm_layout_file_set(layout, EDJE_PATH, "main_layout");
|
2014-08-10 01:46:14 -07:00
|
|
|
evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
2014-02-04 00:17:43 -08:00
|
|
|
elm_win_resize_object_add(win, layout);
|
|
|
|
evas_object_show(layout);
|
|
|
|
|
|
|
|
//Panes
|
2014-02-04 04:37:49 -08:00
|
|
|
Evas_Object *panes = panes_init(layout);
|
2014-02-04 00:17:43 -08:00
|
|
|
elm_object_part_content_set(layout, "elm.swallow.panes", panes);
|
|
|
|
|
2014-08-09 04:03:06 -07:00
|
|
|
build_err_noti_cb_set(err_noti_cb, bd);
|
|
|
|
|
2014-02-04 00:17:43 -08:00
|
|
|
bd->win = win;
|
|
|
|
bd->layout = layout;
|
|
|
|
|
2014-08-10 01:46:14 -07:00
|
|
|
base_console_toggle(EINA_FALSE);
|
|
|
|
|
2014-02-04 00:17:43 -08:00
|
|
|
return EINA_TRUE;
|
|
|
|
}
|
2014-05-12 02:04:22 -07:00
|
|
|
|
|
|
|
void
|
2014-08-04 23:32:12 -07:00
|
|
|
base_gui_show(void)
|
2014-05-12 02:04:22 -07:00
|
|
|
{
|
|
|
|
evas_object_show(g_bd->win);
|
|
|
|
}
|