Changeset 4758 for gaycko/trunk


Ignore:
Timestamp:
Feb 6, 2011, 4:27:15 PM (9 years ago)
Author:
Jean-Yves Lamoureux
Message:
  • Preliminary support of <hr>
  • Minor cleaning
Location:
gaycko/trunk/src
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • gaycko/trunk/src/dom/dom.c

    r4755 r4758  
    7070        }else if(!strncmp(e->name, "h1", 2)) {
    7171                e->type = ELEM_H1;
     72        }else if(!strncmp(e->name, "h2", 2)) {
     73                e->type = ELEM_H2;
     74        }else if(!strncmp(e->name, "h3", 2)) {
     75                e->type = ELEM_H3;
     76        }else if(!strncmp(e->name, "hr", 2)) {
     77                e->type = ELEM_HR;
    7278        }else if(!strncmp(e->name, "br", 2) || !strncmp(e->name, "br ", 3)) {
    7379                e->type = ELEM_BR;
     
    136142                        parent->children = realloc(parent->children, sizeof(gNode*)*(parent->children_count+1));
    137143                        parent->children[parent->children_count] = child;
     144            child->parent = parent;
    138145                        parent->children_count++;
    139146                }
  • gaycko/trunk/src/dom/dom.h

    r4750 r4758  
    2929    ELEM_BODY,
    3030    ELEM_H1,
     31    ELEM_H2,
     32    ELEM_H3,
    3133    ELEM_BR,
     34    ELEM_HR,
    3235    ELEM_P,
    3336    ELEM_IMG,
  • gaycko/trunk/src/gaycko.cpp

    r4755 r4758  
    5151        gaycko_close(stream);
    5252
    53     gWindow *window = gaycko_create_window(150, 20);
     53    gWindow *window = gaycko_create_window(0, 0);
    5454    gaycko_window_set_dom(window, dom);
    5555    gaycko_render(window);
     56
     57    gaycko_display_window(window);
    5658   
    5759    dp = caca_create_display(window->cv);
    58     gaycko_display_window(window);
    59    
     60       
    6061    caca_refresh_display(dp);
    6162    caca_get_event(dp, CACA_EVENT_KEY_PRESS, &ev, -1);
  • gaycko/trunk/src/render/position.c

    r4754 r4758  
    2626            case ELEM_TABLE:
    2727                gaycko_get_position(node->children[c], parent);
     28                x+=node->children[c]->properties->width;
     29                if(node->children[c]->properties->width>w) {
     30                    w = (node->children[c]->properties->width);
     31                }
    2832                break;
     33               
    2934            case ELEM_TR:
    3035                gaycko_get_position(node->children[c], parent);
    3136                node->children[c]->properties->height+=1;
    32                 break;
    33             case ELEM_BR:
    34                 node->children[c]->properties->height+=1;
     37                x = 0;   
     38                w+=node->children[c]->properties->width+1;
    3539                break;
    3640            case ELEM_TD:
    3741                gaycko_get_position(node->children[c], parent);
     42                x+=node->children[c]->properties->width;
     43                if(node->children[c]->properties->width>w) {
     44                    w = (node->children[c]->properties->width);
     45                }
    3846                break;
     47               
     48            case ELEM_BR:
     49                node->children[c]->properties->height+=1;
     50                x = 0;   
     51                w+=node->children[c]->properties->width+1;
     52                break;
     53            case ELEM_HR:
     54                node->children[c]->properties->height+=1;
     55                x = 0;   
     56                w+=node->children[c]->properties->width+1;
     57                break;
     58            case ELEM_H1:
     59            case ELEM_H2:
     60            case ELEM_H3:
     61                node->children[c]->properties->height+=1;
     62                x = 0;   
     63                w+=node->children[c]->properties->width+1;
     64                break;
     65               
     66               
    3967            case ELEM_TEXT:
    4068                if(parent &&
     
    4674                        }
    4775                } else {
    48                     node->children[c]->properties->width = 0;
     76                    node->children[c]->properties->width  = 0;
    4977                    node->children[c]->properties->height = 0;
    5078                }
     79                x+=node->children[c]->properties->width;
     80                if(node->children[c]->properties->width>w) {
     81                    w = (node->children[c]->properties->width);
     82                }
    5183                break;
     84               
    5285            default:
    5386                gaycko_get_position(node->children[c], node);
     87                x+=node->children[c]->properties->width;
     88                if(node->children[c]->properties->width>w) {
     89                    w = (node->children[c]->properties->width);
     90                }
     91               
    5492                break;
    5593        }
    56         if(node->children[c]->type != ELEM_TR &&
    57            node->children[c]->type != ELEM_BR) {
    58             x+=node->children[c]->properties->width;
    59         } else {
    60                 x = 0;   
    61         }
     94     
    6295        y+=node->children[c]->properties->height;
    63         w+=node->children[c]->properties->width;
    6496        h+=node->children[c]->properties->height;
    65        
    6697       
    6798    }
    6899   
     100
    69101    node->properties->width  = w;
    70102    node->properties->height = h;
  • gaycko/trunk/src/render/renderer.c

    r4755 r4758  
    1515        window->dom->root->properties->width = window->width;
    1616    gaycko_get_position(window->dom->root, NULL);
     17    caca_set_canvas_size(window->cv,
     18                         window->dom->root->properties->width,
     19                         window->dom->root->properties->height);
    1720    gaycko_print_dom(window);
    1821}
     
    2629        int c = 0;
    2730   
    28     if(node->type == ELEM_TEXT) {
    29         caca_set_color_argb(window->cv, 0, 0xFFFF);
    30         caca_printf(window->cv, node->properties->x, node->properties->y, node->text);
    31     }
     31    switch(node->type) {
     32                case ELEM_TEXT:
     33                caca_set_color_argb(window->cv, 0, 0xFFFF);
     34                caca_put_str(window->cv, node->properties->x, node->properties->y, node->text);
     35            break;
     36        case ELEM_HR:
     37                        caca_draw_line(window->cv,
     38                           node->properties->x, node->properties->y,
     39                           node->properties->x+node->parent->properties->width, node->properties->y,
     40                           '-');
     41            printf("Line parent is '%s', width %d\n", node->parent->name, node->parent->properties->width);
     42                break;
     43        default:
     44           
     45            break;
     46        }
    3247       
    3348    for(c = 0; c < node->children_count; c++) {
Note: See TracChangeset for help on using the changeset viewer.