[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [30142] branches/soc-2010-jwilkins: * enabled roll out icon menu for other paint modes

Jason Wilkins Jason.A.Wilkins at gmail.com
Fri Jul 9 10:08:28 CEST 2010


Revision: 30142
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=30142
Author:   jwilkins
Date:     2010-07-09 10:08:28 +0200 (Fri, 09 Jul 2010)

Log Message:
-----------
* enabled roll out icon menu for other paint modes

Modified Paths:
--------------
    branches/soc-2010-jwilkins/release/scripts/ui/space_view3d_toolbar.py
    branches/soc-2010-jwilkins/source/blender/makesrna/intern/rna_brush.c

Modified: branches/soc-2010-jwilkins/release/scripts/ui/space_view3d_toolbar.py
===================================================================
--- branches/soc-2010-jwilkins/release/scripts/ui/space_view3d_toolbar.py	2010-07-09 07:53:06 UTC (rev 30141)
+++ branches/soc-2010-jwilkins/release/scripts/ui/space_view3d_toolbar.py	2010-07-09 08:08:28 UTC (rev 30142)
@@ -504,19 +504,26 @@
 
         if not context.particle_edit_object:
             col = layout.split().column()
-            row = col.row()
 
-            if context.sculpt_object and brush:
-                defaultbrushes = 8
-            elif context.texture_paint_object and brush:
-                defaultbrushes = 4
+            if context.sculpt_object and context.tool_settings.sculpt:
+                col.template_ID_preview(settings, "brush", new="brush.add", filter="is_sculpt_brush", rows=3, cols=8)
+            elif context.texture_paint_object and context.tool_settings.image_paint:
+                col.template_ID_preview(settings, "brush", new="brush.add", filter="is_imapaint_brush", rows=3, cols=8)
+            elif context.vertex_paint_object and context.tool_settings.vertex_paint:
+                col.template_ID_preview(settings, "brush", new="brush.add", filter="is_vpaint_brush", rows=3, cols=8)
+            elif context.weight_paint_object and context.tool_settings.weight_paint:
+                col.template_ID_preview(settings, "brush", new="brush.add", filter="is_wpaint_brush", rows=3, cols=8)
             else:
-                defaultbrushes = 7
+                row = col.row()
 
-            if not context.sculpt_object:
+                if context.sculpt_object and brush:
+                    defaultbrushes = 8
+                elif context.texture_paint_object and brush:
+                    defaultbrushes = 4
+                else:
+                    defaultbrushes = 7
+
                 row.template_list(settings, "brushes", settings, "active_brush_index", rows=2, maxrows=defaultbrushes)
-            else:
-                col.template_ID_preview(settings, "brush", new="brush.add", filter="is_sculpt_brush", rows=3, cols=8)
 
         # Particle Mode #
 
@@ -1037,7 +1044,7 @@
     bl_label = "Appearance"
 
     def poll(self, context):
-        return (context.sculpt_object and context.tool_settings.sculpt)
+        return (context.sculpt_object and context.tool_settings.sculpt) or (context.vertex_paint_object and context.tool_settings.vertex_paint) or (context.weight_paint_object and context.tool_settings.weight_paint) or (context.texture_paint_object and context.tool_settings.image_paint)
 
     def draw(self, context):
         layout = self.layout
@@ -1048,11 +1055,12 @@
 
         col = layout.column();
 
-        if brush.sculpt_tool in ('DRAW', 'INFLATE', 'CLAY', 'WAX', 'PINCH', 'CREASE', 'BLOB', 'FLATTEN'):
-            col.prop(brush, "add_col", text="Add Color")
-            col.prop(brush, "sub_col", text="Substract Color")
-        else:
-            col.prop(brush, "add_col", text="Color")
+        if context.sculpt_object and context.tool_settings.sculpt:
+            if brush.sculpt_tool in ('DRAW', 'INFLATE', 'CLAY', 'WAX', 'PINCH', 'CREASE', 'BLOB', 'FLATTEN'):
+                col.prop(brush, "add_col", text="Add Color")
+                col.prop(brush, "sub_col", text="Substract Color")
+            else:
+                col.prop(brush, "add_col", text="Color")
 
         col.separator()
 

Modified: branches/soc-2010-jwilkins/source/blender/makesrna/intern/rna_brush.c
===================================================================
--- branches/soc-2010-jwilkins/source/blender/makesrna/intern/rna_brush.c	2010-07-09 07:53:06 UTC (rev 30141)
+++ branches/soc-2010-jwilkins/source/blender/makesrna/intern/rna_brush.c	2010-07-09 08:08:28 UTC (rev 30142)
@@ -30,6 +30,7 @@
 
 #include "DNA_brush_types.h"
 #include "DNA_texture_types.h"
+#include "DNA_scene_types.h"
 
 #include "BLI_math.h"
 
@@ -64,6 +65,45 @@
 	return 0;
 }
 
