[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [28683] trunk/blender/source/blender: 2. 5 Constraint UI:
Thomas Dinges
dingto at gmx.de
Sun May 9 10:33:26 CEST 2010
Revision: 28683
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=28683
Author: dingto
Date: 2010-05-09 10:33:18 +0200 (Sun, 09 May 2010)
Log Message:
-----------
2.5 Constraint UI:
* Slight alignment change in header, to match modifiers box a bit better. Basically the "name" filed expands with the size of the properties panel now, which looks better imho.
* Code cleanup: Removed some old drawing functions, and the Python Constraint UI Code, which was not functional anyway.
Modified Paths:
--------------
trunk/blender/source/blender/editors/interface/interface_templates.c
trunk/blender/source/blender/makesrna/intern/rna_constraint.c
Modified: trunk/blender/source/blender/editors/interface/interface_templates.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface_templates.c 2010-05-09 04:23:51 UTC (rev 28682)
+++ trunk/blender/source/blender/editors/interface/interface_templates.c 2010-05-09 08:33:18 UTC (rev 28683)
@@ -940,77 +940,6 @@
ED_object_constraint_set_active(ob_v, con_v);
}
-
-/* some commonly used macros in the constraints drawing code */
-#define is_armature_target(target) (target && target->type==OB_ARMATURE)
-#define is_armature_owner(ob) ((ob->type == OB_ARMATURE) && (ob->mode & OB_MODE_POSE))
-#define is_geom_target(target) (target && (ELEM(target->type, OB_MESH, OB_LATTICE)) )
-
-/* Helper function for draw constraint - draws constraint space stuff
- * This function should not be called if no menus are required
- * owner/target: -1 = don't draw menu; 0= not posemode, 1 = posemode
- */
-static void draw_constraint_spaceselect (uiBlock *block, bConstraint *con, short xco, short yco, short owner, short target)
-{
- short tarx, ownx, iconx;
- short bwidth;
- short iconwidth = 20;
-
- /* calculate sizes and placement of menus */
- if (owner == -1) {
- bwidth = 125;
- tarx = 120;
- ownx = 0;
- }
- else if (target == -1) {
- bwidth = 125;
- tarx = 0;
- ownx = 120;
- }
- else {
- bwidth = 100;
- tarx = 85;
- iconx = tarx + bwidth + 5;
- ownx = tarx + bwidth + iconwidth + 10;
- }
-
-
- uiDefBut(block, LABEL, B_CONSTRAINT_TEST, "Convert:", xco, yco, 80,18, NULL, 0.0, 0.0, 0.0, 0.0, "");
-
- /* Target-Space */
- if (target == 1) {
- uiDefButC(block, MENU, B_CONSTRAINT_TEST, "Target Space %t|World Space %x0|Pose Space %x2|Local with Parent %x3|Local Space %x1",
- tarx, yco, bwidth, 18, &con->tarspace, 0, 0, 0, 0, "Choose space that target is evaluated in");
- }
- else if (target == 0) {
- uiDefButC(block, MENU, B_CONSTRAINT_TEST, "Target Space %t|World Space %x0|Local (Without Parent) Space %x1",
- tarx, yco, bwidth, 18, &con->tarspace, 0, 0, 0, 0, "Choose space that target is evaluated in");
- }
-
- if ((target != -1) && (owner != -1))
- uiDefIconBut(block, LABEL, 0, ICON_ARROW_LEFTRIGHT,
- iconx, yco, 20, 20, NULL, 0.0, 0.0, 0.0, 0.0, "");
-
- /* Owner-Space */
- if (owner == 1) {
- uiDefButC(block, MENU, B_CONSTRAINT_TEST, "Owner Space %t|World Space %x0|Pose Space %x2|Local with Parent %x3|Local Space %x1",
- ownx, yco, bwidth, 18, &con->ownspace, 0, 0, 0, 0, "Choose space that owner is evaluated in");
- }
- else if (owner == 0) {
- uiDefButC(block, MENU, B_CONSTRAINT_TEST, "Owner Space %t|World Space %x0|Local (Without Parent) Space %x1",
- ownx, yco, bwidth, 18, &con->ownspace, 0, 0, 0, 0, "Choose space that owner is evaluated in");
- }
-}
-
-static void test_obpoin_but(bContext *C, char *name, ID **idpp)
-{
- ID *id= BLI_findstring(&CTX_data_main(C)->object, name, offsetof(ID, name) + 2);
- *idpp= id; /* can be NULL */
-
- if(id)
- id_lib_extern(id); /* checks lib data, sets correct flag for saving then */
-}
-
/* draw panel showing settings for a constraint */
static uiLayout *draw_constraint(uiLayout *layout, Object *ob, bConstraint *con)
{
@@ -1018,7 +947,6 @@
bConstraintTypeInfo *cti;
uiBlock *block;
uiLayout *result= NULL, *col, *box, *row, *subrow;
- uiBut *but;
PointerRNA ptr;
char typestr[32];
short width = 265;
@@ -1059,7 +987,7 @@
block= uiLayoutGetBlock(box);
subrow= uiLayoutRow(row, 0);
- uiLayoutSetAlignment(subrow, UI_LAYOUT_ALIGN_LEFT);
+ //uiLayoutSetAlignment(subrow, UI_LAYOUT_ALIGN_LEFT);
/* Draw constraint header */
uiBlockSetEmboss(block, UI_EMBOSSN);
@@ -1085,7 +1013,7 @@
uiItemL(subrow, con->name, 0);
subrow= uiLayoutRow(row, 0);
- uiLayoutSetAlignment(subrow, UI_LAYOUT_ALIGN_RIGHT);
+ //uiLayoutSetAlignment(subrow, UI_LAYOUT_ALIGN_RIGHT);
/* proxy-protected constraints cannot be edited, so hide up/down + close buttons */
if (proxy_protected) {
@@ -1143,109 +1071,19 @@
/* Set but-locks for protected settings (magic numbers are used here!) */
if (proxy_protected)
uiBlockSetButLock(block, 1, "Cannot edit Proxy-Protected Constraint");
-
+
+
/* Draw constraint data */
+
if ((con->flag & CONSTRAINT_EXPAND) == 0) {
(yco) -= 21;
}
else {
box= uiLayoutBox(col);
block= uiLayoutAbsoluteBlock(box);
-
- switch (con->type) {
-#ifndef DISABLE_PYTHON
- case CONSTRAINT_TYPE_PYTHON:
- {
- bPythonConstraint *data = con->data;
- bConstraintTarget *ct;
- // uiBut *but2;
- int tarnum, theight;
- // static int pyconindex=0;
- // char *menustr;
-
- theight = (data->tarnum)? (data->tarnum * 38) : (38);
-
- uiDefBut(block, LABEL, B_CONSTRAINT_TEST, "Script:", xco+60, yco-24, 55, 18, NULL, 0.0, 0.0, 0.0, 0.0, "");
-
- /* do the scripts menu */
- /* XXX menustr = buildmenu_pyconstraints(data->text, &pyconindex);
- but2 = uiDefButI(block, MENU, B_CONSTRAINT_TEST, menustr,
- xco+120, yco-24, 150, 20, &pyconindex,
- 0, 0, 0, 0, "Set the Script Constraint to use");
- uiButSetFunc(but2, validate_pyconstraint_cb, data, &pyconindex);
- MEM_freeN(menustr); */
-
- /* draw target(s) */
- if (data->flag & PYCON_USETARGETS) {
- /* Draw target parameters */
- for (ct=data->targets.first, tarnum=1; ct; ct=ct->next, tarnum++) {
- char tarstr[32];
- short yoffset= ((tarnum-1) * 38);
-
- /* target label */
- sprintf(tarstr, "Target %d:", tarnum);
- uiDefBut(block, LABEL, B_CONSTRAINT_TEST, tarstr, xco+45, yco-(48+yoffset), 100, 18, NULL, 0.0, 0.0, 0.0, 0.0, "");
-
- /* target space-selector - per target */
- if (is_armature_target(ct->tar)) {
- uiDefButS(block, MENU, B_CONSTRAINT_TEST, "Target Space %t|World Space %x0|Pose Space %x3|Local with Parent %x4|Local Space %x1",
- xco+10, yco-(66+yoffset), 100, 18, &ct->space, 0, 0, 0, 0, "Choose space that target is evaluated in");
- }
- else {
- uiDefButS(block, MENU, B_CONSTRAINT_TEST, "Target Space %t|World Space %x0|Local (Without Parent) Space %x1",
- xco+10, yco-(66+yoffset), 100, 18, &ct->space, 0, 0, 0, 0, "Choose space that target is evaluated in");
- }
-
- uiBlockBeginAlign(block);
- /* target object */
- uiDefIDPoinBut(block, test_obpoin_but, ID_OB, B_CONSTRAINT_CHANGETARGET, "OB:", xco+120, yco-(48+yoffset), 150, 18, &ct->tar, "Target Object");
-
- /* subtarget */
- if (is_armature_target(ct->tar)) {
- but= uiDefBut(block, TEX, B_CONSTRAINT_CHANGETARGET, "BO:", xco+120, yco-(66+yoffset),150,18, &ct->subtarget, 0, 24, 0, 0, "Subtarget Bone");
- //uiButSetCompleteFunc(but, autocomplete_bone, (void *)ct->tar);
- }
- else if (is_geom_target(ct->tar)) {
- but= uiDefBut(block, TEX, B_CONSTRAINT_CHANGETARGET, "VG:", xco+120, yco-(66+yoffset),150,18, &ct->subtarget, 0, 24, 0, 0, "Name of Vertex Group defining 'target' points");
- //uiButSetCompleteFunc(but, autocomplete_vgroup, (void *)ct->tar);
- }
- else {
- strcpy(ct->subtarget, "");
- }
- uiBlockEndAlign(block);
- }
- }
- else {
- /* Draw indication that no target needed */
- uiDefBut(block, LABEL, B_CONSTRAINT_TEST, "Target:", xco+60, yco-48, 55, 18, NULL, 0.0, 0.0, 0.0, 0.0, "");
- uiDefBut(block, LABEL, B_CONSTRAINT_TEST, "Not Applicable", xco+120, yco-48, 150, 18, NULL, 0.0, 0.0, 0.0, 0.0, "");
- }
-
- /* settings */
- uiBlockBeginAlign(block);
- but=uiDefBut(block, BUT, B_CONSTRAINT_TEST, "Options", xco, yco-(52+theight), (width/2),18, NULL, 0, 24, 0, 0, "Change some of the constraint's settings.");
- // XXX uiButSetFunc(but, BPY_pyconstraint_settings, data, NULL);
-
- but=uiDefBut(block, BUT, B_CONSTRAINT_TEST, "Refresh", xco+((width/2)+10), yco-(52+theight), (width/2),18, NULL, 0, 24, 0, 0, "Force constraint to refresh it's settings");
- uiBlockEndAlign(block);
-
- /* constraint space settings */
- draw_constraint_spaceselect(block, con, xco, yco-(73+theight), is_armature_owner(ob), -1);
- }
- break;
-#endif
-
- case CONSTRAINT_TYPE_NULL:
- {
- uiItemL(box, "", 0);
- }
- break;
- default:
- result= box;
- break;
+ result= box;
}
- }
-
+
/* clear any locks set up for proxies/lib-linking */
uiBlockClearButLock(block);
Modified: trunk/blender/source/blender/makesrna/intern/rna_constraint.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_constraint.c 2010-05-09 04:23:51 UTC (rev 28682)
+++ trunk/blender/source/blender/makesrna/intern/rna_constraint.c 2010-05-09 08:33:18 UTC (rev 28683)
@@ -1855,7 +1855,7 @@
/* strings */
prop= RNA_def_property(srna, "name", PROP_STRING, PROP_NONE);
RNA_def_property_string_funcs(prop, NULL, NULL, "rna_Constraint_name_set");
- RNA_def_property_ui_text(prop, "Name", "");
+ RNA_def_property_ui_text(prop, "Name", "Constraint name");
RNA_def_struct_name_property(srna, prop);
/* enums */
More information about the Bf-blender-cvs
mailing list