Пример #1
0
 void spreadsheet::draw(surface::ptr surface, const rectangle& clip_rect)
 {
     surface->clip_rect(clip_rect.empty() ? rect() : clip_rect);
     int current_y_pos = 0;
     for(column_iterator column=columns_begin();column!=columns_end();column++)
     {
         int current_x_pos = 0;
         column_info::Tcells::iterator cell = column->cells.begin();
         for(row_iterator row = rows_begin(); row != rows_end(); row++)
         {
             if(/*!column->cells.empty() && */ cell != column->cells.end())
             {
                 (*cell)->draw(surface,rectangle(current_x_pos+rect_.x1(),
                                                 current_y_pos+rect_.y1(),
                                                 row->width, column->height));
                 cell++;
             }
             current_x_pos += row->width;
         }
         current_y_pos += column->height;
     }
 }