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;
}
예제 #3
0
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));
}
예제 #6
0
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));
}