console: new feature comes.

This console box displays error messages.
This commit is contained in:
ChunEon Park 2014-08-11 21:13:04 +09:00
parent 0c0e439bb4
commit 8e89c0f357
11 changed files with 111 additions and 30 deletions

View File

@ -2050,6 +2050,19 @@ group { name: "main_layout";
rel2.to_y: "elm.swallow.statusbar";
}
}
part { name: "error_alert";
type: RECT;
mouse_events: 0;
description { state: "default" 0.0;
rel1.to_y: "elm.swallow.panes";
rel2.to_y: "elm.swallow.panes";
color: 0 0 0 0;
}
description { state: "visible" 0.0;
inherit: "default" 0.0;
color: 200 0 0 175;
}
}
part { name: "elm.swallow.statusbar";
type: SWALLOW;
scale: 1;
@ -2091,6 +2104,17 @@ group { name: "main_layout";
target: "elm.swallow.tools";
transition: DECELERATE 0.25;
}
program { name: "alert_show";
signal: "elm,state,alert,show";
action: STATE_SET "visible" 0.0;
target: "error_alert";
after: "alert_show2";
}
program { name: "alert_show2";
action: STATE_SET "default" 0.0;
target: "error_alert";
transition: DECELERATE 1;
}
}
}

View File

@ -35,7 +35,8 @@ enventor_SOURCES = \
globals.c \
redoundo.c \
template.c \
live_edit.c
live_edit.c \
console.c
enventor_LDADD = @ENVENTOR_LIBS@
enventor_LDFLAGS = $(LTLIBINTL)

View File

@ -5,6 +5,7 @@ typedef struct base_s
{
Evas_Object *win;
Evas_Object *layout;
Evas_Object *console;
} base_data;
static base_data *g_bd = NULL;
@ -133,10 +134,7 @@ base_console_toggle(Eina_Bool config)
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", "");
panes_editors_full_view();
}
void
@ -152,11 +150,20 @@ err_noti_cb(void *data, const char *msg)
{
base_data *bd = data;
printf("%s\n", msg);
fflush(stdout);
config_console_set(EINA_TRUE);
if (!config_console_get())
{
base_editors_full_view();
config_console_set(EINA_TRUE);
}
elm_object_signal_emit(bd->layout, "elm,state,alert,show", "");
console_text_set(bd->console, msg);
}
void
base_console_reset(void)
{
base_data *bd = g_bd;
console_text_set(bd->console, "");
}
Eina_Bool
@ -197,12 +204,15 @@ base_gui_init(void)
Evas_Object *panes = panes_init(layout);
elm_object_part_content_set(layout, "elm.swallow.panes", panes);
//Console
Evas_Object *console = console_create(panes);
panes_console_set(console);
build_err_noti_cb_set(err_noti_cb, bd);
bd->win = win;
bd->layout = layout;
base_console_toggle(EINA_FALSE);
bd->console = console;
return EINA_TRUE;
}

23
src/bin/console.c Normal file
View File

