On Matt's suggestion moved "Make Link->Groups" to the add groups menu as "Add to Active Objects Groups"
removed "Make Link -> DupliGroup" because Copy->Duplis does the same thing. Python's Group.c had an unneeded scene/base lookup.
This commit is contained in:
@@ -741,8 +741,6 @@ static PyObject *GroupObSeq_add( BPy_GroupObSeq * self, PyObject *args )
|
|||||||
|
|
||||||
blen_ob = ( ( BPy_Object * ) pyobj )->object;
|
blen_ob = ( ( BPy_Object * ) pyobj )->object;
|
||||||
|
|
||||||
base= object_in_scene(blen_ob, G.scene);
|
|
||||||
|
|
||||||
add_to_group_wraper(self->bpygroup->group, blen_ob); /* this checks so as not to add the object into the group twice*/
|
add_to_group_wraper(self->bpygroup->group, blen_ob); /* this checks so as not to add the object into the group twice*/
|
||||||
|
|
||||||
Py_RETURN_NONE;
|
Py_RETURN_NONE;
|
||||||
|
|||||||
@@ -77,6 +77,39 @@ void add_selected_to_group(Group *group)
|
|||||||
BIF_undo_push("Add to Group");
|
BIF_undo_push("Add to Group");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void add_selected_to_act_ob_groups(void)
|
||||||
|
{
|
||||||
|
Object *ob= OBACT, *obt;
|
||||||
|
Base *base;
|
||||||
|
|
||||||
|
if (!ob) return;
|
||||||
|
|
||||||
|
/* linking to same group requires its own loop so we can avoid
|
||||||
|
looking up the active objects groups each time */
|
||||||
|
Group *group= G.main->group.first;
|
||||||
|
while(group) {
|
||||||
|
if(object_in_group(ob, group)) {
|
||||||
|
/* Assign groups to selected objects */
|
||||||
|
base= FIRSTBASE;
|
||||||
|
while(base) {
|
||||||
|
if(TESTBASE(base)) {
|
||||||
|
obt= base->object;
|
||||||
|
add_to_group(group, obt);
|
||||||
|
obt->flag |= OB_FROMGROUP;
|
||||||
|
base->flag |= OB_FROMGROUP;
|
||||||
|
}
|
||||||
|
base= base->next;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
group= group->id.next;
|
||||||
|
}
|
||||||
|
allqueue(REDRAWVIEW3D, 0);
|
||||||
|
allqueue(REDRAWBUTSOBJECT, 0);
|
||||||
|
DAG_scene_sort(G.scene);
|
||||||
|
BIF_undo_push("Add to Active Objects Group");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void rem_selected_from_group(void)
|
void rem_selected_from_group(void)
|
||||||
{
|
{
|
||||||
Base *base;
|
Base *base;
|
||||||
@@ -110,7 +143,7 @@ void group_operation_with_menu(void)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
if(group)
|
if(group)
|
||||||
mode= pupmenu("Groups %t|Add to Existing Group %x3|Add to New Group %x1|Remove from All Groups %x2");
|
mode= pupmenu("Groups %t|Add to Existing Group %x3|Add to Active Objects Groups %x4|Add to New Group %x1|Remove from All Groups %x2");
|
||||||
else
|
else
|
||||||
mode= pupmenu("Groups %t|Add to New Group %x1|Remove from All Groups %x2");
|
mode= pupmenu("Groups %t|Add to New Group %x1|Remove from All Groups %x2");
|
||||||
|
|
||||||
@@ -144,7 +177,8 @@ void group_operation(int mode)
|
|||||||
else return;
|
else return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(mode==1 || mode==3) add_selected_to_group(group);
|
if(mode==4) add_selected_to_act_ob_groups();
|
||||||
|
else if(mode==1 || mode==3) add_selected_to_group(group);
|
||||||
else if(mode==2) rem_selected_from_group();
|
else if(mode==2) rem_selected_from_group();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3162,11 +3162,11 @@ void make_links_menu()
|
|||||||
{
|
{
|
||||||
Object *ob;
|
Object *ob;
|
||||||
short event=0;
|
short event=0;
|
||||||
char str[160];
|
char str[140];
|
||||||
|
|
||||||
if(!(ob=OBACT)) return;
|
if(!(ob=OBACT)) return;
|
||||||
|
|
||||||
strcpy(str, "Make Links %t|To Scene...%x1|%l|Object Ipo%x4|Object Groups%x7");
|
strcpy(str, "Make Links %t|To Scene...%x1|%l|Object Ipo%x4");
|
||||||
|
|
||||||
if(ob->type==OB_MESH)
|
if(ob->type==OB_MESH)
|
||||||
strcat(str, "|Mesh Data%x2|Materials%x3");
|
strcat(str, "|Mesh Data%x2|Materials%x3");
|
||||||
@@ -3186,8 +3186,6 @@ void make_links_menu()
|
|||||||
strcat(str, "|Lattice Data%x2");
|
strcat(str, "|Lattice Data%x2");
|
||||||
else if(ob->type==OB_ARMATURE)
|
else if(ob->type==OB_ARMATURE)
|
||||||
strcat(str, "|Armature Data%x2");
|
strcat(str, "|Armature Data%x2");
|
||||||
else if(ob->type==OB_EMPTY)
|
|
||||||
strcat(str, "|DupliGroup%x6");
|
|
||||||
|
|
||||||
event= pupmenu(str);
|
event= pupmenu(str);
|
||||||
|
|
||||||
@@ -3243,144 +3241,120 @@ void make_links(short event)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* linking to same group requires its own loop so we can avoid
|
/* All non group linking */
|
||||||
looking up the active objects groups each time */
|
base= FIRSTBASE;
|
||||||
if(event==7) {
|
while(base) {
|
||||||
Group *group= G.main->group.first;
|
if(event==1 || base != BASACT) {
|
||||||
while(group) {
|
|
||||||
if(object_in_group(ob, group)) {
|
|
||||||
/* Assign groups to selected objects */
|
|
||||||
base= FIRSTBASE;
|
|
||||||
while(base) {
|
|
||||||
if(TESTBASE(base)) {
|
|
||||||
obt= base->object;
|
|
||||||
add_to_group(group, obt);
|
|
||||||
obt->flag |= OB_FROMGROUP;
|
|
||||||
base->flag |= OB_FROMGROUP;
|
|
||||||
}
|
|
||||||
base= base->next;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
obt= base->object;
|
||||||
|
|
||||||
|
if(TESTBASE(base)) {
|
||||||
|
|
||||||
|
if(event==1) { /* to scene */
|
||||||
|
|
||||||
|
/* test if already linked */
|
||||||
|
sbase= sce->base.first;
|
||||||
|
while(sbase) {
|
||||||
|
if(sbase->object==base->object) break;
|
||||||
|
sbase= sbase->next;
|
||||||
|
}
|
||||||
|
if(sbase) { /* remove */
|
||||||
|
base= base->next;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
nbase= MEM_mallocN( sizeof(Base), "newbase");
|
||||||
|
*nbase= *base;
|
||||||
|
BLI_addhead( &(sce->base), nbase);
|
||||||
|
id_us_plus((ID *)base->object);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
group= group->id.next;
|
if(TESTBASELIB(base)) {
|
||||||
}
|
if(event==2 || event==5) { /* obdata */
|
||||||
|
if(ob->type==obt->type) {
|
||||||
|
|
||||||
} else {
|
id= obt->data;
|
||||||
/* All non group linking */
|
id->us--;
|
||||||
base= FIRSTBASE;
|
|
||||||
while(base) {
|
|
||||||
if(event==1 || base != BASACT) {
|
|
||||||
|
|
||||||
obt= base->object;
|
id= ob->data;
|
||||||
|
id_us_plus(id);
|
||||||
if(TESTBASE(base)) {
|
obt->data= id;
|
||||||
|
|
||||||
if(event==1) { /* to scene */
|
|
||||||
|
|
||||||
/* test if already linked */
|
|
||||||
sbase= sce->base.first;
|
|
||||||
while(sbase) {
|
|
||||||
if(sbase->object==base->object) break;
|
|
||||||
sbase= sbase->next;
|
|
||||||
}
|
|
||||||
if(sbase) { /* remove */
|
|
||||||
base= base->next;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
nbase= MEM_mallocN( sizeof(Base), "newbase");
|
|
||||||
*nbase= *base;
|
|
||||||
BLI_addhead( &(sce->base), nbase);
|
|
||||||
id_us_plus((ID *)base->object);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(TESTBASELIB(base)) {
|
|
||||||
if(event==2 || event==5) { /* obdata */
|
|
||||||
if(ob->type==obt->type) {
|
|
||||||
|
|
||||||
id= obt->data;
|
|
||||||
id->us--;
|
|
||||||
|
|
||||||
id= ob->data;
|
|
||||||
id_us_plus(id);
|
|
||||||
obt->data= id;
|
|
||||||
|
|
||||||
/* if amount of material indices changed: */
|
|
||||||
test_object_materials(obt->data);
|
|
||||||
|
|
||||||
obt->recalc |= OB_RECALC_DATA;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if(event==4) { /* ob ipo */
|
|
||||||
if(obt->ipo) obt->ipo->id.us--;
|
|
||||||
obt->ipo= ob->ipo;
|
|
||||||
if(obt->ipo) {
|
|
||||||
id_us_plus((ID *)obt->ipo);
|
|
||||||
do_ob_ipo(obt);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if(event==6) {
|
|
||||||
if(ob->dup_group) ob->dup_group->id.us--;
|
|
||||||
obt->dup_group= ob->dup_group;
|
|
||||||
if(obt->dup_group) {
|
|
||||||
id_us_plus((ID *)obt->dup_group);
|
|
||||||
obt->transflag |= OB_DUPLIGROUP;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if(event==3) { /* materials */
|
|
||||||
|
|
||||||
/* only if obt has no material: make arrays */
|
|
||||||
/* from ob to obt! */
|
|
||||||
|
|
||||||
obmatarar= give_matarar(ob);
|
|
||||||
matarar= give_matarar(obt);
|
|
||||||
totcolp= give_totcolp(obt);
|
|
||||||
|
|
||||||
/* if one of the two is zero: no render-able object */
|
|
||||||
if( matarar && obmatarar) {
|
|
||||||
|
|
||||||
/* take care of users! so first a copy of original: */
|
|
||||||
|
|
||||||
if(ob->totcol) {
|
|
||||||
matar1= MEM_dupallocN(ob->mat);
|
|
||||||
matar2= MEM_dupallocN(*obmatarar);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
matar1= matar2= NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* remove links from obt */
|
|
||||||
for(a=0; a<obt->totcol; a++) {
|
|
||||||
if(obt->mat[a]) obt->mat[a]->id.us--;
|
|
||||||
if( (*matarar)[a]) (*matarar)[a]->id.us--;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* free */
|
|
||||||
if(obt->mat) MEM_freeN(obt->mat);
|
|
||||||
if(*matarar) MEM_freeN(*matarar);
|
|
||||||
|
|
||||||
/* connect a copy */
|
|
||||||
obt->mat= matar1;
|
|
||||||
*matarar= matar2;
|
|
||||||
obt->totcol= ob->totcol;
|
|
||||||
*totcolp= ob->totcol;
|
|
||||||
|
|
||||||
/* increase users */
|
|
||||||
for(a=0; a<obt->totcol; a++) {
|
|
||||||
if(obt->mat[a]) id_us_plus((ID *)obt->mat[a]);
|
|
||||||
if( (*matarar)[a]) id_us_plus((ID *)(*matarar)[a]);
|
|
||||||
}
|
|
||||||
|
|
||||||
obt->colbits= ob->colbits;
|
|
||||||
|
|
||||||
/* if amount of material indices changed: */
|
/* if amount of material indices changed: */
|
||||||
test_object_materials(obt->data);
|
test_object_materials(obt->data);
|
||||||
|
|
||||||
|
obt->recalc |= OB_RECALC_DATA;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if(event==4) { /* ob ipo */
|
||||||
|
if(obt->ipo) obt->ipo->id.us--;
|
||||||
|
obt->ipo= ob->ipo;
|
||||||
|
if(obt->ipo) {
|
||||||
|
id_us_plus((ID *)obt->ipo);
|
||||||
|
do_ob_ipo(obt);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(event==6) {
|
||||||
|
if(ob->dup_group) ob->dup_group->id.us--;
|
||||||
|
obt->dup_group= ob->dup_group;
|
||||||
|
if(obt->dup_group) {
|
||||||
|
id_us_plus((ID *)obt->dup_group);
|
||||||
|
obt->transflag |= OB_DUPLIGROUP;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(event==3) { /* materials */
|
||||||
|
|
||||||
|
/* only if obt has no material: make arrays */
|
||||||
|
/* from ob to obt! */
|
||||||
|
|
||||||
|
obmatarar= give_matarar(ob);
|
||||||
|
matarar= give_matarar(obt);
|
||||||
|
totcolp= give_totcolp(obt);
|
||||||
|
|
||||||
|
/* if one of the two is zero: no render-able object */
|
||||||
|
if( matarar && obmatarar) {
|
||||||
|
|
||||||
|
/* take care of users! so first a copy of original: */
|
||||||
|
|
||||||
|
if(ob->totcol) {
|
||||||
|
matar1= MEM_dupallocN(ob->mat);
|
||||||
|
matar2= MEM_dupallocN(*obmatarar);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
matar1= matar2= NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* remove links from obt */
|
||||||
|
for(a=0; a<obt->totcol; a++) {
|
||||||
|
if(obt->mat[a]) obt->mat[a]->id.us--;
|
||||||
|
if( (*matarar)[a]) (*matarar)[a]->id.us--;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* free */
|
||||||
|
if(obt->mat) MEM_freeN(obt->mat);
|
||||||
|
if(*matarar) MEM_freeN(*matarar);
|
||||||
|
|
||||||
|
/* connect a copy */
|
||||||
|
obt->mat= matar1;
|
||||||
|
*matarar= matar2;
|
||||||
|
obt->totcol= ob->totcol;
|
||||||
|
*totcolp= ob->totcol;
|
||||||
|
|
||||||
|
/* increase users */
|
||||||
|
for(a=0; a<obt->totcol; a++) {
|
||||||
|
if(obt->mat[a]) id_us_plus((ID *)obt->mat[a]);
|
||||||
|
if( (*matarar)[a]) id_us_plus((ID *)(*matarar)[a]);
|
||||||
|
}
|
||||||
|
|
||||||
|
obt->colbits= ob->colbits;
|
||||||
|
|
||||||
|
/* if amount of material indices changed: */
|
||||||
|
test_object_materials(obt->data);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
base= base->next;
|
|
||||||
}
|
}
|
||||||
|
base= base->next;
|
||||||
}
|
}
|
||||||
|
|
||||||
allqueue(REDRAWVIEW3D, 0);
|
allqueue(REDRAWVIEW3D, 0);
|
||||||
|
|||||||
@@ -1758,8 +1758,6 @@ static void do_view3d_edit_object_makelinksmenu(void *arg, int event)
|
|||||||
case 2:
|
case 2:
|
||||||
case 3:
|
case 3:
|
||||||
case 4:
|
case 4:
|
||||||
case 6:
|
|
||||||
case 7:
|
|
||||||
make_links((short)event);
|
make_links((short)event);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -1781,34 +1779,31 @@ static uiBlock *view3d_edit_object_makelinksmenu(void *arg_unused)
|
|||||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||||
|
|
||||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Object Ipo|Ctrl L, 2", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 4, "");
|
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Object Ipo|Ctrl L, 2", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 4, "");
|
||||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Object Groups|Ctrl L, 3", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 7, "");
|
|
||||||
|
|
||||||
if ((ob=OBACT)) {
|
if ((ob=OBACT)) {
|
||||||
|
|
||||||
if(ob->type==OB_MESH) {
|
if(ob->type==OB_MESH) {
|
||||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Mesh Data|Ctrl L, 4", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Mesh Data|Ctrl L, 3", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
||||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Materials|Ctrl L, 5", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, "");
|
|
||||||
} else if(ob->type==OB_CURVE) {
|
|
||||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Curve Data|Ctrl L, 4", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
|
||||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Materials|Ctrl L, 5", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, "");
|
|
||||||
} else if(ob->type==OB_FONT) {
|
|
||||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Text Data|Ctrl L, 4", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
|
||||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Materials|Ctrl L, 5", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, "");
|
|
||||||
} else if(ob->type==OB_SURF) {
|
|
||||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Surface Data|Ctrl L, 4", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
|
||||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Materials|Ctrl L, 5", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, "");
|
|
||||||
} else if(ob->type==OB_MBALL) {
|
|
||||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Materials|Ctrl L, 4", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, "");
|
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Materials|Ctrl L, 4", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, "");
|
||||||
|
} else if(ob->type==OB_CURVE) {
|
||||||
|
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Curve Data|Ctrl L, 3", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
||||||
|
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Materials|Ctrl L, 4", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, "");
|
||||||
|
} else if(ob->type==OB_FONT) {
|
||||||
|
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Text Data|Ctrl L, 3", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
||||||
|
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Materials|Ctrl L, 4", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, "");
|
||||||
|
} else if(ob->type==OB_SURF) {
|
||||||
|
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Surface Data|Ctrl L, 3", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
||||||
|
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Materials|Ctrl L, 4", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, "");
|
||||||
|
} else if(ob->type==OB_MBALL) {
|
||||||
|
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Materials|Ctrl L, 3", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, "");
|
||||||
} else if(ob->type==OB_CAMERA) {
|
} else if(ob->type==OB_CAMERA) {
|
||||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Camera Data|Ctrl L, 4", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Camera Data|Ctrl L, 3", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
||||||
} else if(ob->type==OB_LAMP) {
|
} else if(ob->type==OB_LAMP) {
|
||||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Lamp Data|Ctrl L, 4", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Lamp Data|Ctrl L, 3", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
||||||
} else if(ob->type==OB_LATTICE) {
|
} else if(ob->type==OB_LATTICE) {
|
||||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Lattice Data|Ctrl L, 4", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Lattice Data|Ctrl L, 3", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
||||||
} else if(ob->type==OB_ARMATURE) {
|
} else if(ob->type==OB_ARMATURE) {
|
||||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Armature Data|Ctrl L, 4", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Armature Data|Ctrl L, 3", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
||||||
} else if(ob->type==OB_EMPTY) {
|
|
||||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "DupliGroup|Ctrl L, 4", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 6, "");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user