changed limits for some rna values, added object.scale_linked_x/y/z

This commit is contained in:
Campbell Barton 2009-10-10 16:17:33 +00:00
parent 85ebea5838
commit f716f22d1f
4 changed files with 55 additions and 8 deletions

@ -471,7 +471,8 @@ static void rna_def_font(BlenderRNA *brna, StructRNA *srna)
/* number values */
prop= RNA_def_property(srna, "text_size", PROP_FLOAT, PROP_NONE);
RNA_def_property_float_sdna(prop, NULL, "fsize");
RNA_def_property_range(prop, 0.1f, 10.0f);
RNA_def_property_range(prop, 0.0001f, 10000.0f);
RNA_def_property_ui_range(prop, 0.01, 10, 1, 1);
RNA_def_property_ui_text(prop, "Font size", "");
RNA_def_property_update(prop, 0, "rna_Curve_update_data");

@ -508,6 +508,32 @@ static void rna_Object_rotation_mode_set(PointerRNA *ptr, int value)
ob->rotmode= value;
}
/* not called directly */
static void rna_Object_scale_linked_set(Object *ob, float value, int axis)
{
if(ob->size[axis]==0.0f || value==0.0f) {
ob->size[0]= ob->size[1]= ob->size[2]= value;
}
else {
VecMulf(ob->size, value / ob->size[axis]);
}
}
static void rna_Object_scale_x_linked_set(PointerRNA *ptr, float value)
{
rna_Object_scale_linked_set(ptr->data, value, 0);
}
static void rna_Object_scale_y_linked_set(PointerRNA *ptr, float value)
{
rna_Object_scale_linked_set(ptr->data, value, 1);
}
static void rna_Object_scale_z_linked_set(PointerRNA *ptr, float value)
{
rna_Object_scale_linked_set(ptr->data, value, 2);
}
static PointerRNA rna_MaterialSlot_material_get(PointerRNA *ptr)
{
Object *ob= (Object*)ptr->id.data;
@ -1276,6 +1302,26 @@ static void rna_def_object(BlenderRNA *brna)
RNA_def_property_ui_text(prop, "Scale", "Scaling of the object.");
RNA_def_property_update(prop, NC_OBJECT|ND_TRANSFORM, "rna_Object_update");
/* linked scale for the transform panel */
prop= RNA_def_property(srna, "scale_linked_x", PROP_FLOAT, PROP_NONE);
RNA_def_property_float_sdna(prop, NULL, "size[0]");
RNA_def_property_float_funcs(prop, NULL, "rna_Object_scale_x_linked_set", NULL);
RNA_def_property_ui_text(prop, "Scale X", "Scaling of the objects X axis.");
RNA_def_property_update(prop, NC_OBJECT|ND_TRANSFORM, "rna_Object_update");
prop= RNA_def_property(srna, "scale_linked_y", PROP_FLOAT, PROP_NONE);
RNA_def_property_float_sdna(prop, NULL, "size[1]");
RNA_def_property_float_funcs(prop, NULL, "rna_Object_scale_y_linked_set", NULL);
RNA_def_property_ui_text(prop, "Scale Y", "Scaling of the objects X axis.");
RNA_def_property_update(prop, NC_OBJECT|ND_TRANSFORM, "rna_Object_update");
prop= RNA_def_property(srna, "scale_linked_z", PROP_FLOAT, PROP_NONE);
RNA_def_property_float_sdna(prop, NULL, "size[2]");
RNA_def_property_float_funcs(prop, NULL, "rna_Object_scale_z_linked_set", NULL);
RNA_def_property_ui_text(prop, "Scale Z", "Scaling of the objects Z axis.");
RNA_def_property_update(prop, NC_OBJECT|ND_TRANSFORM, "rna_Object_update");
/* delta transforms */
prop= RNA_def_property(srna, "delta_location", PROP_FLOAT, PROP_TRANSLATION);
RNA_def_property_float_sdna(prop, NULL, "dloc");
@ -1494,25 +1540,27 @@ static void rna_def_object(BlenderRNA *brna)
prop= RNA_def_property(srna, "dupli_frames_start", PROP_INT, PROP_NONE|PROP_UNIT_TIME);
RNA_def_property_int_sdna(prop, NULL, "dupsta");
RNA_def_property_range(prop, 1, 32767);
RNA_def_property_range(prop, -MAXFRAME, MAXFRAME);
RNA_def_property_ui_text(prop, "Dupli Frames Start", "Start frame for DupliFrames.");
RNA_def_property_update(prop, NC_OBJECT|ND_DRAW, "rna_Object_update");
prop= RNA_def_property(srna, "dupli_frames_end", PROP_INT, PROP_NONE|PROP_UNIT_TIME);
RNA_def_property_int_sdna(prop, NULL, "dupend");
RNA_def_property_range(prop, 1, 32767);
RNA_def_property_range(prop, -MAXFRAME, MAXFRAME);
RNA_def_property_ui_text(prop, "Dupli Frames End", "End frame for DupliFrames.");
RNA_def_property_update(prop, NC_OBJECT|ND_DRAW, "rna_Object_update");
prop= RNA_def_property(srna, "dupli_frames_on", PROP_INT, PROP_NONE|PROP_UNIT_TIME);
RNA_def_property_int_sdna(prop, NULL, "dupon");
RNA_def_property_range(prop, 1, 1500);
RNA_def_property_range(prop, 1, MAXFRAME);
RNA_def_property_ui_range(prop, 1, 1500, 1, 0);
RNA_def_property_ui_text(prop, "Dupli Frames On", "Number of frames to use between DupOff frames.");
RNA_def_property_update(prop, NC_OBJECT|ND_DRAW, "rna_Object_update");
prop= RNA_def_property(srna, "dupli_frames_off", PROP_INT, PROP_NONE|PROP_UNIT_TIME);
RNA_def_property_int_sdna(prop, NULL, "dupoff");
RNA_def_property_range(prop, 0, 1500);
RNA_def_property_range(prop, 0, MAXFRAME);
RNA_def_property_ui_range(prop, 0, 1500, 1, 0);
RNA_def_property_ui_text(prop, "Dupli Frames Off", "Recurring frames to exclude from the Dupliframes.");
RNA_def_property_update(prop, NC_OBJECT|ND_DRAW, "rna_Object_update");

@ -548,7 +548,7 @@ static void rna_def_sequence(BlenderRNA *brna)
/* functions */
func= RNA_def_function(srna, "getStripElem", "give_stripelem");
RNA_def_function_ui_description(func, "Return the strip element from a given frame or None.");
prop= RNA_def_int(func, "frame", 0, INT_MIN, INT_MAX, "Frame", "The frame to get the strip element from", INT_MIN, INT_MAX);
prop= RNA_def_int(func, "frame", 0, -MAXFRAME, MAXFRAME, "Frame", "The frame to get the strip element from", -MAXFRAME, MAXFRAME);
RNA_def_property_flag(prop, PROP_REQUIRED);
RNA_def_function_return(func, RNA_def_pointer(func, "elem", "SequenceElement", "", "strip element of the current frame"));
}

@ -343,7 +343,6 @@ static void menu_draw(const bContext *C, Menu *hdr)
static void rna_Menu_unregister(const bContext *C, StructRNA *type)
{
ARegionType *art;
MenuType *mt= RNA_struct_blender_type_get(type);
if(!mt)
@ -362,7 +361,6 @@ static void rna_Menu_unregister(const bContext *C, StructRNA *type)
static StructRNA *rna_Menu_register(const bContext *C, ReportList *reports, void *data, const char *identifier, StructValidateFunc validate, StructCallbackFunc call, StructFreeFunc free)
{
ARegionType *art;
MenuType *mt, dummymt = {0};
Menu dummymenu= {0};
PointerRNA dummymtr;