static void destroy_hover_window (PsppireSheetHoverTitle *);
static PsppireSheetHoverTitle *create_hover_window (void);
-static GtkStateType psppire_sheet_cell_get_state (PsppireSheet *sheet, gint row, gint col);
-
-
static inline void
dispose_string (const PsppireSheet *sheet, gchar *text)
{
void
psppire_sheet_change_entry (PsppireSheet *sheet, GtkType entry_type)
{
- gint state;
-
g_return_if_fail (sheet != NULL);
g_return_if_fail (PSPPIRE_IS_SHEET (sheet));
- state = sheet->select_status;
-
if (sheet->select_status == PSPPIRE_SHEET_NORMAL)
psppire_sheet_hide_entry_widget (sheet);
create_sheet_entry (sheet);
- if (state == PSPPIRE_SHEET_NORMAL)
- {
- psppire_sheet_show_entry_widget (sheet);
- }
-
+ if (sheet->select_status == PSPPIRE_SHEET_NORMAL)
+ psppire_sheet_show_entry_widget (sheet);
}
void
psppire_sheet_cell_draw (sheet, i, j);
}
- if (sheet->select_status == GTK_STATE_NORMAL &&
+ if (sheet->select_status == PSPPIRE_SHEET_NORMAL &&
sheet->active_cell.row >= drawing_range.row0 &&
sheet->active_cell.row <= drawing_range.rowi &&
sheet->active_cell.col >= drawing_range.col0 &&
}
-static GtkStateType
-psppire_sheet_cell_get_state (PsppireSheet *sheet, gint row, gint col)
-{
- gint state;
- PsppireSheetRange *range;
-
- g_return_val_if_fail (sheet != NULL, 0);
- g_return_val_if_fail (PSPPIRE_IS_SHEET (sheet), 0);
- if (col >= psppire_axis_unit_count (sheet->haxis) || row >= psppire_axis_unit_count (sheet->vaxis)) return 0;
- if (col < 0 || row < 0) return 0;
-
- state = sheet->select_status;
- range = &sheet->range;
-
- switch (state)
- {
- case PSPPIRE_SHEET_NORMAL:
- return GTK_STATE_NORMAL;
- break;
- case PSPPIRE_SHEET_ROW_SELECTED:
- if (row >= range->row0 && row <= range->rowi)
- return GTK_STATE_SELECTED;
- break;
- case PSPPIRE_SHEET_COLUMN_SELECTED:
- if (col >= range->col0 && col <= range->coli)
- return GTK_STATE_SELECTED;
- break;
- case PSPPIRE_SHEET_RANGE_SELECTED:
- if (row >= range->row0 && row <= range->rowi && \
- col >= range->col0 && col <= range->coli)
- return GTK_STATE_SELECTED;
- break;
- }
- return GTK_STATE_NORMAL;
-}
-
/* Convert X, Y (in pixels) to *ROW, *COLUMN
If the function returns FALSE, then the results will be unreliable.
*/
PsppireSheetCellAttr attributes;
if (!GTK_WIDGET_VISIBLE (sheet->entry_widget)) return;
- if (sheet->select_status != GTK_STATE_NORMAL) return;
+ if (sheet->select_status != PSPPIRE_SHEET_NORMAL) return;
row = sheet->active_cell.row;
col = sheet->active_cell.col;
psppire_sheet_real_select_range (PsppireSheet *sheet,
const PsppireSheetRange *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->select_status;
-
psppire_sheet_update_primary_selection (sheet);
g_signal_emit (sheet, sheet_signals[SELECT_RANGE], 0, &sheet->range);
return;
psppire_sheet_real_unselect_range (sheet, NULL);
- sheet->select_status = GTK_STATE_NORMAL;
+ sheet->select_status = PSPPIRE_SHEET_NORMAL;
}
{
draw_sheet_region (sheet, event->region);
-
if (sheet->select_status != PSPPIRE_SHEET_NORMAL)
{
#if 0
TRUE,
area.x + 1, area.y + 1,
area.width, area.height);
-
}
#if 0
}
else
{
+ GdkRectangle area;
sheet->select_status = PSPPIRE_SHEET_NORMAL;
+
+ rectangle_from_range (sheet, &sheet->range, &area);
+ area.x++;
+ area.y++;
+ gdk_window_invalidate_rect (sheet->sheet_window, &area, FALSE);
}
}
}
if (forbid_move)
{
- if (sheet->select_status == GTK_STATE_NORMAL)
+ if (sheet->select_status == PSPPIRE_SHEET_NORMAL)
return FALSE;
row = sheet->active_cell.row;
sheet->range = sheet->drag_range;
sheet->drag_range = old_range;
- if (sheet->select_status == GTK_STATE_NORMAL)
+ if (sheet->select_status == PSPPIRE_SHEET_NORMAL)
sheet->select_status = PSPPIRE_SHEET_RANGE_SELECTED;
g_signal_emit (sheet, sheet_signals[RESIZE_RANGE], 0,
if (PSPPIRE_SHEET_IN_SELECTION (sheet) )
{
GdkRectangle area;
+
+ /* Redraw the old range */
+ rectangle_from_range (sheet, &sheet->range, &area);
+ area.x++;
+ area.y++;
+ gdk_window_invalidate_rect (sheet->sheet_window, &area, FALSE);
+
sheet->range.rowi = row;
sheet->range.coli = column;
sheet->select_status = PSPPIRE_SHEET_RANGE_SELECTED;
+ /* Redraw the new range */
rectangle_from_range (sheet, &sheet->range, &area);
+ area.x++;
+ area.y++;
gdk_window_invalidate_rect (sheet->sheet_window, &area, FALSE);
}
else