@ -0,0 +1,23 @@
#include <Elementary.h>
#include "common.h"
void
console_text_set(Evas_Object *console, const char *text)
{
elm_entry_entry_set(console, text);
}
Evas_Object *
console_create(Evas_Object *parent)
{
Evas_Object *obj = elm_entry_add(parent);
elm_entry_scrollable_set(obj, EINA_TRUE);
elm_entry_editable_set(obj, EINA_FALSE);
elm_entry_line_wrap_set(obj, ELM_WRAP_WORD);
elm_object_focus_allow_set(obj, EINA_FALSE);
evas_object_size_hint_weight_set(obj, EVAS_HINT_EXPAND,
EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(obj, EVAS_HINT_FILL, EVAS_HINT_FILL);
return obj;
}

View File

@ -159,6 +159,7 @@ exe_del_event_cb(void *data, int type EINA_UNUSED, void *event)
view_obj_min_update(vd->layout);
view_part_highlight_set(vd, vd->part_name);
dummy_obj_update(vd->layout);
base_console_reset();
vd->edj_reload_need = EINA_FALSE;

View File

@ -167,13 +167,13 @@ ctrl_func(app_data *ad, const char *key)
//Full Console View
if (!strcmp(key, "Up"))
{
base_editors_full_view();
base_console_full_view();
return ECORE_CALLBACK_DONE;
}
//Full Editors View
if (!strcmp(key, "Down"))
{
base_console_full_view();
base_editors_full_view();
return ECORE_CALLBACK_DONE;
}
//Auto Indentation

View File

@ -5,10 +5,10 @@ static const double TRANSIT_TIME = 0.25;
typedef enum
{
PANES_FULL_VIEW_LEFT,
PANES_FULL_VIEW_RIGHT,
PANES_FULL_VIEW_TOP,
PANES_FULL_VIEW_BOTTOM,
PANES_LIVE_VIEW_EXPAND,
PANES_TEXT_EDITOR_EXPAND,
PANES_EDITORS_EXPAND,
PANES_CONSOLE_EXPAND,
PANES_SPLIT_VIEW
} Panes_State;
@ -105,6 +105,8 @@ panes_v_full_view_cancel(panes_data *pd)
elm_transit_go(transit);
pd->vert.state = PANES_SPLIT_VIEW;
config_console_set(EINA_TRUE);
}
void
@ -113,7 +115,7 @@ panes_text_editor_full_view(void)
panes_data *pd = g_pd;
//Revert state if the current state is full view right already.
if (pd->horiz.state == PANES_FULL_VIEW_RIGHT)
if (pd->horiz.state == PANES_TEXT_EDITOR_EXPAND)
{
panes_h_full_view_cancel(pd);
return;
@ -131,7 +133,7 @@ panes_text_editor_full_view(void)
elm_transit_duration_set(transit, TRANSIT_TIME);
elm_transit_go(transit);
pd->horiz.state = PANES_FULL_VIEW_RIGHT;
pd->horiz.state = PANES_TEXT_EDITOR_EXPAND;
}
void
@ -140,7 +142,7 @@ panes_live_view_full_view(void)
panes_data *pd = g_pd;
//Revert state if the current state is full view left already.
if (pd->horiz.state == PANES_FULL_VIEW_LEFT)
if (pd->horiz.state == PANES_LIVE_VIEW_EXPAND)
{
panes_h_full_view_cancel(pd);
return;
@ -158,16 +160,16 @@ panes_live_view_full_view(void)
elm_transit_duration_set(transit, TRANSIT_TIME);
elm_transit_go(transit);
pd->horiz.state = PANES_FULL_VIEW_LEFT;
pd->horiz.state = PANES_LIVE_VIEW_EXPAND;
}
void
panes_console_full_view(void)
panes_editors_full_view(void)
{
panes_data *pd = g_pd;
//Revert state if the current state is full view bottom already.
if (pd->vert.state == PANES_FULL_VIEW_BOTTOM)
if (pd->vert.state == PANES_EDITORS_EXPAND)
{
panes_v_full_view_cancel(pd);
return;
@ -184,16 +186,18 @@ panes_console_full_view(void)
elm_transit_duration_set(transit, TRANSIT_TIME);
elm_transit_go(transit);
pd->vert.state = PANES_FULL_VIEW_BOTTOM;
pd->vert.state = PANES_EDITORS_EXPAND;
config_console_set(EINA_FALSE);
}
void
panes_editors_full_view(void)
panes_console_full_view(void)
{
panes_data *pd = g_pd;
//Revert state if the current state is full view top already.
if (pd->vert.state == PANES_FULL_VIEW_TOP)
if (pd->vert.state == PANES_CONSOLE_EXPAND)
{
panes_v_full_view_cancel(pd);
return;
@ -211,7 +215,7 @@ panes_editors_full_view(void)
elm_transit_duration_set(transit, TRANSIT_TIME);
elm_transit_go(transit);
pd->vert.state = PANES_FULL_VIEW_TOP;
pd->vert.state = PANES_CONSOLE_EXPAND;
}
void
@ -228,6 +232,13 @@ panes_live_view_set(Evas_Object *live_view)
elm_object_part_content_set(pd->horiz.obj, "left", live_view);
}
void
panes_console_set(Evas_Object *console)
{
panes_data *pd = g_pd;
elm_object_part_content_set(pd->vert.obj, "bottom", console);
}
void
panes_term(void)
{
@ -239,6 +250,8 @@ panes_term(void)
Evas_Object *
panes_init(Evas_Object *parent)
{
const double DEFAULT_CONSOLE_SIZE = 0.3;
panes_data *pd = malloc(sizeof(panes_data));
if (!pd)
{
@ -258,8 +271,8 @@ panes_init(Evas_Object *parent)
pd->vert.obj = panes_v;
pd->vert.state = PANES_SPLIT_VIEW;
pd->vert.last_size[0] = 0.5;
pd->vert.last_size[1] = 0.5;
pd->vert.last_size[0] = DEFAULT_CONSOLE_SIZE;
pd->vert.last_size[1] = DEFAULT_CONSOLE_SIZE;
//Panes Horizontal
Evas_Object *panes_h = elm_panes_add(parent);
@ -277,5 +290,10 @@ panes_init(Evas_Object *parent)
pd->horiz.last_size[0] = 0.5;
pd->horiz.last_size[1] = 0.5;
if (config_console_get())
elm_panes_content_right_size_set(panes_v, DEFAULT_CONSOLE_SIZE);
else
elm_panes_content_right_size_set(panes_v, 0.0);
return panes_v;
}

View File

@ -27,4 +27,5 @@ EXTRA_DIST = common.h \
search.h \
redoundo.h \
template.h \
live_edit.h
live_edit.h \
console.h

View File

@ -17,3 +17,4 @@ void base_console_toggle(Eina_Bool config);
void base_live_view_set(Evas_Object *live_view);
void base_text_editor_set(Evas_Object *text_editor);
void base_gui_term(void);
void base_console_reset(void);

View File

@ -35,5 +35,6 @@ typedef struct redoundo_s redoundo_data;
#include "redoundo.h"
#include "template.h"
#include "live_edit.h"
#include "console.h"
#endif

View File

@ -6,3 +6,4 @@ void panes_editors_full_view(void);
void panes_console_full_view(void);
void panes_live_view_set(Evas_Object *live_view);
void panes_text_editor_set(Evas_Object *text_editor);
void panes_console_set(Evas_Object *console);