+static int rna_Brush_is_vpaint_brush(Brush *me, bContext *C)
+{
+	VPaint *vp = CTX_data_tool_settings(C)->vpaint;
+	int i;
+
+	for (i= 0; i < vp->paint.brush_count; i++) {
+		if (strcmp(me->id.name+2, vp->paint.brushes[i]->id.name+2) == 0) 
+			return 1;
+	}
+
+	return 0;
+}
+
+static int rna_Brush_is_wpaint_brush(Brush *me, bContext *C)
+{
+	VPaint *vp = CTX_data_tool_settings(C)->wpaint;
+	int i;
+
+	for (i= 0; i < vp->paint.brush_count; i++) {
+		if (strcmp(me->id.name+2, vp->paint.brushes[i]->id.name+2) == 0) 
+			return 1;
+	}
+
+	return 0;
+}
+
+static int rna_Brush_is_imapaint_brush(Brush *me, bContext *C)
+{
+	ImagePaintSettings *data = &(CTX_data_tool_settings(C)->imapaint);
+	int i;
+
+	for (i= 0; i < data->paint.brush_count; i++) {
+		if (strcmp(me->id.name+2, data->paint.brushes[i]->id.name+2) == 0) 
+			return 1;
+	}
+
+	return 0;
+}
+
 #else
 
 static void rna_def_brush_texture_slot(BlenderRNA *brna)
@@ -202,12 +242,33 @@
 
 	/* functions */
 	func= RNA_def_function(srna, "is_sculpt_brush", "rna_Brush_is_sculpt_brush");
-	RNA_def_function_ui_description(func, "Returns true if Brush can be used for sculpting.");
+	RNA_def_function_ui_description(func, "Returns true if Brush can be used for sculpting");
 	parm= RNA_def_pointer(func, "context", "Context", "", "");
 	RNA_def_property_flag(parm, PROP_REQUIRED);
 	parm= RNA_def_boolean(func, "ret", 0, "", "");
 	RNA_def_function_return(func, parm);
 
+	func= RNA_def_function(srna, "is_vpaint_brush", "rna_Brush_is_vpaint_brush");
+	RNA_def_function_ui_description(func, "Returns true if Brush can be used for vertex painting");
+	parm= RNA_def_pointer(func, "context", "Context", "", "");
+	RNA_def_property_flag(parm, PROP_REQUIRED);
+	parm= RNA_def_boolean(func, "ret", 0, "", "");
+	RNA_def_function_return(func, parm);
+
+	func= RNA_def_function(srna, "is_wpaint_brush", "rna_Brush_is_wpaint_brush");
+	RNA_def_function_ui_description(func, "Returns true if Brush can be used for weight painting");
+	parm= RNA_def_pointer(func, "context", "Context", "", "");
+	RNA_def_property_flag(parm, PROP_REQUIRED);
+	parm= RNA_def_boolean(func, "ret", 0, "", "");
+	RNA_def_function_return(func, parm);
+
+	func= RNA_def_function(srna, "is_imapaint_brush", "rna_Brush_is_imapaint_brush");
+	RNA_def_function_ui_description(func, "Returns true if Brush can be used for image painting");
+	parm= RNA_def_pointer(func, "context", "Context", "", "");
+	RNA_def_property_flag(parm, PROP_REQUIRED);
+	parm= RNA_def_boolean(func, "ret", 0, "", "");
+	RNA_def_function_return(func, parm);
+
 	/* enums */
 	prop= RNA_def_property(srna, "blend", PROP_ENUM, PROP_NONE);
 	RNA_def_property_enum_items(prop, prop_blend_items);





More information about the Bf-blender-cvs mailing list