void glade_gtk_sheet_remove_child(GladeWidgetAdaptor *adaptor, GObject *object, GObject *child) { gint col; GtkSheet *sheet; GtkSheetColumn *oldcol; #ifdef GTK_SHEET_DEBUG g_debug("glade_gtk_sheet_remove_child: called"); #endif g_return_if_fail (GTK_IS_SHEET (object)); g_return_if_fail (GTK_IS_WIDGET (child)); sheet = GTK_SHEET(object); oldcol = GTK_SHEET_COLUMN(child); for (col=0; col<=sheet->maxcol; col++) { if (oldcol == sheet->column[col]) { gtk_sheet_delete_columns(sheet, col, 1); return; } } g_warning("glade_gtk_sheet_remove_child: couldn't remove child %p", child); }
GList * glade_gtk_sheet_get_children(GladeWidgetAdaptor *adaptor, GtkContainer *container) { GList *children = NULL; GtkSheet *sheet; gint col; #ifdef GTK_SHEET_DEBUG g_debug("glade_gtk_sheet_get_children: called"); #endif g_return_val_if_fail (GTK_IS_SHEET (container), NULL); sheet = GTK_SHEET(container); /* gtk_container_forall (container, gtk_sheet_children_callback, &children); */ for (col=0; col<=sheet->maxcol; col++) { children = g_list_append(children, sheet->column[col]); } /* Is the children list already reversed? */ return children; }
static gboolean glade_gtk_sheet_layout_move_child (GladeBaseEditor *editor, GladeWidget *gparent, GladeWidget *gchild, gpointer data) { GObject *parent = glade_widget_get_object (gparent); GObject *child = glade_widget_get_object (gchild); GList list = { 0,}; #ifdef GTK_SHEET_DEBUG g_debug("glade_gtk_sheet_layout_move_child: called"); #endif if (GTK_IS_SHEET(parent) && !GTK_IS_SHEET_COLUMN (child)) return FALSE; if (GTK_IS_CELL_LAYOUT(parent) && !GTK_IS_CELL_RENDERER (child)) return FALSE; if (GTK_IS_CELL_RENDERER(parent)) return FALSE; if (gparent != glade_widget_get_parent (gchild)) { list.data = gchild; glade_command_dnd(&list, gparent, NULL); } return TRUE; }
/* \brief Set the selected cells' visibility to VALUE_ONLY * * s_visibility_set_value_only -- This sets the selected cells to VALUE_ONLY. * This fcn is invoked from the menu, it assumes you have * selected a range of cells which are carried in the global * variable "sheet". */ void s_visibility_set_value_only() { gint i, j; gint row_start, row_end, col_start, col_end; GtkSheet *sheet; gint cur_page; cur_page = gtk_notebook_get_current_page(GTK_NOTEBOOK(notebook)); sheet = sheets[cur_page]; g_return_if_fail (sheet != NULL); g_return_if_fail (GTK_IS_SHEET (sheet)); switch (sheet->state) { case GTK_SHEET_RANGE_SELECTED: case GTK_SHEET_COLUMN_SELECTED: case GTK_SHEET_ROW_SELECTED: #ifdef DEBUG printf("In s_visibility_set_value_only, range/col/row selected.\n"); #endif row_start = sheet->range.row0; row_end = sheet->range.rowi; col_start = sheet->range.col0; col_end = sheet->range.coli; for (i=row_start; i<=row_end; i++) { for (j=col_start; j<=col_end; j++) { s_visibility_set_cell(cur_page, i, j, VISIBLE, SHOW_VALUE); /* Color names are defined * in libgeda/include/colors.h */ x_gtksheet_set_cell_text_color(sheet, i, j, BLACK); } } /* Now return sheet to normal -- unselect range */ gtk_sheet_unselect_range (sheet); break; case GTK_SHEET_NORMAL: #ifdef DEBUG printf("In s_visibility_set_value_only, sheet normal selected.\n"); #endif s_visibility_set_cell(cur_page, sheet->active_cell.row, sheet->active_cell.col, VISIBLE, SHOW_VALUE); x_gtksheet_set_cell_text_color(sheet, sheet->active_cell.row, sheet->active_cell.col, BLACK); break; } }
void glade_gtk_sheet_replace_child( GladeWidgetAdaptor *adaptor, GObject *object, GObject *old_obj, GObject *new_obj) { gint col; GtkSheet *sheet; GtkSheetColumn *oldcol, *newcol; #ifdef GTK_SHEET_DEBUG g_debug("glade_gtk_sheet_replace_child: called %p -> %p", old_obj, new_obj); #endif g_return_if_fail (GTK_IS_SHEET (object)); g_return_if_fail (GTK_IS_WIDGET (old_obj)); if (GLADE_IS_PLACEHOLDER (new_obj)) { glade_gtk_sheet_remove_child (adaptor, object, old_obj); return; } g_return_if_fail (GTK_IS_WIDGET (new_obj)); sheet = GTK_SHEET(object); oldcol = GTK_SHEET_COLUMN(old_obj); newcol = GTK_SHEET_COLUMN(new_obj); for (col=0; col<=sheet->maxcol; col++) { if (oldcol == sheet->column[col]) { g_object_unref(sheet->column[col]); sheet->column[col] = newcol; return; } } g_warning("glade_gtk_sheet_replace_child: couldn't replace child %p by %p", old_obj, new_obj); }
void glade_gtk_sheet_add_child(GladeWidgetAdaptor *adaptor, GObject *object, GObject *child) { GtkSheet *sheet; GtkSheetColumn *newcol; GladeWidget *child_widget = glade_widget_get_from_gobject (child); const gchar *name = glade_widget_get_name(child_widget); g_return_if_fail (GTK_IS_SHEET (object)); g_return_if_fail (GTK_IS_WIDGET (child)); #ifdef GTK_SHEET_DEBUG g_debug("glade_gtk_sheet_add_child: %s %d", name ? name : "NULL", GLADE_IS_WIDGET(child) ); #endif sheet = GTK_SHEET(object); newcol = GTK_SHEET_COLUMN(child); gtk_sheet_buildable_add_child_internal(sheet, newcol, name); }