static void mate_icon_text_item_destroy (GtkObject *object) { MateIconTextItem *iti = MATE_ICON_TEXT_ITEM (object); MateIconTextItemPrivate *priv = iti->_priv; if (iti->text && iti->is_text_allocated) { g_free (iti->text); iti->text = NULL; } if (priv) { if (priv->layout) { g_object_unref (priv->layout); priv->layout = NULL; } if (priv->entry_top) { gtk_widget_destroy (priv->entry_top); priv->entry_top = NULL; } if (priv->cursor_gc) { g_object_unref (priv->cursor_gc); priv->cursor_gc = NULL; } g_free (priv); iti->_priv = NULL; } MATE_CALL_PARENT (GTK_OBJECT_CLASS, destroy, (object)); }
static void mate_icon_text_item_update (MateCanvasItem *item, double *affine, ArtSVP *clip_path, int flags) { MateIconTextItem *iti; MateIconTextItemPrivate *priv; iti = MATE_ICON_TEXT_ITEM (item); priv = iti->_priv; MATE_CALL_PARENT (MATE_CANVAS_ITEM_CLASS, update, (item, affine, clip_path, flags)); /* If necessary, queue a redraw of the old bounding box */ if ((flags & MATE_CANVAS_UPDATE_VISIBILITY) || (flags & MATE_CANVAS_UPDATE_AFFINE) || priv->need_pos_update || priv->need_font_update || priv->need_text_update) mate_canvas_request_redraw (item->canvas, item->x1, item->y1, item->x2, item->y2); /* Compute new bounds */ if (priv->need_pos_update || priv->need_font_update || priv->need_text_update) recompute_bounding_box (iti); /* Queue redraw */ mate_canvas_request_redraw (item->canvas, item->x1, item->y1, item->x2, item->y2); priv->need_pos_update = FALSE; priv->need_font_update = FALSE; priv->need_text_update = FALSE; priv->need_state_update = FALSE; }
static void mate_druid_destroy (GtkObject *object) { MateDruid *druid; /* remember, destroy can be run multiple times! */ g_return_if_fail (object != NULL); g_return_if_fail (MATE_IS_DRUID (object)); druid = MATE_DRUID (object); if(druid->_priv->bbox) { gtk_widget_destroy (druid->_priv->bbox); druid->_priv->bbox = NULL; druid->back = NULL; druid->next = NULL; druid->cancel = NULL; druid->finish = NULL; druid->help = NULL; } /* Remove all children, we set current to NULL so * that the remove code doesn't try to do anything funny */ druid->_priv->current = NULL; while (druid->_priv->children != NULL) { MateDruidPage *child = druid->_priv->children->data; gtk_container_remove (GTK_CONTAINER (druid), GTK_WIDGET(child)); } MATE_CALL_PARENT (GTK_OBJECT_CLASS, destroy, (object)); }
static void mate_icon_text_item_realize (MateCanvasItem *item) { MateIconTextItem *iti = MATE_ICON_TEXT_ITEM (item); if (iti->_priv->entry) { realize_cursor_gc (iti); } MATE_CALL_PARENT (MATE_CANVAS_ITEM_CLASS, realize, (item)); }
static void mate_icon_text_item_unrealize (MateCanvasItem *item) { MateIconTextItem *iti = MATE_ICON_TEXT_ITEM (item); if (iti->_priv->cursor_gc) { g_object_unref (iti->_priv->cursor_gc); iti->_priv->cursor_gc = NULL; } MATE_CALL_PARENT (MATE_CANVAS_ITEM_CLASS, unrealize, (item)); }
static void mate_druid_finalize (GObject *object) { MateDruid *druid; g_return_if_fail (object != NULL); g_return_if_fail (MATE_IS_DRUID (object)); druid = MATE_DRUID (object); g_free(druid->_priv); druid->_priv = NULL; MATE_CALL_PARENT (G_OBJECT_CLASS, finalize, (object)); }