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>2009-10-12 20:00:39 +0400
committerCampbell Barton <ideasman42@gmail.com>2009-10-12 20:00:39 +0400
commitfbde77ce809111318a8cfb6b25eeaf03511cb0dc (patch)
tree3847f0e2cecd8d408e3b9ab31f01188a5bd28b54 /source/blender/editors/render
parent50fd4f967f7f83c8ff33b76274bc6f2e8845fb46 (diff)
texture slots up/down back
Diffstat (limited to 'source/blender/editors/render')
-rw-r--r--source/blender/editors/render/render_intern.h3
-rw-r--r--source/blender/editors/render/render_ops.c2
-rw-r--r--source/blender/editors/render/render_shading.c55
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", "");
+}