[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [23285] trunk/blender: UI
Brecht Van Lommel
brecht at blender.org
Wed Sep 16 20:47:45 CEST 2009
Revision: 23285
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=23285
Author: blendix
Date: 2009-09-16 20:47:42 +0200 (Wed, 16 Sep 2009)
Log Message:
-----------
UI
* Fix problem with curve mapping / color ramps not updating
things like previews propertly. Now it uses the RNA update
of the pointer from the material/texture/.. so each of those
can define their own update, but still share the RNA struct.
* Code for these templates is now in interface_templates.c
* Fix exception for "axis" property, now it always shows normal
widget with the PROP_DIRECTION subtype.
* Remove context from uiBlockLayoutResolve, no longer needed.
Modified Paths:
--------------
trunk/blender/release/ui/buttons_data_lamp.py
trunk/blender/release/ui/buttons_material.py
trunk/blender/release/ui/buttons_scene.py
trunk/blender/release/ui/buttons_texture.py
trunk/blender/release/ui/space_userpref.py
trunk/blender/release/ui/space_view3d_toolbar.py
trunk/blender/source/blender/editors/include/UI_interface.h
trunk/blender/source/blender/editors/interface/interface.c
trunk/blender/source/blender/editors/interface/interface_handlers.c
trunk/blender/source/blender/editors/interface/interface_intern.h
trunk/blender/source/blender/editors/interface/interface_layout.c
trunk/blender/source/blender/editors/interface/interface_regions.c
trunk/blender/source/blender/editors/interface/interface_templates.c
trunk/blender/source/blender/editors/screen/area.c
trunk/blender/source/blender/editors/space_action/action_header.c
trunk/blender/source/blender/makesrna/intern/rna_ui_api.c
Modified: trunk/blender/release/ui/buttons_data_lamp.py
===================================================================
--- trunk/blender/release/ui/buttons_data_lamp.py 2009-09-16 18:32:10 UTC (rev 23284)
+++ trunk/blender/release/ui/buttons_data_lamp.py 2009-09-16 18:47:42 UTC (rev 23285)
@@ -301,7 +301,7 @@
def draw(self, context):
lamp = context.lamp
- self.layout.template_curve_mapping(lamp.falloff_curve)
+ self.layout.template_curve_mapping(lamp, "falloff_curve")
bpy.types.register(DATA_PT_context_lamp)
bpy.types.register(DATA_PT_preview)
Modified: trunk/blender/release/ui/buttons_material.py
===================================================================
--- trunk/blender/release/ui/buttons_material.py 2009-09-16 18:32:10 UTC (rev 23284)
+++ trunk/blender/release/ui/buttons_material.py 2009-09-16 18:47:42 UTC (rev 23285)
@@ -28,7 +28,7 @@
# this manages materials for all engine types
engine = context.scene.render_data.engine
- return (context.object) and (engine in self.COMPAT_ENGINES)
+ return (context.material or context.object) and (engine in self.COMPAT_ENGINES)
def draw(self, context):
layout = self.layout
@@ -282,7 +282,7 @@
if mat.use_diffuse_ramp:
layout.itemS()
- layout.template_color_ramp(mat.diffuse_ramp, expand=True)
+ layout.template_color_ramp(mat, "diffuse_ramp", expand=True)
layout.itemS()
row = layout.row()
split = row.split(percentage=0.3)
@@ -334,7 +334,7 @@
if mat.use_specular_ramp:
layout.itemS()
- layout.template_color_ramp(mat.specular_ramp, expand=True)
+ layout.template_color_ramp(mat, "specular_ramp", expand=True)
layout.itemS()
row = layout.row()
split = row.split(percentage=0.3)
Modified: trunk/blender/release/ui/buttons_scene.py
===================================================================
--- trunk/blender/release/ui/buttons_scene.py 2009-09-16 18:32:10 UTC (rev 23284)
+++ trunk/blender/release/ui/buttons_scene.py 2009-09-16 18:47:42 UTC (rev 23285)
@@ -240,7 +240,8 @@
split = layout.split()
col = split.column()
- col.itemR(rd, "exr_codec")
+ col.itemL(text="Codec:")
+ col.itemR(rd, "exr_codec", text="")
subsplit = split.split()
col = subsplit.column()
Modified: trunk/blender/release/ui/buttons_texture.py
===================================================================
--- trunk/blender/release/ui/buttons_texture.py 2009-09-16 18:32:10 UTC (rev 23284)
+++ trunk/blender/release/ui/buttons_texture.py 2009-09-16 18:47:42 UTC (rev 23285)
@@ -96,7 +96,7 @@
layout.itemR(tex, "use_color_ramp", text="Ramp")
if tex.use_color_ramp:
- layout.template_color_ramp(tex.color_ramp, expand=True)
+ layout.template_color_ramp(tex, "color_ramp", expand=True)
split = layout.split()
@@ -410,10 +410,10 @@
def draw(self, context):
layout = self.layout
-
+
tex = context.texture
- layout.template_texture_image(tex)
+ layout.template_image(tex, "image", tex.image_user)
class TEXTURE_PT_image_sampling(TextureTypePanel):
__label__ = "Image Sampling"
@@ -689,7 +689,7 @@
if pd.color_source in ('PARTICLE_SPEED', 'PARTICLE_VELOCITY'):
col.itemR(pd, "speed_scale")
if pd.color_source in ('PARTICLE_SPEED', 'PARTICLE_AGE'):
- layout.template_color_ramp(pd.color_ramp, expand=True)
+ layout.template_color_ramp(pd, "color_ramp", expand=True)
col = split.column()
col.itemL()
Modified: trunk/blender/release/ui/space_userpref.py
===================================================================
--- trunk/blender/release/ui/space_userpref.py 2009-09-16 18:32:10 UTC (rev 23284)
+++ trunk/blender/release/ui/space_userpref.py 2009-09-16 18:47:42 UTC (rev 23285)
@@ -264,7 +264,7 @@
sub2 = sub1.column()
sub2.active = system.use_weight_color_range
- sub2.template_color_ramp(system.weight_color_range, expand=True)
+ sub2.template_color_ramp(system, "weight_color_range", expand=True)
sub1.itemS()
sub1.itemS()
Modified: trunk/blender/release/ui/space_view3d_toolbar.py
===================================================================
--- trunk/blender/release/ui/space_view3d_toolbar.py 2009-09-16 18:32:10 UTC (rev 23284)
+++ trunk/blender/release/ui/space_view3d_toolbar.py 2009-09-16 18:47:42 UTC (rev 23285)
@@ -422,7 +422,7 @@
row.itemR(brush, "strength", slider=True)
row.itemR(brush, "strength_pressure", toggle=True, text="")
- col.itemR(brush, "blend")
+ col.itemR(brush, "blend", text="Blend")
# Weight Paint Mode #
@@ -508,7 +508,7 @@
settings = self.paint_settings(context)
brush = settings.brush
- layout.template_curve_mapping(brush.curve)
+ layout.template_curve_mapping(brush, "curve")
layout.item_menu_enumO("brush.curve_preset", property="shape")
class VIEW3D_PT_sculpt_options(PaintPanel):
Modified: trunk/blender/source/blender/editors/include/UI_interface.h
===================================================================
--- trunk/blender/source/blender/editors/include/UI_interface.h 2009-09-16 18:32:10 UTC (rev 23284)
+++ trunk/blender/source/blender/editors/include/UI_interface.h 2009-09-16 18:47:42 UTC (rev 23285)
@@ -487,6 +487,7 @@
void uiBlockSetHandleFunc(uiBlock *block, uiBlockHandleFunc func, void *arg);
void uiBlockSetButmFunc (uiBlock *block, uiMenuHandleFunc func, void *arg);
void uiBlockSetFunc (uiBlock *block, uiButHandleFunc func, void *arg1, void *arg2);
+void uiBlockSetNFunc (uiBlock *block, uiButHandleFunc func, void *argN, void *arg2);
void uiButSetRenameFunc (uiBut *but, uiButHandleRenameFunc func, void *arg1);
void uiButSetFunc (uiBut *but, uiButHandleFunc func, void *arg1, void *arg2);
@@ -596,7 +597,7 @@
uiLayout *uiBlockLayout(uiBlock *block, int dir, int type, int x, int y, int size, int em, struct uiStyle *style);
void uiBlockSetCurLayout(uiBlock *block, uiLayout *layout);
-void uiBlockLayoutResolve(const struct bContext *C, uiBlock *block, int *x, int *y);
+void uiBlockLayoutResolve(uiBlock *block, int *x, int *y);
uiBlock *uiLayoutGetBlock(uiLayout *layout);
@@ -641,10 +642,11 @@
uiLayout *uiTemplateModifier(uiLayout *layout, struct PointerRNA *ptr);
uiLayout *uiTemplateConstraint(uiLayout *layout, struct PointerRNA *ptr);
void uiTemplatePreview(uiLayout *layout, struct ID *id, struct ID *parent, struct MTex *slot);
-void uiTemplateColorRamp(uiLayout *layout, struct ColorBand *coba, int expand);
-void uiTemplateCurveMapping(uiLayout *layout, struct CurveMapping *cumap, int type, int compact);
+void uiTemplateColorRamp(uiLayout *layout, struct PointerRNA *ptr, char *propname, int expand);
+void uiTemplateCurveMapping(uiLayout *layout, struct PointerRNA *ptr, char *propname, int type, int levels);
void uiTemplateTriColorSet(uiLayout *layout, struct PointerRNA *ptr, char *propname);
void uiTemplateLayers(uiLayout *layout, struct PointerRNA *ptr, char *propname);
+void uiTemplateImage(uiLayout *layout, struct bContext *C, struct PointerRNA *ptr, char *propname, struct PointerRNA *userptr, int compact);
void uiTemplateImageLayers(uiLayout *layout, struct bContext *C, struct Image *ima, struct ImageUser *iuser);
void uiTemplateRunningJobs(uiLayout *layout, struct bContext *C);
void uiTemplateOperatorSearch(uiLayout *layout);
Modified: trunk/blender/source/blender/editors/interface/interface.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface.c 2009-09-16 18:32:10 UTC (rev 23284)
+++ trunk/blender/source/blender/editors/interface/interface.c 2009-09-16 18:47:42 UTC (rev 23285)
@@ -622,7 +622,7 @@
}
/* handle pending stuff */
- if(block->layouts.first) uiBlockLayoutResolve(C, block, NULL, NULL);
+ if(block->layouts.first) uiBlockLayoutResolve(block, NULL, NULL);
ui_block_do_align(block);
if(block->flag & UI_BLOCK_LOOP) ui_menu_block_set_keymaps(C, block);
@@ -1684,6 +1684,9 @@
ui_free_but(C, but);
}
+ if(block->func_argN)
+ MEM_freeN(block->func_argN);
+
CTX_store_free_list(&block->contexts);
BLI_freelistN(&block->saferct);
@@ -2232,6 +2235,10 @@
but->func= block->func;
but->func_arg1= block->func_arg1;
but->func_arg2= block->func_arg2;
+
+ but->funcN= block->funcN;
+ if(block->func_argN)
+ but->func_argN= MEM_dupallocN(block->func_argN);
but->pos= -1; /* cursor invisible */
@@ -2945,6 +2952,16 @@
block->func_arg2= arg2;
}
+void uiBlockSetNFunc(uiBlock *block, uiButHandleFunc func, void *argN, void *arg2)
+{
+ if(block->func_argN)
+ MEM_freeN(block->func_argN);
+
+ block->funcN= func;
+ block->func_argN= argN;
+ block->func_arg2= arg2;
+}
+
void uiButSetRenameFunc(uiBut *but, uiButHandleRenameFunc func, void *arg1)
{
but->rename_func= func;
@@ -2967,6 +2984,9 @@
void uiButSetNFunc(uiBut *but, uiButHandleNFunc funcN, void *argN, void *arg2)
{
+ if(but->func_argN)
+ MEM_freeN(but->func_argN);
+
but->funcN= funcN;
but->func_argN= argN;
but->func_arg2= arg2;
@@ -3003,6 +3023,8 @@
{
uiBut *but= ui_def_but(block, BLOCK, 0, str, x1, y1, x2, y2, NULL, 0.0, 0.0, 0.0, 0.0, tip);
but->block_create_func= func;
+ if(but->func_argN)
+ MEM_freeN(but->func_argN);
but->func_argN= argN;
ui_check_but(but);
return but;
Modified: trunk/blender/source/blender/editors/interface/interface_handlers.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface_handlers.c 2009-09-16 18:32:10 UTC (rev 23284)
+++ trunk/blender/source/blender/editors/interface/interface_handlers.c 2009-09-16 18:47:42 UTC (rev 23285)
@@ -246,7 +246,13 @@
if(but->func || but->funcN || block->handle_func || but->rename_func || (but->type == BUTM && block->butm_func) || but->optype || but->rnaprop) {
after= MEM_callocN(sizeof(uiAfterFunc), "uiAfterFunc");
- after->func= but->func;
+ if(ELEM(but, but->func_arg1, but->func_arg2)) {
+ /* exception, this will crash due to removed button otherwise */
+ but->func(C, but->func_arg1, but->func_arg2);
+ }
+ else
+ after->func= but->func;
+
after->func_arg1= but->func_arg1;
after->func_arg2= but->func_arg2;
after->func_arg3= but->func_arg3;
Modified: trunk/blender/source/blender/editors/interface/interface_intern.h
===================================================================
--- trunk/blender/source/blender/editors/interface/interface_intern.h 2009-09-16 18:32:10 UTC (rev 23284)
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list