forked from enlightenment/edi
Add actual log output to the log panel.
Using Eina_Log we hook in a custom print function that adds lines to our log UI.
This commit is contained in:
parent
d1823902c9
commit
16017019b3
|
@ -11,6 +11,7 @@ AM_CPPFLAGS = -DPACKAGE_DATA_DIR=\"$(datadir)/$(PACKAGE)\" \
|
||||||
|
|
||||||
edi_SOURCES = \
|
edi_SOURCES = \
|
||||||
edi_filepanel.c \
|
edi_filepanel.c \
|
||||||
|
edi_logpanel.c \
|
||||||
edi_mainview.c \
|
edi_mainview.c \
|
||||||
edi_main.c
|
edi_main.c
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,65 @@
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
# include "config.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <Eina.h>
|
||||||
|
|
||||||
|
#include "edi_logpanel.h"
|
||||||
|
|
||||||
|
#include "edi_private.h"
|
||||||
|
|
||||||
|
static Evas_Object *_info_box;
|
||||||
|
|
||||||
|
void print_cb(const Eina_Log_Domain *domain,
|
||||||
|
Eina_Log_Level level,
|
||||||
|
const char *file,
|
||||||
|
const char *fnc,
|
||||||
|
int line,
|
||||||
|
const char *fmt,
|
||||||
|
void *data,
|
||||||
|
va_list args)
|
||||||
|
{
|
||||||
|
Evas_Object *txt;
|
||||||
|
unsigned int printed, buffer_len = 512;
|
||||||
|
char buffer [buffer_len];
|
||||||
|
|
||||||
|
printed = snprintf(buffer, buffer_len, "%s:%s:%s (%d): ",
|
||||||
|
domain->domain_str, file, fnc, line);
|
||||||
|
vsnprintf(buffer + printed, buffer_len - printed, fmt, args);
|
||||||
|
|
||||||
|
txt = elm_label_add(_info_box);
|
||||||
|
if (level <= EINA_LOG_LEVEL_ERR)
|
||||||
|
evas_object_color_set(txt, 255, 63, 63, 255);
|
||||||
|
else
|
||||||
|
evas_object_color_set(txt, 255, 255, 255, 255);
|
||||||
|
|
||||||
|
elm_object_text_set(txt, buffer);
|
||||||
|
evas_object_size_hint_weight_set(txt, EVAS_HINT_EXPAND, 0.1);
|
||||||
|
evas_object_size_hint_align_set(txt, 0.0, EVAS_HINT_FILL);
|
||||||
|
evas_object_show(txt);
|
||||||
|
|
||||||
|
elm_box_pack_end(_info_box, txt);
|
||||||
|
}
|
||||||
|
|
||||||
|
void edi_logpanel_add(Evas_Object *parent)
|
||||||
|
{
|
||||||
|
Evas_Object *scroll, *vbx;
|
||||||
|
|
||||||
|
scroll = elm_scroller_add(parent);
|
||||||
|
elm_scroller_gravity_set(scroll, 0.0, 0.0);
|
||||||
|
evas_object_size_hint_weight_set(scroll, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||||
|
evas_object_size_hint_align_set(scroll, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||||
|
evas_object_show(scroll);
|
||||||
|
|
||||||
|
vbx = elm_box_add(parent);
|
||||||
|
evas_object_size_hint_weight_set(vbx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||||
|
evas_object_show(vbx);
|
||||||
|
elm_object_content_set(scroll, vbx);
|
||||||
|
|
||||||
|
_info_box = vbx;
|
||||||
|
|
||||||
|
eina_log_print_cb_set(print_cb, NULL);
|
||||||
|
eina_log_color_disable_set(EINA_TRUE);
|
||||||
|
|
||||||
|
elm_box_pack_end(parent, scroll);
|
||||||
|
}
|
|
@ -0,0 +1,44 @@
|
||||||
|
#ifndef EDI_LOGPANEL_H_
|
||||||
|
# define EDI_LOGPANEL_H_
|
||||||
|
|
||||||
|
#include <Elementary.h>
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @file
|
||||||
|
* @brief These routines are used for managing the Edi file panel.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief UI management functions.
|
||||||
|
* @defgroup UI
|
||||||
|
*
|
||||||
|
* @{
|
||||||
|
*
|
||||||
|
* Initialisation and management of the log panel UI
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Initialize a new Edi logpanel and add it to the parent panel.
|
||||||
|
*
|
||||||
|
* @param parent The panel into which the panel will be loaded.
|
||||||
|
*
|
||||||
|
* @ingroup UI
|
||||||
|
*/
|
||||||
|
void edi_logpanel_add(Evas_Object *parent);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* EDI_LOGPANEL_H_ */
|
|
@ -31,17 +31,45 @@ _edi_exit(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info
|
||||||
static void
|
static void
|
||||||
_edi_file_open_cb(const char *path)
|
_edi_file_open_cb(const char *path)
|
||||||
{
|
{
|
||||||
|
INF("Opening %s", path);
|
||||||
edi_mainview_open_path(path);
|
edi_mainview_open_path(path);
|
||||||
}
|
}
|
||||||
|
|
||||||
static Evas_Object *
|
static Evas_Object *
|
||||||
edi_content_setup(Evas_Object *win, const char *path)
|
edi_content_setup(Evas_Object *win, const char *path)
|
||||||
{
|
{
|
||||||
Evas_Object *panes, *panes_h, *panel, *txt;
|
Evas_Object *panes, *panes_h, *panel;
|
||||||
|
|
||||||
panes = elm_panes_add(win);
|
panes = elm_panes_add(win);
|
||||||
evas_object_size_hint_weight_set(panes, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
evas_object_size_hint_weight_set(panes, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||||
|
|
||||||
|
// add panes
|
||||||
|
panes_h = elm_panes_add(win);
|
||||||
|
elm_panes_horizontal_set(panes_h, EINA_TRUE);
|
||||||
|
evas_object_size_hint_weight_set(panes_h, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||||
|
evas_object_size_hint_align_set(panes_h, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||||
|
evas_object_show(panes_h);
|
||||||
|
elm_panes_content_right_size_set(panes_h, 0.15);
|
||||||
|
elm_object_part_content_set(panes, "right", panes_h);
|
||||||
|
|
||||||
|
// add lower panel
|
||||||
|
panel = elm_box_add(win);
|
||||||
|
evas_object_size_hint_weight_set(panel, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||||
|
evas_object_size_hint_align_set(panel, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||||
|
evas_object_show(panel);
|
||||||
|
edi_logpanel_add(panel);
|
||||||
|
|
||||||
|
elm_object_part_content_set(panes_h, "bottom", panel);
|
||||||
|
|
||||||
|
// add main content
|
||||||
|
panel = elm_box_add(win);
|
||||||
|
evas_object_size_hint_weight_set(panel, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||||
|
evas_object_size_hint_align_set(panel, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||||
|
evas_object_show(panel);
|
||||||
|
edi_mainview_add(panel);
|
||||||
|
|
||||||
|
elm_object_part_content_set(panes_h, "top", panel);
|
||||||
|
|
||||||
// add file list
|
// add file list
|
||||||
panel = elm_box_add(win);
|
panel = elm_box_add(win);
|
||||||
evas_object_size_hint_weight_set(panel, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
evas_object_size_hint_weight_set(panel, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||||
|
@ -52,31 +80,6 @@ edi_content_setup(Evas_Object *win, const char *path)
|
||||||
elm_object_part_content_set(panes, "left", panel);
|
elm_object_part_content_set(panes, "left", panel);
|
||||||
elm_panes_content_left_size_set(panes, 0.2);
|
elm_panes_content_left_size_set(panes, 0.2);
|
||||||
|
|
||||||
// add panes
|
|
||||||
panes_h = elm_panes_add(win);
|
|
||||||
elm_panes_horizontal_set(panes_h, EINA_TRUE);
|
|
||||||
evas_object_size_hint_weight_set(panes_h, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
|
||||||
evas_object_size_hint_align_set(panes_h, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
|
||||||
evas_object_show(panes_h);
|
|
||||||
elm_panes_content_right_size_set(panes_h, 0.15);
|
|
||||||
elm_object_part_content_set(panes, "right", panes_h);
|
|
||||||
|
|
||||||
// add main content
|
|
||||||
panel = elm_box_add(win);
|
|
||||||
evas_object_size_hint_weight_set(panel, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
|
||||||
evas_object_size_hint_align_set(panel, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
|
||||||
evas_object_show(panel);
|
|
||||||
edi_mainview_add(panel);
|
|
||||||
|
|
||||||
elm_object_part_content_set(panes_h, "top", panel);
|
|
||||||
|
|
||||||
// add lower panel
|
|
||||||
txt = elm_label_add(win);
|
|
||||||
elm_object_text_set(txt, "Info");
|
|
||||||
evas_object_size_hint_weight_set(txt, EVAS_HINT_EXPAND, 0.1);
|
|
||||||
evas_object_size_hint_align_set(txt, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
|
||||||
evas_object_show(txt);
|
|
||||||
elm_object_part_content_set(panes_h, "bottom", txt);
|
|
||||||
|
|
||||||
evas_object_show(panes);
|
evas_object_show(panes);
|
||||||
return panes;
|
return panes;
|
||||||
|
@ -230,6 +233,7 @@ edi_win_setup(const char *path)
|
||||||
evas_object_size_hint_align_set(content, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
evas_object_size_hint_align_set(content, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
||||||
elm_box_pack_end(vbx, content);
|
elm_box_pack_end(vbx, content);
|
||||||
|
|
||||||
|
ERR("Loaded project at %s", path);
|
||||||
evas_object_resize(win, 560, 420);
|
evas_object_resize(win, 560, 420);
|
||||||
evas_object_show(win);
|
evas_object_show(win);
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,29 @@
|
||||||
#ifndef EDI_PRIVATE_H_
|
#ifndef EDI_PRIVATE_H_
|
||||||
# define EDI_PRIVATE_H_
|
# define EDI_PRIVATE_H_
|
||||||
|
|
||||||
|
extern int _edi_lib_log_dom;
|
||||||
|
|
||||||
|
#ifdef CRIT
|
||||||
|
# undef CRIT
|
||||||
|
#endif
|
||||||
|
#define CRIT(...) EINA_LOG_DOM_CRIT(_edi_lib_log_dom, __VA_ARGS__)
|
||||||
|
#ifdef ERR
|
||||||
|
# undef ERR
|
||||||
|
#endif
|
||||||
|
#define ERR(...) EINA_LOG_DOM_ERR(_edi_lib_log_dom, __VA_ARGS__)
|
||||||
|
#ifdef WRN
|
||||||
|
# undef WRN
|
||||||
|
#endif
|
||||||
|
#define WRN(...) EINA_LOG_DOM_WARN(_edi_lib_log_dom, __VA_ARGS__)
|
||||||
|
#ifdef INF
|
||||||
|
# undef INF
|
||||||
|
#endif
|
||||||
|
#define INF(...) EINA_LOG_DOM_INFO(_edi_lib_log_dom, __VA_ARGS__)
|
||||||
|
#ifdef DBG
|
||||||
|
# undef DBG
|
||||||
|
#endif
|
||||||
|
#define DBG(...) EINA_LOG_DOM_DBG(_edi_lib_log_dom, __VA_ARGS__)
|
||||||
|
|
||||||
#define EDI_CONTENT_AUTOSAVE EINA_TRUE
|
#define EDI_CONTENT_AUTOSAVE EINA_TRUE
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue