-static void
-gtk_sheet_draw_corners(GtkSheet *sheet, GtkSheetRange range)
-{
- gint x,y;
- guint width = 1;
-
- if(gtk_sheet_cell_isvisible(sheet, range.row0, range.col0)){
- x=COLUMN_LEFT_XPIXEL(sheet,range.col0);
- y=ROW_TOP_YPIXEL(sheet,range.row0);
- 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,
- 3,
- 3);
- gdk_draw_rectangle (sheet->sheet_window,
- sheet->xor_gc,
- TRUE,
- x-1,y-1,
- 3,3);
- }
-
- if(gtk_sheet_cell_isvisible(sheet, range.row0, range.coli) ||
- sheet->state == GTK_SHEET_COLUMN_SELECTED){
- x=COLUMN_LEFT_XPIXEL(sheet,range.coli)+
- xxx_column_width(sheet, range.coli);
- y=ROW_TOP_YPIXEL(sheet,range.row0);
- width = 1;
- if(sheet->state == GTK_SHEET_COLUMN_SELECTED)
- {
- y = ROW_TOP_YPIXEL(sheet, sheet->view.row0)+3;
- width = 3;
- }
- gdk_draw_pixmap(sheet->sheet_window,
- GTK_WIDGET(sheet)->style->fg_gc[GTK_STATE_NORMAL],
- sheet->pixmap,
- x-width,
- y-width,
- x-width,
- y-width,
- 2*width+1,
- 2*width+1);
- gdk_draw_rectangle (sheet->sheet_window,
- sheet->xor_gc,
- TRUE,
- x-width+width/2,y-width+width/2,
- 2+width,2+width);
- }
-
- if(gtk_sheet_cell_isvisible(sheet, range.rowi, range.col0) ||
- sheet->state == GTK_SHEET_ROW_SELECTED){
- x=COLUMN_LEFT_XPIXEL(sheet,range.col0);
- y=ROW_TOP_YPIXEL(sheet,range.rowi)+
- yyy_row_height(sheet, range.rowi);
- width = 1;
- if(sheet->state == GTK_SHEET_ROW_SELECTED)
- {
- x = COLUMN_LEFT_XPIXEL(sheet, sheet->view.col0)+3;
- width = 3;
- }
- gdk_draw_pixmap(sheet->sheet_window,
- GTK_WIDGET(sheet)->style->fg_gc[GTK_STATE_NORMAL],
- sheet->pixmap,
- x-width,
- y-width,
- x-width,
- y-width,
- 2*width+1,
- 2*width+1);
- gdk_draw_rectangle (sheet->sheet_window,
- sheet->xor_gc,
- TRUE,
- x-width+width/2,y-width+width/2,
- 2+width,2+width);
- }
-
- if(gtk_sheet_cell_isvisible(sheet, range.rowi, range.coli)){
- x=COLUMN_LEFT_XPIXEL(sheet,range.coli)+
- xxx_column_width(sheet, range.coli);
- y=ROW_TOP_YPIXEL(sheet,range.rowi)+
- yyy_row_height(sheet, range.rowi);
- width = 1;
- if(sheet->state == GTK_SHEET_RANGE_SELECTED) width = 3;
- if(sheet->state == GTK_SHEET_NORMAL) width = 3;
- gdk_draw_pixmap(sheet->sheet_window,
- GTK_WIDGET(sheet)->style->fg_gc[GTK_STATE_NORMAL],
- sheet->pixmap,
- x-width,
- y-width,
- x-width,
- y-width,
- 2*width+1,
- 2*width+1);
- gdk_draw_rectangle (sheet->sheet_window,
- sheet->xor_gc,
- TRUE,
- x-width+width/2,y-width+width/2,
- 2+width,2+width);
-
- }
-
-}
-
-
-static void
-gtk_sheet_real_select_range (GtkSheet * sheet,
- GtkSheetRange * range)
-{
- gint state;
-
- g_return_if_fail (sheet != NULL);
-
- if(range==NULL) range=&sheet->range;
-
- if(range->row0 < 0 || range->rowi < 0) return;
- if(range->col0 < 0 || range->coli < 0) return;
-
- state=sheet->state;
-
-#if 0
- if(state==GTK_SHEET_COLUMN_SELECTED || state==GTK_SHEET_RANGE_SELECTED){
- for(i=sheet->range.col0; i< range->col0; i++)
- column_button_release(sheet, i);
- for(i=range->coli+1; i<= sheet->range.coli; i++)
- column_button_release(sheet, i);
- for(i=range->col0; i<=range->coli; i++){
- column_button_set(sheet, i);
- }
- }
-
- if(state==GTK_SHEET_ROW_SELECTED || state==GTK_SHEET_RANGE_SELECTED){
- for(i=sheet->range.row0; i< range->row0; i++)
- row_button_release(sheet, i);
- for(i=range->rowi+1; i<= sheet->range.rowi; i++)
- row_button_release(sheet, i);
- for(i=range->row0; i<=range->rowi; i++){
- row_button_set(sheet, i);
- }
- }
-#endif
-
- if(range->coli != sheet->range.coli || range->col0 != sheet->range.col0 ||
- range->rowi != sheet->range.rowi || range->row0 != sheet->range.row0)
- {
-
- gtk_sheet_new_selection(sheet, range);
-
- sheet->range.col0=range->col0;
- sheet->range.coli=range->coli;
- sheet->range.row0=range->row0;
- sheet->range.rowi=range->rowi;
-
- }
- else
- {
- gtk_sheet_draw_backing_pixmap(sheet, sheet->range);
- gtk_sheet_range_draw_selection(sheet, sheet->range);
- }
-
- gtk_signal_emit(GTK_OBJECT(sheet), sheet_signals[SELECT_RANGE], range);
-}
-
-void
-gtk_sheet_select_range(GtkSheet * sheet, const GtkSheetRange *range)
-{
- g_return_if_fail (sheet != NULL);
-
- if(range==NULL) range=&sheet->range;
-
- if(range->row0 < 0 || range->rowi < 0) return;
- if(range->col0 < 0 || range->coli < 0) return;
-
- if(sheet->state != GTK_SHEET_NORMAL)
- gtk_sheet_real_unselect_range(sheet, NULL);
- else
- {
- gboolean veto = TRUE;
- veto = gtk_sheet_deactivate_cell(sheet);
- if(!veto) return;
- }
-
- sheet->range.row0=range->row0;
- sheet->range.rowi=range->rowi;
- sheet->range.col0=range->col0;
- sheet->range.coli=range->coli;
- sheet->active_cell.row=range->row0;
- sheet->active_cell.col=range->col0;
- sheet->selection_cell.row=range->rowi;
- sheet->selection_cell.col=range->coli;
-
- sheet->state = GTK_SHEET_RANGE_SELECTED;
- gtk_sheet_real_select_range(sheet, NULL);
-
-}
-
-void
-gtk_sheet_unselect_range (GtkSheet * sheet)
-{
- gtk_sheet_real_unselect_range(sheet, NULL);
- sheet->state = GTK_STATE_NORMAL;
- gtk_sheet_activate_cell(sheet, sheet->active_cell.row, sheet->active_cell.col);
-}
-
-
-static void
-gtk_sheet_real_unselect_range (GtkSheet * sheet,
- const GtkSheetRange *range)