3D View panels now show object and bone name again, not sure it

belongs here still, but this came up often, it avoids having to
switch tabs a lot when creating things.

Also renamed uiLayoutFreeBlock to uiLayoutAbsoluteBlock.
This commit is contained in:
Brecht Van Lommel 2009-10-09 10:45:11 +00:00
parent 2226a5139a
commit be3da5dfff
10 changed files with 96 additions and 62 deletions

@ -614,7 +614,7 @@ uiLayout *uiLayoutListBox(uiLayout *layout);
uiLayout *uiLayoutFree(uiLayout *layout, int align);
uiLayout *uiLayoutSplit(uiLayout *layout, float percentage);
uiBlock *uiLayoutFreeBlock(uiLayout *layout);
uiBlock *uiLayoutAbsoluteBlock(uiLayout *layout);
/* templates */
void uiTemplateHeader(uiLayout *layout, struct bContext *C, int menus);

@ -96,7 +96,7 @@ typedef enum uiItemType {
ITEM_LAYOUT_COLUMN_FLOW,
ITEM_LAYOUT_ROW_FLOW,
ITEM_LAYOUT_BOX,
ITEM_LAYOUT_FREE,
ITEM_LAYOUT_ABSOLUTE,
ITEM_LAYOUT_SPLIT,
ITEM_LAYOUT_ROOT
@ -290,7 +290,7 @@ static int ui_layout_local_dir(uiLayout *layout)
case ITEM_LAYOUT_COLUMN:
case ITEM_LAYOUT_COLUMN_FLOW:
case ITEM_LAYOUT_SPLIT:
case ITEM_LAYOUT_FREE:
case ITEM_LAYOUT_ABSOLUTE:
case ITEM_LAYOUT_BOX:
default:
return UI_LAYOUT_VERTICAL;
@ -1731,7 +1731,7 @@ static void ui_litem_layout_column_flow(uiLayout *litem)
}
/* free layout */
static void ui_litem_estimate_free(uiLayout *litem)
static void ui_litem_estimate_absolute(uiLayout *litem)
{
uiItem *item;
int itemx, itemy, itemw, itemh, minx, miny;
@ -1756,7 +1756,7 @@ static void ui_litem_estimate_free(uiLayout *litem)
litem->h -= miny;
}
static void ui_litem_layout_free(uiLayout *litem)
static void ui_litem_layout_absolute(uiLayout *litem)
{
uiItem *item;
float scalex=1.0f, scaley=1.0f;
@ -1962,7 +1962,7 @@ uiLayout *uiLayoutFree(uiLayout *layout, int align)
uiLayout *litem;
litem= MEM_callocN(sizeof(uiLayout), "uiLayoutFree");
litem->item.type= ITEM_LAYOUT_FREE;
litem->item.type= ITEM_LAYOUT_ABSOLUTE;
litem->root= layout->root;
litem->align= align;
litem->active= 1;
@ -1975,7 +1975,7 @@ uiLayout *uiLayoutFree(uiLayout *layout, int align)
return litem;
}
uiBlock *uiLayoutFreeBlock(uiLayout *layout)
uiBlock *uiLayoutAbsoluteBlock(uiLayout *layout)
{
uiBlock *block;
@ -2136,8 +2136,8 @@ static void ui_item_estimate(uiItem *item)
case ITEM_LAYOUT_ROOT:
ui_litem_estimate_root(litem);
break;
case ITEM_LAYOUT_FREE:
ui_litem_estimate_free(litem);
case ITEM_LAYOUT_ABSOLUTE:
ui_litem_estimate_absolute(litem);
break;
case ITEM_LAYOUT_SPLIT:
ui_litem_estimate_split(litem);
@ -2161,7 +2161,7 @@ static void ui_item_align(uiLayout *litem, int nr)
if(!bitem->but->alignnr)
bitem->but->alignnr= nr;
}
else if(item->type == ITEM_LAYOUT_FREE);
else if(item->type == ITEM_LAYOUT_ABSOLUTE);
else if(item->type == ITEM_LAYOUT_BOX) {
box= (uiLayoutItemBx*)item;
box->roundbox->alignnr= nr;
@ -2221,8 +2221,8 @@ static void ui_item_layout(uiItem *item)
case ITEM_LAYOUT_ROOT:
ui_litem_layout_root(litem);
break;
case ITEM_LAYOUT_FREE:
ui_litem_layout_free(litem);
case ITEM_LAYOUT_ABSOLUTE:
ui_litem_layout_absolute(litem);
break;
case ITEM_LAYOUT_SPLIT:
ui_litem_layout_split(litem);

@ -61,7 +61,7 @@ void uiTemplateHeader(uiLayout *layout, bContext *C, int menus)
{
uiBlock *block;
block= uiLayoutFreeBlock(layout);
block= uiLayoutAbsoluteBlock(layout);
if(menus) ED_area_header_standardbuttons(C, block, 0);
else ED_area_header_switchbutton(C, block, 0);
}
@ -603,7 +603,7 @@ static uiLayout *draw_modifier(uiLayout *layout, Object *ob, ModifierData *md, i
}
result= uiLayoutColumn(box, 0);
block= uiLayoutFreeBlock(box);
block= uiLayoutAbsoluteBlock(box);
}
if(md->error) {
@ -948,7 +948,7 @@ static uiLayout *draw_constraint(uiLayout *layout, Object *ob, bConstraint *con)
}
else {
box= uiLayoutBox(col);
block= uiLayoutFreeBlock(box);
block= uiLayoutAbsoluteBlock(box);
switch (con->type) {
#ifndef DISABLE_PYTHON
@ -1459,7 +1459,7 @@ void uiTemplateColorRamp(uiLayout *layout, PointerRNA *ptr, char *propname, int
rect.xmin= 0; rect.xmax= 200;
rect.ymin= 0; rect.ymax= 190;
block= uiLayoutFreeBlock(layout);
block= uiLayoutAbsoluteBlock(layout);
colorband_buttons_layout(block, cptr.data, &rect, !expand, cb);
MEM_freeN(cb);

@ -146,7 +146,7 @@ static void graph_panel_properties(const bContext *C, Panel *pa)
if(!graph_panel_context(C, &ale, &fcu))
return;
block= uiLayoutFreeBlock(pa->layout);
block= uiLayoutAbsoluteBlock(pa->layout);
uiBlockSetHandleFunc(block, do_graph_region_buttons, NULL);
/* Info - Active F-Curve */
@ -285,7 +285,7 @@ static void graph_panel_drivers(const bContext *C, Panel *pa)
driver= fcu->driver;
block= uiLayoutFreeBlock(pa->layout);
block= uiLayoutAbsoluteBlock(pa->layout);
uiBlockSetHandleFunc(block, do_graph_region_driver_buttons, NULL);
/* general actions */

@ -1105,7 +1105,7 @@ static void image_panel_uv(const bContext *C, Panel *pa)
ARegion *ar= CTX_wm_region(C);
uiBlock *block;
block= uiLayoutFreeBlock(pa->layout);
block= uiLayoutAbsoluteBlock(pa->layout);
uiBlockSetHandleFunc(block, do_image_panel_events, NULL);
image_editvertex_buts(C, block);

@ -83,7 +83,7 @@ static void logic_panel_properties(const bContext *C, Panel *pa)
// SpaceLogic *slogic= CTX_wm_space_logic(C);
uiBlock *block;
block= uiLayoutFreeBlock(pa->layout);
block= uiLayoutAbsoluteBlock(pa->layout);
uiBlockSetHandleFunc(block, do_logic_panel_events, NULL);
}
@ -93,7 +93,7 @@ static void logic_panel_view_properties(const bContext *C, Panel *pa)
// SpaceLogic *slogic= CTX_wm_space_logic(C);
uiBlock *block;
block= uiLayoutFreeBlock(pa->layout);
block= uiLayoutAbsoluteBlock(pa->layout);
uiBlockSetHandleFunc(block, do_logic_panel_events, NULL);
}

@ -173,7 +173,7 @@ static void node_group_alone_cb(bContext *C, void *node_v, void *unused_v)
static void node_buts_group(uiLayout *layout, PointerRNA *ptr)
{
uiBlock *block= uiLayoutFreeBlock(layout);
uiBlock *block= uiLayoutAbsoluteBlock(layout);
bNode *node= ptr->data;
rctf *butr= &node->butr;
@ -207,7 +207,7 @@ static void node_buts_group(uiLayout *layout, PointerRNA *ptr)
static void node_buts_value(uiLayout *layout, PointerRNA *ptr)
{
uiBlock *block= uiLayoutFreeBlock(layout);
uiBlock *block= uiLayoutAbsoluteBlock(layout);
bNode *node= ptr->data;
rctf *butr= &node->butr;
bNodeSocket *sock= node->outputs.first; /* first socket stores value */
@ -219,7 +219,7 @@ static void node_buts_value(uiLayout *layout, PointerRNA *ptr)
static void node_buts_rgb(uiLayout *layout, PointerRNA *ptr)
{
uiBlock *block= uiLayoutFreeBlock(layout);
uiBlock *block= uiLayoutAbsoluteBlock(layout);
bNode *node= ptr->data;
rctf *butr= &node->butr;
bNodeSocket *sock= node->outputs.first; /* first socket stores value */
@ -279,7 +279,7 @@ static void node_buts_time(uiLayout *layout, PointerRNA *ptr)
static void node_buts_valtorgb(uiLayout *layout, PointerRNA *ptr)
{
uiBlock *block= uiLayoutFreeBlock(layout);
uiBlock *block= uiLayoutAbsoluteBlock(layout);
bNode *node= ptr->data;
rctf *butr= &node->butr;
@ -316,7 +316,7 @@ static void node_buts_curvecol(uiLayout *layout, PointerRNA *ptr)
static void node_buts_normal(uiLayout *layout, PointerRNA *ptr)
{
uiBlock *block= uiLayoutFreeBlock(layout);
uiBlock *block= uiLayoutAbsoluteBlock(layout);
bNode *node= ptr->data;
rctf *butr= &node->butr;
bNodeSocket *sock= node->outputs.first; /* first socket stores normal */
@ -389,7 +389,7 @@ static void node_dynamic_update_cb(bContext *C, void *ntree_v, void *node_v)
static void node_buts_texture(uiLayout *layout, PointerRNA *ptr)
{
uiBlock *block= uiLayoutFreeBlock(layout);
uiBlock *block= uiLayoutAbsoluteBlock(layout);
bNode *node= ptr->data;
bNodeTree *ntree= ptr->id.data;
rctf *butr= &node->butr;
@ -432,7 +432,7 @@ static void node_buts_texture(uiLayout *layout, PointerRNA *ptr)
static void node_buts_math(uiLayout *layout, PointerRNA *ptr)
{
uiBlock *block= uiLayoutFreeBlock(layout);
uiBlock *block= uiLayoutAbsoluteBlock(layout);
bNode *node= ptr->data;
rctf *butr= &node->butr;
uiBut *bt;
@ -544,7 +544,7 @@ static void node_texmap_cb(bContext *C, void *texmap_v, void *unused_v)
static void node_shader_buts_material(uiLayout *layout, PointerRNA *ptr)
{
uiBlock *block= uiLayoutFreeBlock(layout);
uiBlock *block= uiLayoutAbsoluteBlock(layout);
bNode *node= ptr->data;
bNodeTree *ntree= ptr->id.data;
rctf *butr= &node->butr;
@ -616,7 +616,7 @@ static void node_shader_buts_material(uiLayout *layout, PointerRNA *ptr)
static void node_shader_buts_mapping(uiLayout *layout, PointerRNA *ptr)
{
uiBlock *block= uiLayoutFreeBlock(layout);
uiBlock *block= uiLayoutAbsoluteBlock(layout);
bNode *node= ptr->data;
rctf *butr= &node->butr;
TexMapping *texmap= node->storage;
@ -664,7 +664,7 @@ static void node_shader_buts_mapping(uiLayout *layout, PointerRNA *ptr)
static void node_shader_buts_vect_math(uiLayout *layout, PointerRNA *ptr)
{
uiBlock *block= uiLayoutFreeBlock(layout);
uiBlock *block= uiLayoutAbsoluteBlock(layout);
bNode *node= ptr->data;
rctf *butr= &node->butr;
uiBut *bt;
@ -675,7 +675,7 @@ static void node_shader_buts_vect_math(uiLayout *layout, PointerRNA *ptr)
static void node_shader_buts_geometry(uiLayout *layout, PointerRNA *ptr)
{
uiBlock *block= uiLayoutFreeBlock(layout);
uiBlock *block= uiLayoutAbsoluteBlock(layout);
bNode *node= ptr->data;
rctf *butr= &node->butr;
uiBut *but;
@ -694,7 +694,7 @@ static void node_shader_buts_geometry(uiLayout *layout, PointerRNA *ptr)
static void node_shader_buts_dynamic(uiLayout *layout, PointerRNA *ptr)
{
uiBlock *block= uiLayoutFreeBlock(layout);
uiBlock *block= uiLayoutAbsoluteBlock(layout);
bNode *node= ptr->data;
bNodeTree *ntree= ptr->id.data;
rctf *butr= &node->butr;
@ -867,7 +867,7 @@ static void image_layer_cb(bContext *C, void *ima_v, void *iuser_v)
static void node_composit_buts_image(uiLayout *layout, PointerRNA *ptr)
{
uiBlock *block= uiLayoutFreeBlock(layout);
uiBlock *block= uiLayoutAbsoluteBlock(layout);
bNode *node= ptr->data;
bNodeTree *ntree= ptr->id.data;
rctf *butr= &node->butr;
@ -1035,7 +1035,7 @@ static void node_browse_scene_cb(bContext *C, void *ntree_v, void *node_v)
static void node_composit_buts_renderlayers(uiLayout *layout, PointerRNA *ptr)
{
uiBlock *block= uiLayoutFreeBlock(layout);
uiBlock *block= uiLayoutAbsoluteBlock(layout);
bNode *node= ptr->data;
bNodeTree *ntree= ptr->id.data;
rctf *butr= &node->butr;
@ -1402,7 +1402,7 @@ static void node_composit_buts_chroma_matte(uiLayout *layout, PointerRNA *ptr)
uiItemR(col, NULL, 0, ptr, "gain", UI_ITEM_R_SLIDER);
uiItemR(col, NULL, 0, ptr, "shadow_adjust", UI_ITEM_R_SLIDER);
// uiBlock *block= uiLayoutFreeBlock(layout);
// uiBlock *block= uiLayoutAbsoluteBlock(layout);
// bNode *node= ptr->data;
// rctf *butr= &node->butr;
// short dx=(butr->xmax-butr->xmin)/2;
@ -1435,7 +1435,7 @@ static void node_composit_buts_color_matte(uiLayout *layout, PointerRNA *ptr)
static void node_composit_buts_channel_matte(uiLayout *layout, PointerRNA *ptr)
{
uiBlock *block= uiLayoutFreeBlock(layout);
uiBlock *block= uiLayoutAbsoluteBlock(layout);
bNode *node= ptr->data;
rctf *butr= &node->butr;
short sx= (butr->xmax-butr->xmin)/4;
@ -1492,7 +1492,7 @@ static void node_composit_buts_channel_matte(uiLayout *layout, PointerRNA *ptr)
static void node_composit_buts_luma_matte(uiLayout *layout, PointerRNA *ptr)
{
uiBlock *block= uiLayoutFreeBlock(layout);
uiBlock *block= uiLayoutAbsoluteBlock(layout);
bNode *node= ptr->data;
rctf *butr= &node->butr;
NodeChroma *c=node->storage;
@ -1519,7 +1519,7 @@ static void node_composit_buts_map_uv(uiLayout *layout, PointerRNA *ptr)
static void node_composit_buts_id_mask(uiLayout *layout, PointerRNA *ptr)
{
uiBlock *block= uiLayoutFreeBlock(layout);
uiBlock *block= uiLayoutAbsoluteBlock(layout);
bNode *node= ptr->data;
rctf *butr= &node->butr;
@ -1554,7 +1554,7 @@ static void node_set_image_cb(bContext *C, void *ntree_v, void *node_v)
static void node_composit_buts_file_output(uiLayout *layout, PointerRNA *ptr)
{
uiBlock *block= uiLayoutFreeBlock(layout);
uiBlock *block= uiLayoutAbsoluteBlock(layout);
bNode *node= ptr->data;
bNodeTree *ntree= ptr->id.data;
rctf *butr= &node->butr;
@ -1626,7 +1626,7 @@ static void node_scale_cb(bContext *C, void *node_v, void *unused_v)
static void node_composit_buts_scale(uiLayout *layout, PointerRNA *ptr)
{
uiBlock *block= uiLayoutFreeBlock(layout);
uiBlock *block= uiLayoutAbsoluteBlock(layout);
bNode *node= ptr->data;
rctf *butr= &node->butr;
uiBut *bt= uiDefButS(block, MENU, B_NODE_EXEC, "Relative %x0|Absolute %x1|Scene Size % %x2|",
@ -1799,7 +1799,7 @@ static void node_composit_set_butfunc(bNodeType *ntype)
static void node_texture_buts_bricks(uiLayout *layout, PointerRNA *ptr)
{
uiBlock *block= uiLayoutFreeBlock(layout);
uiBlock *block= uiLayoutAbsoluteBlock(layout);
bNode *node= ptr->data;
rctf *butr= &node->butr;
short w = butr->xmax-butr->xmin;
@ -1848,7 +1848,7 @@ static char* noisebasis_menu()
static void node_texture_buts_proc(uiLayout *layout, PointerRNA *ptr)
{
uiBlock *block= uiLayoutFreeBlock(layout);
uiBlock *block= uiLayoutAbsoluteBlock(layout);
bNode *node= ptr->data;
rctf *butr= &node->butr;
Tex *tex = (Tex *)node->storage;
@ -1927,7 +1927,7 @@ static void node_texture_buts_proc(uiLayout *layout, PointerRNA *ptr)
static void node_texture_buts_image(uiLayout *layout, PointerRNA *ptr)
{
uiBlock *block= uiLayoutFreeBlock(layout);
uiBlock *block= uiLayoutAbsoluteBlock(layout);
bNode *node= ptr->data;
bNodeTree *ntree= ptr->id.data;
rctf *butr= &node->butr;
@ -1966,7 +1966,7 @@ static void node_texture_buts_image(uiLayout *layout, PointerRNA *ptr)
static void node_texture_buts_output(uiLayout *layout, PointerRNA *ptr)
{
uiBlock *block= uiLayoutFreeBlock(layout);
uiBlock *block= uiLayoutAbsoluteBlock(layout);
bNode *node= ptr->data;
rctf *butr= &node->butr;
uiBut *bt;

@ -72,7 +72,7 @@ static void sequencer_panel_view_properties(const bContext *C, Panel *pa)
{
uiBlock *block;
block= uiLayoutFreeBlock(pa->layout);
block= uiLayoutAbsoluteBlock(pa->layout);
uiBlockSetHandleFunc(block, do_sequencer_panel_events, NULL);
}
@ -82,7 +82,7 @@ static void sequencer_panel_properties(const bContext *C, Panel *pa)
{
uiBlock *block;
block= uiLayoutFreeBlock(pa->layout);
block= uiLayoutAbsoluteBlock(pa->layout);
uiBlockSetHandleFunc(block, do_sequencer_panel_events, NULL);
}

@ -152,8 +152,9 @@ typedef struct {
/* is used for both read and write... */
static void v3d_editvertex_buts(const bContext *C, uiBlock *block, View3D *v3d, Object *ob, float lim)
static void v3d_editvertex_buts(const bContext *C, uiLayout *layout, View3D *v3d, Object *ob, float lim)
{
uiBlock *block= (layout)? uiLayoutAbsoluteBlock(layout): NULL;
MDeformVert *dvert=NULL;
TransformProperties *tfp= v3d->properties_storage;
float median[5], ve_median[5];
@ -497,12 +498,15 @@ static void validate_bonebutton_cb(bContext *C, void *bonev, void *namev)
}
#endif
static void v3d_posearmature_buts(uiBlock *block, View3D *v3d, Object *ob, float lim)
static void v3d_posearmature_buts(uiLayout *layout, View3D *v3d, Object *ob, float lim)
{
uiBlock *block= uiLayoutGetBlock(layout);
bArmature *arm;
bPoseChannel *pchan;
Bone *bone= NULL;
TransformProperties *tfp= v3d->properties_storage;
PointerRNA pchanptr;
uiLayout *row;
arm = ob->data;
if (!arm || !ob->pose) return;
@ -516,7 +520,15 @@ static void v3d_posearmature_buts(uiBlock *block, View3D *v3d, Object *ob, float
uiDefBut(block, LABEL, 0, "No Bone Active", 0, 240, 100, 20, 0, 0, 0, 0, 0, "");
return;
}
else {
row= uiLayoutRow(layout, 0);
RNA_pointer_create(&ob->id, &RNA_PoseChannel, pchan, &pchanptr);
uiItemL(row, "", ICON_BONE_DATA);
uiItemR(row, "", 0, &pchanptr, "name", 0);
}
uiLayoutAbsoluteBlock(layout);
if (pchan->rotmode == ROT_MODE_AXISANGLE) {
float quat[4];
/* convert to euler, passing through quats... */
@ -587,11 +599,14 @@ void validate_editbonebutton_cb(bContext *C, void *bonev, void *namev)
WM_event_add_notifier(C, NC_OBJECT|ND_BONE_SELECT, CTX_data_edit_object(C)); // XXX fix
}
static void v3d_editarmature_buts(uiBlock *block, View3D *v3d, Object *ob, float lim)
static void v3d_editarmature_buts(uiLayout *layout, View3D *v3d, Object *ob, float lim)
{
uiBlock *block= uiLayoutGetBlock(layout);
bArmature *arm= ob->data;
EditBone *ebone;
TransformProperties *tfp= v3d->properties_storage;
uiLayout *row;
PointerRNA eboneptr;
ebone= arm->edbo->first;
@ -603,6 +618,13 @@ static void v3d_editarmature_buts(uiBlock *block, View3D *v3d, Object *ob, float
if (!ebone)
return;
row= uiLayoutRow(layout, 0);
RNA_pointer_create(&arm->id, &RNA_EditBone, ebone, &eboneptr);
uiItemL(row, "", ICON_BONE_DATA);
uiItemR(row, "", 0, &eboneptr, "name", 0);
uiLayoutAbsoluteBlock(layout);
uiDefBut(block, LABEL, 0, "Head:", 0, 210, 100, 20, 0, 0, 0, 0, 0, "");
uiBlockBeginAlign(block);
uiDefButF(block, NUM, B_ARMATUREPANEL1, "X:", 0, 190, 100, 19, ebone->head, -lim, lim, 10, 3, "X Location of the head end of the bone");
@ -630,8 +652,9 @@ static void v3d_editarmature_buts(uiBlock *block, View3D *v3d, Object *ob, float
}
static void v3d_editmetaball_buts(uiBlock *block, Object *ob, float lim)
static void v3d_editmetaball_buts(uiLayout *layout, Object *ob, float lim)
{
uiBlock *block= uiLayoutAbsoluteBlock(layout);
MetaElem *lastelem= NULL; // XXX
if(lastelem) {
@ -1013,7 +1036,7 @@ static void view3d_panel_transform_spaces(const bContext *C, Panel *pa)
int xco = 20, yco = 70;
int index;
block= uiLayoutFreeBlock(pa->layout);
block= uiLayoutAbsoluteBlock(pa->layout);
uiBlockBeginAlign(block);
@ -1095,6 +1118,8 @@ static void view3d_panel_object(const bContext *C, Panel *pa)
//uiBut *bt;
Object *ob= OBACT;
TransformProperties *tfp;
PointerRNA obptr;
uiLayout *col, *row;
float lim;
if(ob==NULL) return;
@ -1104,9 +1129,6 @@ static void view3d_panel_object(const bContext *C, Panel *pa)
v3d->properties_storage= MEM_callocN(sizeof(TransformProperties), "TransformProperties");
tfp= v3d->properties_storage;
block= uiLayoutFreeBlock(pa->layout);
uiBlockSetHandleFunc(block, do_view3d_region_buttons, NULL);
// XXX uiSetButLock(object_is_libdata(ob), ERROR_LIBDATA_MESSAGE);
if(ob->mode & (OB_MODE_VERTEX_PAINT|OB_MODE_WEIGHT_PAINT|OB_MODE_TEXTURE_PAINT)) {
@ -1120,17 +1142,29 @@ static void view3d_panel_object(const bContext *C, Panel *pa)
lim= 10000.0f*MAX2(1.0, v3d->grid);
block= uiLayoutGetBlock(pa->layout);
uiBlockSetHandleFunc(block, do_view3d_region_buttons, NULL);
col= uiLayoutColumn(pa->layout, 0);
row= uiLayoutRow(col, 0);
RNA_id_pointer_create(&ob->id, &obptr);
uiItemL(row, "", ICON_OBJECT_DATA);
uiItemR(row, "", 0, &obptr, "name", 0);
if(ob==obedit) {
if(ob->type==OB_ARMATURE) v3d_editarmature_buts(block, v3d, ob, lim);
if(ob->type==OB_MBALL) v3d_editmetaball_buts(block, ob, lim);
else v3d_editvertex_buts(C, block, v3d, ob, lim);
if(ob->type==OB_ARMATURE) v3d_editarmature_buts(col, v3d, ob, lim);
if(ob->type==OB_MBALL) v3d_editmetaball_buts(col, ob, lim);
else v3d_editvertex_buts(C, col, v3d, ob, lim);
}
else if(ob->mode & OB_MODE_POSE) {
v3d_posearmature_buts(block, v3d, ob, lim);
v3d_posearmature_buts(col, v3d, ob, lim);
}
else {
BoundBox *bb = NULL;
uiLayoutAbsoluteBlock(col);
block= uiLayoutAbsoluteBlock(col);
uiDefBut(block, LABEL, 0, "Location:", 0, 300, 100, 20, 0, 0, 0, 0, 0, "");
uiBlockBeginAlign(block);
uiDefButF(block, NUM, B_OBJECTPANEL, "X:", 0, 280, 120, 19, &(ob->loc[0]), -lim, lim, 100, 3, "");
@ -1307,7 +1341,7 @@ static void view3d_panel_bonesketch_spaces(const bContext *C, Panel *pa)
};
block= uiLayoutFreeBlock(pa->layout);
block= uiLayoutAbsoluteBlock(pa->layout);
uiBlockSetHandleFunc(block, do_view3d_region_buttons, NULL);
uiBlockBeginAlign(block);

@ -1964,7 +1964,7 @@ void uiTemplateHeader3D(uiLayout *layout, struct bContext *C)
uiBlock *block;
int a, xco=0, maxco=0, yco= 0;
block= uiLayoutFreeBlock(layout);
block= uiLayoutAbsoluteBlock(layout);
uiBlockSetHandleFunc(block, do_view3d_header_buttons, NULL);
if((sa->flag & HEADER_NO_PULLDOWN)==0)