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

Reply via email to