From 31f984bc3ffcc83834372fb8302091fdaa7e98c8 Mon Sep 17 00:00:00 2001 From: Julian Eisel Date: Wed, 22 Apr 2015 20:42:26 +0200 Subject: Show buttons to change render layer/pass in UV Editor header Previousely this was "hidden" in the Properties Region, this makes it more visible/usable. Requested by @sebastian_k --- source/blender/editors/space_image/image_buttons.c | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/source/blender/editors/space_image/image_buttons.c b/source/blender/editors/space_image/image_buttons.c index 2e9c2d96be5..2fb0a7e7c57 100644 --- a/source/blender/editors/space_image/image_buttons.c +++ b/source/blender/editors/space_image/image_buttons.c @@ -728,12 +728,12 @@ static void uiblock_layer_pass_buttons(uiLayout *layout, Image *image, RenderRes } } -static void uiblock_layer_pass_arrow_buttons(uiLayout *layout, Image *image, RenderResult *rr, ImageUser *iuser, short *render_slot) +static void uiblock_layer_pass_arrow_buttons(uiLayout *layout, Image *image, RenderResult *rr, ImageUser *iuser, + int menus_width, short *render_slot) { uiBlock *block = uiLayoutGetBlock(layout); uiLayout *row; uiBut *but; - const float dpi_fac = UI_DPI_FAC; row = uiLayoutRow(layout, true); @@ -750,7 +750,7 @@ static void uiblock_layer_pass_arrow_buttons(uiLayout *layout, Image *image, Ren but = uiDefIconBut(block, UI_BTYPE_BUT, 0, ICON_TRIA_RIGHT, 0, 0, 0.90f * UI_UNIT_X, UI_UNIT_Y, NULL, 0, 0, 0, 0, TIP_("Next Layer")); UI_but_func_set(but, image_multi_inclay_cb, rr, iuser); - uiblock_layer_pass_buttons(row, image, rr, iuser, 230 * dpi_fac, render_slot); + uiblock_layer_pass_buttons(row, image, rr, iuser, menus_width, render_slot); /* decrease, increase arrows */ but = uiDefIconBut(block, UI_BTYPE_BUT, 0, ICON_TRIA_LEFT, 0, 0, 0.85f * UI_UNIT_X, UI_UNIT_Y, NULL, 0, 0, 0, 0, TIP_("Previous Pass")); @@ -867,10 +867,11 @@ void uiTemplateImage(uiLayout *layout, bContext *C, PointerRNA *ptr, const char else if (ima->type == IMA_TYPE_R_RESULT) { /* browse layer/passes */ RenderResult *rr; + const float dpi_fac = UI_DPI_FAC; /* use BKE_image_acquire_renderresult so we get the correct slot in the menu */ rr = BKE_image_acquire_renderresult(scene, ima); - uiblock_layer_pass_arrow_buttons(layout, ima, rr, iuser, &ima->render_slot); + uiblock_layer_pass_arrow_buttons(layout, ima, rr, iuser, 230 * dpi_fac, &ima->render_slot); BKE_image_release_renderresult(scene, ima); } } @@ -903,7 +904,8 @@ void uiTemplateImage(uiLayout *layout, bContext *C, PointerRNA *ptr, const char /* multilayer? */ if (ima->type == IMA_TYPE_MULTILAYER && ima->rr) { - uiblock_layer_pass_arrow_buttons(layout, ima, ima->rr, iuser, NULL); + const float dpi_fac = UI_DPI_FAC; + uiblock_layer_pass_arrow_buttons(layout, ima, ima->rr, iuser, 230 * dpi_fac, NULL); } else if (ima->source != IMA_SRC_GENERATED) { if (compact == 0) { @@ -1211,12 +1213,18 @@ void uiTemplateImageLayers(uiLayout *layout, bContext *C, Image *ima, ImageUser /* render layers and passes */ if (ima && iuser) { - const float dpi_fac = UI_DPI_FAC; RenderResult *rr; + const float dpi_fac = UI_DPI_FAC; + const int menus_width = 160 * dpi_fac; /* use BKE_image_acquire_renderresult so we get the correct slot in the menu */ rr = BKE_image_acquire_renderresult(scene, ima); - uiblock_layer_pass_buttons(layout, ima, rr, iuser, 160 * dpi_fac, (ima->type == IMA_TYPE_R_RESULT) ? &ima->render_slot : NULL); + if (ima->type == IMA_TYPE_R_RESULT) { + uiblock_layer_pass_arrow_buttons(layout, ima, rr, iuser, menus_width, &ima->render_slot); + } + else { + uiblock_layer_pass_buttons(layout, ima, rr, iuser, menus_width, NULL); + } BKE_image_release_renderresult(scene, ima); } } -- cgit v1.2.3