Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2015-11-15 23:13:40 +0300
committerCampbell Barton <ideasman42@gmail.com>2015-11-15 23:14:47 +0300
commit603b867588f7940378950fefaffc9dfe0c67c2c7 (patch)
tree6caf12570d6f04cd6e57157e5589b97d9677cafa /source/blender/editors/space_image/image_edit.c
parent0d267737e23ba7032377a1aa2884d40a14025a39 (diff)
UI: support cycling for image space menus
also remove arrow buttons.
Diffstat (limited to 'source/blender/editors/space_image/image_edit.c')
-rw-r--r--source/blender/editors/space_image/image_edit.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/source/blender/editors/space_image/image_edit.c b/source/blender/editors/space_image/image_edit.c
index 38c9604d14b..35834857423 100644
--- a/source/blender/editors/space_image/image_edit.c
+++ b/source/blender/editors/space_image/image_edit.c
@@ -291,6 +291,34 @@ void ED_image_point_pos__reverse(SpaceImage *sima, ARegion *ar, const float co[2
r_co[1] = (co[1] * height * zoomy) + (float)sy;
}
+/**
+ * This is more a user-level functionality, for going to next/prev used slot,
+ * Stepping onto the last unused slot too.
+ */
+bool ED_image_slot_cycle(struct Image *image, int direction)
+{
+ const int cur = image->render_slot;
+ int i, slot;
+
+ BLI_assert(ELEM(direction, -1, 1));
+
+ for (i = 1; i < IMA_MAX_RENDER_SLOT; i++) {
+ slot = (cur + ((direction == -1) ? -i : i)) % IMA_MAX_RENDER_SLOT;
+ if (slot < 0) slot += IMA_MAX_RENDER_SLOT;
+
+ if (image->renders[slot] || slot == image->last_render_slot) {
+ image->render_slot = slot;
+ break;
+ }
+ }
+
+ if (i == IMA_MAX_RENDER_SLOT) {
+ image->render_slot = ((cur == 1) ? 0 : 1);
+ }
+
+ return (cur != image->render_slot);
+}
+
void ED_space_image_scopes_update(const struct bContext *C, struct SpaceImage *sima, struct ImBuf *ibuf, bool use_view_settings)
{
Scene *scene = CTX_data_scene(C);