diff options
author | Campbell Barton <ideasman42@gmail.com> | 2009-10-12 20:00:39 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2009-10-12 20:00:39 +0400 |
commit | fbde77ce809111318a8cfb6b25eeaf03511cb0dc (patch) | |
tree | 3847f0e2cecd8d408e3b9ab31f01188a5bd28b54 /source/blender/editors/render | |
parent | 50fd4f967f7f83c8ff33b76274bc6f2e8845fb46 (diff) |
texture slots up/down back
Diffstat (limited to 'source/blender/editors/render')
-rw-r--r-- | source/blender/editors/render/render_intern.h | 3 | ||||
-rw-r--r-- | source/blender/editors/render/render_ops.c | 2 | ||||
-rw-r--r-- | source/blender/editors/render/render_shading.c | 55 |
3 files changed, 60 insertions, 0 deletions
diff --git a/source/blender/editors/render/render_intern.h b/source/blender/editors/render/render_intern.h index d3ecbbc56e8..7b4c0194c5d 100644 --- a/source/blender/editors/render/render_intern.h +++ b/source/blender/editors/render/render_intern.h @@ -46,5 +46,8 @@ void WORLD_OT_new(struct wmOperatorType *ot); void SCENE_OT_render_layer_add(struct wmOperatorType *ot); void SCENE_OT_render_layer_remove(struct wmOperatorType *ot); +void TEXTURE_OT_slot_move(struct wmOperatorType *ot); + + #endif /* RENDER_INTERN_H */ diff --git a/source/blender/editors/render/render_ops.c b/source/blender/editors/render/render_ops.c index 7d35dff7493..8c0c1b18fca 100644 --- a/source/blender/editors/render/render_ops.c +++ b/source/blender/editors/render/render_ops.c @@ -51,5 +51,7 @@ void ED_operatortypes_render(void) WM_operatortype_append(SCENE_OT_render_layer_add); WM_operatortype_append(SCENE_OT_render_layer_remove); + + WM_operatortype_append(TEXTURE_OT_slot_move); } diff --git a/source/blender/editors/render/render_shading.c b/source/blender/editors/render/render_shading.c index 26df0df935b..4a2c88f54a7 100644 --- a/source/blender/editors/render/render_shading.c +++ b/source/blender/editors/render/render_shading.c @@ -681,3 +681,58 @@ void SCENE_OT_render_layer_remove(wmOperatorType *ot) ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; } +static int texture_slot_move(bContext *C, wmOperator *op) +{ + ID *id= CTX_data_pointer_get_type(C, "texture_slot", &RNA_TextureSlot).id.data; + + if(id) { + MTex **mtex_ar, *mtexswap; + short act; + int type= RNA_enum_get(op->ptr, "type"); + + give_active_mtex(id, &mtex_ar, &act); + + if(type == -1) { /* Up */ + if(act > 0) { + mtexswap = mtex_ar[act]; + mtex_ar[act] = mtex_ar[act-1]; + mtex_ar[act-1] = mtexswap; + set_active_mtex(id, act-1); + } + } + else { /* Down */ + if(act < MAX_MTEX-1) { + mtexswap = mtex_ar[act]; + mtex_ar[act] = mtex_ar[act+1]; + mtex_ar[act+1] = mtexswap; + set_active_mtex(id, act+1); + } + } + + WM_event_add_notifier(C, NC_TEXTURE, CTX_data_scene(C)); + } + + return OPERATOR_FINISHED; +} + +void TEXTURE_OT_slot_move(wmOperatorType *ot) +{ + static EnumPropertyItem slot_move[] = { + {-1, "UP", 0, "Up", ""}, + {1, "DOWN", 0, "Down", ""}, + {0, NULL, 0, NULL, NULL} + }; + + /* identifiers */ + ot->name= "Move Texture Slot"; + ot->idname= "TEXTURE_OT_slot_move"; + ot->description="Move texture slots up and down."; + + /* api callbacks */ + ot->exec= texture_slot_move; + + /* flags */ + ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; + + RNA_def_enum(ot->srna, "type", slot_move, 0, "Type", ""); +} |