From: <enl...@li...> - 2005-02-11 13:15:06
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/enterminus/src/bin Modified Files: term.c Log Message: massive speed up =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/enterminus/src/bin/term.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -3 -r1.8 -r1.9 --- term.c 8 Feb 2005 11:45:58 -0000 1.8 +++ term.c 11 Feb 2005 13:14:55 -0000 1.9 @@ -208,7 +208,7 @@ term->font.height = term_font_get_height(term); term->title = NULL; evas_font_path_append(term->evas, term->font.path); - ecore_timer_add(0.1, term_timers, term); + ecore_timer_add(0.01, term_timers, term); execute_command(term);//, argc, argv); term->cmd_fd.ecore = ecore_main_fd_handler_add(term->cmd_fd.sys, ECORE_FD_READ, |
From: <enl...@li...> - 2005-02-11 23:28:11
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/enterminus/src/bin Modified Files: smart.c ui.c Log Message: 1- Fixed object disappearence when we resize 2- General cleanups =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/enterminus/src/bin/smart.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- smart.c 11 Feb 2005 13:07:56 -0000 1.2 +++ smart.c 11 Feb 2005 23:27:30 -0000 1.3 @@ -126,6 +126,9 @@ void term_smart_move(Evas_Object *o, Evas_Coord x, Evas_Coord y) { } +/* TODO: + * We need to show evas objects and set their layers after a resize + */ void term_smart_resize(Evas_Object *o, Evas_Coord w, Evas_Coord h) { int x, y, old_size; int num_chars_w, num_chars_h; @@ -188,7 +191,7 @@ for(x = 0; x <= term->tcanvas->rows * term->tcanvas->scroll_size; x++) term->tcanvas->changed_rows[x] = 0; - if((term->grid = realloc(term->grid, term->tcanvas->cols * + if((term->grid = realloc(term->grid, term->tcanvas->cols * term->tcanvas->rows * sizeof(Term_EGlyph))) == NULL) { fprintf(stderr,"Fatal: Couldnt not reallocate evas grid!\n"); @@ -208,7 +211,6 @@ } term_term_bg_set(term, DATADIR"black.png"); - } void term_smart_show(Evas_Object *o) { =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/enterminus/src/bin/ui.c,v retrieving revision 1.11 retrieving revision 1.12 diff -u -3 -r1.11 -r1.12 --- ui.c 11 Feb 2005 13:07:56 -0000 1.11 +++ ui.c 11 Feb 2005 23:27:40 -0000 1.12 @@ -30,7 +30,7 @@ evas_object_layer_set(term->bg, 0); evas_object_image_fill_set(term->bg, 0, 0, term->w, term->h); evas_object_focus_set(term->bg, 1); - + evas_object_show(term->bg); } /* see what changed chars we have, redraw */ @@ -117,8 +117,10 @@ break; } - + /* The Layer setting and showing functions need to go away */ + evas_object_layer_set(gl->text,1); evas_object_move(gl->text, j*term->font.width, i*term->font.height); + evas_object_show(gl->text); tgl->changed = 0; } if(i + term->tcanvas->scroll_region_start > (term->tcanvas->rows - 1)*term->tcanvas->scroll_size) { |
From: <enl...@li...> - 2005-02-18 21:59:21
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/enterminus/src/bin Modified Files: smart.c term.c term.h ui.c Log Message: fixed smart object show / hide / layer evas rectangles as bgs are VERY slow, or I'm totally treating them incorrectly. =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/enterminus/src/bin/smart.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- smart.c 11 Feb 2005 23:27:30 -0000 1.3 +++ smart.c 18 Feb 2005 21:59:04 -0000 1.4 @@ -127,7 +127,14 @@ } /* TODO: - * We need to show evas objects and set their layers after a resize + * We need to show evas objects and set their layers after a resize + * + * When we resize, if we dont clear the text (which is what we should + * do, not clear the text) and we just call a normal redraw, then all + * of out text will get shifted and we get a distorted looking term. + * We need to copy the old are, resize, and render it onto the canvas + * as it were without any distortions. We dont get that now because we + * set all the area to '\0' in our current method, hence, clearing it. */ void term_smart_resize(Evas_Object *o, Evas_Coord w, Evas_Coord h) { int x, y, old_size; @@ -168,6 +175,7 @@ } /* review this, do we need to subtract: + * We know that we need to subtract, but its segging when we do, fix. * (term->tcanvas->cols * term->tcanvas->rows * term->tcanvas->scroll_size) */ y = (term->tcanvas->cols * term->tcanvas->rows * term->tcanvas->scroll_size) @@ -204,6 +212,12 @@ for(x = y ; x <= term->tcanvas->cols * term->tcanvas->rows; x++) { gl = &term->grid[x]; gl->text = evas_object_text_add(term->evas); + evas_object_layer_set(gl->text, 2); + evas_object_show(gl->text); + gl->bg = evas_object_rectangle_add(term->evas); + evas_object_resize(gl->bg, term->font.width, term->font.height); + evas_object_color_set(gl->bg, 100, 50, 50, 150); + evas_object_layer_set(gl->bg, 1); } if(ioctl(term->cmd_fd.sys, TIOCSWINSZ, get_font_dim(term)) < 0) { @@ -223,7 +237,8 @@ for(i = 0; i < t->tcanvas->cols * t->tcanvas->rows; i++) { gl = &t->grid[i]; evas_object_show(gl->text); - evas_object_show(gl->bg); + /* Enabling this isnt really wise at this point, uber slowness */ + //evas_object_show(gl->bg); } } =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/enterminus/src/bin/term.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -3 -r1.9 -r1.10 --- term.c 11 Feb 2005 13:14:55 -0000 1.9 +++ term.c 18 Feb 2005 21:59:04 -0000 1.10 @@ -194,9 +194,9 @@ i < term->tcanvas->cols * term->tcanvas->rows; i++) { gl = &term->grid[i]; gl->text = evas_object_text_add(term->evas); - gl->bg = evas_object_text_add(term->evas); + gl->bg = evas_object_rectangle_add(term->evas); evas_object_layer_set(gl->text,2); - evas_object_layer_set(gl->text,1); + evas_object_layer_set(gl->bg,1); } term->bg = NULL; =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/enterminus/src/bin/term.h,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- term.h 11 Feb 2005 13:07:56 -0000 1.4 +++ term.h 18 Feb 2005 21:59:04 -0000 1.5 @@ -19,6 +19,8 @@ #include <Ecore_X.h> #include "config.h" +#define DEBUG 1 + #define NPAR 16 #define DATADIR PACKAGE_DATA_DIR"/" =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/enterminus/src/bin/ui.c,v retrieving revision 1.12 retrieving revision 1.13 diff -u -3 -r1.12 -r1.13 --- ui.c 11 Feb 2005 23:27:40 -0000 1.12 +++ ui.c 18 Feb 2005 21:59:04 -0000 1.13 @@ -85,7 +85,7 @@ c[0] = tgl->c; c[1] = '\0'; evas_object_text_text_set(gl->text, c); - + /* this is just temp, move it into its own function later */ switch(tgl->fg) { case 0: @@ -118,9 +118,12 @@ } /* The Layer setting and showing functions need to go away */ - evas_object_layer_set(gl->text,1); + //evas_object_layer_set(gl->text,2); evas_object_move(gl->text, j*term->font.width, i*term->font.height); - evas_object_show(gl->text); + //evas_object_show(gl->text); + //evas_object_layer_set(gl->bg,1); + evas_object_move(gl->bg, j*term->font.width, i*term->font.height); + //evas_object_show(gl->bg); tgl->changed = 0; } if(i + term->tcanvas->scroll_region_start > (term->tcanvas->rows - 1)*term->tcanvas->scroll_size) { @@ -230,7 +233,7 @@ if(y1 < 0) y1 = 0; if(y1 > term->tcanvas->rows) y1 = term->tcanvas->rows; if(x2 < 0) x2 = 0; if(x2 > term->tcanvas->cols) x2 = term->tcanvas->cols; if(y2 < 0) y2 = 0; if(y2 > term->tcanvas->rows) y2 = term->tcanvas->rows; - printf("Clearing: %d %d, %d %d\n",x1,y1+term->tcanvas->scroll_region_start,x2,y2+term->tcanvas->scroll_region_start); + DPRINT(("Clearing: %d %d, %d %d\n",x1,y1+term->tcanvas->scroll_region_start,x2,y2+term->tcanvas->scroll_region_start)); for(i = y1; i <= y2; i++) { for(j = x1; j <= x2; j++) { tgl = &term->tcanvas->grid[j + (term->tcanvas->cols * (i + term->tcanvas->scroll_region_start))]; |
From: <enl...@li...> - 2005-02-18 23:19:19
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/enterminus/src/bin Modified Files: enterm.c handlers.c smart.c term.h Log Message: 1) added TERM_EVENT_TITLE_CHANGE 2) propagated ecore event from term_smart to enterm =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/enterminus/src/bin/enterm.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- enterm.c 8 Feb 2005 11:45:58 -0000 1.1 +++ enterm.c 18 Feb 2005 23:19:06 -0000 1.2 @@ -1,4 +1,5 @@ #include "term.h" +#include "enterm.h" void enterm_init(Ecore_Evas *ee, Evas_Object *term) { @@ -9,6 +10,8 @@ ecore_evas_callback_resize_set(ee, enterm_cb_resize); ecore_x_window_prop_step_size_set(ecore_evas_software_x11_window_get(ee), t->font.width, t->font.height); + ecore_event_handler_add(TERM_EVENT_TITLE_CHANGE, + enterm_cb_title_change, ee); ecore_evas_resize(ee, t->w, t->h); } @@ -22,3 +25,13 @@ term_smart_resize(term , w, h); } + +void enterm_cb_title_change(void *data, int type, void *ev) { + Term_Event_Title_Change *e; + Ecore_Evas *ee; + + e = ev; + ee = data; + ecore_x_window_prop_title_set(ecore_evas_software_x11_window_get(ee), + e->title); +} =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/enterminus/src/bin/handlers.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -3 -r1.5 -r1.6 --- handlers.c 8 Feb 2005 11:45:58 -0000 1.5 +++ handlers.c 18 Feb 2005 23:19:06 -0000 1.6 @@ -5,6 +5,8 @@ int len; int buflen; unsigned char c; + Term_Event_Title_Change *e; + Ecore_Event *event; c = term_tcanvas_data_pop(term); for(len = 0; c != '\007'; len++) { @@ -22,9 +24,12 @@ if(term->title) free(term->title); term->title = malloc(sizeof(buf)); snprintf(term->title, sizeof(buf), "%s", buf); + e = malloc(sizeof(Term_Event_Title_Change)); + e->title = strdup(term->title); + event = ecore_event_add(TERM_EVENT_TITLE_CHANGE, e, + term_event_title_change_free, NULL); /* TODO: MOVE THIS TO FRONTEND CODE */ - //ecore_x_window_prop_title_set(ecore_evas_software_x11_window_get(term->ee), - // buf); +//ecore_x_window_prop_title_set(ecore_evas_software_x11_window_get(term->ee),buf); break; } } @@ -454,3 +459,12 @@ } } + +void term_event_title_change_free(void *data, void *ev) { + + Term_Event_Title_Change *e; + e = ev; + free(e->title); + free(e); +} + =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/enterminus/src/bin/smart.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- smart.c 18 Feb 2005 21:59:04 -0000 1.4 +++ smart.c 18 Feb 2005 23:19:06 -0000 1.5 @@ -8,6 +8,7 @@ Evas_Object *term_new(Evas *evas) { Evas_Object *term; term = evas_object_smart_add(evas, term_smart_get()); + TERM_EVENT_TITLE_CHANGE = ecore_event_type_new(); return term; } =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/enterminus/src/bin/term.h,v retrieving revision 1.5 retrieving revision 1.6 diff -u -3 -r1.5 -r1.6 --- term.h 18 Feb 2005 21:59:04 -0000 1.5 +++ term.h 18 Feb 2005 23:19:06 -0000 1.6 @@ -30,9 +30,9 @@ #define DPRINT(stuff) #endif +int TERM_EVENT_TITLE_CHANGE; -enum Term_Key_Modifiers -{ +enum Term_Key_Modifiers { TERM_KEY_MODIFIER_SHIFT = 0x1, TERM_KEY_MODIFIER_CTRL = 0x2, TERM_KEY_MODIFIER_ALT = 0x4, @@ -41,7 +41,12 @@ }; typedef enum Term_Key_Modifiers Term_Key_Modifiers; +struct _Term_Event_Title_Change { + char *title; +}; +typedef struct _Term_Event_Title_Change Term_Event_Title_Change; +/* are those still global vars? if so, remove them */ char *ptydev, *ttydev; pid_t pid; @@ -184,3 +189,6 @@ void enterm_init(Ecore_Evas *ee, Evas_Object *term); void enterm_cb_resize(Ecore_Evas *ee); + +void term_event_title_change_free(void *data, void *ev); + |
From: <enl...@li...> - 2005-02-18 23:26:46
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/enterminus/src/bin Modified Files: smart.c ui.c Log Message: removed char bg code. this whole implementation is gonna change =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/enterminus/src/bin/smart.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -3 -r1.5 -r1.6 --- smart.c 18 Feb 2005 23:19:06 -0000 1.5 +++ smart.c 18 Feb 2005 23:26:40 -0000 1.6 @@ -215,10 +215,10 @@ gl->text = evas_object_text_add(term->evas); evas_object_layer_set(gl->text, 2); evas_object_show(gl->text); - gl->bg = evas_object_rectangle_add(term->evas); - evas_object_resize(gl->bg, term->font.width, term->font.height); - evas_object_color_set(gl->bg, 100, 50, 50, 150); - evas_object_layer_set(gl->bg, 1); + //gl->bg = evas_object_rectangle_add(term->evas); + //evas_object_resize(gl->bg, term->font.width, term->font.height); + //evas_object_color_set(gl->bg, 100, 50, 50, 150); + //evas_object_layer_set(gl->bg, 1); } if(ioctl(term->cmd_fd.sys, TIOCSWINSZ, get_font_dim(term)) < 0) { =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/enterminus/src/bin/ui.c,v retrieving revision 1.13 retrieving revision 1.14 diff -u -3 -r1.13 -r1.14 --- ui.c 18 Feb 2005 21:59:04 -0000 1.13 +++ ui.c 18 Feb 2005 23:26:40 -0000 1.14 @@ -122,7 +122,7 @@ evas_object_move(gl->text, j*term->font.width, i*term->font.height); //evas_object_show(gl->text); //evas_object_layer_set(gl->bg,1); - evas_object_move(gl->bg, j*term->font.width, i*term->font.height); + //evas_object_move(gl->bg, j*term->font.width, i*term->font.height); //evas_object_show(gl->bg); tgl->changed = 0; } |
From: <enl...@li...> - 2005-02-19 00:34:01
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/enterminus/src/bin Modified Files: handlers.c Log Message: 1- tons of comments for escapes 2- added DPRINTs for debugging =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/enterminus/src/bin/handlers.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -3 -r1.6 -r1.7 --- handlers.c 18 Feb 2005 23:19:06 -0000 1.6 +++ handlers.c 19 Feb 2005 00:33:55 -0000 1.7 @@ -9,10 +9,8 @@ Ecore_Event *event; c = term_tcanvas_data_pop(term); - for(len = 0; c != '\007'; len++) { - - buf[len] = c; - + for(len = 0; c != '\007'; len++) { + buf[len] = c; c = term_tcanvas_data_pop(term); } buf[len] = 0; @@ -28,8 +26,6 @@ e->title = strdup(term->title); event = ecore_event_add(TERM_EVENT_TITLE_CHANGE, e, term_event_title_change_free, NULL); - /* TODO: MOVE THIS TO FRONTEND CODE */ -//ecore_x_window_prop_title_set(ecore_evas_software_x11_window_get(term->ee),buf); break; } } @@ -77,43 +73,79 @@ switch(c) { case 'A': + /* ESC [ [ n ] A move up n times */ + DPRINT((stderr, "ESC [ [ n ] A move up n times\n")); term_cursor_move_up(term, narg ? args[0] : 1); break; case 'B': + /* ESC [ [ n ] B move down n times */ + DPRINT((stderr, "ESC [ [ n ] B move down n times\n")); term_cursor_move_down(term, narg ? args[0] : 1); break; case 'C': + /* ESC [ [ n ] C move forward n times */ + DPRINT((stderr, "ESC [ [ n ] C move forward n times\n")); term_cursor_move_right(term, narg ? args[0] : 1); break; case 'D': + /* ESC [ [ n ] D move backward n times */ + DPRINT((stderr, "ESC [ [ n ] D move backward n times\n")); term_cursor_move_left(term, narg ? args[0] : 1); break; + case 'E': + /* ESC [ [ n ] E Cursor Down n times and to first col, default 1 */ + DPRINT((stderr, "ESC [ [ n ] E Cursor Down n times and to first col\n")); + break; + case 'F': + /* ESC [ [ n ] F Cursor Up n times and to first col, default 1 */ + DPRINT((stderr, "ESC [ [ n ] F Cursor Up n times and to first col\n")); + break; case 'G': + /* ESC [ [ n ] G Cursor to Column n (HPA) */ + DPRINT((stderr, "ESC [ [ n ] G Cursor to Column n (HPA)\n")); term_cursor_move_col(term, narg ? args[0] : 1); break; case 'H': + /* ESC [ [ r ; c ] H Cursor Pos [row;column] (CUP), default 1;1 */ + DPRINT((stderr, "ESC [ [ r ; c ] H Cursor Pos [row;column] (CUP)\n")); term_cursor_goto(term, args[1] ? args[1] : 1, args[0] ? args[0] : 1); break; + case 'I': + /* ESC [ [ n ] I Move forward n tab stops, default 1 */ + DPRINT((stderr, "ESC [ [ n ] I Move forward n tab stops\n")); + break; case 'J': + /* ESC [ [ n ] J Erase in Display (ED) + * n == 0: Clear Below (default) + * n == 1: Clear Above + * n == 2: Clear All + */ + DPRINT((stderr, "ESC [ [ n ] J Erase in Display (ED)\n")); if(narg) { if(args[0] == 1) { /* erase from start to cursor */ - term_clear_area(term, 1, 1, - term->tcanvas->cols, term->tcanvas->cur_row); + term_clear_area(term, 1, 1, term->tcanvas->cols, + term->tcanvas->cur_row); } if(args[0] == 2) { /* erase whole display */ - term_clear_area(term, 1, 1, - term->tcanvas->cols, term->tcanvas->rows); + term_clear_area(term, 1, 1, term->tcanvas->cols, + term->tcanvas->rows); } } else { /* erase from cursor to end of display */ term_clear_area(term, 1, term->tcanvas->cur_row, - term->tcanvas->cols, term->tcanvas->rows); + term->tcanvas->cols, term->tcanvas->rows); } break; case 'K': + /* ESC [ [ n ] K Erase in Line (EL) + * n == 0: Clear to Right (default) + * n == 1: Clear to Left (EL1) + * n == 2: Clear All + */ + DPRINT((stderr, "ESC [ [ n ] K Erase in Line (EL)\n")); if(narg) { if(args[0] == 1) { /* erase from start of line to cursor */ @@ -133,22 +165,95 @@ term->tcanvas->cols, term->tcanvas->cur_row); } break; - case 'L': /* Insert lines */ + case 'L': + /* ESC [ [ n ] L Insert n lines (IL), default 1 */ + DPRINT((stderr, "ESC [ [ n ] L Insert n lines (IL)\n")); //insert_lines(narg ? args[0] : 1); break; - case 'M': /* Delete lines */ + case 'M': + /* ESC [ [ n ] M Delete n lines (DL), default 1 */ + DPRINT((stderr, "ESC [ [ n ] M Delete n lines (DL)\n")); //delete_lines(narg ? args[0] : 1); break; - case 'd': /* line position absolute */ - term_cursor_move_row(term, narg ? args[0] : 1); - break; - case 'P': /* clear # of characters */ + case 'P': + /* ESC [ [ n ] P Delete n characters (DCH), default 1 */ + DPRINT((stderr, "ESC [ [ n ] P Delete n characters (DCH)\n")); term_clear_area(term, term->tcanvas->cur_col, term->tcanvas->cur_row, term->tcanvas->cur_col + args[0], term->tcanvas->cur_row); break; + case 'W': + /* ESC [ [ n ] W Tabulator functions + * n == 0: Tab Set (HTS) + * n == 2: Tab Clear (TBC), clear current column + * n == 5: Tab Clear (TBC), clear all + */ + DPRINT((stderr, "ESC [ [ n ] W Tabulator functions\n")); + break; + case 'X': + /* ESC [ [ n ] X Erase n characters (ECH), default 1 */ + DPRINT((stderr, "ESC [ [ n ] X Erase n characters (ECH)\n")); + break; + case 'Z': + /* ESC [ [ n ] Z Move backward n tabstops, default 1 */ + DPRINT((stderr, "ESC [ [ n ] Z Move backward n tabstops\n")); + break; + case '`': + /* ESC [ [ n ] Same as ESC [ n G (HPA) */ + DPRINT((stderr, "ESC [ [ n ] Same as ESC [ n G (HPA)\n")); + break; + case 'a': + /* ESC [ [ n ] a Same as ESC [ n C (CUF) */ + DPRINT((stderr, "ESC [ [ n ] a Same as ESC [ n C (CUF)\n")); + break; + case 'c': + /* ESC [ [ n ] c Send Device Attributes (DA), + * default of 0 returns "ESC[?1;2c" indicating + * a VT100 with advanced video option + */ + DPRINT((stderr, "ESC [ [ n ] c Send Device Attributes (DA)\n")); + break; + case 'd': + /* ESC [ [ n ] d Cursor to line n (VPA) */ + DPRINT((stderr, "ESC [ [ n ] d Cursor to line n (VPA)\n")); + term_cursor_move_row(term, narg ? args[0] : 1); + break; + case 'e': + /* ESC [ [ n ] e Same as ESC [ n A (CUU) */ + DPRINT((stderr, "ESC [ [ n ] e Same as ESC [ n A (CUU)\n")); + break; + case 'f': + /* ESC [ [ r ; c ] f Horizontal and Vertical + * Position (HVP), default 1;1 + */ + DPRINT((stderr, "ESC [ [ r ; c ] f Horizontal and Vertical Position (HVP)\n")); + break; + case 'g': + /* ESC [ [ n ] g Tab Clear + * n == 0: Tab Clear (TBC), clear current column (default) + * n == 3: Tab Clear (TBC), clear all + */ + DPRINT((stderr, "ESC [ [ n ] g Tab Clear\n")); + break; + case 'i': + /* ESC [ [ n ] i Printing + * n == 4: Disable transparent print mode (MC4) + * n == 5: Enable transparent print mode (MC5) + */ + DPRINT((stderr, "ESC [ [ n ] i Printing\n")); + break; + + /* ESC [ n [ ; n ... ] { h | l } + * + * h: Set Mode (SM) + * l: Reset Mode (RM) + * + * n == 4: Insert Mode (SMIR)/Replace Mode (RMIR) + * n == 20: Automatic Newline/Normal Linefeed (LNM) + */ case 'h': /* set mode */ + DPRINT((stderr, "ESC [ n [ ; n ... ] h\n")); switch(args[0]) { case 1: if(questionmark) { @@ -179,13 +284,14 @@ } break; default: - fprintf(stderr, "Unsupported ESC [%s h mode %d\n", + DPRINT((stderr, "Unsupported ESC [%s h mode %d\n", questionmark?" ?":"", - args[0]); + args[0])); break; } break; case 'l': /* reset mode */ + DPRINT((stderr, "ESC [ n [ ; n ... ] l\n")); switch(args[0]) { case 1: if(questionmark) { @@ -213,14 +319,32 @@ } break; default: - fprintf(stderr, "Unsupported ESC [%s l mode %d\n", + DPRINT((stderr, "Unsupported ESC [%s l mode %d\n", questionmark?" ?":"", - args[0]); + args[0])); break; } break; case 'm': - /* reset attrs */ + DPRINT((stderr, "ESC [ n [ ; n ... ] m Character Attributes (SGR)\n")); + /* ESC [ n [ ; n ... ] m Character Attributes (SGR) + * + * n == 0: Normal (default) + * n == 1/22: Turn bold (bright fg) on/off + * n == 4/24: Turn underline on/off + * n == 5/25: Turn "blink" (bright bg) on/off + * n == 7/27: Turn inverse on/off + * n == 30/40: foreground/background black + * n == 31/41: foreground/background red + * n == 32/42: foreground/background green + * n == 33/43: foreground/background yellow + * n == 34/44: foreground/background blue + * n == 35/45: foreground/background magenta + * n == 36/46: foreground/background cyan + * n == 37/47: foreground/background white + * n == 39/49: foreground/background default + */ + /* reset attrs */ if(!narg) { //set_buffer_attrs(0); term_tcanvas_fg_color_set(term, 7); @@ -254,14 +378,24 @@ term_tcanvas_bg_color_set(term, 0); } else - fprintf(stderr, "Unsupported mode %d\n", args[i]); + DPRINT((stderr, "Unsupported mode %d\n", args[i])); } break; case 'n': - /* status report */ + /* ESC [ [ n ] n Device Status Report (DSR) + * + * n == 5: Status Report, returns "ESC[0n" ("OK") + * n == 6: Report Cursor Position (CPR) as "ESC[r;cR" + * n == 7: Request display name (ignored by default for + * security reasons) + * n == 8: Request version number in window title + * n == 9: Display pixmap/transparency status in window title + */ + DPRINT((stderr, "ESC [ [ n ] n Device Status Report (DSR)\n")); + /* status report */ { char buf[20]; - + switch(args[0]) { case 6: @@ -274,11 +408,16 @@ //cmd_write(buf, strlen(buf)); break; default: - fprintf(stderr, "Unknown status request id %d\n", args[0]); + DPRINT((stderr, "Unknown status request id %d\n", args[0])); } } break; - case 'r': /* set scrolling region */ + case 'r': + /* ESC [ [ t ; b ] r Set Scrolling Region (CSR), + * where t is the top row and b is the bottom row, + * defaults to the full screen + */ + DPRINT((stderr, "ESC [ [ t ; b ] r Set Scrolling Region (CSR)\n")); term->tcanvas->scroll_region_start = args[0] ? args[0] : 1; term->tcanvas->scroll_region_end = args[1] ? args[1] : term->tcanvas->rows; if(!narg) { @@ -292,16 +431,17 @@ term->tcanvas->scroll_in_region = 1; break; + case '[': /* echoed function key */ term_tcanvas_data_pop(term); break; default: - fprintf(stderr, "Unsupported CSI sequence ESC ["); + DPRINT((stderr, "Unsupported CSI sequence ESC [")); if(questionmark) - fprintf(stderr, " ?"); + DPRINT((stderr, " ?")); for(i = 0; i < narg; i++) - fprintf(stderr, " %d", args[i]); - fprintf(stderr, " %c\n", c); + DPRINT((stderr, " %d", args[i])); + DPRINT((stderr, " %c\n", c)); } break; case ']': /* xterm sequence */ @@ -317,27 +457,32 @@ c = term_tcanvas_data_pop(term); } if(c != ';' || !narg) { - fprintf(stderr, "Invalid xterm sequence\n"); + DPRINT((stderr, "Invalid xterm sequence\n")); break; } term_handler_xterm_seq(args[0], term); break; - case '7': /* save cursor position */ + case '7': /* ESC 7 (save cursor position) */ + DPRINT((stderr, "ESC 7 (save cursor pos)\n")); term->tcanvas->saved_cursor_x = term->tcanvas->cur_col; term->tcanvas->saved_cursor_y = term->tcanvas->cur_row; break; - case '8': /* restore cursor position */ + case '8': /* ESC 8 (restore cursor position) */ + DPRINT((stderr, "ESC 8 (restore cursor pos)\n")); term->tcanvas->cur_col = term->tcanvas->saved_cursor_x; term->tcanvas->cur_row = term->tcanvas->saved_cursor_y; break; - case '=': /* set application keypad mode */ + case '=': /* ESC = (set application keypad mode) */ + DPRINT((stderr, "ESC = (set application keypad mode)\n")); term->tcanvas->app_keypad_mode = 1; break; - case '>': /* set numeric keypad mode */ + case '>': /* ESC > (set numeric keypad mode) */ + DPRINT((stderr, "ESC = (set numeric keypad mode)\n")); term->tcanvas->app_keypad_mode = 0; break; - case 'M': /* reverse linefeed */ + case 'M': /* ESC M (reverse linefeed) */ + DPRINT((stderr, "ESC = (reverse linefeed)\n")); term->tcanvas->cur_row--; if(term->tcanvas->cur_row < term->tcanvas->scroll_region_start) { term->tcanvas->cur_row = term->tcanvas->scroll_region_start; @@ -345,7 +490,7 @@ } break; default: - fprintf(stderr, "Unsupported ESC sequence ESC %c\n", c); + DPRINT((stderr, "Unsupported ESC sequence ESC %c\n", c)); break; } return 1; @@ -388,7 +533,7 @@ write(term->cmd_fd.sys, buf, strlen(buf)); } else { if( write(term->cmd_fd.sys, ev->string, 1) < 0) { - fprintf(stderr, "Error writing to process: %m\n"); + DPRINT((stderr, "Error writing to process: %m\n")); //exit(2); } } @@ -467,4 +612,3 @@ free(e->title); free(e); } - |
From: <enl...@li...> - 2005-02-19 10:15:44
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/enterminus/src/bin Modified Files: enterm.c pty.c term.h Added Files: enterm.h Log Message: 1) added enterm.h 2) removed pid (global var) into term->pid 3) trying to get signal() implemented via ecore events, no dice yet, so when you type exit, the window wont close =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/enterminus/src/bin/enterm.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- enterm.c 18 Feb 2005 23:19:06 -0000 1.2 +++ enterm.c 19 Feb 2005 10:15:37 -0000 1.3 @@ -26,7 +26,7 @@ } -void enterm_cb_title_change(void *data, int type, void *ev) { +int enterm_cb_title_change(void *data, int type, void *ev) { Term_Event_Title_Change *e; Ecore_Evas *ee; @@ -34,4 +34,5 @@ ee = data; ecore_x_window_prop_title_set(ecore_evas_software_x11_window_get(ee), e->title); + return 1; } =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/enterminus/src/bin/pty.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- pty.c 11 Feb 2005 13:07:56 -0000 1.4 +++ pty.c 19 Feb 2005 10:15:37 -0000 1.5 @@ -14,7 +14,8 @@ /* do we need this here? */ /* extern char *ptsname(); */ int fd; - + char *ptydev; + if((fd = getpt()) >= 0) { if(grantpt(fd) == 0 && unlockpt(fd) == 0) @@ -59,11 +60,15 @@ return 0; } -void sigchld_handler(int a) { +void sigchld_handler(void *data, int type, void *ev){//int a) { int status = 0; + Term *term; + term = data; - if(waitpid(pid, &status, 0) < 0) { - fprintf(stderr, "Waiting for pid %hd failed: %m\n", pid); + printf("Exec singchld_handler %d\n",term->pid); + + if(waitpid(term->pid, &status, 0) < 0) { + fprintf(stderr, "Waiting for pid %hd failed: %m\n", term->pid); exit(1); } @@ -77,6 +82,7 @@ exit(1); else /* Something strange happened */ exit(1); + exit(0); } @@ -108,11 +114,11 @@ if((term->cmd_fd.sys = get_pty(term)) < 0) return -1; - if((pid = fork()) < 0) { + if((term->pid = fork()) < 0) { fprintf(stderr, "Couldn't fork: %m\n"); return -1; } - if(!pid) { + if(!term->pid) { /* child */ get_tty(term); @@ -134,7 +140,10 @@ /* parent */ close(term->slave.sys); - signal(SIGCHLD, sigchld_handler); + //signal(SIGCHLD, sigchld_handler); + ecore_event_handler_add(SIGCHLD, sigchld_handler, term); + return 0; } + =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/enterminus/src/bin/term.h,v retrieving revision 1.6 retrieving revision 1.7 diff -u -3 -r1.6 -r1.7 --- term.h 18 Feb 2005 23:19:06 -0000 1.6 +++ term.h 19 Feb 2005 10:15:37 -0000 1.7 @@ -47,8 +47,8 @@ typedef struct _Term_Event_Title_Change Term_Event_Title_Change; /* are those still global vars? if so, remove them */ -char *ptydev, *ttydev; -pid_t pid; +//char *ptydev, *ttydev; +//pid_t pid; struct _Term_Fd { int sys; @@ -106,6 +106,7 @@ struct _Term { int term_id; + pid_t pid; Ecore_Evas *ee; Term_TCanvas *tcanvas; Term_EGlyph *grid; @@ -147,7 +148,8 @@ struct winsize *get_font_dim(Term *term); int get_pty(Term *term); int get_tty(Term *term); -void sigchld_handler(int a); +//void sigchld_handler(int a); +void sigchld_handler(void *data, int type, void *ev); struct passwd *find_user(void); int execute_command(Term *term);//, int argc, const char **argv); @@ -187,8 +189,5 @@ void term_smart_clip_unset(Evas_Object *o); Evas_Smart *term_smart_get(); -void enterm_init(Ecore_Evas *ee, Evas_Object *term); -void enterm_cb_resize(Ecore_Evas *ee); - void term_event_title_change_free(void *data, void *ev); |
From: <enl...@li...> - 2005-02-19 12:18:43
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/enterminus/src/bin Modified Files: main.c pty.c term.h Log Message: restored old pid hanlders for now =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/enterminus/src/bin/main.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -3 -r1.5 -r1.6 --- main.c 11 Feb 2005 13:07:55 -0000 1.5 +++ main.c 19 Feb 2005 12:18:37 -0000 1.6 @@ -5,15 +5,14 @@ Ecore_Evas *ee; /* ecore_evas */ Evas *evas; /* evas */ Evas_Object *term; /* terminal */ - + ee = ecore_evas_software_x11_new(0, 0, 0, 0, 0, 0); ecore_evas_show(ee); evas = ecore_evas_get(ee); - + term = term_new(evas); - evas_object_show(term); - - enterm_init(ee, term); + evas_object_show(term); + enterm_init(ee, term); ecore_main_loop_begin(); ecore_evas_shutdown(); =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/enterminus/src/bin/pty.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -3 -r1.5 -r1.6 --- pty.c 19 Feb 2005 10:15:37 -0000 1.5 +++ pty.c 19 Feb 2005 12:18:37 -0000 1.6 @@ -60,15 +60,11 @@ return 0; } -void sigchld_handler(void *data, int type, void *ev){//int a) { +void sigchld_handler(int a) { int status = 0; - Term *term; - term = data; - - printf("Exec singchld_handler %d\n",term->pid); - - if(waitpid(term->pid, &status, 0) < 0) { - fprintf(stderr, "Waiting for pid %hd failed: %m\n", term->pid); + + if(waitpid(pid, &status, 0) < 0) { + fprintf(stderr, "Waiting for pid %hd failed: %m\n", pid); exit(1); } @@ -114,11 +110,11 @@ if((term->cmd_fd.sys = get_pty(term)) < 0) return -1; - if((term->pid = fork()) < 0) { + if((pid = fork()) < 0) { fprintf(stderr, "Couldn't fork: %m\n"); return -1; } - if(!term->pid) { + if(!pid) { /* child */ get_tty(term); @@ -140,9 +136,7 @@ /* parent */ close(term->slave.sys); - //signal(SIGCHLD, sigchld_handler); - - ecore_event_handler_add(SIGCHLD, sigchld_handler, term); + signal(SIGCHLD, sigchld_handler); return 0; } =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/enterminus/src/bin/term.h,v retrieving revision 1.7 retrieving revision 1.8 diff -u -3 -r1.7 -r1.8 --- term.h 19 Feb 2005 10:15:37 -0000 1.7 +++ term.h 19 Feb 2005 12:18:37 -0000 1.8 @@ -48,7 +48,7 @@ /* are those still global vars? if so, remove them */ //char *ptydev, *ttydev; -//pid_t pid; +pid_t pid; struct _Term_Fd { int sys; @@ -148,8 +148,7 @@ struct winsize *get_font_dim(Term *term); int get_pty(Term *term); int get_tty(Term *term); -//void sigchld_handler(int a); -void sigchld_handler(void *data, int type, void *ev); +void sigchld_handler(int a); struct passwd *find_user(void); int execute_command(Term *term);//, int argc, const char **argv); |
From: <enl...@li...> - 2005-02-23 11:25:25
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/enterminus/src/bin Modified Files: term.c term.h ui.c Log Message: added cursor, still a hack, but it works =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/enterminus/src/bin/term.c,v retrieving revision 1.10 retrieving revision 1.11 diff -u -3 -r1.10 -r1.11 --- term.c 18 Feb 2005 21:59:04 -0000 1.10 +++ term.c 23 Feb 2005 11:25:14 -0000 1.11 @@ -1,6 +1,5 @@ #include "term.h" - void term_tcanvas_fg_color_set(Term *term, int c) { Term_TGlyph *gl; gl = &term->tcanvas->grid[term->tcanvas->cur_col + (term->tcanvas->cur_row * term->tcanvas->cols)]; @@ -202,14 +201,22 @@ term->bg = NULL; strcpy(term->font.path, DATADIR); strcpy(term->font.face, "VeraMono"); - term->font.size = 10; + term->font.size = 11; term->data_ptr = 0; term->font.width = term_font_get_width(term); term->font.height = term_font_get_height(term); - term->title = NULL; + term->title = NULL; + evas_font_path_append(term->evas, term->font.path); - ecore_timer_add(0.01, term_timers, term); - execute_command(term);//, argc, argv); + ecore_timer_add(0.01, term_timers, term); + ecore_timer_add(0.095, term_cursor_anim, term); + execute_command(term);//, argc, argv); + term->cursor.shape = evas_object_rectangle_add(term->evas); + evas_object_resize(term->cursor.shape, term->font.width, term->font.height); + evas_object_color_set(term->cursor.shape, 100,100,100,255); + evas_object_layer_set(term->cursor.shape, 5); + evas_object_show(term->cursor.shape); + term->cursor.last_reset = ecore_time_get(); term->cmd_fd.ecore = ecore_main_fd_handler_add(term->cmd_fd.sys, ECORE_FD_READ, term_tcanvas_data, term, =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/enterminus/src/bin/term.h,v retrieving revision 1.8 retrieving revision 1.9 diff -u -3 -r1.8 -r1.9 --- term.h 19 Feb 2005 12:18:37 -0000 1.8 +++ term.h 23 Feb 2005 11:25:14 -0000 1.9 @@ -104,6 +104,12 @@ typedef struct _Term_EGlyph Term_EGlyph; +struct _Term_Cursor { + Evas_Object *shape; + int last_reset; +}; +typedef struct _Term_Cursor Term_Cursor; + struct _Term { int term_id; pid_t pid; @@ -111,6 +117,7 @@ Term_TCanvas *tcanvas; Term_EGlyph *grid; Evas_Object *bg; + Term_Cursor cursor; Term_Font font; Evas *evas; Term_Fd cmd_fd; @@ -190,3 +197,4 @@ void term_event_title_change_free(void *data, void *ev); +int term_cursor_anim(Term *term); =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/enterminus/src/bin/ui.c,v retrieving revision 1.14 retrieving revision 1.15 diff -u -3 -r1.14 -r1.15 --- ui.c 18 Feb 2005 23:26:40 -0000 1.14 +++ ui.c 23 Feb 2005 11:25:14 -0000 1.15 @@ -124,14 +124,20 @@ //evas_object_layer_set(gl->bg,1); //evas_object_move(gl->bg, j*term->font.width, i*term->font.height); //evas_object_show(gl->bg); - tgl->changed = 0; + tgl->changed = 0; + } - if(i + term->tcanvas->scroll_region_start > (term->tcanvas->rows - 1)*term->tcanvas->scroll_size) { + if(i + term->tcanvas->scroll_region_start > (term->tcanvas->rows - 1)*term->tcanvas->scroll_size) { ig++; - } + } + i2++; term->tcanvas->changed_rows[i] = 0; - } + /* display cursor, note: this is still sort of a hack */ + evas_object_move(term->cursor.shape, + term->tcanvas->cur_col*term->font.width, + i*term->font.height); + } } /* Move cursor up n rows*/ @@ -328,3 +334,10 @@ } } + +int term_cursor_anim(Term *term) { + int a; + a = 128 + 127 * cos ((ecore_time_get () - term->cursor.last_reset) * 2); + evas_object_color_set (term->cursor.shape, 100, 100, 100, a); + return 1; +} |
From: <enl...@li...> - 2005-02-23 13:18:06
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/enterminus/src/bin Modified Files: term.c ui.c Log Message: left right cursor movement =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/enterminus/src/bin/term.c,v retrieving revision 1.11 retrieving revision 1.12 diff -u -3 -r1.11 -r1.12 --- term.c 23 Feb 2005 11:25:14 -0000 1.11 +++ term.c 23 Feb 2005 13:17:59 -0000 1.12 @@ -96,7 +96,7 @@ case '\r': /* carriage return */ term->tcanvas->cur_col = 0; break; - default: + default: term_tcanvas_glyph_push(term, c); break; } =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/enterminus/src/bin/ui.c,v retrieving revision 1.16 retrieving revision 1.17 diff -u -3 -r1.16 -r1.17 --- ui.c 23 Feb 2005 11:53:42 -0000 1.16 +++ ui.c 23 Feb 2005 13:17:59 -0000 1.17 @@ -133,11 +133,11 @@ i2++; term->tcanvas->changed_rows[i] = 0; - /* display cursor, note: this is still sort of a hack */ - evas_object_move(term->cursor.shape, - term->tcanvas->cur_col*term->font.width, - i*term->font.height); } + /* display cursor, note: this is still sort of a hack */ + evas_object_move(term->cursor.shape, + term->tcanvas->cur_col*term->font.width, + (term->tcanvas->cur_row%term->tcanvas->rows)*term->font.height); } /* Move cursor up n rows*/ @@ -158,6 +158,7 @@ /* Move cursor left n cols */ int term_cursor_move_left(Term *term, int n) { + DPRINT((stderr,"Moving cursor left by %d cols\n",n)); term->tcanvas->cur_col -= n-1; if(term->tcanvas->cur_col < 0) term->tcanvas->cur_col = 0; @@ -174,6 +175,7 @@ /* Move to a certain col */ int term_cursor_move_col(Term *term, int n) { + DPRINT((stderr,"Moving cursor to col %d\n",n)); term->tcanvas->cur_col = n-1; if(term->tcanvas->cur_col < 0) term->tcanvas->cur_col = 0; @@ -194,6 +196,7 @@ /* Move cursor to [x,y] */ void term_cursor_goto(Term *term, int x, int y) { + DPRINT((stderr,"Moving cursor to [%d,%d]\n",x,y)); term->tcanvas->cur_col = x-1; term->tcanvas->cur_row = y-1; if(term->tcanvas->cur_col < 0) |
From: <enl...@li...> - 2005-02-24 00:28:00
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/enterminus/src/bin Modified Files: term.c term.h ui.c Log Message: fixed cursor movement for left / right arrow presses =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/enterminus/src/bin/term.c,v retrieving revision 1.12 retrieving revision 1.13 diff -u -3 -r1.12 -r1.13 --- term.c 23 Feb 2005 13:17:59 -0000 1.12 +++ term.c 24 Feb 2005 00:27:54 -0000 1.13 @@ -33,6 +33,11 @@ if(term->tcanvas->cur_col > term->tcanvas->cols) { term->tcanvas->cur_col = 0; term->tcanvas->cur_row++; + + term->cur_row++; + if(term->cur_row > term->tcanvas->rows-1) + term->cur_row = term->tcanvas->rows-1; + for(j = 0; j <= term->tcanvas->cols; j++) { gl = & term->tcanvas->grid[j + (term->tcanvas->cols * term->tcanvas->cur_row)]; gl->c = ' '; @@ -76,6 +81,10 @@ case '\n': /* newline */ term->tcanvas->cur_col = 0; term->tcanvas->cur_row++; + term->cur_row++; + if(term->cur_row > term->tcanvas->rows-1) + term->cur_row = term->tcanvas->rows-1; + /* TODO: Remember to scroll */ { =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/enterminus/src/bin/term.h,v retrieving revision 1.9 retrieving revision 1.10 diff -u -3 -r1.9 -r1.10 --- term.h 23 Feb 2005 11:25:14 -0000 1.9 +++ term.h 24 Feb 2005 00:27:54 -0000 1.10 @@ -130,6 +130,8 @@ char *title; int w; int h; + int cur_col; + int cur_row; }; typedef struct _Term Term; =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/enterminus/src/bin/ui.c,v retrieving revision 1.17 retrieving revision 1.18 diff -u -3 -r1.17 -r1.18 --- ui.c 23 Feb 2005 13:17:59 -0000 1.17 +++ ui.c 24 Feb 2005 00:27:54 -0000 1.18 @@ -130,14 +130,15 @@ if(i + term->tcanvas->scroll_region_start > (term->tcanvas->rows - 1)*term->tcanvas->scroll_size) { ig++; } - + i2++; term->tcanvas->changed_rows[i] = 0; - } - /* display cursor, note: this is still sort of a hack */ + } + + /* display cursor, note: this is still sort of a hack */ evas_object_move(term->cursor.shape, - term->tcanvas->cur_col*term->font.width, - (term->tcanvas->cur_row%term->tcanvas->rows)*term->font.height); + term->tcanvas->cur_col*term->font.width, + term->cur_row*term->font.height); } /* Move cursor up n rows*/ |
From: <enl...@li...> - 2005-02-24 00:48:18
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/enterminus/src/bin Modified Files: ui.c Log Message: fixed clear and goto functions, same fixes need to go to all cursor movement functions =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/enterminus/src/bin/ui.c,v retrieving revision 1.18 retrieving revision 1.19 diff -u -3 -r1.18 -r1.19 --- ui.c 24 Feb 2005 00:27:54 -0000 1.18 +++ ui.c 24 Feb 2005 00:48:12 -0000 1.19 @@ -1,5 +1,6 @@ #include "term.h" +/* TODO: check replace all term->tcanvas->cur* with term->cur* */ #define COLOR0 255, 255, 255 #define COLOR1 200, 20, 20 @@ -198,16 +199,19 @@ /* Move cursor to [x,y] */ void term_cursor_goto(Term *term, int x, int y) { DPRINT((stderr,"Moving cursor to [%d,%d]\n",x,y)); - term->tcanvas->cur_col = x-1; - term->tcanvas->cur_row = y-1; - if(term->tcanvas->cur_col < 0) - term->tcanvas->cur_col = 0; - if(term->tcanvas->cur_col >= term->tcanvas->cols) - term->tcanvas->cur_col = term->tcanvas->cols-1; - if(term->tcanvas->cur_row < 0) - term->tcanvas->cur_row = 0; - if(term->tcanvas->cur_row >= term->tcanvas->rows) - term->tcanvas->cur_row = term->tcanvas->rows-1; + term->cur_col = x-1; + term->cur_row = y-1; + if(term->cur_col < 0) + term->cur_col = 0; + if(term->cur_col >= term->tcanvas->cols) + term->cur_col = term->tcanvas->cols-1; + if(term->cur_row < 0) + term->cur_row = 0; + if(term->cur_row >= term->tcanvas->rows) + term->cur_row = term->tcanvas->rows-1; + term->tcanvas->cur_col = term->cur_col; + term->tcanvas->cur_row = term->tcanvas->scroll_region_start +term->cur_row; + printf("Went to %d %d\n",term->cur_col,term->cur_row); } /* Move cursor again to last saved [x,y] */ @@ -243,7 +247,7 @@ if(y1 < 0) y1 = 0; if(y1 > term->tcanvas->rows) y1 = term->tcanvas->rows; if(x2 < 0) x2 = 0; if(x2 > term->tcanvas->cols) x2 = term->tcanvas->cols; if(y2 < 0) y2 = 0; if(y2 > term->tcanvas->rows) y2 = term->tcanvas->rows; - DPRINT(("Clearing: %d %d, %d %d\n",x1,y1+term->tcanvas->scroll_region_start,x2,y2+term->tcanvas->scroll_region_start)); + DPRINT((stderr,"Clearing: %d %d, %d %d\n",x1,y1+term->tcanvas->scroll_region_start,x2,y2+term->tcanvas->scroll_region_start)); for(i = y1; i <= y2; i++) { for(j = x1; j <= x2; j++) { tgl = &term->tcanvas->grid[j + (term->tcanvas->cols * (i + term->tcanvas->scroll_region_start))]; |
From: <enl...@li...> - 2005-02-24 12:31:09
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/enterminus/src/bin Modified Files: handlers.c term.h ui.c Log Message: debug statements and term_delete_lines =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/enterminus/src/bin/handlers.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -3 -r1.7 -r1.8 --- handlers.c 19 Feb 2005 00:33:55 -0000 1.7 +++ handlers.c 24 Feb 2005 12:31:00 -0000 1.8 @@ -173,7 +173,7 @@ case 'M': /* ESC [ [ n ] M Delete n lines (DL), default 1 */ DPRINT((stderr, "ESC [ [ n ] M Delete n lines (DL)\n")); - //delete_lines(narg ? args[0] : 1); + term_delete_lines(term, narg ? args[0] : 1); break; case 'P': /* ESC [ [ n ] P Delete n characters (DCH), default 1 */ =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/enterminus/src/bin/term.h,v retrieving revision 1.10 retrieving revision 1.11 diff -u -3 -r1.10 -r1.11 --- term.h 24 Feb 2005 00:27:54 -0000 1.10 +++ term.h 24 Feb 2005 12:31:00 -0000 1.11 @@ -178,6 +178,7 @@ void term_tcanvas_save(Term *term); void term_tcanvas_restore(Term *term); void term_clear_area(Term *term, int x1, int y1, int x2, int y2); +void term_delete_lines(Term *term, int lines); void term_scroll_up(Term *term, int rows); void term_scroll_down(Term *term, int rows); =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/enterminus/src/bin/ui.c,v retrieving revision 1.19 retrieving revision 1.20 diff -u -3 -r1.19 -r1.20 --- ui.c 24 Feb 2005 00:48:12 -0000 1.19 +++ ui.c 24 Feb 2005 12:31:01 -0000 1.20 @@ -144,6 +144,7 @@ /* Move cursor up n rows*/ int term_cursor_move_up(Term *term, int n) { + DPRINT((stderr,"Moving cursor up %d rows\n",n)); term->tcanvas->cur_row -= n-1; if(term->tcanvas->cur_row < 0) term->tcanvas->cur_row = 0; @@ -152,6 +153,7 @@ /* Move cursor down n rows */ int term_cursor_move_down(Term *term, int n) { + DPRINT((stderr,"Moving cursor down %d rows\n",n)); term->tcanvas->cur_row += n-1; if(term->tcanvas->cur_row >= term->tcanvas->rows) term->tcanvas->cur_row = term->tcanvas->rows-1; @@ -169,6 +171,7 @@ /* Move cursor right n cols */ int term_cursor_move_right(Term *term, int n) { + DPRINT((stderr,"Moving cursor right %d cols\n",n)); term->tcanvas->cur_col += n-1; if(term->tcanvas->cur_col >= term->tcanvas->cols) term->tcanvas->cur_col = term->tcanvas->cols-1; @@ -188,6 +191,7 @@ /* Move to a certain row */ int term_cursor_move_row(Term *term, int n) { + DPRINT((stderr,"Moving cursor to row %d\n",n)); term->tcanvas->cur_row = n-1; if(term->tcanvas->cur_row < 0) term->tcanvas->cur_row = 0; @@ -211,30 +215,33 @@ term->cur_row = term->tcanvas->rows-1; term->tcanvas->cur_col = term->cur_col; term->tcanvas->cur_row = term->tcanvas->scroll_region_start +term->cur_row; - printf("Went to %d %d\n",term->cur_col,term->cur_row); } /* Move cursor again to last saved [x,y] */ void term_cursor_rego(Term *term) { + DPRINT((stderr,"Re-going cursor to last saved position\n")); term_cursor_goto(term, term->tcanvas->cur_col, term->tcanvas->cur_row); } /* Delete n rows starting from start */ void term_delete_rows(Term *term, int start, int n) { int i; - + DPRINT((stderr,"Deleting %d rows from %d\n",n,start)); } /* Add n rows starting from pos */ void term_add_rows(Term *term, int pos, int n) { + DPRINT((stderr,"Adding %d rows from %d\n",n,pos)); } /* Save the current screen */ void term_tcanvas_save(Term *term) { + DPRINT((stderr,"Saving current screen\n")); } /* Restore the last saved screen */ void term_tcanvas_restore(Term *term) { + DPRINT((stderr,"Restoring current screen\n")); } /* clear a certain part of the screen */ @@ -270,7 +277,10 @@ if(term->tcanvas->scroll_in_region) { /* TODO: implement this */ - DPRINT((stderr,"Scrolling: in region\n")); + DPRINT((stderr,"Scrolling: in region between %d and %d\n", + term->tcanvas->scroll_region_start, + term->tcanvas->scroll_region_end)); + } else { DPRINT((stderr,"Scrolling: window\n")); /* Going past the virtual scroll buffer, we need to wrap */ @@ -330,16 +340,16 @@ gl = & term->tcanvas->grid[j + (term->tcanvas->cols * i)]; gl->changed = 1; } - } + } } } /* scroll window / region down */ void term_scroll_down(Term *term, int rows) { if(term->tcanvas->scroll_in_region) { - + DPRINT((stderr,"Scrolling: in region\n")); } else { - + DPRINT((stderr,"Scrolling: window\n")); } } @@ -349,3 +359,14 @@ evas_object_color_set (term->cursor.shape, 100, 100, 100, a); return 1; } + +void term_delete_lines(Term *term, int lines) { + int a, b; + a = term->tcanvas->scroll_region_start; + b = term->tcanvas->scroll_in_region; + term->tcanvas->scroll_region_start = term->tcanvas->cur_row; + term->tcanvas->scroll_in_region = 0; + term_scroll_up(term, lines); + term->tcanvas->scroll_region_start = a; + term->tcanvas->scroll_in_region = b; +} |
From: <enl...@li...> - 2005-02-25 10:00:47
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/enterminus/src/bin Modified Files: handlers.c ui.c Log Message: fixes to clear and cursor =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/enterminus/src/bin/handlers.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -3 -r1.9 -r1.10 --- handlers.c 25 Feb 2005 09:21:26 -0000 1.9 +++ handlers.c 25 Feb 2005 10:00:40 -0000 1.10 @@ -8,7 +8,7 @@ Ecore_Event *event; c = term_tcanvas_data_pop(term); - for(len = 0; c != '\007'; len++) { + for(len = 0; c != '\007' && len < 512; len++) { buf[len] = c; c = term_tcanvas_data_pop(term); } =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/enterminus/src/bin/ui.c,v retrieving revision 1.21 retrieving revision 1.22 diff -u -3 -r1.21 -r1.22 --- ui.c 25 Feb 2005 09:21:26 -0000 1.21 +++ ui.c 25 Feb 2005 10:00:40 -0000 1.22 @@ -124,6 +124,10 @@ } term->tcanvas->changed_rows[i1] = 0; } + /* display cursor, note: this is still sort of a hack */ + evas_object_move(term->cursor.shape, + term->cur_col*term->font.width, + term->cur_row*term->font.height); return 1; } @@ -259,8 +263,8 @@ y2 += term->tcanvas->scroll_region_start; DPRINT((stderr, "Clearing: %d %d, %d %d\n", x1, y1, x2, y2)); - for (i = y1; i < y2; i++) { - for (j = x1; j < x2; j++) { + for (i = y1; i <= y2; i++) { + for (j = x1; j <= x2; j++) { x = i; if (x >= term->tcanvas->scroll_size) x -= term->tcanvas->scroll_size; |
From: <enl...@li...> - 2005-02-28 08:37:33
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/enterminus/src/bin Removed Files: Makefile.in Log Message: removed Makefile.in files |
From: <enl...@li...> - 2005-02-28 08:37:33
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/enterminus/src Removed Files: Makefile.in Log Message: removed Makefile.in files |
From: <enl...@li...> - 2005-06-12 11:03:57
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/enterminus/src/bin Modified Files: enterm.c term.c term.h Log Message: fix to use new ecore_x, bad bas seb didnt implement ecore_x_icccm_step_size_set yet! BLAME! =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/enterminus/src/bin/enterm.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- enterm.c 28 Feb 2005 12:16:39 -0000 1.4 +++ enterm.c 12 Jun 2005 11:03:51 -0000 1.5 @@ -12,8 +12,8 @@ t = evas_object_smart_data_get(term); ecore_evas_data_set(ee, "term", term); ecore_evas_callback_resize_set(ee, enterm_cb_resize); - ecore_x_window_prop_step_size_set(ecore_evas_software_x11_window_get(ee), - t->font.width, t->font.height); + ecore_x_icccm_step_size_set(ecore_evas_software_x11_window_get(ee), + t->font.width, t->font.height); ecore_event_handler_add(TERM_EVENT_TITLE_CHANGE, enterm_cb_title_change, ee); ecore_evas_resize(ee, t->w, t->h); @@ -38,7 +38,7 @@ e = ev; ee = data; - ecore_x_window_prop_title_set(ecore_evas_software_x11_window_get(ee), - e->title); + ecore_x_icccm_title_set(ecore_evas_software_x11_window_get(ee), + e->title); return 1; } =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/enterminus/src/bin/term.c,v retrieving revision 1.18 retrieving revision 1.19 diff -u -3 -r1.18 -r1.19 --- term.c 23 Apr 2005 08:39:41 -0000 1.18 +++ term.c 12 Jun 2005 11:03:51 -0000 1.19 @@ -244,7 +244,7 @@ term->bg = NULL; strcpy(term->font.path, DATADIR); strcpy(term->font.face, "VeraMono"); - term->font.size = 9; + term->font.size = 10; term->data_ptr = 0; term->font.width = term_font_get_width(term); term->font.height = term_font_get_height(term); =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/enterminus/src/bin/term.h,v retrieving revision 1.13 retrieving revision 1.14 diff -u -3 -r1.13 -r1.14 --- term.h 28 Feb 2005 12:16:39 -0000 1.13 +++ term.h 12 Jun 2005 11:03:51 -0000 1.14 @@ -21,7 +21,7 @@ #include <Ecore_X.h> #include "config.h" -#define DEBUG 0 +#define DEBUG1 0 #define NPAR 16 #define DATADIR PACKAGE_DATA_DIR"/" |
From: <enl...@li...> - 2005-06-12 11:48:17
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/enterminus/src/bin Modified Files: enterm.c Log Message: fix stepping =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/enterminus/src/bin/enterm.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -3 -r1.5 -r1.6 --- enterm.c 12 Jun 2005 11:03:51 -0000 1.5 +++ enterm.c 12 Jun 2005 11:48:08 -0000 1.6 @@ -12,8 +12,9 @@ t = evas_object_smart_data_get(term); ecore_evas_data_set(ee, "term", term); ecore_evas_callback_resize_set(ee, enterm_cb_resize); - ecore_x_icccm_step_size_set(ecore_evas_software_x11_window_get(ee), - t->font.width, t->font.height); + ecore_x_icccm_size_pos_hints_set(ecore_evas_software_x11_window_get(ee), 0, + ECORE_X_GRAVITY_NW, 0, 0, 0, 0, 0, 0, + t->font.width, t->font.height, 0.0, 0.0); ecore_event_handler_add(TERM_EVENT_TITLE_CHANGE, enterm_cb_title_change, ee); ecore_evas_resize(ee, t->w, t->h); |
From: <enl...@li...> - 2005-11-20 11:04:53
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/etk Modified Files: COPYING Log Message: english fixes. =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/etk/COPYING,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- COPYING 20 Nov 2005 10:33:28 -0000 1.3 +++ COPYING 20 Nov 2005 11:04:36 -0000 1.4 @@ -1,9 +1,9 @@ WARNING: the icons located in the directory data/stock_icons/default are under the "Creative Commons Attribution-ShareAlike 2.5 License Agreement". -For more informations, read the file data/stock_icons/default/COPYING +For more information, read the file data/stock_icons/default/COPYING -All the other contents of Etk are under the BSD license, explained below: +All the other content of Etk are under the BSD license, explained below: Copyright (C) 2005 Simon TRENY and various contributors (see AUTHORS) |
From: <enl...@li...> - 2005-11-20 11:17:09
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/etk Modified Files: COPYING Log Message: english =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/etk/COPYING,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- COPYING 20 Nov 2005 11:04:36 -0000 1.4 +++ COPYING 20 Nov 2005 11:16:59 -0000 1.5 @@ -3,7 +3,7 @@ For more information, read the file data/stock_icons/default/COPYING -All the other content of Etk are under the BSD license, explained below: +All the other content of Etk is under the BSD license, explained below: Copyright (C) 2005 Simon TRENY and various contributors (see AUTHORS) |
From: <enl...@li...> - 2005-12-07 09:56:07
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/etk Modified Files: Makefile.am configure.in Added Files: etk.pc.in Log Message: pkg-config: - play nice with pkg config =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/etk/Makefile.am,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- Makefile.am 30 Oct 2005 00:54:59 -0000 1.3 +++ Makefile.am 7 Dec 2005 09:55:52 -0000 1.4 @@ -7,7 +7,8 @@ ltconfig ltmain.sh missing mkinstalldirs \ stamp-h.in build-stamp configure-stamp depcomp \ etk_docs.tar.gz \ - README + README \ + etk.pc bin_SCRIPTS = etk-config @@ -17,8 +18,9 @@ gendoc \ Doxyfile \ README \ -ABOUT-NLS +ABOUT-NLS \ +etk.pc.in pkgconfigdir = $(libdir)/pkgconfig - +pkgconfig_DATA = etk.pc ACLOCAL_AMFLAGS = -I m4 =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/etk/configure.in,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- configure.in 30 Oct 2005 00:54:59 -0000 1.4 +++ configure.in 7 Dec 2005 09:55:52 -0000 1.5 @@ -205,7 +205,18 @@ AC_SUBST(edje_cflags) AC_SUBST(edje_libs) -requirements="evas ecore edje" +# Build the list of required libs for etk.pc.in. Only works for libs +# which install a .pc file of course +if test "x$evas_libs" != "x"; then + requirements=evas +fi +if test "x$ecore_libs" != "x"; then + requirements="$requirements ecore" +fi +if test "x$edje_libs" != "x"; then + requirements="$requirements edje" +fi + AC_SUBST(requirements) ##################################################################### @@ -213,6 +224,7 @@ AC_OUTPUT([ Makefile +etk.pc src/Makefile src/lib/Makefile src/bin/Makefile |
From: <enl...@li...> - 2005-12-11 00:00:43
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/etk Modified Files: .cvsignore Log Message: - cvsignore some stuff =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/etk/.cvsignore,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- .cvsignore 27 Oct 2005 07:46:19 -0000 1.1 +++ .cvsignore 11 Dec 2005 00:00:34 -0000 1.2 @@ -7,6 +7,8 @@ config.h config.h.in config.log +config.sub +config.guess config.status configure depcomp @@ -17,3 +19,4 @@ ltmain.sh missing stamp-h1 +etk.pc |
From: <enl...@li...> - 2005-12-14 11:22:21
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/exhibit Log Message: Directory /cvsroot/enlightenment/e17/proto/exhibit added to the repository |
From: <enl...@li...> - 2005-12-14 11:23:18
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/exhibit/data Log Message: Directory /cvsroot/enlightenment/e17/proto/exhibit/data added to the repository |
From: <enl...@li...> - 2005-12-14 11:23:19
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/exhibit/src Log Message: Directory /cvsroot/enlightenment/e17/proto/exhibit/src added to the repository |