-init_attributes(GtkSheet *sheet, gint col, GtkSheetCellAttr *attributes)
-{
- /* DEFAULT VALUES */
- attributes->foreground = GTK_WIDGET(sheet)->style->black;
- attributes->background = sheet->bg_color;
- if(!GTK_WIDGET_REALIZED(GTK_WIDGET(sheet))){
- GdkColormap *colormap;
- colormap=gdk_colormap_get_system();
- gdk_color_black(colormap, &attributes->foreground);
- attributes->background = sheet->bg_color;
- }
- attributes->justification = xxx_column_justification(sheet, col);
- attributes->border.width = 0;
- attributes->border.line_style = GDK_LINE_SOLID;
- attributes->border.cap_style = GDK_CAP_NOT_LAST;
- attributes->border.join_style = GDK_JOIN_MITER;
- attributes->border.mask = 0;
- attributes->border.color = GTK_WIDGET(sheet)->style->black;
- attributes->is_editable = TRUE;
- attributes->is_visible = TRUE;
- attributes->font_desc = GTK_WIDGET(sheet)->style->font_desc;
-
-}
-
-
-
-/********************************************************************
- * Container Functions:
- * gtk_sheet_add
- * gtk_sheet_put
- * gtk_sheet_attach
- * gtk_sheet_remove
- * gtk_sheet_move_child
- * gtk_sheet_position_child
- * gtk_sheet_position_children
- * gtk_sheet_realize_child
- * gtk_sheet_get_child_at
- ********************************************************************/
-
-GtkSheetChild *
-gtk_sheet_put(GtkSheet *sheet, GtkWidget *child, gint x, gint y)
-{
- GtkRequisition child_requisition;
- GtkSheetChild *child_info;
-
- g_return_val_if_fail(sheet != NULL, NULL);
- g_return_val_if_fail(GTK_IS_SHEET(sheet), NULL);
- g_return_val_if_fail(child != NULL, NULL);
- g_return_val_if_fail(child->parent == NULL, NULL);
-
- child_info = g_new (GtkSheetChild, 1);
- child_info->widget = child;
- child_info->x = x;
- child_info->y = y;
- child_info->attached_to_cell = FALSE;
- child_info->floating = TRUE;
- child_info->xpadding = child_info->ypadding = 0;
- child_info->xexpand = child_info->yexpand = FALSE;
- child_info->xshrink = child_info->yshrink = FALSE;
- child_info->xfill = child_info->yfill = FALSE;
-
- sheet->children = g_list_append(sheet->children, child_info);
-
- gtk_widget_set_parent (child, GTK_WIDGET(sheet));
-
- gtk_widget_size_request(child, &child_requisition);
-
- if (GTK_WIDGET_VISIBLE(GTK_WIDGET(sheet)))
- {
- if(GTK_WIDGET_REALIZED(GTK_WIDGET(sheet)) &&
- (!GTK_WIDGET_REALIZED(child) || GTK_WIDGET_NO_WINDOW(child)))
- gtk_sheet_realize_child(sheet, child_info);
-
- if(GTK_WIDGET_MAPPED(GTK_WIDGET(sheet)) &&
- !GTK_WIDGET_MAPPED(child))
- gtk_widget_map(child);
- }
-
- gtk_sheet_position_child(sheet, child_info);
-
-/* This will avoid drawing on the titles */
-
- if(GTK_WIDGET_REALIZED(GTK_WIDGET(sheet)))
- {
- if(sheet->row_titles_visible)
- gdk_window_show(sheet->row_title_window);
- if(sheet->column_titles_visible)
- gdk_window_show(sheet->column_title_window);
- }
-
- return (child_info);
-}
-
-void
-gtk_sheet_attach_floating (GtkSheet *sheet,
- GtkWidget *widget,
- gint row, gint col)
-{
- GdkRectangle area;
- GtkSheetChild *child;
-
- if(row < 0 || col < 0){
- gtk_sheet_button_attach(sheet, widget, row, col);
- return;
- }
-
- gtk_sheet_get_cell_area(sheet, row, col, &area);
- child = gtk_sheet_put(sheet, widget, area.x, area.y);
- child->attached_to_cell = TRUE;
- child->row = row;
- child->col = col;
-}
-
-void
-gtk_sheet_attach_default (GtkSheet *sheet,
- GtkWidget *widget,
- gint row, gint col)
-{
- if(row < 0 || col < 0){
- gtk_sheet_button_attach(sheet, widget, row, col);
- return;
- }
-
- gtk_sheet_attach(sheet, widget, row, col, GTK_EXPAND|GTK_FILL, GTK_EXPAND|GTK_FILL, 0, 0);
-}
-
-void
-gtk_sheet_attach (GtkSheet *sheet,
- GtkWidget *widget,
- gint row, gint col,
- gint xoptions,
- gint yoptions,
- gint xpadding,
- gint ypadding)
-{
- GdkRectangle area;
- GtkSheetChild *child = NULL;
-
- if(row < 0 || col < 0){
- gtk_sheet_button_attach(sheet, widget, row, col);
- return;
- }
-
- child = g_new0(GtkSheetChild, 1);
- child->attached_to_cell = TRUE;
- child->floating = FALSE;
- child->widget = widget;
- child->row = row;
- child->col = col;
- child->xpadding = xpadding;
- child->ypadding = ypadding;
- child->xexpand = (xoptions & GTK_EXPAND) != 0;
- child->yexpand = (yoptions & GTK_EXPAND) != 0;
- child->xshrink = (xoptions & GTK_SHRINK) != 0;
- child->yshrink = (yoptions & GTK_SHRINK) != 0;
- child->xfill = (xoptions & GTK_FILL) != 0;
- child->yfill = (yoptions & GTK_FILL) != 0;
-
- sheet->children = g_list_append(sheet->children, child);
-
- gtk_sheet_get_cell_area(sheet, row, col, &area);
-
- child->x = area.x + child->xpadding;
- child->y = area.y + child->ypadding;
-
- if (GTK_WIDGET_VISIBLE(GTK_WIDGET(sheet)))
- {
- if(GTK_WIDGET_REALIZED(GTK_WIDGET(sheet)) &&
- (!GTK_WIDGET_REALIZED(widget) || GTK_WIDGET_NO_WINDOW(widget)))
- gtk_sheet_realize_child(sheet, child);
-
- if(GTK_WIDGET_MAPPED(GTK_WIDGET(sheet)) &&
- !GTK_WIDGET_MAPPED(widget))
- gtk_widget_map(widget);
- }
-
- gtk_sheet_position_child(sheet, child);
-
-/* This will avoid drawing on the titles */
-
- if(GTK_WIDGET_REALIZED(GTK_WIDGET(sheet)))
- {
- if(GTK_SHEET_ROW_TITLES_VISIBLE(sheet))
- gdk_window_show(sheet->row_title_window);
- if(GTK_SHEET_COL_TITLES_VISIBLE(sheet))
- gdk_window_show(sheet->column_title_window);
- }
-
-}
-
-void
-gtk_sheet_button_attach (GtkSheet *sheet,
- GtkWidget *widget,
- gint row, gint col)