Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto
Dir : e17/proto/enterminus/src/bin Modified Files: Makefile.am Makefile.in handlers.c main.c pty.c term.c term.h ui.c Added Files: enterm.c smart.c Log Message: 1- split logic into enter and term_smart 2- enterm is just a test app 3- term_smart is the terminal smart object =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/enterminus/src/bin/Makefile.am,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- Makefile.am 24 Jan 2005 10:57:27 -0000 1.1 +++ Makefile.am 8 Feb 2005 11:45:58 -0000 1.2 @@ -13,6 +13,8 @@ pty.c \ term.c \ ui.c \ -handlers.c +handlers.c \ +smart.c \ +enterm.c enterminus_LDADD = @my_libs@ =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/enterminus/src/bin/Makefile.in,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- Makefile.in 24 Jan 2005 10:57:27 -0000 1.1 +++ Makefile.in 8 Feb 2005 11:45:58 -0000 1.2 @@ -146,7 +146,9 @@ pty.c \ term.c \ ui.c \ -handlers.c +handlers.c \ +smart.c \ +enterm.c enterminus_LDADD = @my_libs@ @@ -159,7 +161,8 @@ PROGRAMS = $(bin_PROGRAMS) am_enterminus_OBJECTS = main.$(OBJEXT) misc.$(OBJEXT) pty.$(OBJEXT) \ - term.$(OBJEXT) ui.$(OBJEXT) handlers.$(OBJEXT) + term.$(OBJEXT) ui.$(OBJEXT) handlers.$(OBJEXT) smart.$(OBJEXT) \ + enterm.$(OBJEXT) enterminus_OBJECTS = $(am_enterminus_OBJECTS) enterminus_DEPENDENCIES = enterminus_LDFLAGS = @@ -167,8 +170,9 @@ DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles [EMAIL PROTECTED]@DEP_FILES = ./$(DEPDIR)/handlers.Po ./$(DEPDIR)/main.Po \ [EMAIL PROTECTED]@ ./$(DEPDIR)/misc.Po ./$(DEPDIR)/pty.Po \ [EMAIL PROTECTED]@DEP_FILES = ./$(DEPDIR)/enterm.Po ./$(DEPDIR)/handlers.Po \ [EMAIL PROTECTED]@ ./$(DEPDIR)/main.Po ./$(DEPDIR)/misc.Po \ [EMAIL PROTECTED]@ ./$(DEPDIR)/pty.Po ./$(DEPDIR)/smart.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/term.Po ./$(DEPDIR)/ui.Po COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) @@ -229,10 +233,12 @@ distclean-compile: -rm -f *.tab.c [EMAIL PROTECTED]@@am__include@ @[EMAIL PROTECTED]/$(DEPDIR)/[EMAIL PROTECTED]@ @AMDEP_TRUE@@am__include@ @[EMAIL PROTECTED]/$(DEPDIR)/[EMAIL PROTECTED]@ @AMDEP_TRUE@@am__include@ @[EMAIL PROTECTED]/$(DEPDIR)/[EMAIL PROTECTED]@ @AMDEP_TRUE@@am__include@ @[EMAIL PROTECTED]/$(DEPDIR)/[EMAIL PROTECTED]@ @AMDEP_TRUE@@am__include@ @[EMAIL PROTECTED]/$(DEPDIR)/[EMAIL PROTECTED]@ [EMAIL PROTECTED]@@am__include@ @[EMAIL PROTECTED]/$(DEPDIR)/[EMAIL PROTECTED]@ @AMDEP_TRUE@@am__include@ @[EMAIL PROTECTED]/$(DEPDIR)/[EMAIL PROTECTED]@ @AMDEP_TRUE@@am__include@ @[EMAIL PROTECTED]/$(DEPDIR)/[EMAIL PROTECTED]@ =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/enterminus/src/bin/handlers.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- handlers.c 7 Feb 2005 12:56:58 -0000 1.4 +++ handlers.c 8 Feb 2005 11:45:58 -0000 1.5 @@ -18,9 +18,13 @@ switch(op) { case 0: /* set window and icon title */ case 1: /* set icon title */ - case 2: /* set window title */ - ecore_x_window_prop_title_set(ecore_evas_software_x11_window_get(term->ee), - buf); + case 2: /* set window title */ + if(term->title) free(term->title); + term->title = malloc(sizeof(buf)); + snprintf(term->title, sizeof(buf), "%s", buf); + /* TODO: MOVE THIS TO FRONTEND CODE */ + //ecore_x_window_prop_title_set(ecore_evas_software_x11_window_get(term->ee), + // buf); break; } } @@ -450,98 +454,3 @@ } } - -struct winsize *get_font_dim(Term *term) -{ - static struct winsize w; - w.ws_row = term->tcanvas->rows; - w.ws_col = term->tcanvas->cols; - w.ws_xpixel = w.ws_ypixel = 0; - return &w; -} - - -void term_cb_resize(Ecore_Evas *ee) { - int x, y, w, h, w_char, h_char, - num_chars_w, num_chars_h, old_size; - Term *term; - Term_EGlyph *gl; - Term_TGlyph *gt; - - term = (Term*)ecore_evas_data_get(ee, "term"); - - ecore_evas_geometry_get(term->ee, &x, &y, &w, &h); - - w_char = term_font_get_width(term); - h_char = term_font_get_height(term); - - num_chars_w = (int)((float)w/(float)w_char); - num_chars_h = (int)((float)h/(float)h_char); - - if(term->tcanvas->cols == num_chars_w && term->tcanvas->rows == num_chars_h) - return; - - /* TODO: Check if we're increasing or decreasing window size */ - - old_size = term->tcanvas->cols * term->tcanvas->rows; - - term->tcanvas->cols = num_chars_w; - term->tcanvas->rows = num_chars_h; - - term->tcanvas->scroll_region_start = 0; - term->tcanvas->scroll_region_end = term->tcanvas->rows - 1; - - if((term->tcanvas->grid = realloc(term->tcanvas->grid, - term->tcanvas->cols * term->tcanvas->rows * - term->tcanvas->scroll_size * - sizeof(Term_TGlyph))) == NULL) { - fprintf(stderr,"Fatal: Could not reallocate text grid!\n"); - exit(-1); - } - - /* review this, do we need to subtract: - * (term->tcanvas->cols * term->tcanvas->rows * term->tcanvas->scroll_size) - */ - y = (term->tcanvas->cols * term->tcanvas->rows * term->tcanvas->scroll_size) - - (old_size * term->tcanvas->scroll_size); - - for(x = y ; - x <= term->tcanvas->cols * term->tcanvas->rows * term->tcanvas->scroll_size; - x++) { - gt = &term->tcanvas->grid[x]; - gt->c = '\0'; - } - - if((term->tcanvas->changed_rows = realloc(term->tcanvas->changed_rows, - term->tcanvas->rows * - term->tcanvas->scroll_size * - sizeof(int))) == NULL) { - fprintf(stderr,"Fatal: Could not reallocate changed rows buffer!\n"); - exit(-1); - } - - 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 * - term->tcanvas->rows * - sizeof(Term_EGlyph))) == NULL) { - fprintf(stderr,"Fatal: Couldnt not reallocate evas grid!\n"); - exit(-1); - } - - y = term->tcanvas->cols * term->tcanvas->rows - - (term->tcanvas->cols * term->tcanvas->rows - (old_size)); - - for(x = y ; x <= term->tcanvas->cols * term->tcanvas->rows; x++) { - gl = &term->grid[x]; - gl->text = evas_object_text_add(term->evas); - } - - if(ioctl(term->cmd_fd.sys, TIOCSWINSZ, get_font_dim(term)) < 0) { - fprintf(stderr, "Couldn't set window size: %m\n"); - } - - term_term_bg_set(term, DATADIR"white.png"); - -} =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/enterminus/src/bin/main.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- main.c 7 Feb 2005 03:06:18 -0000 1.3 +++ main.c 8 Feb 2005 11:45:58 -0000 1.4 @@ -3,22 +3,19 @@ int main(int argc, char **argv) { Ecore_Evas *ee; /* ecore_evas */ - Term *term; /* terminal */ + 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); + //evas_object_resize(term, 640, 480); - //term_window_init(ee, evas); - ee = ecore_evas_software_x11_new(0, 0, 0, 0, 640, 480); - ecore_evas_show(ee); + enterm_init(ee, term); - term = term_new(ee); - - term_term_bg_set(term, DATADIR"white.png"); - - execute_command(term, argc, argv); - - term->cmd_fd.ecore = ecore_main_fd_handler_add(term->cmd_fd.sys, - ECORE_FD_READ, - term_tcanvas_data, term, - NULL, NULL); ecore_main_loop_begin(); ecore_evas_shutdown(); ecore_shutdown(); =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/enterminus/src/bin/pty.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- pty.c 6 Feb 2005 13:06:16 -0000 1.2 +++ pty.c 8 Feb 2005 11:45:58 -0000 1.3 @@ -88,7 +88,7 @@ return pw; } -int execute_command(Term *term, int argc, const char **argv) +int execute_command(Term *term)//, int argc, const char **argv) { char **args; int master; =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/enterminus/src/bin/term.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -3 -r1.7 -r1.8 --- term.c 7 Feb 2005 03:06:18 -0000 1.7 +++ term.c 8 Feb 2005 11:45:58 -0000 1.8 @@ -176,13 +176,16 @@ return h; } -Term *term_new(Ecore_Evas *ee) { +Term *term_init(Evas_Object *o) { int i, j; - Term_EGlyph *gl; - Term *term = malloc(sizeof(Term)); + Evas *evas; + Term_EGlyph *gl; + Term *term; + + term = malloc(sizeof(Term)); + evas = evas_object_evas_get(o); term->term_id = 0; - term->ee = ee; - term->evas = ecore_evas_get(ee); + term->evas = evas; term->tcanvas = term_tcanvas_new(); term->grid = calloc(term->tcanvas->cols * term->tcanvas->rows, sizeof(Term_EGlyph)); @@ -190,7 +193,10 @@ for(i = 0; i < term->tcanvas->cols * term->tcanvas->rows; i++) { gl = &term->grid[i]; - gl->text = evas_object_text_add(term->evas); + gl->text = evas_object_text_add(term->evas); + gl->bg = evas_object_text_add(term->evas); + evas_object_layer_set(gl->text,2); + evas_object_layer_set(gl->text,1); } term->bg = NULL; @@ -200,18 +206,17 @@ term->data_ptr = 0; term->font.width = term_font_get_width(term); 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_x_window_prop_step_size_set(ecore_evas_software_x11_window_get(term->ee), - term_font_get_width(term), - term_font_get_height(term)); - - ecore_evas_resize(term->ee, - term->tcanvas->cols*term_font_get_width(term), - term->tcanvas->rows*term_font_get_height(term)); - - ecore_evas_data_set(term->ee, "term", term); - + ecore_timer_add(0.1, term_timers, term); + execute_command(term);//, argc, argv); + term->cmd_fd.ecore = ecore_main_fd_handler_add(term->cmd_fd.sys, + ECORE_FD_READ, + term_tcanvas_data, term, + NULL, NULL); + term->w = term->font.width * term->tcanvas->cols; + term->h = term->font.height * term->tcanvas->rows; + term_term_bg_set(term, DATADIR"black.png"); + return term; } =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/enterminus/src/bin/term.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- term.h 7 Feb 2005 03:06:18 -0000 1.2 +++ term.h 8 Feb 2005 11:45:58 -0000 1.3 @@ -105,12 +105,14 @@ int data_len; int font_width; int font_height; - + char *title; + int w; + int h; }; typedef struct _Term Term; -Term *term_new(Ecore_Evas *ee); +Term *term_init(Evas_Object *o); Term_TCanvas *term_tcanvas_new(); int term_tcanvas_data(void *data); void term_tcanvas_glyph_push(Term *term, char c); @@ -132,7 +134,7 @@ int get_tty(Term *term); void sigchld_handler(int a); struct passwd *find_user(void); -int execute_command(Term *term, int argc, const char **argv); +int execute_command(Term *term);//, int argc, const char **argv); void term_window_init(Ecore_Evas *ee, Evas *evas); void term_term_bg_set(Term *term, char *img); @@ -154,3 +156,21 @@ void term_scroll_up(Term *term, int rows); void term_scroll_down(Term *term, int rows); +void term_smart_add(Evas_Object *o); +void term_smart_del(Evas_Object *o); +void term_smart_layer_set(Evas_Object *o, int l); +void term_smart_raise(Evas_Object *o); +void term_smart_lower(Evas_Object *o); +void term_smart_stack_above(Evas_Object *o, Evas_Object *above); +void term_smart_stack_below(Evas_Object *o, Evas_Object *below); +void term_smart_move(Evas_Object *o, Evas_Coord x, Evas_Coord y); +void term_smart_resize(Evas_Object *o, Evas_Coord w, Evas_Coord h); +void term_smart_show(Evas_Object *o); +void term_smart_hide(Evas_Object *o); +void term_smart_color_set(Evas_Object *o, int r, int g, int b, int a); +void term_smart_clip_set(Evas_Object *o, Evas_Object *clip); +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); =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/enterminus/src/bin/ui.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -3 -r1.9 -r1.10 --- ui.c 7 Feb 2005 12:56:58 -0000 1.9 +++ ui.c 8 Feb 2005 11:45:58 -0000 1.10 @@ -8,36 +8,23 @@ #define COLOR4 20, 20, 200 #define COLOR5 46, 75, 100 #define COLOR6 98, 175, 200 -#define COLOR7 50, 50, 50 +#define COLOR7 250, 250, 250 #define COLOR8 231, 105, 50 -/* this isnt used right now */ -void term_window_init(Ecore_Evas *ee, Evas *evas) { - - ee = ecore_evas_software_x11_new(0, 0, 0, 0, 640, 480); - evas = ecore_evas_get(ee); - ecore_evas_show(ee); -} - void term_term_bg_set(Term *term, char *img) { - int x, y, w, h; - ecore_evas_geometry_get(term->ee, &x, &y, &w, &h); - if(!term->bg) { term->bg = evas_object_image_add(term->evas); evas_object_event_callback_add(term->bg, EVAS_CALLBACK_KEY_DOWN, term_cb_key_down, - term); - ecore_evas_callback_resize_set(term->ee, term_cb_resize); + term); } - evas_object_resize(term->bg, w, h); + evas_object_resize(term->bg, term->w, term->h); evas_object_image_file_set(term->bg, img, NULL); evas_object_layer_set(term->bg, 0); - evas_object_image_fill_set(term->bg, 0, 0, w, h); - evas_object_focus_set(term->bg,1); - evas_object_show(term->bg); + evas_object_image_fill_set(term->bg, 0, 0, term->w, term->h); + evas_object_focus_set(term->bg, 1); } @@ -115,10 +102,8 @@ break; } - - 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) { ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs