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); }