forked from enlightenment/edi
Adding some initial concept of status flags for a line and default enum to start working on color pallette in our widget. Load enough colors to provide these statuses and hook into the EDI log panel implementation
This commit is contained in:
parent
a28e199c72
commit
4be9198da5
|
@ -3,6 +3,21 @@
|
|||
|
||||
#include <Eina.h>
|
||||
|
||||
typedef enum {
|
||||
ELM_CODE_STATUS_TYPE_DEFAULT = 0,
|
||||
ELM_CODE_STATUS_TYPE_ERROR,
|
||||
|
||||
ELM_CODE_STATUS_TYPE_COUNT
|
||||
} Elm_Code_Status_Type;
|
||||
|
||||
|
||||
typedef enum {
|
||||
ELM_CODE_TOKEN_TYPE_DEFAULT = ELM_CODE_STATUS_TYPE_COUNT,
|
||||
|
||||
ELM_CODE_TOKEN_TYPE_COUNT
|
||||
} Elm_Code_Token_Type;
|
||||
|
||||
|
||||
#include "elm_code_file.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
|
|
@ -15,6 +15,7 @@ static Elm_Code_Line *_elm_code_blank_create(int line)
|
|||
if (!ecl) return NULL;
|
||||
|
||||
ecl->number = line;
|
||||
ecl->status = ELM_CODE_STATUS_TYPE_DEFAULT;
|
||||
return ecl;
|
||||
}
|
||||
|
||||
|
@ -120,12 +121,16 @@ EAPI void elm_code_file_line_append(Elm_Code_File *file, const char *line)
|
|||
_elm_code_file_line_append_data(file, line, strlen(line), row+1);
|
||||
}
|
||||
|
||||
EAPI char *elm_code_file_line_content_get(Elm_Code_File *file, int number)
|
||||
EAPI Elm_Code_Line *elm_code_file_line_get(Elm_Code_File *file, unsigned int number)
|
||||
{
|
||||
return eina_list_nth(file->lines, number - 1);
|
||||
}
|
||||
|
||||
EAPI char *elm_code_file_line_content_get(Elm_Code_File *file, unsigned int number)
|
||||
{
|
||||
Elm_Code_Line *line;
|
||||
|
||||
line = eina_list_nth(file->lines, number - 1);
|
||||
printf("N %d\n", number);
|
||||
line = elm_code_file_line_get(file, number);
|
||||
|
||||
if (!line)
|
||||
return NULL;
|
||||
|
|
|
@ -3,6 +3,8 @@
|
|||
|
||||
#include <Eina.h>
|
||||
|
||||
#include "elm_code_common.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
@ -17,6 +19,8 @@ typedef struct _Elm_Code_Line
|
|||
char *content;
|
||||
unsigned int number;
|
||||
|
||||
Elm_Code_Status_Type status;
|
||||
|
||||
} Elm_Code_Line;
|
||||
|
||||
typedef struct _Elm_Code_File
|
||||
|
@ -64,7 +68,9 @@ EAPI unsigned int elm_code_file_lines_get(Elm_Code_File *file);
|
|||
|
||||
EAPI void elm_code_file_line_append(Elm_Code_File *file, const char *line);
|
||||
|
||||
EAPI char *elm_code_file_line_content_get(Elm_Code_File *file, int line);
|
||||
EAPI Elm_Code_Line *elm_code_file_line_get(Elm_Code_File *file, unsigned int line);
|
||||
|
||||
EAPI char *elm_code_file_line_content_get(Elm_Code_File *file, unsigned int line);
|
||||
|
||||
/**
|
||||
* @}
|
||||
|
|
|
@ -10,8 +10,9 @@
|
|||
|
||||
EAPI void elm_code_widget_fill(Evas_Object *o, Elm_Code *code)
|
||||
{
|
||||
Elm_Code_Line *line;
|
||||
Evas_Textgrid_Cell *cells;
|
||||
const char *line, *chr;
|
||||
const char *content, *chr;
|
||||
unsigned int length;
|
||||
int w, h, cw, ch;
|
||||
unsigned int x, y;
|
||||
|
@ -24,17 +25,18 @@ EAPI void elm_code_widget_fill(Evas_Object *o, Elm_Code *code)
|
|||
|
||||
for (y = 1; y <= elm_code_file_lines_get(code->file); y++)
|
||||
{
|
||||
line = elm_code_file_line_content_get(code->file, y);
|
||||
chr = line;
|
||||
line = elm_code_file_line_get(code->file, y);
|
||||
content = elm_code_file_line_content_get(code->file, y);
|
||||
chr = content;
|
||||
|
||||
cells = evas_object_textgrid_cellrow_get(o, y - 1);
|
||||
length = strlen(line);
|
||||
length = strlen(content);
|
||||
|
||||
for (x = 0; x < (unsigned int) w && x < length; x++)
|
||||
{
|
||||
cells[x].codepoint = *chr;
|
||||
cells[x].bg = 0;
|
||||
cells[x].fg = 1;
|
||||
cells[x].bg = line->status;
|
||||
cells[x].fg = ELM_CODE_TOKEN_TYPE_DEFAULT;
|
||||
|
||||
chr++;
|
||||
}
|
||||
|
@ -59,9 +61,14 @@ EAPI Evas_Object *elm_code_widget_add(Evas_Object *parent, Elm_Code *code)
|
|||
|
||||
evas_object_textgrid_font_set(o, "Mono", 10 * elm_config_scale_get());
|
||||
|
||||
evas_object_textgrid_palette_set(o, EVAS_TEXTGRID_PALETTE_STANDARD, 0,
|
||||
// setup status colors
|
||||
evas_object_textgrid_palette_set(o, EVAS_TEXTGRID_PALETTE_STANDARD, ELM_CODE_STATUS_TYPE_DEFAULT,
|
||||
54, 54, 54, 255);
|
||||
evas_object_textgrid_palette_set(o, EVAS_TEXTGRID_PALETTE_STANDARD, 1,
|
||||
evas_object_textgrid_palette_set(o, EVAS_TEXTGRID_PALETTE_STANDARD, ELM_CODE_STATUS_TYPE_ERROR,
|
||||
205, 54, 54, 255);
|
||||
|
||||
// setup token colors
|
||||
evas_object_textgrid_palette_set(o, EVAS_TEXTGRID_PALETTE_STANDARD, ELM_CODE_TOKEN_TYPE_DEFAULT,
|
||||
205, 205, 205, 255);
|
||||
|
||||
evas_object_event_callback_add(o, EVAS_CALLBACK_RESIZE, _elm_code_widget_resize_cb, code);
|
||||
|
|
|
@ -21,7 +21,8 @@ void print_cb(const Eina_Log_Domain *domain,
|
|||
EINA_UNUSED void *data,
|
||||
va_list args)
|
||||
{
|
||||
unsigned int printed, buffer_len = 512;
|
||||
Elm_Code_Line *code_line;
|
||||
unsigned int printed, line_count, buffer_len = 512;
|
||||
char buffer [buffer_len];
|
||||
|
||||
printed = snprintf(buffer, buffer_len, "%s:%s:%s (%d): ",
|
||||
|
@ -29,12 +30,13 @@ void print_cb(const Eina_Log_Domain *domain,
|
|||
vsnprintf(buffer + printed, buffer_len - printed, fmt, args);
|
||||
|
||||
elm_code_file_line_append(_elm_code->file, buffer);
|
||||
/*
|
||||
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);
|
||||
*/
|
||||
{
|
||||
line_count = elm_code_file_lines_get(_elm_code->file);
|
||||
code_line = elm_code_file_line_get(_elm_code->file, line_count);
|
||||
|
||||
code_line->status = ELM_CODE_STATUS_TYPE_ERROR;
|
||||
}
|
||||
}
|
||||
|
||||
void edi_logpanel_add(Evas_Object *parent)
|
||||
|
|
Loading…
Reference in New Issue