2014-04-27 08:57:47 -07:00
|
|
|
#ifdef HAVE_CONFIG_H
|
|
|
|
# include "config.h"
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#define BUFFER_SIZE 1024
|
|
|
|
|
2015-02-14 15:14:06 -08:00
|
|
|
#define _EDI_CONSOLE_ERROR "err"
|
|
|
|
#define _EDI_SUITE_FAILED "failed"
|
|
|
|
#define _EDI_SUITE_PASSED "passed"
|
|
|
|
|
2014-04-27 08:57:47 -07:00
|
|
|
#include <Eina.h>
|
|
|
|
#include <Ecore.h>
|
2014-11-18 13:11:10 -08:00
|
|
|
#include <Elm_Code.h>
|
2014-03-16 09:01:35 -07:00
|
|
|
#include <Elementary.h>
|
|
|
|
#include <Elementary_Cursor.h>
|
|
|
|
#include <regex.h>
|
2014-04-27 08:57:47 -07:00
|
|
|
|
|
|
|
#include "edi_consolepanel.h"
|
2014-09-13 08:48:16 -07:00
|
|
|
#include "mainview/edi_mainview.h"
|
2014-12-01 14:54:17 -08:00
|
|
|
#include "edi_config.h"
|
2014-04-27 08:57:47 -07:00
|
|
|
|
|
|
|
#include "edi_private.h"
|
|
|
|
|
2014-03-16 09:01:35 -07:00
|
|
|
static const char *_current_dir = NULL;
|
2015-01-29 16:08:12 -08:00
|
|
|
static const char *_current_test_dir = NULL;
|
2014-04-27 08:57:47 -07:00
|
|
|
|
2015-01-10 09:12:52 -08:00
|
|
|
static unsigned int _edi_strlen_current_dir;
|
2014-11-18 13:11:10 -08:00
|
|
|
static int _edi_test_count;
|
|
|
|
static int _edi_test_pass;
|
|
|
|
static int _edi_test_fail;
|
|
|
|
|
2015-01-28 14:40:49 -08:00
|
|
|
static Elm_Code *_edi_test_code, *_edi_console_code;
|
2014-11-18 13:11:10 -08:00
|
|
|
static void _edi_test_line_callback(const char *content);
|
|
|
|
|
2015-01-28 14:40:49 -08:00
|
|
|
static Eina_Bool
|
|
|
|
_edi_consolepanel_startswith_location(const char *line)
|
2014-03-16 09:01:35 -07:00
|
|
|
{
|
|
|
|
regex_t regex;
|
|
|
|
int ret;
|
|
|
|
|
2015-01-29 16:08:12 -08:00
|
|
|
regcomp(®ex, "^[^/].*:[0-9]*:[0-9]*[ :]", 0);
|
2014-03-16 09:01:35 -07:00
|
|
|
ret = !regexec(®ex, line, 0, NULL, 0);
|
|
|
|
|
|
|
|
regfree(®ex);
|
|
|
|
return ret;
|
|
|
|
}
|
|
|
|
|
2015-01-28 14:40:49 -08:00
|
|
|
static char *
|
2015-01-29 16:08:12 -08:00
|
|
|
_edi_consolepanel_extract_location(const char *line, const char *dir, int dirlen)
|
2014-03-16 09:01:35 -07:00
|
|
|
{
|
2015-01-28 14:40:49 -08:00
|
|
|
char *path;
|
|
|
|
const char *pos;
|
|
|
|
int file_len, length;
|
2014-03-16 09:01:35 -07:00
|
|
|
|
2015-01-29 16:08:12 -08:00
|
|
|
pos = strstr(line, ":F:");
|
|
|
|
if (!pos)
|
|
|
|
pos = strstr(line, ":P:");
|
|
|
|
if (!pos)
|
|
|
|
pos = strstr(line, " ");
|
2015-01-28 14:40:49 -08:00
|
|
|
file_len = strlen(line) - strlen(pos);
|
|
|
|
|
2015-01-29 16:08:12 -08:00
|
|
|
length = dirlen + file_len + 2;
|
2015-01-28 14:40:49 -08:00
|
|
|
path = malloc(sizeof(char) * length);
|
2015-01-29 16:08:12 -08:00
|
|
|
snprintf(path, dirlen + 2, "%s/", dir);
|
|
|
|
snprintf(path + dirlen + 1, file_len + 1, "%s", line);
|
2014-03-16 09:01:35 -07:00
|
|
|
|
2015-01-28 14:40:49 -08:00
|
|
|
return path;
|
2014-03-16 09:01:35 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
static void _edi_consolepanel_parse_directory(const char *line)
|
|
|
|
{
|
|
|
|
const char *pos;
|
|
|
|
|
2014-11-25 15:17:29 -08:00
|
|
|
pos = strstr(line, "Entering directory ");
|
2014-03-16 09:01:35 -07:00
|
|
|
if (pos)
|
|
|
|
{
|
|
|
|
if (_current_dir)
|
|
|
|
eina_stringshare_del(_current_dir);
|
|
|
|
|
2015-01-15 14:52:15 -08:00
|
|
|
_edi_strlen_current_dir = strlen(pos) - 21;
|
|
|
|
_current_dir = eina_stringshare_add_length(pos + 20, _edi_strlen_current_dir);
|
2014-03-16 09:01:35 -07:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2015-01-28 14:40:49 -08:00
|
|
|
static Eina_Bool
|
2015-02-21 06:04:55 -08:00
|
|
|
_edi_consolepanel_clicked_cb(void *data EINA_UNUSED, Eo *obj EINA_UNUSED,
|
2015-01-28 14:40:49 -08:00
|
|
|
const Eo_Event_Description *desc EINA_UNUSED, void *event_info)
|
2014-04-27 13:01:30 -07:00
|
|
|
{
|
2015-01-28 14:40:49 -08:00
|
|
|
Edi_Path_Options *options;
|
|
|
|
Elm_Code_Line *line;
|
2015-02-21 06:04:55 -08:00
|
|
|
const char *content, *parentdir;
|
2015-01-28 14:40:49 -08:00
|
|
|
char *path, *terminated;
|
2015-03-08 03:14:02 -07:00
|
|
|
unsigned int length;
|
2014-04-27 08:57:47 -07:00
|
|
|
|
2015-01-28 14:40:49 -08:00
|
|
|
line = (Elm_Code_Line *)event_info;
|
2015-02-22 12:07:08 -08:00
|
|
|
content = elm_code_line_text_get(line, &length);
|
2014-04-27 08:57:47 -07:00
|
|
|
|
2015-01-28 14:40:49 -08:00
|
|
|
terminated = malloc(sizeof(char) * (length + 1));
|
2015-02-07 16:55:51 -08:00
|
|
|
snprintf(terminated, length, "%s", content);
|
2014-03-16 09:01:35 -07:00
|
|
|
|
2015-01-28 14:40:49 -08:00
|
|
|
if (_edi_consolepanel_startswith_location(terminated))
|
2014-03-16 09:01:35 -07:00
|
|
|
{
|
2015-02-21 06:04:55 -08:00
|
|
|
parentdir = (const char *)line->data;
|
|
|
|
path = _edi_consolepanel_extract_location(terminated, parentdir, strlen(parentdir));
|
2015-01-29 16:08:12 -08:00
|
|
|
|
2015-01-28 14:40:49 -08:00
|
|
|
if (strstr(path, edi_project_get()) == path)
|
2014-03-16 09:01:35 -07:00
|
|
|
{
|
2015-01-28 14:40:49 -08:00
|
|
|
options = edi_path_options_create(path);
|
|
|
|
edi_mainview_open(options);
|
2014-03-16 09:01:35 -07:00
|
|
|
}
|
|
|
|
}
|
2014-04-27 13:01:30 -07:00
|
|
|
|
2015-01-28 14:40:49 -08:00
|
|
|
free(terminated);
|
|
|
|
return EINA_TRUE;
|
|
|
|
}
|
2014-04-27 13:01:30 -07:00
|
|
|
|
2015-02-14 15:14:06 -08:00
|
|
|
static Eina_Bool
|
|
|
|
_edi_consolepanel_line_cb(void *data EINA_UNUSED, Eo *obj EINA_UNUSED,
|
|
|
|
const Eo_Event_Description *desc EINA_UNUSED, void *event_info)
|
|
|
|
{
|
|
|
|
Elm_Code_Line *line;
|
|
|
|
|
|
|
|
line = (Elm_Code_Line *)event_info;
|
|
|
|
|
|
|
|
if (line->data)
|
|
|
|
line->status = ELM_CODE_STATUS_TYPE_ERROR;
|
|
|
|
|
|
|
|
return EO_CALLBACK_CONTINUE;
|
|
|
|
}
|
|
|
|
|
2015-01-28 14:40:49 -08:00
|
|
|
static void _edi_consolepanel_append_line_type(const char *line, Eina_Bool err)
|
|
|
|
{
|
|
|
|
_edi_consolepanel_parse_directory(line);
|
|
|
|
|
2015-02-25 15:29:31 -08:00
|
|
|
elm_code_file_line_append(_edi_console_code->file, line, strlen(line),
|
|
|
|
err && _current_dir ? strdup(_current_dir) : NULL);
|
2014-11-18 13:11:10 -08:00
|
|
|
|
|
|
|
_edi_test_line_callback(line);
|
2014-04-27 08:57:47 -07:00
|
|
|
}
|
|
|
|
|
2015-01-10 09:43:12 -08:00
|
|
|
void edi_consolepanel_append_line(const char *line)
|
2014-04-27 08:57:47 -07:00
|
|
|
{
|
|
|
|
_edi_consolepanel_append_line_type(line, EINA_FALSE);
|
|
|
|
}
|
|
|
|
|
2015-01-10 09:43:12 -08:00
|
|
|
void edi_consolepanel_append_error_line(const char *line)
|
2014-04-27 08:57:47 -07:00
|
|
|
{
|
|
|
|
_edi_consolepanel_append_line_type(line, EINA_TRUE);
|
|
|
|
}
|
|
|
|
|
2015-01-10 09:43:12 -08:00
|
|
|
void edi_consolepanel_clear()
|
2014-04-27 08:57:47 -07:00
|
|
|
{
|
2015-01-28 14:40:49 -08:00
|
|
|
elm_code_file_clear(_edi_console_code->file);
|
2014-11-18 13:11:10 -08:00
|
|
|
elm_code_file_clear(_edi_test_code->file);
|
2015-01-29 16:08:12 -08:00
|
|
|
|
|
|
|
_edi_test_count = _edi_test_pass = _edi_test_fail = 0;
|
2014-04-27 08:57:47 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
static Eina_Bool
|
2014-05-19 11:19:12 -07:00
|
|
|
_exe_data(void *d EINA_UNUSED, int t EINA_UNUSED, void *event_info)
|
2014-04-27 08:57:47 -07:00
|
|
|
{
|
2014-05-19 11:19:12 -07:00
|
|
|
Ecore_Exe_Event_Data *ev;
|
2014-04-27 08:57:47 -07:00
|
|
|
Ecore_Exe_Event_Data_Line *el;
|
|
|
|
|
2014-05-19 11:19:12 -07:00
|
|
|
ev = event_info;
|
2014-04-27 08:57:47 -07:00
|
|
|
for (el = ev->lines; el && el->line; el++)
|
|
|
|
edi_consolepanel_append_line(el->line);
|
|
|
|
|
|
|
|
return ECORE_CALLBACK_RENEW;
|
|
|
|
}
|
|
|
|
|
|
|
|
static Eina_Bool
|
2014-05-19 11:19:12 -07:00
|
|
|
_exe_error(void *d EINA_UNUSED, int t EINA_UNUSED, void *event_info)
|
2014-04-27 08:57:47 -07:00
|
|
|
{
|
2014-05-19 11:19:12 -07:00
|
|
|
Ecore_Exe_Event_Data *ev;
|
2014-04-27 08:57:47 -07:00
|
|
|
Ecore_Exe_Event_Data_Line *el;
|
|
|
|
|
2014-05-19 11:19:12 -07:00
|
|
|
ev = event_info;
|
2014-04-27 08:57:47 -07:00
|
|
|
for (el = ev->lines; el && el->line; el++)
|
|
|
|
edi_consolepanel_append_error_line(el->line);
|
|
|
|
|
|
|
|
return ECORE_CALLBACK_RENEW;
|
|
|
|
}
|
|
|
|
|
2015-01-29 16:08:12 -08:00
|
|
|
static void
|
|
|
|
_edi_test_output_suite(int count, int pass, int fail)
|
|
|
|
{
|
|
|
|
char *line;
|
|
|
|
const char *format = "Total pass %d (%d%%), fail %d";
|
|
|
|
int linemax, percent;
|
|
|
|
|
|
|
|
linemax = strlen(format) - 6 + 30;
|
|
|
|
line = malloc(sizeof(char) * linemax);
|
|
|
|
|
|
|
|
percent = 0;
|
|
|
|
if (count > 0)
|
|
|
|
percent = (int) ((pass / (double) count) * 100);
|
|
|
|
|
|
|
|
snprintf(line, linemax, format, pass, percent, fail);
|
2015-02-14 15:14:06 -08:00
|
|
|
elm_code_file_line_append(_edi_test_code->file, line, strlen(line), (fail > 0) ? _EDI_SUITE_FAILED : _EDI_SUITE_PASSED);
|
2015-01-29 16:08:12 -08:00
|
|
|
free(line);
|
|
|
|
}
|
|
|
|
|
|
|
|
static Eina_Bool
|
|
|
|
_edi_test_line_contains(const char *start, unsigned int length, const char *needle)
|
2014-11-19 14:39:00 -08:00
|
|
|
{
|
|
|
|
unsigned int needlelen, c;
|
|
|
|
char *ptr;
|
|
|
|
|
|
|
|
ptr = (char *) start;
|
|
|
|
needlelen = strlen(needle);
|
2015-03-21 14:55:28 -07:00
|
|
|
if (needlelen > length)
|
|
|
|
return EINA_FALSE;
|
2014-11-19 14:39:00 -08:00
|
|
|
|
|
|
|
for (c = 0; c < length - strlen(needle); c++)
|
|
|
|
{
|
|
|
|
if (!strncmp(ptr, needle, needlelen))
|
|
|
|
return EINA_TRUE;
|
|
|
|
|
|
|
|
ptr++;
|
|
|
|
}
|
|
|
|
|
|
|
|
return EINA_FALSE;
|
|
|
|
}
|
|
|
|
|
2015-01-29 16:08:12 -08:00
|
|
|
static void
|
|
|
|
_edi_test_line_parse_suite(const char *path)
|
2014-11-18 13:11:10 -08:00
|
|
|
{
|
|
|
|
Eina_File *file;
|
|
|
|
Eina_File_Line *line;
|
|
|
|
Eina_Iterator *it;
|
2015-01-29 16:08:12 -08:00
|
|
|
char logfile[PATH_MAX], logpath[PATH_MAX];
|
2014-11-18 13:11:10 -08:00
|
|
|
int pathlength;
|
|
|
|
|
|
|
|
pathlength = strlen(path);
|
|
|
|
snprintf(logfile, pathlength + 4 + 1, "%s.log", path);
|
2015-01-29 16:08:12 -08:00
|
|
|
realpath(logfile, logpath);
|
|
|
|
if (_current_test_dir)
|
|
|
|
eina_stringshare_del(_current_test_dir);
|
|
|
|
_current_test_dir = eina_stringshare_add(dirname(logpath));
|
2014-11-18 13:11:10 -08:00
|
|
|
|
|
|
|
file = eina_file_open(logfile, EINA_FALSE);
|
|
|
|
|
|
|
|
it = eina_file_map_lines(file);
|
|
|
|
EINA_ITERATOR_FOREACH(it, line)
|
|
|
|
{
|
2014-11-19 14:39:00 -08:00
|
|
|
if (_edi_test_line_contains(line->start, line->length, ":P:"))
|
2015-01-29 16:08:12 -08:00
|
|
|
{
|
|
|
|
_edi_test_count++;
|
|
|
|
_edi_test_pass++;
|
|
|
|
continue;
|
|
|
|
}
|
2014-11-19 14:39:00 -08:00
|
|
|
else if (_edi_test_line_contains(line->start, line->length, ":F:"))
|
2015-01-29 16:08:12 -08:00
|
|
|
{
|
|
|
|
_edi_test_count++;
|
|
|
|
_edi_test_fail++;
|
2015-02-21 06:04:55 -08:00
|
|
|
elm_code_file_line_append(_edi_test_code->file, line->start, line->length, strdup(_current_test_dir));
|
2015-01-29 16:08:12 -08:00
|
|
|
}
|
|
|
|
else if (_edi_test_line_contains(line->start, line->length, "Running"))
|
|
|
|
{
|
|
|
|
_edi_test_count = _edi_test_pass = _edi_test_fail = 0;
|
2015-02-14 15:14:06 -08:00
|
|
|
elm_code_file_line_append(_edi_test_code->file, line->start, line->length, NULL);
|
2015-01-29 16:08:12 -08:00
|
|
|
}
|
2014-11-18 13:11:10 -08:00
|
|
|
}
|
|
|
|
eina_iterator_free(it);
|
2014-11-19 14:39:00 -08:00
|
|
|
eina_file_close(file);
|
2014-11-18 13:11:10 -08:00
|
|
|
|
2015-01-29 16:08:12 -08:00
|
|
|
if (_edi_test_count > 0)
|
|
|
|
{
|
|
|
|
_edi_test_output_suite(_edi_test_count, _edi_test_pass, _edi_test_fail);
|
|
|
|
}
|
2014-11-18 13:11:10 -08:00
|
|
|
}
|
|
|
|
|
2015-02-14 15:14:06 -08:00
|
|
|
static Eina_Bool
|
|
|
|
_edi_testpanel_line_cb(void *data EINA_UNUSED, Eo *obj EINA_UNUSED,
|
|
|
|
const Eo_Event_Description *desc EINA_UNUSED, void *event_info)
|
|
|
|
{
|
|
|
|
Elm_Code_Line *line;
|
|
|
|
|
|
|
|
line = (Elm_Code_Line *)event_info;
|
|
|
|
|
|
|
|
if (!line->data)
|
|
|
|
return EO_CALLBACK_CONTINUE;
|
|
|
|
|
|
|
|
if (!strcmp(_EDI_SUITE_PASSED, line->data))
|
|
|
|
line->status = ELM_CODE_STATUS_TYPE_PASSED;
|
2015-03-21 14:55:28 -07:00
|
|
|
else
|
2015-02-14 15:14:06 -08:00
|
|
|
line->status = ELM_CODE_STATUS_TYPE_FAILED;
|
|
|
|
|
|
|
|
return EO_CALLBACK_CONTINUE;
|
|
|
|
}
|
|
|
|
|
2014-11-18 13:11:10 -08:00
|
|
|
static void _edi_test_line_callback(const char *content)
|
|
|
|
{
|
|
|
|
if (!content)
|
|
|
|
return;
|
|
|
|
|
|
|
|
if (content[0] == '#')
|
|
|
|
{
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!strncmp(content, "PASS:", 5))
|
|
|
|
{
|
2015-01-29 16:08:12 -08:00
|
|
|
_edi_test_line_parse_suite(content + 6);
|
2014-11-18 13:11:10 -08:00
|
|
|
}
|
|
|
|
else if (!strncmp(content, "FAIL:", 5))
|
|
|
|
{
|
2015-01-29 16:08:12 -08:00
|
|
|
_edi_test_line_parse_suite(content + 6);
|
2014-11-18 13:11:10 -08:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2015-03-08 14:07:02 -07:00
|
|
|
static Eina_Bool
|
|
|
|
_edi_consolepanel_config_changed(void *data EINA_UNUSED, int type EINA_UNUSED, void *event EINA_UNUSED)
|
|
|
|
{
|
|
|
|
Eina_List *item;
|
|
|
|
Eo *widget;
|
|
|
|
|
|
|
|
EINA_LIST_FOREACH(_edi_console_code->widgets, item, widget)
|
|
|
|
{
|
|
|
|
eo_do(widget,
|
2015-05-16 01:56:39 -07:00
|
|
|
elm_code_widget_font_size_set(_edi_project_config->font.size));
|
2015-03-08 14:07:02 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
EINA_LIST_FOREACH(_edi_test_code->widgets, item, widget)
|
|
|
|
{
|
|
|
|
eo_do(widget,
|
2015-05-16 01:56:39 -07:00
|
|
|
elm_code_widget_font_size_set(_edi_project_config->font.size));
|
2015-03-08 14:07:02 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
return ECORE_CALLBACK_RENEW;
|
|
|
|
}
|
|
|
|
|
2015-01-10 09:43:12 -08:00
|
|
|
void edi_consolepanel_add(Evas_Object *parent)
|
2014-04-27 08:57:47 -07:00
|
|
|
{
|
2015-01-28 14:40:49 -08:00
|
|
|
Elm_Code *code;
|
|
|
|
Elm_Code_Widget *widget;
|
2014-04-27 08:57:47 -07:00
|
|
|
|
2015-01-28 14:40:49 -08:00
|
|
|
code = elm_code_create();
|
|
|
|
_edi_console_code = code;
|
2014-04-27 08:57:47 -07:00
|
|
|
|
2015-02-28 05:22:38 -08:00
|
|
|
widget = eo_add(ELM_CODE_WIDGET_CLASS, parent,
|
|
|
|
elm_code_widget_code_set(code));
|
2015-01-28 14:40:49 -08:00
|
|
|
eo_do(widget,
|
2015-05-16 01:56:39 -07:00
|
|
|
elm_code_widget_font_size_set(_edi_project_config->font.size),
|
2015-01-28 14:40:49 -08:00
|
|
|
elm_code_widget_gravity_set(0.0, 1.0),
|
2015-02-14 15:14:06 -08:00
|
|
|
eo_event_callback_add(&ELM_CODE_EVENT_LINE_LOAD_DONE, _edi_consolepanel_line_cb, NULL),
|
2015-01-28 14:40:49 -08:00
|
|
|
eo_event_callback_add(ELM_CODE_WIDGET_EVENT_LINE_CLICKED, _edi_consolepanel_clicked_cb, code));
|
2014-04-27 08:57:47 -07:00
|
|
|
|
2015-01-28 14:40:49 -08:00
|
|
|
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);
|
2014-04-27 08:57:47 -07:00
|
|
|
|
2015-01-28 14:40:49 -08:00
|
|
|
elm_box_pack_end(parent, widget);
|
2014-04-27 08:57:47 -07:00
|
|
|
|
2014-05-19 11:19:12 -07:00
|
|
|
ecore_event_handler_add(ECORE_EXE_EVENT_DATA, _exe_data, NULL);
|
|
|
|
ecore_event_handler_add(ECORE_EXE_EVENT_ERROR, _exe_error, NULL);
|
2015-03-08 14:07:02 -07:00
|
|
|
ecore_event_handler_add(EDI_EVENT_CONFIG_CHANGED, _edi_consolepanel_config_changed, NULL);
|
2014-04-27 08:57:47 -07:00
|
|
|
}
|
2014-11-18 13:11:10 -08:00
|
|
|
|
2015-01-10 09:43:12 -08:00
|
|
|
void edi_testpanel_add(Evas_Object *parent)
|
2014-11-18 13:11:10 -08:00
|
|
|
{
|
|
|
|
Elm_Code *code;
|
2015-01-26 11:05:34 -08:00
|
|
|
Elm_Code_Widget *widget;
|
2014-11-18 13:11:10 -08:00
|
|
|
|
|
|
|
code = elm_code_create();
|
|
|
|
_edi_test_code = code;
|
|
|
|
|
2015-02-28 05:22:38 -08:00
|
|
|
widget = eo_add(ELM_CODE_WIDGET_CLASS, parent,
|
|
|
|
elm_code_widget_code_set(code));
|
2015-01-26 06:00:37 -08:00
|
|
|
eo_do(widget,
|
2015-05-16 01:56:39 -07:00
|
|
|
elm_code_widget_font_size_set(_edi_project_config->font.size),
|
2015-01-29 16:08:12 -08:00
|
|
|
elm_code_widget_gravity_set(0.0, 1.0),
|
2015-02-14 15:14:06 -08:00
|
|
|
eo_event_callback_add(&ELM_CODE_EVENT_LINE_LOAD_DONE, _edi_testpanel_line_cb, NULL),
|
2015-01-29 16:08:12 -08:00
|
|
|
eo_event_callback_add(ELM_CODE_WIDGET_EVENT_LINE_CLICKED, _edi_consolepanel_clicked_cb, code));
|
2014-11-18 13:11:10 -08:00
|
|
|
|
|
|
|
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);
|
|
|
|
|
2014-11-22 07:56:16 -08:00
|
|
|
elm_box_pack_end(parent, widget);
|
2014-11-18 13:11:10 -08:00
|
|
|
}
|
|
|
|
|