void e_canvas_item_request_parent_reflow (GnomeCanvasItem *item) { g_return_if_fail(item != NULL); g_return_if_fail(GNOME_IS_CANVAS_ITEM(item)); e_canvas_item_request_reflow(item->parent); }
/* Use g_source_unref() when done with the returned pointer. */ GSource * e_canvas_item_show_area_delayed_ex (GnomeCanvasItem *item, gdouble x1, gdouble y1, gdouble x2, gdouble y2, gint delay) { GSource *source; DoubsAndCanvas *dac; g_return_val_if_fail (item != NULL, NULL); g_return_val_if_fail (GNOME_IS_CANVAS_ITEM (item), NULL); gnome_canvas_item_i2w (item, &x1, &y1); gnome_canvas_item_i2w (item, &x2, &y2); dac = g_new (DoubsAndCanvas, 1); dac->x1 = x1; dac->y1 = y1; dac->x2 = x2; dac->y2 = y2; dac->canvas = g_object_ref (item->canvas); source = g_timeout_source_new (delay); g_source_set_callback (source, show_area_timeout, dac, doubs_and_canvas_free); g_source_set_name (source, G_STRFUNC); g_source_attach (source, NULL); return source; }
/** * ea_calendar_helpers_get_accessible_for * @canvas_item: the canvas item for a event or a jump button * * Returns: the atk object for the canvas_item **/ AtkObject * ea_calendar_helpers_get_accessible_for (GnomeCanvasItem *canvas_item) { AtkObject *atk_obj = NULL; GObject *g_obj; g_return_val_if_fail ((E_IS_TEXT (canvas_item)) || (GNOME_IS_CANVAS_ITEM (canvas_item)), NULL); g_obj = G_OBJECT (canvas_item); /* we cannot use atk_gobject_accessible_for_object here, * EaDayViewEvent/EaWeekViewEvent cannot be created by the * registered facotry of E_TEXT */ atk_obj = g_object_get_data (g_obj, "accessible-object"); if (!atk_obj) { if (E_IS_TEXT (canvas_item)) { atk_obj = ea_cal_view_event_new (g_obj); } else if (GNOME_IS_CANVAS_PIXBUF (canvas_item)) { atk_obj = ea_jump_button_new (g_obj); } else return NULL; } return atk_obj; }
SkinStatusBar * skin_status_bar_new(GnomeCanvasGroup *root, const gchar *first_arg_name, ...) { SkinStatusBar *status_bar; SkinStatusBarPrivate *priv; GnomeCanvasItem *item; va_list args; g_return_val_if_fail(GNOME_IS_CANVAS_GROUP(root), NULL); item = gnome_canvas_item_new(root, skin_status_bar_get_type(), NULL); g_return_val_if_fail(GNOME_IS_CANVAS_ITEM(item), NULL); status_bar = SKIN_STATUS_BAR(item); priv = status_bar->priv; va_start(args, first_arg_name); skin_status_bar_construct(status_bar, root, first_arg_name, args); va_end(args); return status_bar; }
NautilusUndoManager * nautilus_undo_get_undo_manager (GObject *start_object) { NautilusUndoManager *manager; GtkWidget *parent; GtkWindow *transient_parent; if (start_object == NULL) { return CORBA_OBJECT_NIL; } g_return_val_if_fail (G_IS_OBJECT (start_object), NULL); /* Check for an undo manager right here. */ manager = g_object_get_data (start_object, NAUTILUS_UNDO_MANAGER_DATA); if (manager != NULL) { return manager; } /* Check for undo manager up the parent chain. */ if (GTK_IS_WIDGET (start_object)) { parent = GTK_WIDGET (start_object)->parent; if (parent != NULL) { manager = nautilus_undo_get_undo_manager (G_OBJECT (parent)); if (manager != NULL) { return manager; } } /* Check for undo manager in our window's parent. */ if (GTK_IS_WINDOW (start_object)) { transient_parent = GTK_WINDOW (start_object)->transient_parent; if (transient_parent != NULL) { manager = nautilus_undo_get_undo_manager (G_OBJECT (transient_parent)); if (manager != NULL) { return manager; } } } } /* In the case of a canvas item, try the canvas. */ if (GNOME_IS_CANVAS_ITEM (start_object)) { manager = nautilus_undo_get_undo_manager (G_OBJECT (GNOME_CANVAS_ITEM (start_object)->canvas)); if (manager != NULL) { return manager; } } /* Found nothing. I can live with that. */ return NULL; }
void e_canvas_item_move_absolute (GnomeCanvasItem *item, gdouble dx, gdouble dy) { cairo_matrix_t translate; g_return_if_fail (GNOME_IS_CANVAS_ITEM (item)); cairo_matrix_init_translate (&translate, dx, dy); gnome_canvas_item_set_matrix (item, &translate); }
AtkObject * gail_canvas_item_new (GObject *obj) { gpointer object; AtkObject *atk_object; g_return_val_if_fail (GNOME_IS_CANVAS_ITEM (obj), NULL); object = g_object_new (GAIL_TYPE_CANVAS_ITEM, NULL); atk_object = ATK_OBJECT (object); atk_object_initialize (atk_object, obj); atk_object->role = ATK_ROLE_UNKNOWN; return atk_object; }
void e_canvas_item_set_cursor (GnomeCanvasItem *item, gpointer id) { GList *list; int flags; ECanvas *canvas; ECanvasSelectionInfo *info; ECanvasItemSelectionFunc func; g_return_if_fail(item != NULL); g_return_if_fail(GNOME_IS_CANVAS_ITEM(item)); g_return_if_fail(item->canvas != NULL); g_return_if_fail(E_IS_CANVAS(item->canvas)); canvas = E_CANVAS(item->canvas); flags = E_CANVAS_ITEM_SELECTION_DELETE_DATA; for (list = canvas->selection; list; list = g_list_next(list)) { info = list->data; func = (ECanvasItemSelectionFunc)g_object_get_data(G_OBJECT(info->item), "ECanvasItem::selection_callback"); if (func) func(info->item, flags, info->id); g_message ("ECANVAS: free info (2): item %p, id %p", info->item, info->id); g_object_unref (info->item); g_free(info); } g_list_free(canvas->selection); canvas->selection = NULL; gnome_canvas_item_grab_focus(item); info = g_new(ECanvasSelectionInfo, 1); info->item = item; g_object_ref (info->item); info->id = id; g_message ("ECANVAS: new info item %p, id %p", item, id); flags = E_CANVAS_ITEM_SELECTION_SELECT | E_CANVAS_ITEM_SELECTION_CURSOR; func = (ECanvasItemSelectionFunc)g_object_get_data(G_OBJECT(item), "ECanvasItem::selection_callback"); if (func) func(item, flags, id); canvas->selection = g_list_prepend(canvas->selection, info); canvas->cursor = info; }
gboolean e_canvas_item_area_shown (GnomeCanvasItem *item, gdouble x1, gdouble y1, gdouble x2, gdouble y2) { g_return_val_if_fail (item != NULL, FALSE); g_return_val_if_fail (GNOME_IS_CANVAS_ITEM (item), FALSE); gnome_canvas_item_i2w (item, &x1, &y1); gnome_canvas_item_i2w (item, &x2, &y2); return e_canvas_area_shown (item->canvas, x1, y1, x2, y2); }
void e_canvas_item_show_area (GnomeCanvasItem *item, gdouble x1, gdouble y1, gdouble x2, gdouble y2) { g_return_if_fail (item != NULL); g_return_if_fail (GNOME_IS_CANVAS_ITEM (item)); gnome_canvas_item_i2w (item, &x1, &y1); gnome_canvas_item_i2w (item, &x2, &y2); e_canvas_show_area (item->canvas, x1, y1, x2, y2); }
void e_canvas_item_remove_selection (GnomeCanvasItem *item, gpointer id) { int flags; ECanvas *canvas; ECanvasSelectionInfo *info; GList *list; g_return_if_fail(item != NULL); g_return_if_fail(GNOME_IS_CANVAS_ITEM(item)); g_return_if_fail(item->canvas != NULL); g_return_if_fail(E_IS_CANVAS(item->canvas)); flags = E_CANVAS_ITEM_SELECTION_DELETE_DATA; canvas = E_CANVAS(item->canvas); for (list = canvas->selection; list; list = g_list_next(list)) { info = list->data; if (info->item == item) { ECanvasItemSelectionCompareFunc compare_func; compare_func = (ECanvasItemSelectionCompareFunc)g_object_get_data(G_OBJECT(info->item), "ECanvasItem::selection_compare_callback"); if (compare_func(info->item, info->id, id, 0) == 0) { ECanvasItemSelectionFunc func; func = (ECanvasItemSelectionFunc) g_object_get_data(G_OBJECT(info->item), "ECanvasItem::selection_callback"); if (func) func(info->item, flags, info->id); canvas->selection = g_list_remove_link(canvas->selection, list); if (canvas->cursor == info) canvas->cursor = NULL; g_message ("ECANVAS: removing info: item %p, info %p", info->item, info->id); g_object_unref (info->item); g_free(info); g_list_free_1(list); break; } } } }
/** * e_canvas_item_grab_focus: * @item: A canvas item. * @widget_too: Whether or not to grab the widget-level focus too * * Makes the specified item take the keyboard focus, so all keyboard * events will be sent to it. If the canvas widget itself did not have * the focus and @widget_too is %TRUE, it grabs that focus as well. **/ void e_canvas_item_grab_focus (GnomeCanvasItem *item, gboolean widget_too) { GnomeCanvasItem *focused_item; GdkEvent ev; g_return_if_fail (item != NULL); g_return_if_fail (GNOME_IS_CANVAS_ITEM (item)); g_return_if_fail (GTK_WIDGET_CAN_FOCUS (GTK_WIDGET (item->canvas))); focused_item = item->canvas->focused_item; if (focused_item) { ev.focus_change.type = GDK_FOCUS_CHANGE; ev.focus_change.window = GTK_LAYOUT (item->canvas)->bin_window; ev.focus_change.send_event = FALSE; ev.focus_change.in = FALSE; emit_event (item->canvas, &ev); } item->canvas->focused_item = item; if (widget_too && !GTK_WIDGET_HAS_FOCUS (GTK_WIDGET(item->canvas))) { gtk_widget_grab_focus (GTK_WIDGET (item->canvas)); } if (item) { ev.focus_change.type = GDK_FOCUS_CHANGE; ev.focus_change.window = GTK_LAYOUT (item->canvas)->bin_window; ev.focus_change.send_event = FALSE; ev.focus_change.in = TRUE; emit_event (item->canvas, &ev); } }
/** * ea_calendar_helpers_get_view_widget_from: * @canvas_item: the canvas item for a event or a jump button * * Get the cal view widget contains the canvas_item. * * Returns: the cal view widget if exists **/ ECalendarView * ea_calendar_helpers_get_cal_view_from (GnomeCanvasItem *canvas_item) { GnomeCanvas *canvas; GtkWidget *view_widget = NULL; g_return_val_if_fail (canvas_item, NULL); g_return_val_if_fail ((E_IS_TEXT (canvas_item)) || (GNOME_IS_CANVAS_ITEM (canvas_item)), NULL); /* canvas_item is the e_text for the event */ /* canvas_item->canvas is the ECanvas for day view */ /* parent of canvas_item->canvas is the EDayView or EWeekView widget */ canvas = canvas_item->canvas; view_widget = gtk_widget_get_parent (GTK_WIDGET (canvas)); if (view_widget && GTK_IS_BOX (view_widget)) view_widget = gtk_widget_get_parent (view_widget); if (!view_widget || !E_IS_CALENDAR_VIEW (view_widget)) return NULL; return E_CALENDAR_VIEW (view_widget); }
void e_canvas_item_add_selection (GnomeCanvasItem *item, gpointer id) { int flags; ECanvas *canvas; ECanvasSelectionInfo *info; ECanvasItemSelectionFunc func; GList *list; g_return_if_fail(item != NULL); g_return_if_fail(GNOME_IS_CANVAS_ITEM(item)); g_return_if_fail(item->canvas != NULL); g_return_if_fail(E_IS_CANVAS(item->canvas)); flags = E_CANVAS_ITEM_SELECTION_SELECT; canvas = E_CANVAS(item->canvas); if (canvas->cursor) { func = (ECanvasItemSelectionFunc)g_object_get_data(G_OBJECT(canvas->cursor->item), "ECanvasItem::selection_callback"); if (func) func(canvas->cursor->item, flags, canvas->cursor->id); } gnome_canvas_item_grab_focus(item); flags = E_CANVAS_ITEM_SELECTION_SELECT | E_CANVAS_ITEM_SELECTION_CURSOR; for (list = canvas->selection; list; list = g_list_next(list)) { ECanvasSelectionInfo *search; search = list->data; if (search->item == item) { ECanvasItemSelectionCompareFunc compare_func; compare_func = (ECanvasItemSelectionCompareFunc)g_object_get_data(G_OBJECT(search->item), "ECanvasItem::selection_compare_callback"); if (compare_func(search->item, search->id, id, 0) == 0) { canvas->cursor = search; func = (ECanvasItemSelectionFunc)g_object_get_data(G_OBJECT(item), "ECanvasItem::selection_callback"); if (func) func(item, flags, search->id); return; } } } info = g_new(ECanvasSelectionInfo, 1); info->item = item; g_object_ref (info->item); info->id = id; g_message ("ECANVAS: new info (2): item %p, id %p", item, id); func = (ECanvasItemSelectionFunc)g_object_get_data(G_OBJECT(item), "ECanvasItem::selection_callback"); if (func) func(item, flags, id); canvas->selection = g_list_prepend(canvas->selection, info); canvas->cursor = info; }