- return sheet->justify_entry;
-}
-
-void
-gtk_sheet_set_locked (GtkSheet *sheet, gboolean locked)
-{
- g_return_if_fail (sheet != NULL);
- g_return_if_fail (GTK_IS_SHEET (sheet));
-
- if ( locked )
- {
- GTK_SHEET_SET_FLAGS(sheet,GTK_SHEET_IS_LOCKED);
- gtk_widget_hide(sheet->sheet_entry);
- gtk_widget_unmap(sheet->sheet_entry);
- }
- else
- {
- GTK_SHEET_UNSET_FLAGS(sheet,GTK_SHEET_IS_LOCKED);
- if (GTK_WIDGET_MAPPED(GTK_WIDGET(sheet)))
- {
- gtk_widget_show (sheet->sheet_entry);
- gtk_widget_map (sheet->sheet_entry);
- }
- }
-
- gtk_entry_set_editable(GTK_ENTRY(sheet->sheet_entry), locked);
-
-}
-
-gboolean
-gtk_sheet_locked (const GtkSheet *sheet)
-{
- g_return_val_if_fail (sheet != NULL, FALSE);
- g_return_val_if_fail (GTK_IS_SHEET (sheet), FALSE);
-
- return GTK_SHEET_IS_LOCKED(sheet);
-}
-
-/* This routine has problems with gtk+-1.2 related with the
- * label/button drawing - I think it's a bug in gtk+-1.2 */
-
-void
-gtk_sheet_set_title(GtkSheet *sheet, const gchar *title)
-{
-/* GtkWidget *old_widget;
-*/ GtkWidget *label;
-
- g_return_if_fail (sheet != NULL);
- g_return_if_fail (title != NULL);
- g_return_if_fail (GTK_IS_SHEET (sheet));
-
- if (sheet->name)
- g_free (sheet->name);
-
- sheet->name = g_strdup (title);
-
- if(!GTK_WIDGET_REALIZED(GTK_WIDGET(sheet)) || !title) return;
-
- if(GTK_BIN(sheet->button)->child)
- label = GTK_BIN(sheet->button)->child;
-/*
- gtk_label_set_text(GTK_LABEL(label), title);
-*/
- size_allocate_global_button(sheet);
-
- /* remove and destroy the old widget */
-/*
- old_widget = GTK_BIN (sheet->button)->child;
- if (old_widget)
- {
- gtk_container_remove (GTK_CONTAINER (sheet->button), old_widget);
- }
-
- label = gtk_label_new (title);
- gtk_misc_set_alignment(GTK_MISC(label), 0.5 , 0.5 );
-
- gtk_container_add (GTK_CONTAINER (sheet->button), label);
- gtk_widget_show (label);
-
- size_allocate_global_button(sheet);
-
- gtk_signal_emit(GTK_OBJECT(sheet),sheet_signals[CHANGED], -1, -1);
-
- if(old_widget)
- gtk_widget_destroy (old_widget);
-*/
-}
-
-void
-gtk_sheet_freeze (GtkSheet *sheet)
-{
- g_return_if_fail (sheet != NULL);
- g_return_if_fail (GTK_IS_SHEET (sheet));
-
- sheet->freeze_count++;
- GTK_SHEET_SET_FLAGS(sheet, GTK_SHEET_IS_FROZEN);
-}
-
-void
-gtk_sheet_thaw(GtkSheet *sheet)
-{
- g_return_if_fail (sheet != NULL);
- g_return_if_fail (GTK_IS_SHEET (sheet));
-
- if(sheet->freeze_count == 0) return;
-
- sheet->freeze_count--;
- if(sheet->freeze_count > 0) return;
-
- adjust_scrollbars(sheet);
-
- GTK_SHEET_UNSET_FLAGS(sheet, GTK_SHEET_IS_FROZEN);
-
- sheet->old_vadjustment = -1.;
- sheet->old_hadjustment = -1.;
-
- if(sheet->hadjustment)
- gtk_signal_emit_by_name (GTK_OBJECT (sheet->hadjustment),
- "value_changed");
- if(sheet->vadjustment)
- gtk_signal_emit_by_name (GTK_OBJECT (sheet->vadjustment),
- "value_changed");
-
- if(sheet->state == GTK_STATE_NORMAL)
- if(sheet->sheet_entry && GTK_WIDGET_MAPPED(sheet->sheet_entry)){
- gtk_sheet_activate_cell(sheet, sheet->active_cell.row, sheet->active_cell.col);
-/*
- gtk_signal_connect(GTK_OBJECT(gtk_sheet_get_entry(sheet)),
- "changed",
- (GtkSignalFunc)gtk_sheet_entry_changed,
- GTK_OBJECT(GTK_WIDGET(sheet)));
- gtk_sheet_show_active_cell(sheet);
-*/
- }
-
-}
-
-void
-gtk_sheet_set_row_titles_width(GtkSheet *sheet, guint width)
-{
- if(width < COLUMN_MIN_WIDTH) return;
-
- sheet->row_title_area.width = width;
- sheet->view.col0 = COLUMN_FROM_XPIXEL(sheet, sheet->row_title_area.width+1);
- sheet->view.coli = COLUMN_FROM_XPIXEL(sheet, sheet->sheet_window_width);
-
-
- adjust_scrollbars(sheet);
-
- sheet->old_hadjustment = -1.;
- if(sheet->hadjustment)
- gtk_signal_emit_by_name (GTK_OBJECT (sheet->hadjustment),
- "value_changed");
- size_allocate_global_button(sheet);
-}
-
-void
-gtk_sheet_set_column_titles_height(GtkSheet *sheet, guint height)
-{
- if(height < DEFAULT_ROW_HEIGHT(GTK_WIDGET(sheet))) return;
-
- sheet->column_title_area.height = height;
- sheet->view.row0=ROW_FROM_YPIXEL(sheet, sheet->column_title_area.height+1);
- sheet->view.rowi=ROW_FROM_YPIXEL(sheet, sheet->sheet_window_height-1);
-
- adjust_scrollbars(sheet);
-
- sheet->old_vadjustment = -1.;
- if(sheet->vadjustment)
- gtk_signal_emit_by_name (GTK_OBJECT (sheet->vadjustment),
- "value_changed");
- size_allocate_global_button(sheet);
-}
-
-void
-gtk_sheet_show_column_titles(GtkSheet *sheet)
-{
- gint col;
-
- if(sheet->column_titles_visible) return;
-
- sheet->column_titles_visible = TRUE;
-
-
- if(GTK_WIDGET_REALIZED(GTK_WIDGET(sheet))){
- gdk_window_show(sheet->column_title_window);
- gdk_window_move_resize (sheet->column_title_window,
- sheet->column_title_area.x,
- sheet->column_title_area.y,
- sheet->column_title_area.width,
- sheet->column_title_area.height);
-
- for(col = MIN_VISIBLE_COLUMN(sheet);
- col <= MAX_VISIBLE_COLUMN(sheet);
- col++)
- {
- GtkSheetButton *button = xxx_column_button(sheet, col);
- GtkSheetChild *child = button->child;
- if(child)
- gtk_sheet_child_show(child);
- gtk_sheet_button_free(button);
- }
- adjust_scrollbars(sheet);
- }
-
- sheet->old_vadjustment = -1.;
- if(sheet->vadjustment)
- gtk_signal_emit_by_name (GTK_OBJECT (sheet->vadjustment),
- "value_changed");
- size_allocate_global_button(sheet);
-}
-
-
-void
-gtk_sheet_show_row_titles(GtkSheet *sheet)
-{
- gint row;
-
- if(sheet->row_titles_visible) return;
-
- sheet->row_titles_visible = TRUE;
-
-
- if(GTK_WIDGET_REALIZED(GTK_WIDGET(sheet))){
- gdk_window_show(sheet->row_title_window);
- gdk_window_move_resize (sheet->row_title_window,
- sheet->row_title_area.x,
- sheet->row_title_area.y,
- sheet->row_title_area.width,
- sheet->row_title_area.height);
-
- for(row = MIN_VISIBLE_ROW(sheet);
- row <= MAX_VISIBLE_ROW(sheet);
- row++)
- {
- const GtkSheetButton *button = yyy_row_button(sheet, row);
- GtkSheetChild *child = button->child;
-
- if(child){
- gtk_sheet_child_show(child);
- }
- }
- adjust_scrollbars(sheet);
- }
-
- sheet->old_hadjustment = -1.;
- if(sheet->hadjustment)
- gtk_signal_emit_by_name (GTK_OBJECT (sheet->hadjustment),
- "value_changed");
- size_allocate_global_button(sheet);
-}
-
-void
-gtk_sheet_hide_column_titles(GtkSheet *sheet)
-{
- gint col;
-
- if(!sheet->column_titles_visible) return;
-
- sheet->column_titles_visible = FALSE;
-
- if(GTK_WIDGET_REALIZED(GTK_WIDGET(sheet))){
- if(sheet->column_title_window)
- gdk_window_hide(sheet->column_title_window);
- if(GTK_WIDGET_VISIBLE(sheet->button))
- gtk_widget_hide(sheet->button);
-
- for(col = MIN_VISIBLE_COLUMN(sheet);
- col <= MAX_VISIBLE_COLUMN(sheet);
- col++)
- {
- GtkSheetButton *button = xxx_column_button(sheet, col);
- GtkSheetChild *child = button->child;
- if(child)
- gtk_sheet_child_hide(child);
- gtk_sheet_button_free(button);
- }
- adjust_scrollbars(sheet);
- }
-
- sheet->old_vadjustment = -1.;
- if(sheet->vadjustment)
- gtk_signal_emit_by_name (GTK_OBJECT (sheet->vadjustment),
- "value_changed");
-}
-
-void
-gtk_sheet_hide_row_titles(GtkSheet *sheet)
-{
- gint row;
-
- if(!sheet->row_titles_visible) return;
-
- sheet->row_titles_visible = FALSE;
-
-
- if(GTK_WIDGET_REALIZED(GTK_WIDGET(sheet))){
- if(sheet->row_title_window)
- gdk_window_hide(sheet->row_title_window);
- if(GTK_WIDGET_VISIBLE(sheet->button))
- gtk_widget_hide(sheet->button);
- for(row = MIN_VISIBLE_ROW(sheet);
- row <= MAX_VISIBLE_ROW(sheet);
- row++)
- {
- const GtkSheetButton *button = yyy_row_button(sheet, row);
- GtkSheetChild *child = button->child;
-
- if(child)
- gtk_sheet_child_hide(child);
- }
- adjust_scrollbars(sheet);
- }
-
- sheet->old_hadjustment = -1.;
- if(sheet->hadjustment)
- gtk_signal_emit_by_name (GTK_OBJECT (sheet->hadjustment),
- "value_changed");
-}
-
-gboolean
-gtk_sheet_column_titles_visible(GtkSheet *sheet)
-{
- g_return_val_if_fail (sheet != NULL, FALSE);
- g_return_val_if_fail (GTK_IS_SHEET (sheet), FALSE);
- return sheet->column_titles_visible;
-}
-
-gboolean
-gtk_sheet_row_titles_visible(GtkSheet *sheet)
-{
- g_return_val_if_fail (sheet != NULL, FALSE);
- g_return_val_if_fail (GTK_IS_SHEET (sheet), FALSE);
- return sheet->row_titles_visible;
-}
-
-
-
-void
-gtk_sheet_moveto (GtkSheet * sheet,
- gint row,
- gint column,
- gfloat row_align,
- gfloat col_align)
-{
- gint x, y;
- guint width, height;
- gint adjust;
- gint min_row, min_col;
-
- g_return_if_fail (sheet != NULL);
- g_return_if_fail (GTK_IS_SHEET (sheet));
- g_return_if_fail (sheet->hadjustment != NULL);
- g_return_if_fail (sheet->vadjustment != NULL);
-
- if (row < 0 || row >= yyy_row_count(sheet))
- return;
- if (column < 0 || column >= xxx_column_count(sheet))
- return;
-
- height = sheet->sheet_window_height;
- width = sheet->sheet_window_width;
-
- /* adjust vertical scrollbar */
-
- if (row >= 0 && row_align >=0.)
- {
-/*
- y = ROW_TOP_YPIXEL(sheet, row) - sheet->voffset -
- row_align*height-
- (1.-row_align)*yyy_row_height(sheet, row);
-*/
- y = ROW_TOP_YPIXEL (sheet, row) - sheet->voffset
- - (gint) ( row_align*height + (1. - row_align) * yyy_row_height(sheet, row));
-
- /* This forces the sheet to scroll when you don't see the entire cell */
- min_row = row;
- adjust = 0;
- if(row_align == 1.){
- while(min_row >= 0 && min_row > MIN_VISIBLE_ROW(sheet)){
- if(yyy_row_is_visible(sheet, min_row))
- adjust += yyy_row_height(sheet, min_row);
- if(adjust >= height){
- break;
- }
- min_row--;
- }
- min_row = MAX(min_row, 0);
- y = ROW_TOP_YPIXEL(sheet, min_row) - sheet->voffset +
- yyy_row_height(sheet, min_row) - 1;
- }
-
- if (y < 0)
- sheet->vadjustment->value = 0.0;
- else
- sheet->vadjustment->value = y;
-
- sheet->old_vadjustment = -1.;
- gtk_signal_emit_by_name (GTK_OBJECT (sheet->vadjustment),
- "value_changed");
-
- }
-
- /* adjust horizontal scrollbar */
- if (column >= 0 && col_align >= 0.)
- {
-/*
- x = COLUMN_LEFT_XPIXEL (sheet, column) - sheet->hoffset -
- col_align*width -
- (1.-col_align)*sheet->column[column].width;
-*/
- x = COLUMN_LEFT_XPIXEL (sheet, column) - sheet->hoffset
- - (gint) ( col_align*width + (1.-col_align)*
- xxx_column_width(sheet, column));
-
-
- /* This forces the sheet to scroll when you don't see the entire cell */
- min_col = column;
- adjust = 0;
- if(col_align == 1.){
- while(min_col >= 0 && min_col > MIN_VISIBLE_COLUMN(sheet)){
- if(xxx_column_is_visible(sheet, min_col))
- adjust += xxx_column_width(sheet, min_col);
-
- if(adjust >= width){
- break;
- }
- min_col--;
- }
- min_col = MAX(min_col, 0);
- x = COLUMN_LEFT_XPIXEL(sheet, min_col) - sheet->hoffset +
- xxx_column_width(sheet, min_col) - 1;
- }
-
- if (x < 0)
- sheet->hadjustment->value = 0.0;
- else
- sheet->hadjustment->value = x;
-
- sheet->old_vadjustment = -1.;
- gtk_signal_emit_by_name (GTK_OBJECT (sheet->hadjustment),
- "value_changed");
-
- }
-}
-
-
-void
-gtk_sheet_columns_set_resizable (GtkSheet *sheet, gboolean resizable)
-{
- g_return_if_fail (sheet != NULL);
- g_return_if_fail (GTK_IS_SHEET (sheet));
-
- sheet->columns_resizable = resizable;
-}
-
-gboolean
-gtk_sheet_columns_resizable (GtkSheet *sheet)
-{
- g_return_val_if_fail (sheet != NULL, FALSE);
- g_return_val_if_fail (GTK_IS_SHEET (sheet), FALSE);
-
- return sheet->columns_resizable;
-}
-
-
-void
-gtk_sheet_rows_set_resizable (GtkSheet *sheet, gboolean resizable)
-{
- g_return_if_fail (sheet != NULL);
- g_return_if_fail (GTK_IS_SHEET (sheet));
-
- sheet->rows_resizable = resizable;
-}
-
-gboolean
-gtk_sheet_rows_resizable (GtkSheet *sheet)
-{
- g_return_val_if_fail (sheet != NULL, FALSE);
- g_return_val_if_fail (GTK_IS_SHEET (sheet), FALSE);
-
- return sheet->rows_resizable;
-}
-
-
-void
-gtk_sheet_select_row (GtkSheet * sheet,
- gint row)
-{
- g_return_if_fail (sheet != NULL);
- g_return_if_fail (GTK_IS_SHEET (sheet));
-
- if (row < 0 || row >= yyy_row_count(sheet))
- 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->state=GTK_SHEET_ROW_SELECTED;