[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [58333] branches/soc-2013-paint: Palette Colours are now visible.

Antony Riakiotakis kalast at gmail.com
Wed Jul 17 12:19:55 CEST 2013


Revision: 58333
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=58333
Author:   psy-fi
Date:     2013-07-17 10:19:55 +0000 (Wed, 17 Jul 2013)
Log Message:
-----------
Palette Colours are now visible.

Still no operator to add colours visible in UI but colours can be added
by using operator search (palette colour add)

Palettes only active on image painting currently

Modified Paths:
--------------
    branches/soc-2013-paint/release/scripts/startup/bl_ui/space_image.py
    branches/soc-2013-paint/release/scripts/startup/bl_ui/space_view3d_toolbar.py
    branches/soc-2013-paint/source/blender/editors/include/UI_interface.h
    branches/soc-2013-paint/source/blender/editors/interface/interface_templates.c
    branches/soc-2013-paint/source/blender/makesrna/RNA_access.h
    branches/soc-2013-paint/source/blender/makesrna/intern/rna_ui_api.c

Modified: branches/soc-2013-paint/release/scripts/startup/bl_ui/space_image.py
===================================================================
--- branches/soc-2013-paint/release/scripts/startup/bl_ui/space_image.py	2013-07-17 10:19:48 UTC (rev 58332)
+++ branches/soc-2013-paint/release/scripts/startup/bl_ui/space_image.py	2013-07-17 10:19:55 UTC (rev 58333)
@@ -712,7 +712,9 @@
                 col.prop(brush, "color", text="")
                 col.prop(brush, "secondary_color", text="")
                 col = layout.column()
-                col.template_ID(settings, "palette", new="palette.new")
+                col.template_ID(toolsettings, "palette", new="palette.new")
+                if toolsettings.palette:
+                    col.template_palette(toolsettings, "palette", color=True)
 
             row = col.row(align=True)
             self.prop_unified_size(row, context, brush, "size", slider=True, text="Radius")

Modified: branches/soc-2013-paint/release/scripts/startup/bl_ui/space_view3d_toolbar.py
===================================================================
--- branches/soc-2013-paint/release/scripts/startup/bl_ui/space_view3d_toolbar.py	2013-07-17 10:19:48 UTC (rev 58332)
+++ branches/soc-2013-paint/release/scripts/startup/bl_ui/space_view3d_toolbar.py	2013-07-17 10:19:55 UTC (rev 58333)
@@ -692,7 +692,9 @@
                 col.prop(brush, "secondary_color", text="")
                 col = layout.column()
                 col.template_ID(settings, "palette", new="palette.new")
-            
+                if settings.palette:
+                    col.template_palette(settings, "palette", color=True)      
+                          
             col = layout.column()
             row = col.row(align=True)
             self.prop_unified_size(row, context, brush, "size", slider=True, text="Radius")

Modified: branches/soc-2013-paint/source/blender/editors/include/UI_interface.h
===================================================================
--- branches/soc-2013-paint/source/blender/editors/include/UI_interface.h	2013-07-17 10:19:48 UTC (rev 58332)
+++ branches/soc-2013-paint/source/blender/editors/include/UI_interface.h	2013-07-17 10:19:55 UTC (rev 58333)
@@ -816,6 +816,7 @@
 void uiTemplateVectorscope(uiLayout *layout, struct PointerRNA *ptr, const char *propname);
 void uiTemplateCurveMapping(uiLayout *layout, struct PointerRNA *ptr, const char *propname, int type, int levels, int brush);
 void uiTemplateColorPicker(uiLayout *layout, struct PointerRNA *ptr, const char *propname, int value_slider, int lock, int lock_luminosity, int cubic);
+void uiTemplatePalette(uiLayout *layout, struct PointerRNA *ptr, const char *propname, int color);
 void uiTemplateLayers(uiLayout *layout, struct PointerRNA *ptr, const char *propname,
                       PointerRNA *used_ptr, const char *used_propname, int active_layer);
 void uiTemplateGameStates(uiLayout *layout, struct PointerRNA *ptr, const char *propname,

Modified: branches/soc-2013-paint/source/blender/editors/interface/interface_templates.c
===================================================================
--- branches/soc-2013-paint/source/blender/editors/interface/interface_templates.c	2013-07-17 10:19:48 UTC (rev 58332)
+++ branches/soc-2013-paint/source/blender/editors/interface/interface_templates.c	2013-07-17 10:19:55 UTC (rev 58333)
@@ -36,6 +36,7 @@
 #include "DNA_scene_types.h"
 #include "DNA_object_types.h"
 #include "DNA_object_force.h"
+#include "DNA_brush_types.h"
 
 #include "BLI_utildefines.h"
 #include "BLI_string.h"
@@ -2234,7 +2235,6 @@
 		RNA_warning("property not found: %s.%s", RNA_struct_identifier(ptr->type), propname);
 		return;
 	}
-
 	RNA_property_float_ui_range(ptr, prop, &softmin, &softmax, &step, &precision);
 
 	col = uiLayoutColumn(layout, TRUE);
@@ -2300,6 +2300,50 @@
 	}
 }
 
