7600 |
|
|
7601 |
|
|
7602 |
void |
void |
7603 |
gtk_sheet_range_set_type(GtkSheet *sheet, const GtkSheetRange *urange, GType type) |
gtk_sheet_range_set_type(GtkSheet *sheet, const GtkSheetRange *urange, |
7604 |
|
GType type, Conversion convert) |
7605 |
{ |
{ |
7606 |
gint i, j; |
gint i, j; |
7607 |
GtkSheetRange range; |
GtkSheetRange range; |
7633 |
|
|
7634 |
if ( G_IS_VALUE(&cell->value)) |
if ( G_IS_VALUE(&cell->value)) |
7635 |
{ |
{ |
7636 |
|
|
7637 |
if ( G_VALUE_TYPE(&cell->value) == type ) |
if ( G_VALUE_TYPE(&cell->value) == type ) |
7638 |
continue; |
continue; |
|
g_value_unset(&cell->value); |
|
|
} |
|
7639 |
|
|
7640 |
g_value_init(&cell->value, type); |
if ( convert) |
7641 |
|
{ |
7642 |
|
convert(type, i, j, &cell->value); |
7643 |
|
} |
7644 |
|
else |
7645 |
|
{ |
7646 |
|
GValue new_value = {0}; |
7647 |
|
g_value_init(&new_value, type); |
7648 |
|
if (!g_value_transform(&cell->value, &new_value)) |
7649 |
|
{ |
7650 |
|
g_warning("Failed to transform cell value at %d, %d\n", |
7651 |
|
i, j); |
7652 |
|
g_value_unset(&cell->value); |
7653 |
|
g_value_init(&cell->value, type); |
7654 |
|
continue; |
7655 |
|
} |
7656 |
|
g_value_unset(&cell->value); |
7657 |
|
g_value_init(&cell->value, type); |
7658 |
|
g_value_copy(&new_value, &cell->value); |
7659 |
|
|
7660 |
|
g_value_unset(&new_value); |
7661 |
|
} |
7662 |
|
} |
7663 |
|
else |
7664 |
|
g_value_init(&cell->value, type); |
7665 |
} |
} |
7666 |
} |
} |
7667 |
} |
} |