static void gimp_mandala_add_guide (GimpMandala *mandala, GimpOrientationType orientation) { GimpSymmetry *sym = GIMP_SYMMETRY (mandala); GimpImage *image; Gimp *gimp; GimpGuide *guide; gint position; image = sym->image; gimp = image->gimp; guide = gimp_guide_custom_new (orientation, gimp->next_guide_ID++, GIMP_GUIDE_STYLE_MANDALA); if (orientation == GIMP_ORIENTATION_HORIZONTAL) { mandala->horizontal_guide = guide; /* Mandala guide position at first activation is at canvas middle. */ if (mandala->center_y < 1.0) mandala->center_y = (gdouble) gimp_image_get_height (image) / 2.0; position = (gint) mandala->center_y; } else { mandala->vertical_guide = guide; /* Mandala guide position at first activation is at canvas middle. */ if (mandala->center_x < 1.0) mandala->center_x = (gdouble) gimp_image_get_width (image) / 2.0; position = (gint) mandala->center_x; } g_signal_connect (guide, "removed", G_CALLBACK (gimp_mandala_guide_removed_cb), mandala); gimp_image_add_guide (image, guide, position); g_signal_connect (guide, "notify::position", G_CALLBACK (gimp_mandala_guide_position_cb), mandala); }
static void gimp_image_map_tool_add_guide (GimpImageMapTool *im_tool) { GimpImageMapOptions *options = GIMP_IMAGE_MAP_TOOL_GET_OPTIONS (im_tool); GimpItem *item; GimpImage *image; GimpOrientationType orientation; gint position; if (im_tool->percent_guide) return; item = GIMP_ITEM (im_tool->drawable); image = gimp_item_get_image (item); if (options->preview_alignment == GIMP_ALIGN_LEFT || options->preview_alignment == GIMP_ALIGN_RIGHT) { orientation = GIMP_ORIENTATION_VERTICAL; position = (gimp_item_get_offset_x (item) + gimp_item_get_width (item) * options->preview_position); } else { orientation = GIMP_ORIENTATION_HORIZONTAL; position = (gimp_item_get_offset_y (item) + gimp_item_get_height (item) * options->preview_position); } im_tool->percent_guide = gimp_guide_custom_new (orientation, image->gimp->next_guide_ID++, GIMP_GUIDE_STYLE_SPLIT_VIEW); gimp_image_add_guide (image, im_tool->percent_guide, position); g_signal_connect (im_tool->percent_guide, "removed", G_CALLBACK (gimp_image_map_tool_guide_removed), im_tool); g_signal_connect (im_tool->percent_guide, "notify::position", G_CALLBACK (gimp_image_map_tool_guide_moved), im_tool); }
GimpGuide * gimp_image_add_vguide (GimpImage *image, gint position, gboolean push_undo) { GimpGuide *guide; g_return_val_if_fail (GIMP_IS_IMAGE (image), NULL); g_return_val_if_fail (position >= 0 && position <= gimp_image_get_width (image), NULL); guide = gimp_guide_new (GIMP_ORIENTATION_VERTICAL, image->gimp->next_guide_ID++); if (push_undo) gimp_image_undo_push_guide (image, C_("undo-type", "Add Vertical Guide"), guide); gimp_image_add_guide (image, guide, position); g_object_unref (guide); return guide; }
GimpGuide * gimp_image_add_hguide (GimpImage *image, gint position, gboolean push_undo) { GimpGuide *guide; g_return_val_if_fail (GIMP_IS_IMAGE (image), NULL); g_return_val_if_fail (position >= 0 && position <= gimp_image_get_height (image), NULL); guide = gimp_guide_new (GIMP_ORIENTATION_HORIZONTAL, image->gimp->next_guide_ID++); if (push_undo) gimp_image_undo_push_guide (image, C_("undo-type", "Add Horizontal Guide"), guide); gimp_image_add_guide (image, guide, position); g_object_unref (G_OBJECT (guide)); return guide; }