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:
authorWilliam Reynish <billrey@me.com>2019-06-04 19:10:47 +0300
committerWilliam Reynish <billrey@me.com>2019-06-04 19:10:47 +0300
commite388cd8bb4b5dd309de0e603e529ee99348e3b19 (patch)
tree0a0fd845a8c18892c6720e4cdeba195ffe2fd58c /source/blender
parent636751bb36097e57c191652575ed6394b6dae105 (diff)
UI: Add icons to Constraints
Each constraint now has a unique icon, just like modifiers. Icons are designed by Andrzej Ambroż & Alessio Monti, with user input. Patch by Alessio Monti.
Diffstat (limited to 'source/blender')
-rw-r--r--source/blender/editors/include/UI_icons.h54
-rw-r--r--source/blender/editors/interface/interface_templates.c20
-rw-r--r--source/blender/editors/space_outliner/outliner_draw.c124
-rw-r--r--source/blender/makesrna/intern/rna_constraint.c92
4 files changed, 217 insertions, 73 deletions
diff --git a/source/blender/editors/include/UI_icons.h b/source/blender/editors/include/UI_icons.h
index 048f30bdf26..f9e9e342ee5 100644
--- a/source/blender/editors/include/UI_icons.h
+++ b/source/blender/editors/include/UI_icons.h
@@ -493,33 +493,33 @@ DEF_ICON(HOLDOUT_ON)
DEF_ICON(INDIRECT_ONLY_OFF)
DEF_ICON(INDIRECT_ONLY_ON)
-/* EMPTY */
-DEF_ICON_BLANK(501)
-DEF_ICON_BLANK(502)
-DEF_ICON_BLANK(503)
-DEF_ICON_BLANK(504)
-DEF_ICON_BLANK(505)
-DEF_ICON_BLANK(506)
-DEF_ICON_BLANK(507)
-DEF_ICON_BLANK(508)
-DEF_ICON_BLANK(509)
-DEF_ICON_BLANK(510)
-DEF_ICON_BLANK(511)
-DEF_ICON_BLANK(512)
-DEF_ICON_BLANK(513)
-DEF_ICON_BLANK(514)
-DEF_ICON_BLANK(515)
-DEF_ICON_BLANK(516)
-DEF_ICON_BLANK(517)
-DEF_ICON_BLANK(518)
-DEF_ICON_BLANK(519)
-DEF_ICON_BLANK(520)
-DEF_ICON_BLANK(521)
-DEF_ICON_BLANK(522)
-DEF_ICON_BLANK(523)
-DEF_ICON_BLANK(524)
-DEF_ICON_BLANK(525)
-DEF_ICON_BLANK(526)
+/* CONSTRAINTS */
+DEF_ICON_MODIFIER(CON_CAMERASOLVER)
+DEF_ICON_MODIFIER(CON_FOLLOWTRACK)
+DEF_ICON_MODIFIER(CON_OBJECTSOLVER)
+DEF_ICON_MODIFIER(CON_LOCLIKE)
+DEF_ICON_MODIFIER(CON_ROTLIKE)
+DEF_ICON_MODIFIER(CON_SIZELIKE)
+DEF_ICON_MODIFIER(CON_TRANSLIKE)
+DEF_ICON_MODIFIER(CON_DISTLIMIT)
+DEF_ICON_MODIFIER(CON_LOCLIMIT)
+DEF_ICON_MODIFIER(CON_ROTLIMIT)
+DEF_ICON_MODIFIER(CON_SIZELIMIT)
+DEF_ICON_MODIFIER(CON_SAMEVOL)
+DEF_ICON_MODIFIER(CON_TRANSFORM)
+DEF_ICON_MODIFIER(CON_TRANSFORM_CACHE)
+DEF_ICON_MODIFIER(CON_CLAMPTO)
+DEF_ICON_MODIFIER(CON_KINEMATIC)
+DEF_ICON_MODIFIER(CON_LOCKTRACK)
+DEF_ICON_MODIFIER(CON_SPLINEIK)
+DEF_ICON_MODIFIER(CON_STRETCHTO)
+DEF_ICON_MODIFIER(CON_TRACKTO)
+DEF_ICON_MODIFIER(CON_ARMATURE)
+DEF_ICON_MODIFIER(CON_CHILDOF)
+DEF_ICON_MODIFIER(CON_FLOOR)
+DEF_ICON_MODIFIER(CON_FOLLOWPATH)
+DEF_ICON_MODIFIER(CON_PIVOT)
+DEF_ICON_MODIFIER(CON_SHRINKWRAP)
/* MODIFIERS */
DEF_ICON_MODIFIER(MODIFIER_DATA)
diff --git a/source/blender/editors/interface/interface_templates.c b/source/blender/editors/interface/interface_templates.c
index 33602818fd4..b1d404e8ab4 100644
--- a/source/blender/editors/interface/interface_templates.c
+++ b/source/blender/editors/interface/interface_templates.c
@@ -2441,24 +2441,12 @@ static uiLayout *draw_constraint(uiLayout *layout, Object *ob, bConstraint *con)
/* open/close */
UI_block_emboss_set(block, UI_EMBOSS_NONE);
- uiItemR(row, &ptr, "show_expanded", UI_ITEM_R_ICON_ONLY, "", ICON_NONE);
+ uiItemR(row, &ptr, "show_expanded", 0, "", ICON_NONE);
+
+ /* constraint-type icon */
+ uiItemL(row, "", RNA_struct_ui_icon(ptr.type));
UI_block_emboss_set(block, UI_EMBOSS);
- /* name */
- uiDefBut(block,
- UI_BTYPE_LABEL,
- 0,
- typestr,
- xco + 0.5f * UI_UNIT_X,
- yco,
- 5 * UI_UNIT_X,
- 0.9f * UI_UNIT_Y,
- NULL,
- 0.0,
- 0.0,
- 0.0,
- 0.0,
- "");
if (con->flag & CONSTRAINT_DISABLE) {
uiLayoutSetRedAlert(row, true);
diff --git a/source/blender/editors/space_outliner/outliner_draw.c b/source/blender/editors/space_outliner/outliner_draw.c
index d994152ba67..8c02c828313 100644
--- a/source/blender/editors/space_outliner/outliner_draw.c
+++ b/source/blender/editors/space_outliner/outliner_draw.c
@@ -31,6 +31,7 @@
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
#include "DNA_sequence_types.h"
+#include "DNA_constraint_types.h"
#include "BLI_math.h"
#include "BLI_blenlib.h"
@@ -1856,6 +1857,129 @@ TreeElementIcon tree_element_get_icon(TreeStoreElem *tselem, TreeElement *te)
case TSE_LINKED_PSYS:
data.icon = ICON_PARTICLES;
break;
+ case TSE_CONSTRAINT: {
+ Object *ob = (Object *)tselem->id;
+
+ /*
+ * I wasn't able to get the correct pose channel per bone
+ * so for now, to avoid Blender to crash, every time an armature goes in pose mode
+ * the icon will be a dot as before.
+ * There is also a problem with the update of the outliner, if the order
+ * of the constraints change.
+ */
+
+ if (ob->mode & OB_MODE_POSE) { /*placeholder filter for testing*/
+ /*
+ bPoseChannel *pchan = BLI_findlink(&ob->pose->chanbase, 0);
+
+ bConstraint *con = BLI_findlink(&pchan->constraints, tselem->nr-1000);
+
+ switch ((eBConstraint_Types)con->type) {
+ case CONSTRAINT_TYPE_SIZELIKE:
+ data.icon = ICON_CON_SIZELIKE;
+ break;
+ default:
+ data.icon = ICON_DOT;
+ break;
+ }*/
+ data.icon = ICON_DOT;
+ }
+ else {
+ bConstraint *con = BLI_findlink(&ob->constraints, tselem->nr);
+
+ switch ((eBConstraint_Types)con->type) {
+ case CONSTRAINT_TYPE_CAMERASOLVER:
+ data.icon = ICON_CON_CAMERASOLVER;
+ break;
+ case CONSTRAINT_TYPE_FOLLOWTRACK:
+ data.icon = ICON_CON_FOLLOWTRACK;
+ break;
+ case CONSTRAINT_TYPE_OBJECTSOLVER:
+ data.icon = ICON_CON_OBJECTSOLVER;
+ break;
+ case CONSTRAINT_TYPE_LOCLIKE:
+ data.icon = ICON_CON_LOCLIKE;
+ break;
+ case CONSTRAINT_TYPE_ROTLIKE:
+ data.icon = ICON_CON_ROTLIKE;
+ break;
+ case CONSTRAINT_TYPE_SIZELIKE:
+ data.icon = ICON_CON_SIZELIKE;
+ break;
+ case CONSTRAINT_TYPE_TRANSLIKE:
+ data.icon = ICON_CON_TRANSLIKE;
+ break;
+ case CONSTRAINT_TYPE_DISTLIMIT:
+ data.icon = ICON_CON_DISTLIMIT;
+ break;
+ case CONSTRAINT_TYPE_LOCLIMIT:
+ data.icon = ICON_CON_LOCLIMIT;
+ break;
+ case CONSTRAINT_TYPE_ROTLIMIT:
+ data.icon = ICON_CON_ROTLIMIT;
+ break;
+ case CONSTRAINT_TYPE_SIZELIMIT:
+ data.icon = ICON_CON_SIZELIMIT;
+ break;
+ case CONSTRAINT_TYPE_SAMEVOL:
+ data.icon = ICON_CON_SAMEVOL;
+ break;
+ case CONSTRAINT_TYPE_TRANSFORM:
+ data.icon = ICON_CON_TRANSFORM;
+ break;
+ case CONSTRAINT_TYPE_TRANSFORM_CACHE:
+ data.icon = ICON_MOD_MESHDEFORM;
+ break;
+ case CONSTRAINT_TYPE_CLAMPTO:
+ data.icon = ICON_CON_CLAMPTO;
+ break;
+ case CONSTRAINT_TYPE_DAMPTRACK:
+ data.icon = ICON_CON_TRACKTO;
+ break;
+ case CONSTRAINT_TYPE_KINEMATIC:
+ data.icon = ICON_CON_KINEMATIC;
+ break;
+ case CONSTRAINT_TYPE_LOCKTRACK:
+ data.icon = ICON_CON_LOCKTRACK;
+ break;
+ case CONSTRAINT_TYPE_SPLINEIK:
+ data.icon = ICON_CON_SPLINEIK;
+ break;
+ case CONSTRAINT_TYPE_STRETCHTO:
+ data.icon = ICON_CON_STRETCHTO;
+ break;
+ case CONSTRAINT_TYPE_TRACKTO:
+ data.icon = ICON_CON_TRACKTO;
+ break;
+ case CONSTRAINT_TYPE_ACTION:
+ data.icon = ICON_ACTION;
+ break;
+ case CONSTRAINT_TYPE_ARMATURE:
+ data.icon = ICON_MOD_ARMATURE;
+ break;
+ case CONSTRAINT_TYPE_CHILDOF:
+ data.icon = ICON_CON_CHILDOF;
+ break;
+ case CONSTRAINT_TYPE_MINMAX:
+ data.icon = ICON_CON_FLOOR;
+ break;
+ case CONSTRAINT_TYPE_FOLLOWPATH:
+ data.icon = ICON_CON_FOLLOWPATH;
+ break;
+ case CONSTRAINT_TYPE_PIVOT:
+ data.icon = ICON_CON_PIVOT;
+ break;
+ case CONSTRAINT_TYPE_SHRINKWRAP:
+ data.icon = ICON_CON_SHRINKWRAP;
+ break;
+
+ case NUM_CONSTRAINT_TYPES:
+ data.icon = ICON_DOT;
+ break;
+ }
+ }
+ }
+ break;
case TSE_MODIFIER: {
Object *ob = (Object *)tselem->id;
if (ob->type != OB_GPENCIL) {
diff --git a/source/blender/makesrna/intern/rna_constraint.c b/source/blender/makesrna/intern/rna_constraint.c
index d0dcbe1761c..f0d76c2e405 100644
--- a/source/blender/makesrna/intern/rna_constraint.c
+++ b/source/blender/makesrna/intern/rna_constraint.c
@@ -44,133 +44,133 @@
/* please keep the names in sync with constraint.c */
const EnumPropertyItem rna_enum_constraint_type_items[] = {
{0, "", 0, N_("Motion Tracking"), ""},
- {CONSTRAINT_TYPE_CAMERASOLVER, "CAMERA_SOLVER", ICON_CONSTRAINT, "Camera Solver", ""},
- {CONSTRAINT_TYPE_FOLLOWTRACK, "FOLLOW_TRACK", ICON_CONSTRAINT, "Follow Track", ""},
- {CONSTRAINT_TYPE_OBJECTSOLVER, "OBJECT_SOLVER", ICON_CONSTRAINT, "Object Solver", ""},
+ {CONSTRAINT_TYPE_CAMERASOLVER, "CAMERA_SOLVER", ICON_CON_CAMERASOLVER, "Camera Solver", ""},
+ {CONSTRAINT_TYPE_FOLLOWTRACK, "FOLLOW_TRACK", ICON_CON_FOLLOWTRACK, "Follow Track", ""},
+ {CONSTRAINT_TYPE_OBJECTSOLVER, "OBJECT_SOLVER", ICON_CON_OBJECTSOLVER, "Object Solver", ""},
{0, "", 0, N_("Transform"), ""},
{CONSTRAINT_TYPE_LOCLIKE,
"COPY_LOCATION",
- ICON_CONSTRAINT,
+ ICON_CON_LOCLIKE,
"Copy Location",
"Copy the location of a target (with an optional offset), so that they move together"},
{CONSTRAINT_TYPE_ROTLIKE,
"COPY_ROTATION",
- ICON_CONSTRAINT,
+ ICON_CON_ROTLIKE,
"Copy Rotation",
"Copy the rotation of a target (with an optional offset), so that they rotate together"},
{CONSTRAINT_TYPE_SIZELIKE,
"COPY_SCALE",
- ICON_CONSTRAINT,
+ ICON_CON_SIZELIKE,
"Copy Scale",
"Copy the scale factors of a target (with an optional offset), so that they are scaled by "
"the same amount"},
{CONSTRAINT_TYPE_TRANSLIKE,
"COPY_TRANSFORMS",
- ICON_CONSTRAINT,
+ ICON_CON_TRANSLIKE,
"Copy Transforms",
"Copy all the transformations of a target, so that they move together"},
{CONSTRAINT_TYPE_DISTLIMIT,
"LIMIT_DISTANCE",
- ICON_CONSTRAINT,
+ ICON_CON_DISTLIMIT,
"Limit Distance",
"Restrict movements to within a certain distance of a target (at the time of constraint "
"evaluation only)"},
{CONSTRAINT_TYPE_LOCLIMIT,
"LIMIT_LOCATION",
- ICON_CONSTRAINT,
+ ICON_CON_LOCLIMIT,
"Limit Location",
"Restrict movement along each axis within given ranges"},
{CONSTRAINT_TYPE_ROTLIMIT,
"LIMIT_ROTATION",
- ICON_CONSTRAINT,
+ ICON_CON_ROTLIMIT,
"Limit Rotation",
"Restrict rotation along each axis within given ranges"},
{CONSTRAINT_TYPE_SIZELIMIT,
"LIMIT_SCALE",
- ICON_CONSTRAINT,
+ ICON_CON_SIZELIMIT,
"Limit Scale",
"Restrict scaling along each axis with given ranges"},
{CONSTRAINT_TYPE_SAMEVOL,
"MAINTAIN_VOLUME",
- ICON_CONSTRAINT,
+ ICON_CON_SAMEVOL,
"Maintain Volume",
"Compensate for scaling one axis by applying suitable scaling to the other two axes"},
{CONSTRAINT_TYPE_TRANSFORM,
"TRANSFORM",
- ICON_CONSTRAINT,
+ ICON_CON_TRANSFORM,
"Transformation",
"Use one transform property from target to control another (or same) property on owner"},
{CONSTRAINT_TYPE_TRANSFORM_CACHE,
"TRANSFORM_CACHE",
- ICON_CONSTRAINT,
+ ICON_CON_TRANSFORM_CACHE,
"Transform Cache",
"Look up the transformation matrix from an external file"},
{0, "", 0, N_("Tracking"), ""},
{CONSTRAINT_TYPE_CLAMPTO,
"CLAMP_TO",
- ICON_CONSTRAINT,
+ ICON_CON_CLAMPTO,
"Clamp To",
"Restrict movements to lie along a curve by remapping location along curve's longest axis"},
{CONSTRAINT_TYPE_DAMPTRACK,
"DAMPED_TRACK",
- ICON_CONSTRAINT,
+ ICON_CON_TRACKTO,
"Damped Track",
"Point towards a target by performing the smallest rotation necessary"},
{CONSTRAINT_TYPE_KINEMATIC,
"IK",
- ICON_CONSTRAINT,
+ ICON_CON_KINEMATIC,
"Inverse Kinematics",
"Control a chain of bones by specifying the endpoint target (Bones only)"},
{CONSTRAINT_TYPE_LOCKTRACK,
"LOCKED_TRACK",
- ICON_CONSTRAINT,
+ ICON_CON_LOCKTRACK,
"Locked Track",
"Rotate around the specified ('locked') axis to point towards a target"},
{CONSTRAINT_TYPE_SPLINEIK,
"SPLINE_IK",
- ICON_CONSTRAINT,
+ ICON_CON_SPLINEIK,
"Spline IK",
"Align chain of bones along a curve (Bones only)"},
{CONSTRAINT_TYPE_STRETCHTO,
"STRETCH_TO",
- ICON_CONSTRAINT,
+ ICON_CON_STRETCHTO,
"Stretch To",
"Stretch along Y-Axis to point towards a target"},
{CONSTRAINT_TYPE_TRACKTO,
"TRACK_TO",
- ICON_CONSTRAINT,
+ ICON_CON_TRACKTO,
"Track To",
"Legacy tracking constraint prone to twisting artifacts"},
{0, "", 0, N_("Relationship"), ""},
{CONSTRAINT_TYPE_ACTION,
"ACTION",
- ICON_CONSTRAINT,
+ ICON_ACTION,
"Action",
"Use transform property of target to look up pose for owner from an Action"},
{CONSTRAINT_TYPE_ARMATURE,
"ARMATURE",
- ICON_CONSTRAINT,
+ ICON_CON_ARMATURE,
"Armature",
"Apply weight-blended transformation from multiple bones like the Armature modifier"},
{CONSTRAINT_TYPE_CHILDOF,
"CHILD_OF",
- ICON_CONSTRAINT,
+ ICON_CON_CHILDOF,
"Child Of",
"Make target the 'detachable' parent of owner"},
{CONSTRAINT_TYPE_MINMAX,
"FLOOR",
- ICON_CONSTRAINT,
+ ICON_CON_FLOOR,
"Floor",
"Use position (and optionally rotation) of target to define a 'wall' or 'floor' that the "
"owner can not cross"},
{CONSTRAINT_TYPE_FOLLOWPATH,
"FOLLOW_PATH",
- ICON_CONSTRAINT,
+ ICON_CON_FOLLOWPATH,
"Follow Path",
"Use to animate an object/bone following a path"},
{CONSTRAINT_TYPE_PIVOT,
"PIVOT",
- ICON_CONSTRAINT,
+ ICON_CON_PIVOT,
"Pivot",
"Change pivot point for transforms (buggy)"},
#if 0
@@ -187,7 +187,7 @@ const EnumPropertyItem rna_enum_constraint_type_items[] = {
#endif
{CONSTRAINT_TYPE_SHRINKWRAP,
"SHRINKWRAP",
- ICON_CONSTRAINT,
+ ICON_CON_SHRINKWRAP,
"Shrinkwrap",
"Restrict movements to surface of target mesh"},
{0, NULL, 0, NULL, NULL},
@@ -877,6 +877,7 @@ static void rna_def_constraint_childof(BlenderRNA *brna)
RNA_def_struct_ui_text(
srna, "Child Of Constraint", "Create constraint-based parent-child relationship");
RNA_def_struct_sdna_from(srna, "bChildOfConstraint", "data");
+ RNA_def_struct_ui_icon(srna, ICON_CON_CHILDOF);
rna_def_constraint_target_common(srna);
@@ -979,6 +980,7 @@ static void rna_def_constraint_armature_deform_targets(BlenderRNA *brna, Propert
RNA_def_struct_sdna(srna, "bConstraint");
RNA_def_struct_ui_text(
srna, "Armature Deform Constraint Targets", "Collection of target bones and weights");
+ RNA_def_struct_ui_icon(srna, ICON_CON_ARMATURE);
func = RNA_def_function(srna, "new", "rna_ArmatureConstraint_target_new");
RNA_def_function_flag(func, FUNC_USE_SELF_ID | FUNC_USE_MAIN);
@@ -1007,6 +1009,7 @@ static void rna_def_constraint_armature_deform(BlenderRNA *brna)
RNA_def_struct_ui_text(
srna, "Armature Constraint", "Applies transformations done by the Armature modifier");
RNA_def_struct_sdna_from(srna, "bArmatureConstraint", "data");
+ RNA_def_struct_ui_icon(srna, ICON_MOD_ARMATURE);
prop = RNA_def_property(srna, "targets", PROP_COLLECTION, PROP_NONE);
RNA_def_property_collection_sdna(prop, NULL, "targets", NULL);
@@ -1059,6 +1062,7 @@ static void rna_def_constraint_kinematic(BlenderRNA *brna)
srna = RNA_def_struct(brna, "KinematicConstraint", "Constraint");
RNA_def_struct_ui_text(srna, "Kinematic Constraint", "Inverse Kinematics");
RNA_def_struct_sdna_from(srna, "bKinematicConstraint", "data");
+ RNA_def_struct_ui_icon(srna, ICON_CON_KINEMATIC);
rna_def_constraint_target_common(srna);
@@ -1205,6 +1209,8 @@ static void rna_def_constraint_track_to(BlenderRNA *brna)
rna_def_constraint_target_common(srna);
+ RNA_def_struct_ui_icon(srna, ICON_CON_TRACKTO);
+
prop = RNA_def_property(srna, "track_axis", PROP_ENUM, PROP_NONE);
RNA_def_property_enum_sdna(prop, NULL, "reserved1");
RNA_def_property_enum_items(prop, track_axis_items);
@@ -1231,6 +1237,7 @@ static void rna_def_constraint_locate_like(BlenderRNA *brna)
srna = RNA_def_struct(brna, "CopyLocationConstraint", "Constraint");
RNA_def_struct_ui_text(srna, "Copy Location Constraint", "Copy the location of the target");
+ RNA_def_struct_ui_icon(srna, ICON_CON_LOCLIKE);
rna_def_constraint_headtail_common(srna);
@@ -1282,6 +1289,7 @@ static void rna_def_constraint_rotate_like(BlenderRNA *brna)
srna = RNA_def_struct(brna, "CopyRotationConstraint", "Constraint");
RNA_def_struct_ui_text(srna, "Copy Rotation Constraint", "Copy the rotation of the target");
RNA_def_struct_sdna_from(srna, "bRotateLikeConstraint", "data");
+ RNA_def_struct_ui_icon(srna, ICON_CON_ROTLIKE);
rna_def_constraint_target_common(srna);
@@ -1329,6 +1337,7 @@ static void rna_def_constraint_size_like(BlenderRNA *brna)
srna = RNA_def_struct(brna, "CopyScaleConstraint", "Constraint");
RNA_def_struct_ui_text(srna, "Copy Scale Constraint", "Copy the scale of the target");
RNA_def_struct_sdna_from(srna, "bSizeLikeConstraint", "data");
+ RNA_def_struct_ui_icon(srna, ICON_CON_SIZELIKE);
rna_def_constraint_target_common(srna);
@@ -1406,6 +1415,7 @@ static void rna_def_constraint_same_volume(BlenderRNA *brna)
"Maintain Volume Constraint",
"Maintain a constant volume along a single scaling axis");
RNA_def_struct_sdna_from(srna, "bSameVolumeConstraint", "data");
+ RNA_def_struct_ui_icon(srna, ICON_CON_SAMEVOL);
prop = RNA_def_property(srna, "free_axis", PROP_ENUM, PROP_NONE);
RNA_def_property_enum_sdna(prop, NULL, "free_axis");
@@ -1438,6 +1448,8 @@ static void rna_def_constraint_transform_like(BlenderRNA *brna)
RNA_def_struct_sdna_from(srna, "bTransLikeConstraint", "data");
+ RNA_def_struct_ui_icon(srna, ICON_CON_TRANSLIKE);
+
rna_def_constraint_target_common(srna);
}
@@ -1460,6 +1472,7 @@ static void rna_def_constraint_minmax(BlenderRNA *brna)
RNA_def_struct_ui_text(
srna, "Floor Constraint", "Use the target object for location limitation");
RNA_def_struct_sdna_from(srna, "bMinMaxConstraint", "data");
+ RNA_def_struct_ui_icon(srna, ICON_CON_FLOOR);
rna_def_constraint_target_common(srna);
@@ -1508,6 +1521,7 @@ static void rna_def_constraint_action(BlenderRNA *brna)
RNA_def_struct_ui_text(
srna, "Action Constraint", "Map an action to the transform axes of a bone");
RNA_def_struct_sdna_from(srna, "bActionConstraint", "data");
+ RNA_def_struct_ui_icon(srna, ICON_ACTION);
rna_def_constraint_target_common(srna);
@@ -1580,6 +1594,7 @@ static void rna_def_constraint_locked_track(BlenderRNA *brna)
srna,
"Locked Track Constraint",
"Point toward the target along the track axis, while locking the other axis");
+ RNA_def_struct_ui_icon(srna, ICON_CON_LOCKTRACK);
rna_def_constraint_headtail_common(srna);
@@ -1625,7 +1640,8 @@ static void rna_def_constraint_follow_path(BlenderRNA *brna)
srna = RNA_def_struct(brna, "FollowPathConstraint", "Constraint");
RNA_def_struct_ui_text(srna, "Follow Path Constraint", "Lock motion to the target path");
RNA_def_struct_sdna_from(srna, "bFollowPathConstraint", "data");
-
+ RNA_def_struct_ui_icon(srna, ICON_CON_FOLLOWPATH);
+
prop = RNA_def_property(srna, "target", PROP_POINTER, PROP_NONE);
RNA_def_property_pointer_sdna(prop, NULL, "tar");
RNA_def_property_pointer_funcs(prop, NULL, NULL, NULL, "rna_Curve_object_poll");
@@ -1701,6 +1717,7 @@ static void rna_def_constraint_stretch_to(BlenderRNA *brna)
srna = RNA_def_struct(brna, "StretchToConstraint", "Constraint");
RNA_def_struct_ui_text(srna, "Stretch To Constraint", "Stretch to meet the target object");
+ RNA_def_struct_ui_icon(srna, ICON_CON_STRETCHTO);
rna_def_constraint_headtail_common(srna);
@@ -1782,6 +1799,7 @@ static void rna_def_constraint_clamp_to(BlenderRNA *brna)
"Clamp To Constraint",
"Constrain an object's location to the nearest point along the target path");
RNA_def_struct_sdna_from(srna, "bClampToConstraint", "data");
+ RNA_def_struct_ui_icon(srna, ICON_CON_CLAMPTO);
prop = RNA_def_property(srna, "target", PROP_POINTER, PROP_NONE);
RNA_def_property_pointer_sdna(prop, NULL, "tar");
@@ -1820,6 +1838,7 @@ static void rna_def_constraint_transform(BlenderRNA *brna)
RNA_def_struct_ui_text(
srna, "Transformation Constraint", "Map transformations of the target to the object");
RNA_def_struct_sdna_from(srna, "bTransformConstraint", "data");
+ RNA_def_struct_ui_icon(srna, ICON_CON_TRANSFORM);
rna_def_constraint_target_common(srna);
@@ -2091,6 +2110,7 @@ static void rna_def_constraint_location_limit(BlenderRNA *brna)
RNA_def_struct_ui_text(
srna, "Limit Location Constraint", "Limit the location of the constrained object");
RNA_def_struct_sdna_from(srna, "bLocLimitConstraint", "data");
+ RNA_def_struct_ui_icon(srna, ICON_CON_LOCLIMIT);
prop = RNA_def_property(srna, "use_min_x", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "flag", LIMIT_XMIN);
@@ -2174,6 +2194,7 @@ static void rna_def_constraint_rotation_limit(BlenderRNA *brna)
RNA_def_struct_ui_text(
srna, "Limit Rotation Constraint", "Limit the rotation of the constrained object");
RNA_def_struct_sdna_from(srna, "bRotLimitConstraint", "data");
+ RNA_def_struct_ui_icon(srna, ICON_CON_ROTLIMIT);
prop = RNA_def_property(srna, "use_limit_x", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "flag", LIMIT_XROT);
@@ -2242,6 +2263,7 @@ static void rna_def_constraint_size_limit(BlenderRNA *brna)
RNA_def_struct_ui_text(
srna, "Limit Size Constraint", "Limit the scaling of the constrained object");
RNA_def_struct_sdna_from(srna, "bSizeLimitConstraint", "data");
+ RNA_def_struct_ui_icon(srna, ICON_CON_SIZELIMIT);
prop = RNA_def_property(srna, "use_min_x", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "flag", LIMIT_XMIN);
@@ -2328,7 +2350,8 @@ static void rna_def_constraint_distance_limit(BlenderRNA *brna)
rna_def_constraint_headtail_common(srna);
RNA_def_struct_sdna_from(srna, "bDistLimitConstraint", "data");
-
+ RNA_def_struct_ui_icon(srna, ICON_CON_DISTLIMIT);
+
rna_def_constraint_target_common(srna);
prop = RNA_def_property(srna, "distance", PROP_FLOAT, PROP_DISTANCE);
@@ -2400,6 +2423,7 @@ static void rna_def_constraint_shrinkwrap(BlenderRNA *brna)
RNA_def_struct_ui_text(
srna, "Shrinkwrap Constraint", "Create constraint-based shrinkwrap relationship");
RNA_def_struct_sdna_from(srna, "bShrinkwrapConstraint", "data");
+ RNA_def_struct_ui_icon(srna, ICON_CON_SHRINKWRAP);
prop = RNA_def_property(srna, "target", PROP_POINTER, PROP_NONE);
RNA_def_property_pointer_sdna(prop, NULL, "target"); /* TODO, mesh type */
@@ -2496,6 +2520,7 @@ static void rna_def_constraint_damped_track(BlenderRNA *brna)
srna = RNA_def_struct(brna, "DampedTrackConstraint", "Constraint");
RNA_def_struct_ui_text(
srna, "Damped Track Constraint", "Point toward target by taking the shortest rotation path");
+ RNA_def_struct_ui_icon(srna, ICON_CON_TRACKTO);
rna_def_constraint_headtail_common(srna);
@@ -2553,6 +2578,7 @@ static void rna_def_constraint_spline_ik(BlenderRNA *brna)
srna = RNA_def_struct(brna, "SplineIKConstraint", "Constraint");
RNA_def_struct_ui_text(srna, "Spline IK Constraint", "Align 'n' bones along a curve");
RNA_def_struct_sdna_from(srna, "bSplineIKConstraint", "data");
+ RNA_def_struct_ui_icon(srna, ICON_CON_SPLINEIK);
/* target chain */
prop = RNA_def_property(srna, "target", PROP_POINTER, PROP_NONE);
@@ -2721,6 +2747,8 @@ static void rna_def_constraint_pivot(BlenderRNA *brna)
RNA_def_struct_sdna_from(srna, "bPivotConstraint", "data");
+ RNA_def_struct_ui_icon(srna, ICON_CON_PIVOT);
+
/* target-defined pivot */
prop = RNA_def_property(srna, "target", PROP_POINTER, PROP_NONE);
RNA_def_property_pointer_sdna(prop, NULL, "tar");
@@ -2777,6 +2805,7 @@ static void rna_def_constraint_follow_track(BlenderRNA *brna)
RNA_def_struct_ui_text(
srna, "Follow Track Constraint", "Lock motion to the target motion track");
RNA_def_struct_sdna_from(srna, "bFollowTrackConstraint", "data");
+ RNA_def_struct_ui_icon(srna, ICON_CON_FOLLOWTRACK);
/* movie clip */
prop = RNA_def_property(srna, "clip", PROP_POINTER, PROP_NONE);
@@ -2864,6 +2893,7 @@ static void rna_def_constraint_camera_solver(BlenderRNA *brna)
RNA_def_struct_ui_text(
srna, "Camera Solver Constraint", "Lock motion to the reconstructed camera movement");
RNA_def_struct_sdna_from(srna, "bCameraSolverConstraint", "data");
+ RNA_def_struct_ui_icon(srna, ICON_CON_CAMERASOLVER);
/* movie clip */
prop = RNA_def_property(srna, "clip", PROP_POINTER, PROP_NONE);
@@ -2889,6 +2919,7 @@ static void rna_def_constraint_object_solver(BlenderRNA *brna)
RNA_def_struct_ui_text(
srna, "Object Solver Constraint", "Lock motion to the reconstructed object movement");
RNA_def_struct_sdna_from(srna, "bObjectSolverConstraint", "data");
+ RNA_def_struct_ui_icon(srna, ICON_CON_OBJECTSOLVER);
/* movie clip */
prop = RNA_def_property(srna, "clip", PROP_POINTER, PROP_NONE);
@@ -2934,6 +2965,7 @@ static void rna_def_constraint_transform_cache(BlenderRNA *brna)
RNA_def_struct_ui_text(
srna, "Transform Cache Constraint", "Look up transformation from an external file");
RNA_def_struct_sdna_from(srna, "bTransformCacheConstraint", "data");
+ RNA_def_struct_ui_icon(srna, ICON_CON_TRANSFORM_CACHE);
prop = RNA_def_property(srna, "cache_file", PROP_POINTER, PROP_NONE);
RNA_def_property_pointer_sdna(prop, NULL, "cache_file");