+/* This template now follows User Preference for type - name is not correct anymore... */
+void uiTemplatePalette(uiLayout *layout, PointerRNA *ptr, const char *propname, int colors)
+{
+	PropertyRNA *prop = RNA_struct_find_property(ptr, propname);
+	PointerRNA cptr;
+	Palette *palette;
+	PaletteColor *color;
+	uiBlock *block = uiLayoutGetBlock(layout);
+	uiLayout *col;
+	int row_cols = 0;
+	int max_palette_cols = 8;
+
+	if (!prop) {
+		RNA_warning("property not found: %s.%s", RNA_struct_identifier(ptr->type), propname);
+		return;
+	}
+
+	cptr = RNA_property_pointer_get(ptr, prop);
+	if (!cptr.data || !RNA_struct_is_a(cptr.type, &RNA_Palette))
+		return;
+
+	palette = cptr.data;
+	color = palette->colors.first;
+
+	col = uiLayoutColumn(layout, TRUE);
+	uiLayoutRow(col, TRUE);
+
+	for (; color; color = color->next) {
+		PointerRNA ptr;
+
+		if (row_cols >= max_palette_cols) {
+			uiLayoutRow(col, TRUE);
+			row_cols = 0;
+		}
+
+		RNA_pointer_create(&palette->id, &RNA_PaletteColor, color, &ptr);
+		uiDefButR(block, COLOR, 0, "", 0, 0, 18, 18, &ptr, "color",
+			               -1, 0.0, 1.0, 0.0, 0.0, "");
+
+		row_cols++;
+	}
+}
+
+
 /********************* Layer Buttons Template ************************/
 
 static void handle_layer_buttons(bContext *C, void *arg1, void *arg2)

Modified: branches/soc-2013-paint/source/blender/makesrna/RNA_access.h
===================================================================
--- branches/soc-2013-paint/source/blender/makesrna/RNA_access.h	2013-07-17 10:19:48 UTC (rev 58332)
+++ branches/soc-2013-paint/source/blender/makesrna/RNA_access.h	2013-07-17 10:19:55 UTC (rev 58333)
@@ -423,6 +423,8 @@
 extern StructRNA RNA_OutflowFluidSettings;
 extern StructRNA RNA_PackedFile;
 extern StructRNA RNA_Paint;
+extern StructRNA RNA_Palette;
+extern StructRNA RNA_PaletteColor;
 extern StructRNA RNA_Panel;
 extern StructRNA RNA_Particle;
 extern StructRNA RNA_ParticleBrush;

Modified: branches/soc-2013-paint/source/blender/makesrna/intern/rna_ui_api.c
===================================================================
--- branches/soc-2013-paint/source/blender/makesrna/intern/rna_ui_api.c	2013-07-17 10:19:48 UTC (rev 58332)
+++ branches/soc-2013-paint/source/blender/makesrna/intern/rna_ui_api.c	2013-07-17 10:19:55 UTC (rev 58333)
@@ -728,6 +728,11 @@
 	RNA_def_boolean(func, "lock_luminosity", 0, "", "Keep the color at its original vector length");
 	RNA_def_boolean(func, "cubic", 1, "", "Cubic saturation for picking values close to white");
 
+	func = RNA_def_function(srna, "template_palette", "uiTemplatePalette");
+	RNA_def_function_ui_description(func, "Item. A palette used to pick colors");
+	api_ui_item_rna_common(func);
+	RNA_def_boolean(func, "color", 0, "", "Display the colors as colors or values");
+
 	func = RNA_def_function(srna, "template_image_layers", "uiTemplateImageLayers");
 	RNA_def_function_flag(func, FUNC_USE_CONTEXT);
 	parm = RNA_def_pointer(func, "image", "Image", "", "");




More information about the Bf-blender-cvs mailing list