- range->row0=MIN(range->row0, sheet->range.row0);
- range->rowi=MAX(range->rowi, sheet->range.rowi);
- range->col0=MIN(range->col0, sheet->range.col0);
- range->coli=MAX(range->coli, sheet->range.coli);
-
- range->row0=MAX(range->row0, MIN_VISIBLE_ROW(sheet));
- range->rowi=MIN(range->rowi, MAX_VISIBLE_ROW(sheet));
- range->col0=MAX(range->col0, MIN_VISIBLE_COLUMN(sheet));
- range->coli=MIN(range->coli, MAX_VISIBLE_COLUMN(sheet));
-
- aux_range.row0=MAX(new_range.row0, MIN_VISIBLE_ROW(sheet));
- aux_range.rowi=MIN(new_range.rowi, MAX_VISIBLE_ROW(sheet));
- aux_range.col0=MAX(new_range.col0, MIN_VISIBLE_COLUMN(sheet));
- aux_range.coli=MIN(new_range.coli, MAX_VISIBLE_COLUMN(sheet));
-
- for(i=range->row0; i<=range->rowi; i++){
- for(j=range->col0; j<=range->coli; j++){
-
- state=gtk_sheet_cell_get_state(sheet, i, j);
- selected=(i<=new_range.rowi && i>=new_range.row0 &&
- j<=new_range.coli && j>=new_range.col0) ? TRUE : FALSE;
-
- if(state==GTK_STATE_SELECTED && selected &&
- xxx_column_is_visible(sheet, j) && yyy_row_is_visible(sheet, i) &&
- (i==sheet->range.row0 || i==sheet->range.rowi ||
- j==sheet->range.col0 || j==sheet->range.coli ||
- i==new_range.row0 || i==new_range.rowi ||
- j==new_range.col0 || j==new_range.coli)){
-
- mask1 = i==sheet->range.row0 ? 1 : 0;
- mask1 = i==sheet->range.rowi ? mask1+2 : mask1;
- mask1 = j==sheet->range.col0 ? mask1+4 : mask1;
- mask1 = j==sheet->range.coli ? mask1+8 : mask1;
-
- mask2 = i==new_range.row0 ? 1 : 0;
- mask2 = i==new_range.rowi ? mask2+2 : mask2;
- mask2 = j==new_range.col0 ? mask2+4 : mask2;
- mask2 = j==new_range.coli ? mask2+8 : mask2;
-
- if(mask1 != mask2){
- x=COLUMN_LEFT_XPIXEL(sheet,j);
- y=ROW_TOP_YPIXEL(sheet, i);
- width=COLUMN_LEFT_XPIXEL(sheet, j)-x+
- xxx_column_width(sheet, j);
- height=ROW_TOP_YPIXEL(sheet, i)-y+yyy_row_height(sheet, i);
-
- if(i==sheet->range.row0){
- y=y-3;
- height=height+3;
- }
- if(i==sheet->range.rowi) height=height+3;
- if(j==sheet->range.col0){
- x=x-3;
- width=width+3;
- }
- if(j==sheet->range.coli) width=width+3;
-
- gdk_draw_pixmap(sheet->sheet_window,
- GTK_WIDGET(sheet)->style->fg_gc[GTK_STATE_NORMAL],
- sheet->pixmap,
- x+1,
- y+1,
- x+1,
- y+1,
- width,
- height);
-
- if(i != sheet->active_cell.row || j != sheet->active_cell.col){
- x=COLUMN_LEFT_XPIXEL(sheet,j);
- y=ROW_TOP_YPIXEL(sheet, i);
- width=COLUMN_LEFT_XPIXEL(sheet, j)-x+
- xxx_column_width(sheet, j);
-
- height=ROW_TOP_YPIXEL(sheet, i)-y+yyy_row_height(sheet, i);
-
- if(i==new_range.row0){
- y=y+2;
- height=height-2;
- }
- if(i==new_range.rowi) height=height-3;
- if(j==new_range.col0){
- x=x+2;
- width=width-2;
- }
- if(j==new_range.coli) width=width-3;
-
- gdk_draw_rectangle (sheet->sheet_window,
- sheet->xor_gc,
- TRUE,
- x+1,y+1,
- width,height);
- }
- }
- }
- }
- }
-
- for(i=range->row0; i<=range->rowi; i++){
- for(j=range->col0; j<=range->coli; j++){
-
- state=gtk_sheet_cell_get_state(sheet, i, j);
- selected=(i<=new_range.rowi && i>=new_range.row0 &&
- j<=new_range.coli && j>=new_range.col0) ? TRUE : FALSE;
-
- if(state==GTK_STATE_SELECTED && !selected &&
- xxx_column_is_visible(sheet, j) && yyy_row_is_visible(sheet, i)){
-
- x=COLUMN_LEFT_XPIXEL(sheet,j);
- y=ROW_TOP_YPIXEL(sheet, i);
- width=COLUMN_LEFT_XPIXEL(sheet, j)-x+ xxx_column_width(sheet, j);
- height=ROW_TOP_YPIXEL(sheet, i)-y+yyy_row_height(sheet, i);
-
- if(i==sheet->range.row0){
- y=y-3;
- height=height+3;
- }
- if(i==sheet->range.rowi) height=height+3;
- if(j==sheet->range.col0){
- x=x-3;
- width=width+3;
- }
- if(j==sheet->range.coli) width=width+3;
-
- gdk_draw_pixmap(sheet->sheet_window,
- GTK_WIDGET(sheet)->style->fg_gc[GTK_STATE_NORMAL],
- sheet->pixmap,
- x+1,
- y+1,
- x+1,
- y+1,
- width,
- height);
- }
- }
- }
-
- for(i=range->row0; i<=range->rowi; i++){
- for(j=range->col0; j<=range->coli; j++){
-
- state=gtk_sheet_cell_get_state(sheet, i, j);
- selected=(i<=new_range.rowi && i>=new_range.row0 &&
- j<=new_range.coli && j>=new_range.col0) ? TRUE : FALSE;
-
- if(state!=GTK_STATE_SELECTED && selected &&
- xxx_column_is_visible(sheet, j) && yyy_row_is_visible(sheet, i) &&
- (i != sheet->active_cell.row || j != sheet->active_cell.col)){
-
- x=COLUMN_LEFT_XPIXEL(sheet,j);
- y=ROW_TOP_YPIXEL(sheet, i);
- width=COLUMN_LEFT_XPIXEL(sheet, j)-x+ xxx_column_width(sheet, j);
- height=ROW_TOP_YPIXEL(sheet, i)-y+yyy_row_height(sheet, i);
-
- if(i==new_range.row0){
- y=y+2;
- height=height-2;
- }
- if(i==new_range.rowi) height=height-3;
- if(j==new_range.col0){
- x=x+2;
- width=width-2;
- }
- if(j==new_range.coli) width=width-3;
-
- gdk_draw_rectangle (sheet->sheet_window,
- sheet->xor_gc,
- TRUE,
- x+1,y+1,
- width,height);
-
- }
-
- }
- }
-
- for(i=aux_range.row0; i<=aux_range.rowi; i++){
- for(j=aux_range.col0; j<=aux_range.coli; j++){
-
- if(xxx_column_is_visible(sheet, j) && yyy_row_is_visible(sheet, i)){
-
- state=gtk_sheet_cell_get_state(sheet, i, j);
-
- mask1 = i==sheet->range.row0 ? 1 : 0;
- mask1 = i==sheet->range.rowi ? mask1+2 : mask1;
- mask1 = j==sheet->range.col0 ? mask1+4 : mask1;
- mask1 = j==sheet->range.coli ? mask1+8 : mask1;
-
- mask2 = i==new_range.row0 ? 1 : 0;
- mask2 = i==new_range.rowi ? mask2+2 : mask2;
- mask2 = j==new_range.col0 ? mask2+4 : mask2;
- mask2 = j==new_range.coli ? mask2+8 : mask2;
- if(mask2!=mask1 || (mask2==mask1 && state!=GTK_STATE_SELECTED)){
- x=COLUMN_LEFT_XPIXEL(sheet,j);
- y=ROW_TOP_YPIXEL(sheet, i);
- width=xxx_column_width(sheet, j);
- height=yyy_row_height(sheet, i);
- if(mask2 & 1)
- gdk_draw_rectangle (sheet->sheet_window,
- sheet->xor_gc,
- TRUE,
- x+1,y-1,
- width,3);
-
-
- if(mask2 & 2)
- gdk_draw_rectangle (sheet->sheet_window,
- sheet->xor_gc,
- TRUE,
- x+1,y+height-1,
- width,3);
-
- if(mask2 & 4)
- gdk_draw_rectangle (sheet->sheet_window,
- sheet->xor_gc,
- TRUE,
- x-1,y+1,
- 3,height);
-
-
- if(mask2 & 8)
- gdk_draw_rectangle (sheet->sheet_window,
- sheet->xor_gc,
- TRUE,
- x+width-1,y+1,
- 3,height);
-
-
-
- }
-
- }
+ range->row0 = MIN (range->row0, sheet->range.row0);
+ range->rowi = MAX (range->rowi, sheet->range.rowi);
+ range->col0 = MIN (range->col0, sheet->range.col0);
+ range->coli = MAX (range->coli, sheet->range.coli);
+
+ range->row0 = MAX (range->row0, MIN_VISIBLE_ROW (sheet));
+ range->rowi = MIN (range->rowi, MAX_VISIBLE_ROW (sheet));
+ range->col0 = MAX (range->col0, MIN_VISIBLE_COLUMN (sheet));
+ range->coli = MIN (range->coli, MAX_VISIBLE_COLUMN (sheet));
+
+ aux_range.row0 = MAX (new_range.row0, MIN_VISIBLE_ROW (sheet));
+ aux_range.rowi = MIN (new_range.rowi, MAX_VISIBLE_ROW (sheet));
+ aux_range.col0 = MAX (new_range.col0, MIN_VISIBLE_COLUMN (sheet));
+ aux_range.coli = MIN (new_range.coli, MAX_VISIBLE_COLUMN (sheet));
+
+ for (i = range->row0; i <= range->rowi; i++)
+ {
+ for (j = range->col0; j <= range->coli; j++)
+ {
+
+ state = gtk_sheet_cell_get_state (sheet, i, j);
+ selected= (i <= new_range.rowi && i >= new_range.row0 &&
+ j <= new_range.coli && j >= new_range.col0) ? TRUE : FALSE;
+
+ if (state == GTK_STATE_SELECTED && selected &&
+ xxx_column_is_visible (sheet, j) && yyy_row_is_visible (sheet, i) &&
+ (i == sheet->range.row0 || i == sheet->range.rowi ||
+ j == sheet->range.col0 || j == sheet->range.coli ||
+ i == new_range.row0 || i == new_range.rowi ||
+ j == new_range.col0 || j == new_range.coli))
+ {
+
+ mask1 = i == sheet->range.row0 ? 1 : 0;
+ mask1 = i == sheet->range.rowi ? mask1 + 2 : mask1;
+ mask1 = j == sheet->range.col0 ? mask1 + 4 : mask1;
+ mask1 = j == sheet->range.coli ? mask1 + 8 : mask1;
+
+ mask2 = i == new_range.row0 ? 1 : 0;
+ mask2 = i == new_range.rowi ? mask2 + 2 : mask2;
+ mask2 = j == new_range.col0 ? mask2 + 4 : mask2;
+ mask2 = j == new_range.coli ? mask2 + 8 : mask2;
+
+ if (mask1 != mask2)
+ {
+ x = COLUMN_LEFT_XPIXEL (sheet,j);
+ y = ROW_TOP_YPIXEL (sheet, i);
+ width = COLUMN_LEFT_XPIXEL (sheet, j)- x+
+ xxx_column_width (sheet, j);
+ height = ROW_TOP_YPIXEL (sheet, i)- y + yyy_row_height (sheet, i);
+
+ if (i == sheet->range.row0)
+ {
+ y = y - 3;
+ height = height + 3;
+ }
+ if (i == sheet->range.rowi) height = height + 3;
+ if (j == sheet->range.col0)
+ {
+ x = x - 3;
+ width = width + 3;
+ }
+ if (j == sheet->range.coli) width = width + 3;
+
+ gdk_draw_pixmap (sheet->sheet_window,
+ GTK_WIDGET (sheet)->style->fg_gc[GTK_STATE_NORMAL],
+ sheet->pixmap,
+ x + 1,
+ y + 1,
+ x + 1,
+ y + 1,
+ width,
+ height);
+
+ if (i != sheet->active_cell.row || j != sheet->active_cell.col)
+ {
+ x = COLUMN_LEFT_XPIXEL (sheet,j);
+ y = ROW_TOP_YPIXEL (sheet, i);
+ width = COLUMN_LEFT_XPIXEL (sheet, j)- x+
+ xxx_column_width (sheet, j);
+
+ height = ROW_TOP_YPIXEL (sheet, i)- y + yyy_row_height (sheet, i);
+
+ if (i == new_range.row0)
+ {
+ y = y+2;
+ height = height - 2;
+ }
+ if (i == new_range.rowi) height = height - 3;
+ if (j == new_range.col0)
+ {
+ x = x+2;
+ width = width - 2;
+ }
+ if (j == new_range.coli) width = width - 3;
+
+ gdk_draw_rectangle (sheet->sheet_window,
+ sheet->xor_gc,
+ TRUE,
+ x + 1,y + 1,
+ width,height);
+ }
+ }
+ }
+ }
+ }
+
+ for (i = range->row0; i <= range->rowi; i++)
+ {
+ for (j = range->col0; j <= range->coli; j++)
+ {
+
+ state = gtk_sheet_cell_get_state (sheet, i, j);
+ selected= (i <= new_range.rowi && i >= new_range.row0 &&
+ j <= new_range.coli && j >= new_range.col0) ? TRUE : FALSE;
+
+ if (state == GTK_STATE_SELECTED && !selected &&
+ xxx_column_is_visible (sheet, j) && yyy_row_is_visible (sheet, i))
+ {
+
+ x = COLUMN_LEFT_XPIXEL (sheet,j);
+ y = ROW_TOP_YPIXEL (sheet, i);
+ width = COLUMN_LEFT_XPIXEL (sheet, j)- x+ xxx_column_width (sheet, j);
+ height = ROW_TOP_YPIXEL (sheet, i)- y + yyy_row_height (sheet, i);
+
+ if (i == sheet->range.row0)
+ {
+ y = y - 3;
+ height = height + 3;
+ }
+ if (i == sheet->range.rowi) height = height + 3;
+ if (j == sheet->range.col0)
+ {
+ x = x - 3;
+ width = width + 3;
+ }
+ if (j == sheet->range.coli) width = width + 3;
+
+ gdk_draw_pixmap (sheet->sheet_window,
+ GTK_WIDGET (sheet)->style->fg_gc[GTK_STATE_NORMAL],
+ sheet->pixmap,
+ x + 1,
+ y + 1,
+ x + 1,
+ y + 1,
+ width,
+ height);
+ }
+ }
+ }
+
+ for (i = range->row0; i <= range->rowi; i++)
+ {
+ for (j = range->col0; j <= range->coli; j++)
+ {
+
+ state = gtk_sheet_cell_get_state (sheet, i, j);
+ selected= (i <= new_range.rowi && i >= new_range.row0 &&
+ j <= new_range.coli && j >= new_range.col0) ? TRUE : FALSE;
+
+ if (state!=GTK_STATE_SELECTED && selected &&
+ xxx_column_is_visible (sheet, j) && yyy_row_is_visible (sheet, i) &&
+ (i != sheet->active_cell.row || j != sheet->active_cell.col))
+ {
+
+ x = COLUMN_LEFT_XPIXEL (sheet,j);
+ y = ROW_TOP_YPIXEL (sheet, i);
+ width = COLUMN_LEFT_XPIXEL (sheet, j)- x+ xxx_column_width (sheet, j);
+ height = ROW_TOP_YPIXEL (sheet, i)- y + yyy_row_height (sheet, i);
+
+ if (i == new_range.row0)
+ {
+ y = y+2;
+ height = height - 2;
+ }
+ if (i == new_range.rowi) height = height - 3;
+ if (j == new_range.col0)
+ {
+ x = x+2;
+ width = width - 2;
+ }
+ if (j == new_range.coli) width = width - 3;
+
+ gdk_draw_rectangle (sheet->sheet_window,
+ sheet->xor_gc,
+ TRUE,
+ x + 1,y + 1,
+ width,height);
+
+ }
+
+ }
+ }
+
+ for (i = aux_range.row0; i <= aux_range.rowi; i++)
+ {
+ for (j = aux_range.col0; j <= aux_range.coli; j++)
+ {
+
+ if (xxx_column_is_visible (sheet, j) && yyy_row_is_visible (sheet, i))
+ {
+
+ state = gtk_sheet_cell_get_state (sheet, i, j);
+
+ mask1 = i == sheet->range.row0 ? 1 : 0;
+ mask1 = i == sheet->range.rowi ? mask1 + 2 : mask1;
+ mask1 = j == sheet->range.col0 ? mask1 + 4 : mask1;
+ mask1 = j == sheet->range.coli ? mask1 + 8 : mask1;
+
+ mask2 = i == new_range.row0 ? 1 : 0;
+ mask2 = i == new_range.rowi ? mask2 + 2 : mask2;
+ mask2 = j == new_range.col0 ? mask2 + 4 : mask2;
+ mask2 = j == new_range.coli ? mask2 + 8 : mask2;
+ if (mask2!=mask1 || (mask2 == mask1 && state!=GTK_STATE_SELECTED))
+ {
+ x = COLUMN_LEFT_XPIXEL (sheet,j);
+ y = ROW_TOP_YPIXEL (sheet, i);
+ width = xxx_column_width (sheet, j);
+ height = yyy_row_height (sheet, i);
+ if (mask2 & 1)
+ gdk_draw_rectangle (sheet->sheet_window,
+ sheet->xor_gc,
+ TRUE,
+ x + 1,y - 1,
+ width,3);
+
+
+ if (mask2 & 2)
+ gdk_draw_rectangle (sheet->sheet_window,
+ sheet->xor_gc,
+ TRUE,
+ x + 1,y + height - 1,
+ width,3);
+
+ if (mask2 & 4)
+ gdk_draw_rectangle (sheet->sheet_window,
+ sheet->xor_gc,
+ TRUE,
+ x - 1,y + 1,
+ 3,height);
+
+
+ if (mask2 & 8)
+ gdk_draw_rectangle (sheet->sheet_window,
+ sheet->xor_gc,
+ TRUE,
+ x + width - 1,y + 1,
+ 3,height);
+
+
+
+ }