Fixing header*** files to use tabs instead of spaces (was my fault, sorry).
This commit is contained in:
@@ -23,7 +23,7 @@
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software Foundation,
|
||||
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
|
||||
* All rights reserved.
|
||||
@@ -80,78 +80,78 @@
|
||||
void do_action_buttons(unsigned short event)
|
||||
{
|
||||
|
||||
switch(event){
|
||||
switch(event){
|
||||
#ifdef __NLA_BAKE
|
||||
case B_ACTBAKE:
|
||||
bake_action_with_client (G.saction->action, OBACT, 0.01);
|
||||
break;
|
||||
case B_ACTBAKE:
|
||||
bake_action_with_client (G.saction->action, OBACT, 0.01);
|
||||
break;
|
||||
#endif
|
||||
case B_ACTCONT:
|
||||
set_exprap_action(IPO_HORIZ);
|
||||
break;
|
||||
// case B_ACTEXTRAP:
|
||||
// set_exprap_ipo(IPO_DIR);
|
||||
// break;
|
||||
case B_ACTCYCLIC:
|
||||
set_exprap_action(IPO_CYCL);
|
||||
break;
|
||||
// case B_ACTCYCLICX:
|
||||
// set_exprap_ipo(IPO_CYCLX);
|
||||
// break;
|
||||
case B_ACTHOME:
|
||||
// Find X extents
|
||||
//v2d= &(G.saction->v2d);
|
||||
case B_ACTCONT:
|
||||
set_exprap_action(IPO_HORIZ);
|
||||
break;
|
||||
// case B_ACTEXTRAP:
|
||||
// set_exprap_ipo(IPO_DIR);
|
||||
// break;
|
||||
case B_ACTCYCLIC:
|
||||
set_exprap_action(IPO_CYCL);
|
||||
break;
|
||||
// case B_ACTCYCLICX:
|
||||
// set_exprap_ipo(IPO_CYCLX);
|
||||
// break;
|
||||
case B_ACTHOME:
|
||||
// Find X extents
|
||||
//v2d= &(G.saction->v2d);
|
||||
|
||||
G.v2d->cur.xmin = 0;
|
||||
G.v2d->cur.ymin=-SCROLLB;
|
||||
|
||||
if (!G.saction->action){ // here the mesh rvk?
|
||||
G.v2d->cur.xmax=100;
|
||||
}
|
||||
else {
|
||||
float extra;
|
||||
G.v2d->cur.xmin= calc_action_start(G.saction->action);
|
||||
G.v2d->cur.xmax= calc_action_end(G.saction->action);
|
||||
extra= 0.05*(G.v2d->cur.xmax - G.v2d->cur.xmin);
|
||||
G.v2d->cur.xmin-= extra;
|
||||
G.v2d->cur.xmax+= extra;
|
||||
}
|
||||
G.v2d->cur.xmin = 0;
|
||||
G.v2d->cur.ymin=-SCROLLB;
|
||||
|
||||
G.v2d->tot= G.v2d->cur;
|
||||
test_view2d(G.v2d, curarea->winx, curarea->winy);
|
||||
if (!G.saction->action){ // here the mesh rvk?
|
||||
G.v2d->cur.xmax=100;
|
||||
}
|
||||
else {
|
||||
float extra;
|
||||
G.v2d->cur.xmin= calc_action_start(G.saction->action);
|
||||
G.v2d->cur.xmax= calc_action_end(G.saction->action);
|
||||
extra= 0.05*(G.v2d->cur.xmax - G.v2d->cur.xmin);
|
||||
G.v2d->cur.xmin-= extra;
|
||||
G.v2d->cur.xmax+= extra;
|
||||
}
|
||||
|
||||
G.v2d->tot= G.v2d->cur;
|
||||
test_view2d(G.v2d, curarea->winx, curarea->winy);
|
||||
|
||||
|
||||
addqueue (curarea->win, REDRAW, 1);
|
||||
addqueue (curarea->win, REDRAW, 1);
|
||||
|
||||
break;
|
||||
case B_ACTCOPY:
|
||||
copy_posebuf();
|
||||
allqueue(REDRAWVIEW3D, 1);
|
||||
break;
|
||||
case B_ACTPASTE:
|
||||
paste_posebuf(0);
|
||||
allqueue(REDRAWVIEW3D, 1);
|
||||
break;
|
||||
case B_ACTPASTEFLIP:
|
||||
paste_posebuf(1);
|
||||
allqueue(REDRAWVIEW3D, 1);
|
||||
break;
|
||||
break;
|
||||
case B_ACTCOPY:
|
||||
copy_posebuf();
|
||||
allqueue(REDRAWVIEW3D, 1);
|
||||
break;
|
||||
case B_ACTPASTE:
|
||||
paste_posebuf(0);
|
||||
allqueue(REDRAWVIEW3D, 1);
|
||||
break;
|
||||
case B_ACTPASTEFLIP:
|
||||
paste_posebuf(1);
|
||||
allqueue(REDRAWVIEW3D, 1);
|
||||
break;
|
||||
|
||||
case B_ACTPIN: /* __PINFAKE */
|
||||
/* if (G.saction->flag & SACTION_PIN){
|
||||
if (G.saction->action)
|
||||
G.saction->action->id.us ++;
|
||||
case B_ACTPIN: /* __PINFAKE */
|
||||
/* if (G.saction->flag & SACTION_PIN){
|
||||
if (G.saction->action)
|
||||
G.saction->action->id.us ++;
|
||||
|
||||
}
|
||||
else {
|
||||
if (G.saction->action)
|
||||
G.saction->action->id.us --;
|
||||
}
|
||||
*/ /* end PINFAKE */
|
||||
allqueue(REDRAWACTION, 1);
|
||||
break;
|
||||
}
|
||||
else {
|
||||
if (G.saction->action)
|
||||
G.saction->action->id.us --;
|
||||
}
|
||||
*/ /* end PINFAKE */
|
||||
allqueue(REDRAWACTION, 1);
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void action_buttons(void)
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software Foundation,
|
||||
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
|
||||
* All rights reserved.
|
||||
@@ -95,254 +95,254 @@ static int bonename_exists(Bone *orig, char *name, ListBase *list);
|
||||
|
||||
void clear_matcopybuf(void)
|
||||
{
|
||||
memset(&matcopybuf, 0, sizeof(Material));
|
||||
memset(&matcopybuf, 0, sizeof(Material));
|
||||
}
|
||||
|
||||
void free_matcopybuf(void)
|
||||
{
|
||||
extern MTex mtexcopybuf; /* buttons.c */
|
||||
int a;
|
||||
extern MTex mtexcopybuf; /* buttons.c */
|
||||
int a;
|
||||
|
||||
for(a=0; a<8; a++) {
|
||||
if(matcopybuf.mtex[a]) {
|
||||
MEM_freeN(matcopybuf.mtex[a]);
|
||||
matcopybuf.mtex[a]= 0;
|
||||
}
|
||||
}
|
||||
|
||||
for(a=0; a<8; a++) {
|
||||
if(matcopybuf.mtex[a]) {
|
||||
MEM_freeN(matcopybuf.mtex[a]);
|
||||
matcopybuf.mtex[a]= 0;
|
||||
}
|
||||
}
|
||||
|
||||
default_mtex(&mtexcopybuf);
|
||||
default_mtex(&mtexcopybuf);
|
||||
}
|
||||
|
||||
void do_buts_buttons(short event)
|
||||
{
|
||||
static short matcopied=0;
|
||||
MTex *mtex;
|
||||
Material *ma;
|
||||
ID id;
|
||||
int a;
|
||||
|
||||
if(curarea->win==0) return;
|
||||
static short matcopied=0;
|
||||
MTex *mtex;
|
||||
Material *ma;
|
||||
ID id;
|
||||
int a;
|
||||
|
||||
if(curarea->win==0) return;
|
||||
|
||||
switch(event) {
|
||||
case B_BUTSHOME:
|
||||
uiSetPanel_view2d(curarea);
|
||||
G.v2d->cur= G.v2d->tot;
|
||||
test_view2d(G.v2d, curarea->winx, curarea->winy);
|
||||
scrarea_queue_winredraw(curarea);
|
||||
break;
|
||||
case B_BUTSPREVIEW:
|
||||
BIF_preview_changed(G.buts);
|
||||
scrarea_queue_headredraw(curarea);
|
||||
scrarea_queue_winredraw(curarea);
|
||||
break;
|
||||
case B_MATCOPY:
|
||||
if(G.buts->lockpoin) {
|
||||
|
||||
if(matcopied) free_matcopybuf();
|
||||
|
||||
memcpy(&matcopybuf, G.buts->lockpoin, sizeof(Material));
|
||||
for(a=0; a<8; a++) {
|
||||
mtex= matcopybuf.mtex[a];
|
||||
if(mtex) {
|
||||
matcopybuf.mtex[a]= MEM_dupallocN(mtex);
|
||||
}
|
||||
}
|
||||
matcopied= 1;
|
||||
}
|
||||
break;
|
||||
case B_MATPASTE:
|
||||
if(matcopied && G.buts->lockpoin) {
|
||||
ma= G.buts->lockpoin;
|
||||
/* free current mat */
|
||||
for(a=0; a<8; a++) {
|
||||
mtex= ma->mtex[a];
|
||||
if(mtex && mtex->tex) mtex->tex->id.us--;
|
||||
if(mtex) MEM_freeN(mtex);
|
||||
}
|
||||
|
||||
id= (ma->id);
|
||||
memcpy(G.buts->lockpoin, &matcopybuf, sizeof(Material));
|
||||
(ma->id)= id;
|
||||
|
||||
for(a=0; a<8; a++) {
|
||||
mtex= ma->mtex[a];
|
||||
if(mtex) {
|
||||
ma->mtex[a]= MEM_dupallocN(mtex);
|
||||
if(mtex->tex) id_us_plus((ID *)mtex->tex);
|
||||
}
|
||||
}
|
||||
BIF_preview_changed(G.buts);
|
||||
scrarea_queue_winredraw(curarea);
|
||||
}
|
||||
break;
|
||||
case B_MESHTYPE:
|
||||
allqueue(REDRAWBUTSEDIT, 0);
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
break;
|
||||
}
|
||||
switch(event) {
|
||||
case B_BUTSHOME:
|
||||
uiSetPanel_view2d(curarea);
|
||||
G.v2d->cur= G.v2d->tot;
|
||||
test_view2d(G.v2d, curarea->winx, curarea->winy);
|
||||
scrarea_queue_winredraw(curarea);
|
||||
break;
|
||||
case B_BUTSPREVIEW:
|
||||
BIF_preview_changed(G.buts);
|
||||
scrarea_queue_headredraw(curarea);
|
||||
scrarea_queue_winredraw(curarea);
|
||||
break;
|
||||
case B_MATCOPY:
|
||||
if(G.buts->lockpoin) {
|
||||
|
||||
if(matcopied) free_matcopybuf();
|
||||
|
||||
memcpy(&matcopybuf, G.buts->lockpoin, sizeof(Material));
|
||||
for(a=0; a<8; a++) {
|
||||
mtex= matcopybuf.mtex[a];
|
||||
if(mtex) {
|
||||
matcopybuf.mtex[a]= MEM_dupallocN(mtex);
|
||||
}
|
||||
}
|
||||
matcopied= 1;
|
||||
}
|
||||
break;
|
||||
case B_MATPASTE:
|
||||
if(matcopied && G.buts->lockpoin) {
|
||||
ma= G.buts->lockpoin;
|
||||
/* free current mat */
|
||||
for(a=0; a<8; a++) {
|
||||
mtex= ma->mtex[a];
|
||||
if(mtex && mtex->tex) mtex->tex->id.us--;
|
||||
if(mtex) MEM_freeN(mtex);
|
||||
}
|
||||
|
||||
id= (ma->id);
|
||||
memcpy(G.buts->lockpoin, &matcopybuf, sizeof(Material));
|
||||
(ma->id)= id;
|
||||
|
||||
for(a=0; a<8; a++) {
|
||||
mtex= ma->mtex[a];
|
||||
if(mtex) {
|
||||
ma->mtex[a]= MEM_dupallocN(mtex);
|
||||
if(mtex->tex) id_us_plus((ID *)mtex->tex);
|
||||
}
|
||||
}
|
||||
BIF_preview_changed(G.buts);
|
||||
scrarea_queue_winredraw(curarea);
|
||||
}
|
||||
break;
|
||||
case B_MESHTYPE:
|
||||
allqueue(REDRAWBUTSEDIT, 0);
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void buttons_active_id(ID **id, ID **idfrom)
|
||||
{
|
||||
Object *ob= OBACT;
|
||||
Material *ma;
|
||||
Object *ob= OBACT;
|
||||
Material *ma;
|
||||
|
||||
*id= NULL;
|
||||
*idfrom= (ID *)ob;
|
||||
|
||||
if(G.buts->mainb==CONTEXT_SCENE) {
|
||||
*id= (ID *)G.scene;
|
||||
|
||||
}
|
||||
else if(G.buts->mainb==CONTEXT_SHADING) {
|
||||
int tab= G.buts->tab[CONTEXT_SHADING];
|
||||
|
||||
if(tab==TAB_SHADING_LAMP) {
|
||||
if(ob && ob->type==OB_LAMP) {
|
||||
*id= ob->data;
|
||||
}
|
||||
}
|
||||
else if(tab==TAB_SHADING_MAT) {
|
||||
if(ob && (ob->type<OB_LAMP) && ob->type) {
|
||||
*id= (ID *)give_current_material(ob, ob->actcol);
|
||||
*idfrom= material_from(ob, ob->actcol);
|
||||
}
|
||||
}
|
||||
else if(tab==TAB_SHADING_WORLD) {
|
||||
*id= (ID *)G.scene->world;
|
||||
*idfrom= (ID *)G.scene;
|
||||
}
|
||||
else if(tab==TAB_SHADING_TEX) {
|
||||
MTex *mtex;
|
||||
|
||||
if(G.buts->mainbo==G.buts->mainb && G.buts->tabo!=tab) {
|
||||
if(G.buts->tabo==TAB_SHADING_LAMP) G.buts->texfrom= 2;
|
||||
else if(G.buts->tabo==TAB_SHADING_WORLD) G.buts->texfrom= 1;
|
||||
else if(G.buts->tabo==TAB_SHADING_MAT) G.buts->texfrom= 0;
|
||||
}
|
||||
|
||||
if(G.buts->texfrom==0) {
|
||||
if(ob && ob->type<OB_LAMP && ob->type) {
|
||||
ma= give_current_material(ob, ob->actcol);
|
||||
*idfrom= (ID *)ma;
|
||||
if(ma) {
|
||||
mtex= ma->mtex[ ma->texact ];
|
||||
if(mtex) *id= (ID *)mtex->tex;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(G.buts->texfrom==1) {
|
||||
World *wrld= G.scene->world;
|
||||
*idfrom= (ID *)wrld;
|
||||
if(wrld) {
|
||||
mtex= wrld->mtex[ wrld->texact];
|
||||
if(mtex) *id= (ID *)mtex->tex;
|
||||
}
|
||||
}
|
||||
else if(G.buts->texfrom==2) {
|
||||
Lamp *la;
|
||||
if(ob && ob->type==OB_LAMP) {
|
||||
la= ob->data;
|
||||
*idfrom= (ID *)la;
|
||||
mtex= la->mtex[ la->texact];
|
||||
if(mtex) *id= (ID *)mtex->tex;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(G.buts->mainb==CONTEXT_OBJECT || G.buts->mainb==CONTEXT_LOGIC) {
|
||||
if(ob) {
|
||||
*idfrom= (ID *)G.scene;
|
||||
*id= (ID *)ob;
|
||||
}
|
||||
}
|
||||
else if(G.buts->mainb==CONTEXT_EDITING) {
|
||||
if(ob && ob->data) {
|
||||
*id= ob->data;
|
||||
}
|
||||
}
|
||||
else if (G.buts->mainb == BUTS_SOUND) {
|
||||
*id= NULL;
|
||||
*idfrom= (ID *)ob;
|
||||
|
||||
if(G.buts->mainb==CONTEXT_SCENE) {
|
||||
*id= (ID *)G.scene;
|
||||
|
||||
}
|
||||
else if(G.buts->mainb==CONTEXT_SHADING) {
|
||||
int tab= G.buts->tab[CONTEXT_SHADING];
|
||||
|
||||
if(tab==TAB_SHADING_LAMP) {
|
||||
if(ob && ob->type==OB_LAMP) {
|
||||
*id= ob->data;
|
||||
}
|
||||
}
|
||||
else if(tab==TAB_SHADING_MAT) {
|
||||
if(ob && (ob->type<OB_LAMP) && ob->type) {
|
||||
*id= (ID *)give_current_material(ob, ob->actcol);
|
||||
*idfrom= material_from(ob, ob->actcol);
|
||||
}
|
||||
}
|
||||
else if(tab==TAB_SHADING_WORLD) {
|
||||
*id= (ID *)G.scene->world;
|
||||
*idfrom= (ID *)G.scene;
|
||||
}
|
||||
else if(tab==TAB_SHADING_TEX) {
|
||||
MTex *mtex;
|
||||
|
||||
if(G.buts->mainbo==G.buts->mainb && G.buts->tabo!=tab) {
|
||||
if(G.buts->tabo==TAB_SHADING_LAMP) G.buts->texfrom= 2;
|
||||
else if(G.buts->tabo==TAB_SHADING_WORLD) G.buts->texfrom= 1;
|
||||
else if(G.buts->tabo==TAB_SHADING_MAT) G.buts->texfrom= 0;
|
||||
}
|
||||
|
||||
if(G.buts->texfrom==0) {
|
||||
if(ob && ob->type<OB_LAMP && ob->type) {
|
||||
ma= give_current_material(ob, ob->actcol);
|
||||
*idfrom= (ID *)ma;
|
||||
if(ma) {
|
||||
mtex= ma->mtex[ ma->texact ];
|
||||
if(mtex) *id= (ID *)mtex->tex;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(G.buts->texfrom==1) {
|
||||
World *wrld= G.scene->world;
|
||||
*idfrom= (ID *)wrld;
|
||||
if(wrld) {
|
||||
mtex= wrld->mtex[ wrld->texact];
|
||||
if(mtex) *id= (ID *)mtex->tex;
|
||||
}
|
||||
}
|
||||
else if(G.buts->texfrom==2) {
|
||||
Lamp *la;
|
||||
if(ob && ob->type==OB_LAMP) {
|
||||
la= ob->data;
|
||||
*idfrom= (ID *)la;
|
||||
mtex= la->mtex[ la->texact];
|
||||
if(mtex) *id= (ID *)mtex->tex;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(G.buts->mainb==CONTEXT_OBJECT || G.buts->mainb==CONTEXT_LOGIC) {
|
||||
if(ob) {
|
||||
*idfrom= (ID *)G.scene;
|
||||
*id= (ID *)ob;
|
||||
}
|
||||
}
|
||||
else if(G.buts->mainb==CONTEXT_EDITING) {
|
||||
if(ob && ob->data) {
|
||||
*id= ob->data;
|
||||
}
|
||||
}
|
||||
else if (G.buts->mainb == BUTS_SOUND) {
|
||||
#if 0
|
||||
ID * search;
|
||||
ID * search;
|
||||
|
||||
if (G.buts->lockpoin) {
|
||||
search = G.main->sound.first;
|
||||
while (search) {
|
||||
if (search == G.buts->lockpoin) {
|
||||
break;
|
||||
}
|
||||
search = search->next;
|
||||
}
|
||||
if (search == NULL) {
|
||||
*id = G.main->sound.first;
|
||||
} else {
|
||||
*id = search;
|
||||
}
|
||||
} else {
|
||||
*id = G.main->sound.first;
|
||||
}
|
||||
// printf("id: %d\n\n", *id);
|
||||
if (G.buts->lockpoin) {
|
||||
search = G.main->sound.first;
|
||||
while (search) {
|
||||
if (search == G.buts->lockpoin) {
|
||||
break;
|
||||
}
|
||||
search = search->next;
|
||||
}
|
||||
if (search == NULL) {
|
||||
*id = G.main->sound.first;
|
||||
} else {
|
||||
*id = search;
|
||||
}
|
||||
} else {
|
||||
*id = G.main->sound.first;
|
||||
}
|
||||
// printf("id: %d\n\n", *id);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void validate_bonebutton(void *bonev, void *data2_unused){
|
||||
Bone *bone= bonev;
|
||||
bArmature *arm;
|
||||
Bone *bone= bonev;
|
||||
bArmature *arm;
|
||||
|
||||
arm = get_armature(G.obpose);
|
||||
unique_bone_name(bone, arm);
|
||||
arm = get_armature(G.obpose);
|
||||
unique_bone_name(bone, arm);
|
||||
}
|
||||
|
||||
static int bonename_exists(Bone *orig, char *name, ListBase *list)
|
||||
{
|
||||
Bone *curbone;
|
||||
|
||||
for (curbone=list->first; curbone; curbone=curbone->next){
|
||||
/* Check this bone */
|
||||
if (orig!=curbone){
|
||||
if (!strcmp(curbone->name, name))
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* Check Children */
|
||||
if (bonename_exists(orig, name, &curbone->childbase))
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
Bone *curbone;
|
||||
|
||||
for (curbone=list->first; curbone; curbone=curbone->next){
|
||||
/* Check this bone */
|
||||
if (orig!=curbone){
|
||||
if (!strcmp(curbone->name, name))
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* Check Children */
|
||||
if (bonename_exists(orig, name, &curbone->childbase))
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
}
|
||||
|
||||
static void unique_bone_name (Bone *bone, bArmature *arm)
|
||||
{
|
||||
char tempname[64];
|
||||
char oldname[64];
|
||||
int number;
|
||||
char *dot;
|
||||
char tempname[64];
|
||||
char oldname[64];
|
||||
int number;
|
||||
char *dot;
|
||||
|
||||
if (!arm)
|
||||
return;
|
||||
if (!arm)
|
||||
return;
|
||||
|
||||
strcpy(oldname, bone->name);
|
||||
strcpy(oldname, bone->name);
|
||||
|
||||
/* See if we even need to do this */
|
||||
if (!bonename_exists(bone, bone->name, &arm->bonebase))
|
||||
return;
|
||||
/* See if we even need to do this */
|
||||
if (!bonename_exists(bone, bone->name, &arm->bonebase))
|
||||
return;
|
||||
|
||||
/* Strip off the suffix */
|
||||
dot=strchr(bone->name, '.');
|
||||
if (dot)
|
||||
*dot=0;
|
||||
|
||||
for (number = 1; number <=999; number++){
|
||||
sprintf (tempname, "%s.%03d", bone->name, number);
|
||||
|
||||
if (!bonename_exists(bone, tempname, &arm->bonebase)){
|
||||
strcpy (bone->name, tempname);
|
||||
return;
|
||||
}
|
||||
}
|
||||
/* Strip off the suffix */
|
||||
dot=strchr(bone->name, '.');
|
||||
if (dot)
|
||||
*dot=0;
|
||||
|
||||
for (number = 1; number <=999; number++){
|
||||
sprintf (tempname, "%s.%03d", bone->name, number);
|
||||
|
||||
if (!bonename_exists(bone, tempname, &arm->bonebase)){
|
||||
strcpy (bone->name, tempname);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static uiBlock *sbuts_context_menu(void *arg_unused)
|
||||
@@ -543,7 +543,7 @@ moved to buttonswin!
|
||||
}
|
||||
|
||||
xco= std_libbuttons(block, xco, 0, 0, NULL, browse, id, idfrom, &(G.buts->menunr), alone, local, 0, 0, B_KEEPDATA);
|
||||
|
||||
|
||||
xco+= XIC;
|
||||
}
|
||||
if(ob) {
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software Foundation,
|
||||
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
|
||||
* All rights reserved.
|
||||
@@ -75,22 +75,22 @@
|
||||
|
||||
void do_file_buttons(short event)
|
||||
{
|
||||
SpaceFile *sfile;
|
||||
|
||||
if(curarea->win==0) return;
|
||||
sfile= curarea->spacedata.first;
|
||||
|
||||
switch(event) {
|
||||
case B_SORTFILELIST:
|
||||
sort_filelist(sfile);
|
||||
scrarea_queue_winredraw(curarea);
|
||||
break;
|
||||
case B_RELOADDIR:
|
||||
freefilelist(sfile);
|
||||
scrarea_queue_winredraw(curarea);
|
||||
break;
|
||||
}
|
||||
|
||||
SpaceFile *sfile;
|
||||
|
||||
if(curarea->win==0) return;
|
||||
sfile= curarea->spacedata.first;
|
||||
|
||||
switch(event) {
|
||||
case B_SORTFILELIST:
|
||||
sort_filelist(sfile);
|
||||
scrarea_queue_winredraw(curarea);
|
||||
break;
|
||||
case B_RELOADDIR:
|
||||
freefilelist(sfile);
|
||||
scrarea_queue_winredraw(curarea);
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void file_buttons(void)
|
||||
@@ -123,7 +123,7 @@ void file_buttons(void)
|
||||
uiDefIconButS(block, ROW, B_SORTFILELIST, ICON_SORTSIZE, xco+=XIC,0,XIC,YIC, &sfile->sort, 1.0, 2.0, 0, 0, "Sorts files by size");
|
||||
|
||||
cpack(0x0);
|
||||
glRasterPos2i(xco+=XIC+10, 5);
|
||||
glRasterPos2i(xco+=XIC+10, 5);
|
||||
|
||||
BIF_DrawString(uiBlockGetCurFont(block), sfile->title, (U.transopts & TR_BUTTONS), 0);
|
||||
xco+= BIF_GetStringWidth(G.font, sfile->title, (U.transopts & TR_BUTTONS));
|
||||
@@ -143,16 +143,15 @@ void file_buttons(void)
|
||||
|
||||
filesel_statistics(sfile, &totfile, &selfile, &totlen, &sellen);
|
||||
|
||||
sprintf(naam, "Free: %.3f Mb Files: (%d) %d (%.3f) %.3f Mb",
|
||||
df, selfile,totfile, sellen, totlen);
|
||||
|
||||
sprintf(naam, "Free: %.3f Mb Files: (%d) %d (%.3f) %.3f Mb", df, selfile,totfile, sellen, totlen);
|
||||
|
||||
cpack(0x0);
|
||||
glRasterPos2i(xco, 5);
|
||||
glRasterPos2i(xco, 5);
|
||||
|
||||
BIF_DrawString(uiBlockGetCurFont(block), naam, 0, 0);
|
||||
}
|
||||
/* always do as last */
|
||||
curarea->headbutlen= xco+2*XIC;
|
||||
|
||||
|
||||
uiDrawBlock(block);
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software Foundation,
|
||||
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
|
||||
* All rights reserved.
|
||||
@@ -87,268 +87,268 @@
|
||||
|
||||
#include "TPT_DependKludge.h"
|
||||
|
||||
void load_space_image(char *str) /* called from fileselect */
|
||||
void load_space_image(char *str) /* called from fileselect */
|
||||
{
|
||||
Image *ima=0;
|
||||
Image *ima=0;
|
||||
|
||||
if(G.obedit) {
|
||||
error("Can't perfom this in editmode");
|
||||
return;
|
||||
}
|
||||
if(G.obedit) {
|
||||
error("Can't perfom this in editmode");
|
||||
return;
|
||||
}
|
||||
|
||||
ima= add_image(str);
|
||||
if(ima) {
|
||||
ima= add_image(str);
|
||||
if(ima) {
|
||||
|
||||
G.sima->image= ima;
|
||||
G.sima->image= ima;
|
||||
|
||||
free_image_buffers(ima); /* force read again */
|
||||
ima->ok= 1;
|
||||
image_changed(G.sima, 0);
|
||||
free_image_buffers(ima); /* force read again */
|
||||
ima->ok= 1;
|
||||
image_changed(G.sima, 0);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
allqueue(REDRAWIMAGE, 0);
|
||||
allqueue(REDRAWIMAGE, 0);
|
||||
}
|
||||
|
||||
void image_replace(Image *old, Image *new)
|
||||
{
|
||||
TFace *tface;
|
||||
Mesh *me;
|
||||
int a, rep=0;
|
||||
TFace *tface;
|
||||
Mesh *me;
|
||||
int a, rep=0;
|
||||
|
||||
new->tpageflag= old->tpageflag;
|
||||
new->twsta= old->twsta;
|
||||
new->twend= old->twend;
|
||||
new->xrep= old->xrep;
|
||||
new->yrep= old->yrep;
|
||||
new->tpageflag= old->tpageflag;
|
||||
new->twsta= old->twsta;
|
||||
new->twend= old->twend;
|
||||
new->xrep= old->xrep;
|
||||
new->yrep= old->yrep;
|
||||
|
||||
me= G.main->mesh.first;
|
||||
while(me) {
|
||||
me= G.main->mesh.first;
|
||||
while(me) {
|
||||
|
||||
if(me->tface) {
|
||||
tface= me->tface;
|
||||
a= me->totface;
|
||||
while(a--) {
|
||||
if(tface->tpage==old) {
|
||||
tface->tpage= new;
|
||||
rep++;
|
||||
}
|
||||
tface++;
|
||||
}
|
||||
}
|
||||
me= me->id.next;
|
||||
if(me->tface) {
|
||||
tface= me->tface;
|
||||
a= me->totface;
|
||||
while(a--) {
|
||||
if(tface->tpage==old) {
|
||||
tface->tpage= new;
|
||||
rep++;
|
||||
}
|
||||
tface++;
|
||||
}
|
||||
}
|
||||
me= me->id.next;
|
||||
|
||||
}
|
||||
if(rep) {
|
||||
if(new->id.us==0) new->id.us= 1;
|
||||
}
|
||||
else error("Nothing replaced");
|
||||
}
|
||||
if(rep) {
|
||||
if(new->id.us==0) new->id.us= 1;
|
||||
}
|
||||
else error("Nothing replaced");
|
||||
}
|
||||
|
||||
void replace_space_image(char *str) /* called from fileselect */
|
||||
void replace_space_image(char *str) /* called from fileselect */
|
||||
{
|
||||
Image *ima=0;
|
||||
Image *ima=0;
|
||||
|
||||
if(G.obedit) {
|
||||
error("Can't perfom this in editmode");
|
||||
return;
|
||||
}
|
||||
if(G.obedit) {
|
||||
error("Can't perfom this in editmode");
|
||||
return;
|
||||
}
|
||||
|
||||
ima= add_image(str);
|
||||
if(ima) {
|
||||
ima= add_image(str);
|
||||
if(ima) {
|
||||
|
||||
if(G.sima->image != ima) {
|
||||
image_replace(G.sima->image, ima);
|
||||
}
|
||||
if(G.sima->image != ima) {
|
||||
image_replace(G.sima->image, ima);
|
||||
}
|
||||
|
||||
G.sima->image= ima;
|
||||
G.sima->image= ima;
|
||||
|
||||
free_image_buffers(ima); /* force read again */
|
||||
ima->ok= 1;
|
||||
/* replace also assigns: */
|
||||
image_changed(G.sima, 0);
|
||||
free_image_buffers(ima); /* force read again */
|
||||
ima->ok= 1;
|
||||
/* replace also assigns: */
|
||||
image_changed(G.sima, 0);
|
||||
|
||||
}
|
||||
allqueue(REDRAWIMAGE, 0);
|
||||
}
|
||||
allqueue(REDRAWIMAGE, 0);
|
||||
}
|
||||
|
||||
void save_paint(char *name)
|
||||
{
|
||||
char str[FILE_MAXDIR+FILE_MAXFILE];
|
||||
Image *ima = G.sima->image;
|
||||
ImBuf *ibuf;
|
||||
char str[FILE_MAXDIR+FILE_MAXFILE];
|
||||
Image *ima = G.sima->image;
|
||||
ImBuf *ibuf;
|
||||
|
||||
if (ima && ima->ibuf) {
|
||||
BLI_strncpy(str, name, sizeof(str));
|
||||
if (ima && ima->ibuf) {
|
||||
BLI_strncpy(str, name, sizeof(str));
|
||||
|
||||
BLI_convertstringcode(str, G.sce, G.scene->r.cfra);
|
||||
BLI_convertstringcode(str, G.sce, G.scene->r.cfra);
|
||||
|
||||
if (saveover(str)) {
|
||||
ibuf = IMB_dupImBuf(ima->ibuf);
|
||||
if (saveover(str)) {
|
||||
ibuf = IMB_dupImBuf(ima->ibuf);
|
||||
|
||||
if (ibuf) {
|
||||
if (BIF_write_ibuf(ibuf, str)) {
|
||||
BLI_strncpy(ima->name, name, sizeof(ima->name));
|
||||
ima->ibuf->userflags &= ~IB_BITMAPDIRTY;
|
||||
allqueue(REDRAWHEADERS, 0);
|
||||
allqueue(REDRAWBUTSSHADING, 0);
|
||||
} else {
|
||||
error("Couldn't write image: %s", str);
|
||||
}
|
||||
if (ibuf) {
|
||||
if (BIF_write_ibuf(ibuf, str)) {
|
||||
BLI_strncpy(ima->name, name, sizeof(ima->name));
|
||||
ima->ibuf->userflags &= ~IB_BITMAPDIRTY;
|
||||
allqueue(REDRAWHEADERS, 0);
|
||||
allqueue(REDRAWBUTSSHADING, 0);
|
||||
} else {
|
||||
error("Couldn't write image: %s", str);
|
||||
}
|
||||
|
||||
IMB_freeImBuf(ibuf);
|
||||
}
|
||||
}
|
||||
}
|
||||
IMB_freeImBuf(ibuf);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void do_image_buttons(unsigned short event)
|
||||
{
|
||||
Image *ima;
|
||||
ID *id, *idtest;
|
||||
int nr;
|
||||
char name[256], str[256];
|
||||
Image *ima;
|
||||
ID *id, *idtest;
|
||||
int nr;
|
||||
char name[256], str[256];
|
||||
|
||||
if(curarea->win==0) return;
|
||||
if(curarea->win==0) return;
|
||||
|
||||
switch(event) {
|
||||
case B_SIMAGEHOME:
|
||||
image_home();
|
||||
break;
|
||||
switch(event) {
|
||||
case B_SIMAGEHOME:
|
||||
image_home();
|
||||
break;
|
||||
|
||||
case B_SIMABROWSE:
|
||||
if(G.sima->imanr== -2) {
|
||||
activate_databrowse((ID *)G.sima->image, ID_IM, 0, B_SIMABROWSE,
|
||||
&G.sima->imanr, do_image_buttons);
|
||||
return;
|
||||
}
|
||||
if(G.sima->imanr < 0) break;
|
||||
|
||||
nr= 1;
|
||||
id= (ID *)G.sima->image;
|
||||
case B_SIMABROWSE:
|
||||
if(G.sima->imanr== -2) {
|
||||
activate_databrowse((ID *)G.sima->image, ID_IM, 0, B_SIMABROWSE,
|
||||
&G.sima->imanr, do_image_buttons);
|
||||
return;
|
||||
}
|
||||
if(G.sima->imanr < 0) break;
|
||||
|
||||
nr= 1;
|
||||
id= (ID *)G.sima->image;
|
||||
|
||||
idtest= G.main->image.first;
|
||||
while(idtest) {
|
||||
if(nr==G.sima->imanr) {
|
||||
break;
|
||||
}
|
||||
nr++;
|
||||
idtest= idtest->next;
|
||||
}
|
||||
if(idtest==0) { /* no new */
|
||||
return;
|
||||
}
|
||||
|
||||
if(idtest!=id) {
|
||||
G.sima->image= (Image *)idtest;
|
||||
if(idtest->us==0) idtest->us= 1;
|
||||
allqueue(REDRAWIMAGE, 0);
|
||||
}
|
||||
/* also when image is the same: assign! 0==no tileflag: */
|
||||
image_changed(G.sima, 0);
|
||||
idtest= G.main->image.first;
|
||||
while(idtest) {
|
||||
if(nr==G.sima->imanr) {
|
||||
break;
|
||||
}
|
||||
nr++;
|
||||
idtest= idtest->next;
|
||||
}
|
||||
if(idtest==0) { /* no new */
|
||||
return;
|
||||
}
|
||||
|
||||
if(idtest!=id) {
|
||||
G.sima->image= (Image *)idtest;
|
||||
if(idtest->us==0) idtest->us= 1;
|
||||
allqueue(REDRAWIMAGE, 0);
|
||||
}
|
||||
/* also when image is the same: assign! 0==no tileflag: */
|
||||
image_changed(G.sima, 0);
|
||||
|
||||
break;
|
||||
case B_SIMAGELOAD:
|
||||
case B_SIMAGELOAD1:
|
||||
|
||||
if(G.sima->image) strcpy(name, G.sima->image->name);
|
||||
else strcpy(name, U.textudir);
|
||||
|
||||
if(event==B_SIMAGELOAD)
|
||||
activate_imageselect(FILE_SPECIAL, "SELECT IMAGE", name,
|
||||
load_space_image);
|
||||
else
|
||||
activate_fileselect(FILE_SPECIAL, "SELECT IMAGE", name,
|
||||
load_space_image);
|
||||
break;
|
||||
case B_SIMAGEREPLACE:
|
||||
case B_SIMAGEREPLACE1:
|
||||
|
||||
if(G.sima->image) strcpy(name, G.sima->image->name);
|
||||
else strcpy(name, U.textudir);
|
||||
|
||||
if(event==B_SIMAGEREPLACE)
|
||||
activate_imageselect(FILE_SPECIAL, "REPLACE IMAGE", name,
|
||||
replace_space_image);
|
||||
else
|
||||
activate_fileselect(FILE_SPECIAL, "REPLACE IMAGE", name,
|
||||
replace_space_image);
|
||||
break;
|
||||
case B_SIMAGEDRAW:
|
||||
|
||||
if(G.f & G_FACESELECT) {
|
||||
make_repbind(G.sima->image);
|
||||
image_changed(G.sima, 1);
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
allqueue(REDRAWIMAGE, 0);
|
||||
break;
|
||||
break;
|
||||
case B_SIMAGELOAD:
|
||||
case B_SIMAGELOAD1:
|
||||
|
||||
if(G.sima->image) strcpy(name, G.sima->image->name);
|
||||
else strcpy(name, U.textudir);
|
||||
|
||||
if(event==B_SIMAGELOAD)
|
||||
activate_imageselect(FILE_SPECIAL, "SELECT IMAGE", name,
|
||||
load_space_image);
|
||||
else
|
||||
activate_fileselect(FILE_SPECIAL, "SELECT IMAGE", name,
|
||||
load_space_image);
|
||||
break;
|
||||
case B_SIMAGEREPLACE:
|
||||
case B_SIMAGEREPLACE1:
|
||||
|
||||
if(G.sima->image) strcpy(name, G.sima->image->name);
|
||||
else strcpy(name, U.textudir);
|
||||
|
||||
if(event==B_SIMAGEREPLACE)
|
||||
activate_imageselect(FILE_SPECIAL, "REPLACE IMAGE", name,
|
||||
replace_space_image);
|
||||
else
|
||||
activate_fileselect(FILE_SPECIAL, "REPLACE IMAGE", name,
|
||||
replace_space_image);
|
||||
break;
|
||||
case B_SIMAGEDRAW:
|
||||
|
||||
if(G.f & G_FACESELECT) {
|
||||
make_repbind(G.sima->image);
|
||||
image_changed(G.sima, 1);
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
allqueue(REDRAWIMAGE, 0);
|
||||
break;
|
||||
|
||||
case B_SIMAGEDRAW1:
|
||||
image_changed(G.sima, 2); /* 2: only tileflag */
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
allqueue(REDRAWIMAGE, 0);
|
||||
break;
|
||||
|
||||
case B_TWINANIM:
|
||||
ima = G.sima->image;
|
||||
if (ima) {
|
||||
if(ima->flag & IMA_TWINANIM) {
|
||||
nr= ima->xrep*ima->yrep;
|
||||
if(ima->twsta>=nr) ima->twsta= 1;
|
||||
if(ima->twend>=nr) ima->twend= nr-1;
|
||||
if(ima->twsta>ima->twend) ima->twsta= 1;
|
||||
allqueue(REDRAWIMAGE, 0);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case B_SIMAGEDRAW1:
|
||||
image_changed(G.sima, 2); /* 2: only tileflag */
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
allqueue(REDRAWIMAGE, 0);
|
||||
break;
|
||||
|
||||
case B_TWINANIM:
|
||||
ima = G.sima->image;
|
||||
if (ima) {
|
||||
if(ima->flag & IMA_TWINANIM) {
|
||||
nr= ima->xrep*ima->yrep;
|
||||
if(ima->twsta>=nr) ima->twsta= 1;
|
||||
if(ima->twend>=nr) ima->twend= nr-1;
|
||||
if(ima->twsta>ima->twend) ima->twsta= 1;
|
||||
allqueue(REDRAWIMAGE, 0);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case B_CLIP_UV:
|
||||
tface_do_clip();
|
||||
allqueue(REDRAWIMAGE, 0);
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
break;
|
||||
case B_CLIP_UV:
|
||||
tface_do_clip();
|
||||
allqueue(REDRAWIMAGE, 0);
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
break;
|
||||
|
||||
case B_SIMAGEPAINTTOOL:
|
||||
// check for packed file here
|
||||
allqueue(REDRAWIMAGE, 0);
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
break;
|
||||
case B_SIMAPACKIMA:
|
||||
ima = G.sima->image;
|
||||
if (ima) {
|
||||
if (ima->packedfile) {
|
||||
if (G.fileflags & G_AUTOPACK) {
|
||||
if (okee("Disable AutoPack ?")) {
|
||||
G.fileflags &= ~G_AUTOPACK;
|
||||
}
|
||||
}
|
||||
|
||||
if ((G.fileflags & G_AUTOPACK) == 0) {
|
||||
unpackImage(ima, PF_ASK);
|
||||
}
|
||||
} else {
|
||||
if (ima->ibuf && (ima->ibuf->userflags & IB_BITMAPDIRTY)) {
|
||||
error("Can't pack painted image. Save image first.");
|
||||
} else {
|
||||
ima->packedfile = newPackedFile(ima->name);
|
||||
}
|
||||
}
|
||||
allqueue(REDRAWBUTSSHADING, 0);
|
||||
allqueue(REDRAWHEADERS, 0);
|
||||
}
|
||||
break;
|
||||
case B_SIMAGESAVE:
|
||||
ima = G.sima->image;
|
||||
if (ima) {
|
||||
strcpy(name, ima->name);
|
||||
if (ima->ibuf) {
|
||||
save_image_filesel_str(str);
|
||||
activate_fileselect(FILE_SPECIAL, str, name, save_paint);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case B_SIMAGEPAINTTOOL:
|
||||
// check for packed file here
|
||||
allqueue(REDRAWIMAGE, 0);
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
break;
|
||||
case B_SIMAPACKIMA:
|
||||
ima = G.sima->image;
|
||||
if (ima) {
|
||||
if (ima->packedfile) {
|
||||
if (G.fileflags & G_AUTOPACK) {
|
||||
if (okee("Disable AutoPack ?")) {
|
||||
G.fileflags &= ~G_AUTOPACK;
|
||||
}
|
||||
}
|
||||
|
||||
if ((G.fileflags & G_AUTOPACK) == 0) {
|
||||
unpackImage(ima, PF_ASK);
|
||||
}
|
||||
} else {
|
||||
if (ima->ibuf && (ima->ibuf->userflags & IB_BITMAPDIRTY)) {
|
||||
error("Can't pack painted image. Save image first.");
|
||||
} else {
|
||||
ima->packedfile = newPackedFile(ima->name);
|
||||
}
|
||||
}
|
||||
allqueue(REDRAWBUTSSHADING, 0);
|
||||
allqueue(REDRAWHEADERS, 0);
|
||||
}
|
||||
break;
|
||||
case B_SIMAGESAVE:
|
||||
ima = G.sima->image;
|
||||
if (ima) {
|
||||
strcpy(name, ima->name);
|
||||
if (ima->ibuf) {
|
||||
save_image_filesel_str(str);
|
||||
activate_fileselect(FILE_SPECIAL, str, name, save_paint);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* This should not be a stack var! */
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software Foundation,
|
||||
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
|
||||
* All rights reserved.
|
||||
@@ -71,30 +71,30 @@
|
||||
|
||||
void do_imasel_buttons(short event)
|
||||
{
|
||||
SpaceImaSel *simasel;
|
||||
char name[256];
|
||||
|
||||
simasel= curarea->spacedata.first;
|
||||
|
||||
if(curarea->win==0) return;
|
||||
SpaceImaSel *simasel;
|
||||
char name[256];
|
||||
|
||||
simasel= curarea->spacedata.first;
|
||||
|
||||
if(curarea->win==0) return;
|
||||
|
||||
switch(event) {
|
||||
case B_IMASELHOME:
|
||||
break;
|
||||
|
||||
case B_IMASELREMOVEBIP:
|
||||
|
||||
if(bitset(simasel->fase, IMS_FOUND_BIP)){
|
||||
|
||||
strcpy(name, simasel->dir);
|
||||
strcat(name, ".Bpib");
|
||||
|
||||
remove(name);
|
||||
|
||||
simasel->fase &= ~ IMS_FOUND_BIP;
|
||||
}
|
||||
break;
|
||||
}
|
||||
switch(event) {
|
||||
case B_IMASELHOME:
|
||||
break;
|
||||
|
||||
case B_IMASELREMOVEBIP:
|
||||
|
||||
if(bitset(simasel->fase, IMS_FOUND_BIP)){
|
||||
|
||||
strcpy(name, simasel->dir);
|
||||
strcat(name, ".Bpib");
|
||||
|
||||
remove(name);
|
||||
|
||||
simasel->fase &= ~ IMS_FOUND_BIP;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void imasel_buttons(void)
|
||||
@@ -122,14 +122,14 @@ void imasel_buttons(void)
|
||||
xco+=XIC;
|
||||
if (simasel->title){
|
||||
xco+=25;
|
||||
glRasterPos2i(xco, 4);
|
||||
glRasterPos2i(xco, 4);
|
||||
BMF_DrawString(G.font, simasel->title);
|
||||
xco+=BMF_GetStringWidth(G.fonts, simasel->title);
|
||||
xco+=25;
|
||||
}
|
||||
uiDefIconBut(block, BUT, B_IMASELREMOVEBIP, ICON_BPIBFOLDER_X, xco+=XIC,0,XIC,YIC, 0, 0, 0, 0, 0, "");/* remove */
|
||||
|
||||
uiDefIconButS(block, TOG|BIT|0, B_REDR, ICON_BPIBFOLDERGREY, xco+=XIC,0,XIC,YIC, &simasel->mode, 0, 0, 0, 0, "Toggles display of directory information");/* dir */
|
||||
uiDefIconButS(block, TOG|BIT|0, B_REDR, ICON_BPIBFOLDERGREY, xco+=XIC,0,XIC,YIC, &simasel->mode, 0, 0, 0, 0, "Toggles display of directory information");/* dir */
|
||||
uiDefIconButS(block, TOG|BIT|1, B_REDR, ICON_INFO, xco+=XIC,0,XIC,YIC, &simasel->mode, 0, 0, 0, 0, "Toggles display of selected image information");/* info */
|
||||
uiDefIconButS(block, TOG|BIT|2, B_REDR, ICON_IMAGE_COL, xco+=XIC,0,XIC,YIC, &simasel->mode, 0, 0, 0, 0, "");/* image */
|
||||
uiDefIconButS(block, TOG|BIT|3, B_REDR, ICON_MAGNIFY, xco+=XIC,0,XIC,YIC, &simasel->mode, 0, 0, 0, 0, "Toggles magnified view of thumbnail of images under mouse pointer");/* magnify */
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software Foundation,
|
||||
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
|
||||
* All rights reserved.
|
||||
@@ -122,106 +122,106 @@ static float g_done;
|
||||
|
||||
int start_progress_bar(void)
|
||||
{
|
||||
g_progress_bar = 1;
|
||||
return 1; // we never fail (yet)
|
||||
g_progress_bar = 1;
|
||||
return 1; // we never fail (yet)
|
||||
}
|
||||
|
||||
void end_progress_bar(void)
|
||||
{
|
||||
g_progress_bar = 0;
|
||||
g_progress_bar = 0;
|
||||
}
|
||||
|
||||
static void update_progress_bar(float done, char *info)
|
||||
{
|
||||
g_done = done;
|
||||
g_progress_info = info;
|
||||
g_done = done;
|
||||
g_progress_info = info;
|
||||
}
|
||||
|
||||
/** Progress bar
|
||||
'done': a value between 0.0 and 1.0, showing progress
|
||||
'info': a info text what is currently being done
|
||||
'done': a value between 0.0 and 1.0, showing progress
|
||||
'info': a info text what is currently being done
|
||||
|
||||
Make sure that the progress bar is always called with:
|
||||
done = 0.0 first
|
||||
and
|
||||
done = 1.0 last -- or alternatively use:
|
||||
Make sure that the progress bar is always called with:
|
||||
done = 0.0 first
|
||||
and
|
||||
done = 1.0 last -- or alternatively use:
|
||||
|
||||
start_progressbar();
|
||||
do_stuff_and_callback_progress_bar();
|
||||
end_progressbar();
|
||||
start_progressbar();
|
||||
do_stuff_and_callback_progress_bar();
|
||||
end_progressbar();
|
||||
*/
|
||||
|
||||
int progress_bar(float done, char *busy_info)
|
||||
{
|
||||
ScrArea *sa;
|
||||
short val;
|
||||
ScrArea *sa;
|
||||
short val;
|
||||
|
||||
/* User break (ESC) */
|
||||
while (qtest()) {
|
||||
if (extern_qread(&val) == ESCKEY)
|
||||
return 0;
|
||||
}
|
||||
if (done == 0.0) {
|
||||
start_progress_bar();
|
||||
} else if (done > 0.99) {
|
||||
end_progress_bar();
|
||||
}
|
||||
/* User break (ESC) */
|
||||
while (qtest()) {
|
||||
if (extern_qread(&val) == ESCKEY)
|
||||
return 0;
|
||||
}
|
||||
if (done == 0.0) {
|
||||
start_progress_bar();
|
||||
} else if (done > 0.99) {
|
||||
end_progress_bar();
|
||||
}
|
||||
|
||||
sa= G.curscreen->areabase.first;
|
||||
while(sa) {
|
||||
if (sa->spacetype == SPACE_INFO) {
|
||||
update_progress_bar(done, busy_info);
|
||||
sa= G.curscreen->areabase.first;
|
||||
while(sa) {
|
||||
if (sa->spacetype == SPACE_INFO) {
|
||||
update_progress_bar(done, busy_info);
|
||||
|
||||
curarea = sa;
|
||||
curarea = sa;
|
||||
|
||||
scrarea_do_headdraw(curarea);
|
||||
areawinset(curarea->win);
|
||||
sa->head_swap= WIN_BACK_OK;
|
||||
screen_swapbuffers();
|
||||
}
|
||||
sa = sa->next;
|
||||
}
|
||||
return 1;
|
||||
scrarea_do_headdraw(curarea);
|
||||
areawinset(curarea->win);
|
||||
sa->head_swap= WIN_BACK_OK;
|
||||
screen_swapbuffers();
|
||||
}
|
||||
sa = sa->next;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
/* -- End of progress bar definitions ------- */
|
||||
|
||||
extern char videosc_dir[]; /* exotic.c */
|
||||
extern char videosc_dir[]; /* exotic.c */
|
||||
|
||||
void write_videoscape_fs()
|
||||
{
|
||||
if(G.obedit) {
|
||||
error("Can't save Videoscape. Press TAB to leave EditMode");
|
||||
}
|
||||
else {
|
||||
if(videosc_dir[0]==0) strcpy(videosc_dir, G.sce);
|
||||
activate_fileselect(FILE_SPECIAL, "SAVE VIDEOSCAPE", videosc_dir,
|
||||
if(G.obedit) {
|
||||
error("Can't save Videoscape. Press TAB to leave EditMode");
|
||||
}
|
||||
else {
|
||||
if(videosc_dir[0]==0) strcpy(videosc_dir, G.sce);
|
||||
activate_fileselect(FILE_SPECIAL, "SAVE VIDEOSCAPE", videosc_dir,
|
||||
write_videoscape);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void write_vrml_fs()
|
||||
{
|
||||
if(G.obedit) {
|
||||
error("Can't save VRML. Press TAB to leave EditMode");
|
||||
}
|
||||
else {
|
||||
if(videosc_dir[0]==0) strcpy(videosc_dir, G.sce);
|
||||
|
||||
activate_fileselect(FILE_SPECIAL, "SAVE VRML1", videosc_dir, write_vrml);
|
||||
}
|
||||
if(G.obedit) {
|
||||
error("Can't save VRML. Press TAB to leave EditMode");
|
||||
}
|
||||
else {
|
||||
if(videosc_dir[0]==0) strcpy(videosc_dir, G.sce);
|
||||
|
||||
activate_fileselect(FILE_SPECIAL, "SAVE VRML1", videosc_dir, write_vrml);
|
||||
}
|
||||
}
|
||||
|
||||
void write_dxf_fs()
|
||||
{
|
||||
if(G.obedit) {
|
||||
error("Can't save DXF. Press TAB to leave EditMode");
|
||||
}
|
||||
else {
|
||||
if(G.obedit) {
|
||||
error("Can't save DXF. Press TAB to leave EditMode");
|
||||
}
|
||||
else {
|
||||
|
||||
if(videosc_dir[0]==0) strcpy(videosc_dir, G.sce);
|
||||
if(videosc_dir[0]==0) strcpy(videosc_dir, G.sce);
|
||||
|
||||
activate_fileselect(FILE_SPECIAL, "SAVE DXF", videosc_dir, write_dxf);
|
||||
}
|
||||
activate_fileselect(FILE_SPECIAL, "SAVE DXF", videosc_dir, write_dxf);
|
||||
}
|
||||
}
|
||||
/* ------------ */
|
||||
|
||||
@@ -280,290 +280,290 @@ int buttons_do_unpack()
|
||||
|
||||
Scene *copy_scene(Scene *sce, int level)
|
||||
{
|
||||
/* level 0: al objects shared
|
||||
* level 1: al object-data shared
|
||||
* level 2: full copy
|
||||
*/
|
||||
Scene *scen;
|
||||
Base *base, *obase;
|
||||
/* level 0: al objects shared
|
||||
* level 1: al object-data shared
|
||||
* level 2: full copy
|
||||
*/
|
||||
Scene *scen;
|
||||
Base *base, *obase;
|
||||
|
||||
/* level 0 */
|
||||
scen= copy_libblock(sce);
|
||||
duplicatelist(&(scen->base), &(sce->base));
|
||||
|
||||
clear_id_newpoins();
|
||||
|
||||
id_us_plus((ID *)scen->world);
|
||||
id_us_plus((ID *)scen->set);
|
||||
/* level 0 */
|
||||
scen= copy_libblock(sce);
|
||||
duplicatelist(&(scen->base), &(sce->base));
|
||||
|
||||
clear_id_newpoins();
|
||||
|
||||
id_us_plus((ID *)scen->world);
|
||||
id_us_plus((ID *)scen->set);
|
||||
|
||||
scen->ed= 0;
|
||||
scen->radio= 0;
|
||||
scen->ed= 0;
|
||||
scen->radio= 0;
|
||||
|
||||
obase= sce->base.first;
|
||||
base= scen->base.first;
|
||||
while(base) {
|
||||
base->object->id.us++;
|
||||
if(obase==sce->basact) scen->basact= base;
|
||||
obase= sce->base.first;
|
||||
base= scen->base.first;
|
||||
while(base) {
|
||||
base->object->id.us++;
|
||||
if(obase==sce->basact) scen->basact= base;
|
||||
|
||||
obase= obase->next;
|
||||
base= base->next;
|
||||
}
|
||||
obase= obase->next;
|
||||
base= base->next;
|
||||
}
|
||||
|
||||
if(level==0) return scen;
|
||||
if(level==0) return scen;
|
||||
|
||||
/* level 1 */
|
||||
G.scene= scen;
|
||||
single_object_users(0);
|
||||
/* level 1 */
|
||||
G.scene= scen;
|
||||
single_object_users(0);
|
||||
|
||||
/* camera */
|
||||
ID_NEW(G.scene->camera);
|
||||
/* camera */
|
||||
ID_NEW(G.scene->camera);
|
||||
|
||||
/* level 2 */
|
||||
if(level>=2) {
|
||||
if(scen->world) {
|
||||
scen->world->id.us--;
|
||||
scen->world= copy_world(scen->world);
|
||||
}
|
||||
single_obdata_users(0);
|
||||
single_mat_users_expand();
|
||||
single_tex_users_expand();
|
||||
}
|
||||
/* level 2 */
|
||||
if(level>=2) {
|
||||
if(scen->world) {
|
||||
scen->world->id.us--;
|
||||
scen->world= copy_world(scen->world);
|
||||
}
|
||||
single_obdata_users(0);
|
||||
single_mat_users_expand();
|
||||
single_tex_users_expand();
|
||||
}
|
||||
|
||||
clear_id_newpoins();
|
||||
clear_id_newpoins();
|
||||
|
||||
BPY_copy_scriptlink(&sce->scriptlink);
|
||||
BPY_copy_scriptlink(&sce->scriptlink);
|
||||
|
||||
// make a private copy of the avicodecdata
|
||||
// make a private copy of the avicodecdata
|
||||
|
||||
if (sce->r.avicodecdata) {
|
||||
if (sce->r.avicodecdata) {
|
||||
|
||||
scen->r.avicodecdata = MEM_dupallocN(sce->r.avicodecdata);
|
||||
scen->r.avicodecdata->lpFormat = MEM_dupallocN(scen->r.avicodecdata->lpFormat);
|
||||
scen->r.avicodecdata->lpParms = MEM_dupallocN(scen->r.avicodecdata->lpParms);
|
||||
}
|
||||
scen->r.avicodecdata = MEM_dupallocN(sce->r.avicodecdata);
|
||||
scen->r.avicodecdata->lpFormat = MEM_dupallocN(scen->r.avicodecdata->lpFormat);
|
||||
scen->r.avicodecdata->lpParms = MEM_dupallocN(scen->r.avicodecdata->lpParms);
|
||||
}
|
||||
|
||||
// make a private copy of the qtcodecdata
|
||||
// make a private copy of the qtcodecdata
|
||||
|
||||
if (sce->r.qtcodecdata) {
|
||||
scen->r.qtcodecdata = MEM_dupallocN(sce->r.qtcodecdata);
|
||||
scen->r.qtcodecdata->cdParms = MEM_dupallocN(scen->r.qtcodecdata->cdParms);
|
||||
}
|
||||
if (sce->r.qtcodecdata) {
|
||||
scen->r.qtcodecdata = MEM_dupallocN(sce->r.qtcodecdata);
|
||||
scen->r.qtcodecdata->cdParms = MEM_dupallocN(scen->r.qtcodecdata->cdParms);
|
||||
}
|
||||
|
||||
return scen;
|
||||
return scen;
|
||||
}
|
||||
|
||||
void do_info_buttons(unsigned short event)
|
||||
{
|
||||
bScreen *sc, *oldscreen;
|
||||
Scene *sce, *sce1;
|
||||
ScrArea *sa;
|
||||
int nr;
|
||||
bScreen *sc, *oldscreen;
|
||||
Scene *sce, *sce1;
|
||||
ScrArea *sa;
|
||||
int nr;
|
||||
|
||||
switch(event) {
|
||||
switch(event) {
|
||||
|
||||
case B_INFOSCR: /* menu select screen */
|
||||
case B_INFOSCR: /* menu select screen */
|
||||
|
||||
if( G.curscreen->screennr== -2) {
|
||||
if(curarea->winy <50) {
|
||||
sa= closest_bigger_area();
|
||||
areawinset(sa->win);
|
||||
}
|
||||
activate_databrowse((ID *)G.curscreen, ID_SCR, 0, B_INFOSCR,
|
||||
&G.curscreen->screennr, do_info_buttons);
|
||||
return;
|
||||
}
|
||||
if( G.curscreen->screennr < 0) return;
|
||||
if( G.curscreen->screennr== -2) {
|
||||
if(curarea->winy <50) {
|
||||
sa= closest_bigger_area();
|
||||
areawinset(sa->win);
|
||||
}
|
||||
activate_databrowse((ID *)G.curscreen, ID_SCR, 0, B_INFOSCR,
|
||||
&G.curscreen->screennr, do_info_buttons);
|
||||
return;
|
||||
}
|
||||
if( G.curscreen->screennr < 0) return;
|
||||
|
||||
sc= G.main->screen.first;
|
||||
nr= 1;
|
||||
while(sc) {
|
||||
if(nr==G.curscreen->screennr) {
|
||||
if(is_allowed_to_change_screen(sc)) setscreen(sc);
|
||||
else error("Unable to perform function in EditMode");
|
||||
break;
|
||||
}
|
||||
nr++;
|
||||
sc= sc->id.next;
|
||||
}
|
||||
/* last item: NEW SCREEN */
|
||||
if(sc==0) {
|
||||
duplicate_screen();
|
||||
}
|
||||
break;
|
||||
case B_INFODELSCR:
|
||||
sc= G.main->screen.first;
|
||||
nr= 1;
|
||||
while(sc) {
|
||||
if(nr==G.curscreen->screennr) {
|
||||
if(is_allowed_to_change_screen(sc)) setscreen(sc);
|
||||
else error("Unable to perform function in EditMode");
|
||||
break;
|
||||
}
|
||||
nr++;
|
||||
sc= sc->id.next;
|
||||
}
|
||||
/* last item: NEW SCREEN */
|
||||
if(sc==0) {
|
||||
duplicate_screen();
|
||||
}
|
||||
break;
|
||||
case B_INFODELSCR:
|
||||
/*do this event only with buttons, so it can never be called with full-window*/
|
||||
|
||||
if(G.curscreen->id.prev) sc= G.curscreen->id.prev;
|
||||
else if(G.curscreen->id.next) sc= G.curscreen->id.next;
|
||||
else return;
|
||||
if(okee("Delete current screen")) {
|
||||
/* find new G.curscreen */
|
||||
if(G.curscreen->id.prev) sc= G.curscreen->id.prev;
|
||||
else if(G.curscreen->id.next) sc= G.curscreen->id.next;
|
||||
else return;
|
||||
if(okee("Delete current screen")) {
|
||||
/* find new G.curscreen */
|
||||
|
||||
oldscreen= G.curscreen;
|
||||
setscreen(sc); /* this test if sc has a full */
|
||||
unlink_screen(oldscreen);
|
||||
free_libblock(&G.main->screen, oldscreen);
|
||||
}
|
||||
scrarea_queue_headredraw(curarea);
|
||||
oldscreen= G.curscreen;
|
||||
setscreen(sc); /* this test if sc has a full */
|
||||
unlink_screen(oldscreen);
|
||||
free_libblock(&G.main->screen, oldscreen);
|
||||
}
|
||||
scrarea_queue_headredraw(curarea);
|
||||
|
||||
break;
|
||||
case B_INFOSCE: /* menu select scene */
|
||||
break;
|
||||
case B_INFOSCE: /* menu select scene */
|
||||
|
||||
if( G.obedit) {
|
||||
error("Unable to perform function in EditMode");
|
||||
return;
|
||||
}
|
||||
if( G.curscreen->scenenr== -2) {
|
||||
if(curarea->winy <50) {
|
||||
sa= closest_bigger_area();
|
||||
areawinset(sa->win);
|
||||
}
|
||||
activate_databrowse((ID *)G.scene, ID_SCE, 0, B_INFOSCE,
|
||||
&G.curscreen->scenenr, do_info_buttons);
|
||||
return;
|
||||
}
|
||||
if( G.curscreen->scenenr < 0) return;
|
||||
if( G.obedit) {
|
||||
error("Unable to perform function in EditMode");
|
||||
return;
|
||||
}
|
||||
if( G.curscreen->scenenr== -2) {
|
||||
if(curarea->winy <50) {
|
||||
sa= closest_bigger_area();
|
||||
areawinset(sa->win);
|
||||
}
|
||||
activate_databrowse((ID *)G.scene, ID_SCE, 0, B_INFOSCE,
|
||||
&G.curscreen->scenenr, do_info_buttons);
|
||||
return;
|
||||
}
|
||||
if( G.curscreen->scenenr < 0) return;
|
||||
|
||||
sce= G.main->scene.first;
|
||||
nr= 1;
|
||||
while(sce) {
|
||||
if(nr==G.curscreen->scenenr) {
|
||||
if(sce!=G.scene) set_scene(sce);
|
||||
break;
|
||||
}
|
||||
nr++;
|
||||
sce= sce->id.next;
|
||||
}
|
||||
/* last item: NEW SCENE */
|
||||
if(sce==0) {
|
||||
nr= pupmenu("Add scene%t|Empty|Link Objects|Link ObData|Full Copy");
|
||||
if(nr<= 0) return;
|
||||
if(nr==1) {
|
||||
sce= add_scene(G.scene->id.name+2);
|
||||
sce->r= G.scene->r;
|
||||
sce= G.main->scene.first;
|
||||
nr= 1;
|
||||
while(sce) {
|
||||
if(nr==G.curscreen->scenenr) {
|
||||
if(sce!=G.scene) set_scene(sce);
|
||||
break;
|
||||
}
|
||||
nr++;
|
||||
sce= sce->id.next;
|
||||
}
|
||||
/* last item: NEW SCENE */
|
||||
if(sce==0) {
|
||||
nr= pupmenu("Add scene%t|Empty|Link Objects|Link ObData|Full Copy");
|
||||
if(nr<= 0) return;
|
||||
if(nr==1) {
|
||||
sce= add_scene(G.scene->id.name+2);
|
||||
sce->r= G.scene->r;
|
||||
#ifdef _WIN32
|
||||
if (sce->r.avicodecdata) {
|
||||
sce->r.avicodecdata = MEM_dupallocN(G.scene->r.avicodecdata);
|
||||
sce->r.avicodecdata->lpFormat = MEM_dupallocN(G.scene->r.avicodecdata->lpFormat);
|
||||
sce->r.avicodecdata->lpParms = MEM_dupallocN(G.scene->r.avicodecdata->lpParms);
|
||||
}
|
||||
if (sce->r.avicodecdata) {
|
||||
sce->r.avicodecdata = MEM_dupallocN(G.scene->r.avicodecdata);
|
||||
sce->r.avicodecdata->lpFormat = MEM_dupallocN(G.scene->r.avicodecdata->lpFormat);
|
||||
sce->r.avicodecdata->lpParms = MEM_dupallocN(G.scene->r.avicodecdata->lpParms);
|
||||
}
|
||||
#endif
|
||||
#ifdef WITH_QUICKTIME
|
||||
if (sce->r.qtcodecdata) {
|
||||
sce->r.qtcodecdata = MEM_dupallocN(G.scene->r.qtcodecdata);
|
||||
sce->r.qtcodecdata->cdParms = MEM_dupallocN(G.scene->r.qtcodecdata->cdParms);
|
||||
}
|
||||
if (sce->r.qtcodecdata) {
|
||||
sce->r.qtcodecdata = MEM_dupallocN(G.scene->r.qtcodecdata);
|
||||
sce->r.qtcodecdata->cdParms = MEM_dupallocN(G.scene->r.qtcodecdata->cdParms);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
else sce= copy_scene(G.scene, nr-2);
|
||||
}
|
||||
else sce= copy_scene(G.scene, nr-2);
|
||||
|
||||
set_scene(sce);
|
||||
}
|
||||
BIF_preview_changed(G.buts);
|
||||
set_scene(sce);
|
||||
}
|
||||
BIF_preview_changed(G.buts);
|
||||
|
||||
break;
|
||||
case B_INFODELSCE:
|
||||
break;
|
||||
case B_INFODELSCE:
|
||||
|
||||
if(G.scene->id.prev) sce= G.scene->id.prev;
|
||||
else if(G.scene->id.next) sce= G.scene->id.next;
|
||||
else return;
|
||||
if(okee("Delete current scene")) {
|
||||
if(G.scene->id.prev) sce= G.scene->id.prev;
|
||||
else if(G.scene->id.next) sce= G.scene->id.next;
|
||||
else return;
|
||||
if(okee("Delete current scene")) {
|
||||
|
||||
/* check all sets */
|
||||
sce1= G.main->scene.first;
|
||||
while(sce1) {
|
||||
if(sce1->set == G.scene) sce1->set= 0;
|
||||
sce1= sce1->id.next;
|
||||
}
|
||||
/* check all sets */
|
||||
sce1= G.main->scene.first;
|
||||
while(sce1) {
|
||||
if(sce1->set == G.scene) sce1->set= 0;
|
||||
sce1= sce1->id.next;
|
||||
}
|
||||
|
||||
/* check all sequences */
|
||||
clear_scene_in_allseqs(G.scene);
|
||||
/* check all sequences */
|
||||
clear_scene_in_allseqs(G.scene);
|
||||
|
||||
/* al screens */
|
||||
sc= G.main->screen.first;
|
||||
while(sc) {
|
||||
if(sc->scene == G.scene) sc->scene= sce;
|
||||
sc= sc->id.next;
|
||||
}
|
||||
free_libblock(&G.main->scene, G.scene);
|
||||
set_scene(sce);
|
||||
}
|
||||
/* al screens */
|
||||
sc= G.main->screen.first;
|
||||
while(sc) {
|
||||
if(sc->scene == G.scene) sc->scene= sce;
|
||||
sc= sc->id.next;
|
||||
}
|
||||
free_libblock(&G.main->scene, G.scene);
|
||||
set_scene(sce);
|
||||
}
|
||||
|
||||
break;
|
||||
case B_FILEMENU:
|
||||
tbox_setmain(9);
|
||||
toolbox();
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case B_FILEMENU:
|
||||
tbox_setmain(9);
|
||||
toolbox();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void check_packAll()
|
||||
{
|
||||
// first check for dirty images
|
||||
Image *ima;
|
||||
// first check for dirty images
|
||||
Image *ima;
|
||||
|
||||
ima = G.main->image.first;
|
||||
while (ima) {
|
||||
if (ima->ibuf && (ima->ibuf->userflags &= IB_BITMAPDIRTY)) {
|
||||
break;
|
||||
}
|
||||
ima= ima->id.next;
|
||||
}
|
||||
|
||||
if (ima == 0 || okee("Some images are painted on. These changes will be lost. Continue ?")) {
|
||||
packAll();
|
||||
G.fileflags |= G_AUTOPACK;
|
||||
}
|
||||
ima = G.main->image.first;
|
||||
while (ima) {
|
||||
if (ima->ibuf && (ima->ibuf->userflags &= IB_BITMAPDIRTY)) {
|
||||
break;
|
||||
}
|
||||
ima= ima->id.next;
|
||||
}
|
||||
|
||||
if (ima == 0 || okee("Some images are painted on. These changes will be lost. Continue ?")) {
|
||||
packAll();
|
||||
G.fileflags |= G_AUTOPACK;
|
||||
}
|
||||
}
|
||||
|
||||
int write_runtime(char *str, char *exename)
|
||||
{
|
||||
char *freestr= NULL;
|
||||
char *ext = 0;
|
||||
char *freestr= NULL;
|
||||
char *ext = 0;
|
||||
|
||||
#ifdef _WIN32
|
||||
ext = ".exe";
|
||||
ext = ".exe";
|
||||
#endif
|
||||
|
||||
#ifdef __APPLE__
|
||||
ext = ".app";
|
||||
ext = ".app";
|
||||
#endif
|
||||
if (ext && (!BLI_testextensie(str, ext))) {
|
||||
freestr= MEM_mallocN(strlen(str) + strlen(ext) + 1, "write_runtime_check");
|
||||
strcpy(freestr, str);
|
||||
strcat(freestr, ext);
|
||||
str= freestr;
|
||||
}
|
||||
if (ext && (!BLI_testextensie(str, ext))) {
|
||||
freestr= MEM_mallocN(strlen(str) + strlen(ext) + 1, "write_runtime_check");
|
||||
strcpy(freestr, str);
|
||||
strcat(freestr, ext);
|
||||
str= freestr;
|
||||
}
|
||||
|
||||
if (!BLI_exists(str) || saveover(str))
|
||||
BLO_write_runtime(str, exename);
|
||||
if (!BLI_exists(str) || saveover(str))
|
||||
BLO_write_runtime(str, exename);
|
||||
|
||||
if (freestr)
|
||||
MEM_freeN(freestr);
|
||||
if (freestr)
|
||||
MEM_freeN(freestr);
|
||||
|
||||
return 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void write_runtime_check_dynamic(char *str)
|
||||
{
|
||||
write_runtime(str, "blenderdynplayer.exe");
|
||||
write_runtime(str, "blenderdynplayer.exe");
|
||||
}
|
||||
|
||||
static void write_runtime_check(char *str)
|
||||
{
|
||||
char player[128];
|
||||
char player[128];
|
||||
|
||||
strcpy(player, "blenderplayer");
|
||||
strcpy(player, "blenderplayer");
|
||||
|
||||
#ifdef _WIN32
|
||||
strcat(player, ".exe");
|
||||
strcat(player, ".exe");
|
||||
#endif
|
||||
|
||||
#ifdef __APPLE__
|
||||
strcat(player, ".app");
|
||||
strcat(player, ".app");
|
||||
#endif
|
||||
|
||||
write_runtime(str, player);
|
||||
write_runtime(str, player);
|
||||
}
|
||||
/* end keyed functions */
|
||||
|
||||
@@ -585,7 +585,7 @@ static uiBlock *info_file_optionsmenu(void *arg_unused)
|
||||
|
||||
block= uiNewBlock(&curarea->uiblocks, "runtime_options", UI_EMBOSSP, UI_HELV, G.curscreen->mainwin);
|
||||
uiBlockSetButmFunc(block, do_info_file_optionsmenu, NULL);
|
||||
uiBlockSetXOfs(block,-40); // offset to parent button
|
||||
uiBlockSetXOfs(block,-40); // offset to parent button
|
||||
uiBlockSetCol(block, MENUCOL);
|
||||
|
||||
/* flags are case-values */
|
||||
@@ -624,7 +624,7 @@ static uiBlock *info_runtime_optionsmenu(void *arg_unused)
|
||||
uiBlockSetEmboss(block, UI_EMBOSSW);
|
||||
|
||||
uiDefBut(block, LABEL, 0, "Size options:", xco, yco-=20, 114, 19, 0, 0.0, 0.0, 0, 0, "");
|
||||
uiDefButS(block, NUM, 0, "X:", xco+19, yco-=20, 95, 19, &G.scene->r.xplay, 10.0, 2000.0, 0, 0, "Displays current X screen/window resolution. Click to change.");
|
||||
uiDefButS(block, NUM, 0, "X:", xco+19, yco-=20, 95, 19, &G.scene->r.xplay, 10.0, 2000.0, 0, 0, "Displays current X screen/window resolution. Click to change.");
|
||||
uiDefButS(block, NUM, 0, "Y:", xco+19, yco-=20, 95, 19, &G.scene->r.yplay, 10.0, 2000.0, 0, 0, "Displays current Y screen/window resolution. Click to change.");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", xco, yco-=4, 114, 4, NULL, 0.0, 0.0, 0, 0, "");
|
||||
@@ -639,10 +639,10 @@ static uiBlock *info_runtime_optionsmenu(void *arg_unused)
|
||||
/* stereo settings */
|
||||
/* can't use any definition from the game engine here so hardcode it. Change it here when it changes there!
|
||||
* RAS_IRasterizer has definitions:
|
||||
* RAS_STEREO_NOSTEREO 1
|
||||
* RAS_STEREO_NOSTEREO 1
|
||||
* RAS_STEREO_QUADBUFFERED 2
|
||||
* RAS_STEREO_ABOVEBELOW 3
|
||||
* RAS_STEREO_INTERLACED 4 future
|
||||
* RAS_STEREO_ABOVEBELOW 3
|
||||
* RAS_STEREO_INTERLACED 4 future
|
||||
*/
|
||||
uiDefBut(block, LABEL, 0, "Stereo options", xco, yco-=20, 114, 19, 0, 0.0, 0.0, 0, 0, "");
|
||||
uiDefButS(block, ROW, 0, "no stereo", xco+19, yco-=20, 95, 19, &(G.scene->r.stereomode), 6.0, 1.0, 0, 0, "Disables stereo");
|
||||
@@ -667,7 +667,7 @@ static void do_info_file_importmenu(void *arg, int event)
|
||||
|
||||
/* these are no defines, easier this way, the codes are in the function below */
|
||||
switch(event) {
|
||||
|
||||
|
||||
case 0:
|
||||
break;
|
||||
}
|
||||
@@ -703,7 +703,7 @@ static void do_info_file_exportmenu(void *arg, int event)
|
||||
|
||||
/* these are no defines, easier this way, the codes are in the function below */
|
||||
switch(event) {
|
||||
|
||||
|
||||
case 0:
|
||||
write_vrml_fs();
|
||||
break;
|
||||
@@ -927,7 +927,7 @@ static void do_info_add_meshmenu(void *arg, int event)
|
||||
|
||||
static uiBlock *info_add_meshmenu(void *arg_unused)
|
||||
{
|
||||
/* static short tog=0; */
|
||||
/* static short tog=0; */
|
||||
uiBlock *block;
|
||||
short yco= 0;
|
||||
|
||||
@@ -943,7 +943,7 @@ static uiBlock *info_add_meshmenu(void *arg_unused)
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Cylinder|", 0, yco-=20, 160, 19, NULL, 0.0, 0.0, 1, 5, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Tube|", 0, yco-=20, 160, 19, NULL, 0.0, 0.0, 1, 6, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Cone|", 0, yco-=20, 160, 19, NULL, 0.0, 0.0, 1, 7, "");
|
||||
uiDefIconTextBut(block, SEPR, 0, ICON_BLANK1, "", 0, yco-=6, 160, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
uiDefIconTextBut(block, SEPR, 0, ICON_BLANK1, "", 0, yco-=6, 160, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Grid|", 0, yco-=20, 160, 19, NULL, 0.0, 0.0, 1, 8, "");
|
||||
|
||||
uiBlockSetDirection(block, UI_RIGHT);
|
||||
@@ -984,7 +984,7 @@ static void do_info_add_curvemenu(void *arg, int event)
|
||||
|
||||
static uiBlock *info_add_curvemenu(void *arg_unused)
|
||||
{
|
||||
/* static short tog=0; */
|
||||
/* static short tog=0; */
|
||||
uiBlock *block;
|
||||
short yco= 0;
|
||||
|
||||
@@ -1041,7 +1041,7 @@ static void do_info_add_surfacemenu(void *arg, int event)
|
||||
|
||||
static uiBlock *info_add_surfacemenu(void *arg_unused)
|
||||
{
|
||||
/* static short tog=0; */
|
||||
/* static short tog=0; */
|
||||
uiBlock *block;
|
||||
short yco= 0;
|
||||
|
||||
@@ -1094,7 +1094,7 @@ static void do_info_add_metamenu(void *arg, int event)
|
||||
|
||||
static uiBlock *info_add_metamenu(void *arg_unused)
|
||||
{
|
||||
/* static short tog=0; */
|
||||
/* static short tog=0; */
|
||||
uiBlock *block;
|
||||
short xco= 0;
|
||||
|
||||
@@ -1164,7 +1164,7 @@ static void do_info_addmenu(void *arg, int event)
|
||||
|
||||
static uiBlock *info_addmenu(void *arg_unused)
|
||||
{
|
||||
/* static short tog=0; */
|
||||
/* static short tog=0; */
|
||||
uiBlock *block;
|
||||
short yco= 0;
|
||||
|
||||
@@ -1211,7 +1211,7 @@ static void do_info_gamemenu(void *arg, int event)
|
||||
|
||||
static uiBlock *info_gamemenu(void *arg_unused)
|
||||
{
|
||||
/* static short tog=0; */
|
||||
/* static short tog=0; */
|
||||
uiBlock *block;
|
||||
short yco= 0;
|
||||
short menuwidth=120;
|
||||
@@ -1228,7 +1228,7 @@ static uiBlock *info_gamemenu(void *arg_unused)
|
||||
if(G.fileflags & (1 << G_FILE_ENABLE_ALL_FRAMES_BIT)) {
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Enable All Frames", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, G_FILE_ENABLE_ALL_FRAMES_BIT, "");
|
||||
} else {
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Enable All Frames", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, G_FILE_ENABLE_ALL_FRAMES_BIT, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Enable All Frames", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, G_FILE_ENABLE_ALL_FRAMES_BIT, "");
|
||||
}
|
||||
|
||||
if(G.fileflags & (1 << G_FILE_SHOW_FRAMERATE_BIT)) {
|
||||
@@ -1278,23 +1278,23 @@ static void do_info_timelinemenu(void *arg, int event)
|
||||
/* Show and select Keyframes */
|
||||
if (!ob) error("Select an object before showing and selecting its keyframes");
|
||||
else select_select_keys();
|
||||
break;
|
||||
case 3:
|
||||
break;
|
||||
case 3:
|
||||
/* select next keyframe */
|
||||
if (!ob) error("Select an object before selecting its next keyframe");
|
||||
else nextkey_obipo(1);
|
||||
break;
|
||||
case 4:
|
||||
break;
|
||||
case 4:
|
||||
/* select previous keyframe */
|
||||
if (!ob) error("Select an object before selecting its previous keyframe");
|
||||
else nextkey_obipo(-1);
|
||||
break;
|
||||
case 5:
|
||||
case 5:
|
||||
/* next keyframe */
|
||||
if (!ob) error("Select an object before going to its next keyframe");
|
||||
else movekey_obipo(1);
|
||||
break;
|
||||
case 6:
|
||||
break;
|
||||
case 6:
|
||||
/* previous keyframe */
|
||||
if (!ob) error("Select an object before going to its previous keyframe");
|
||||
else movekey_obipo(-1);
|
||||
@@ -1304,7 +1304,7 @@ static void do_info_timelinemenu(void *arg, int event)
|
||||
CFRA++;
|
||||
update_for_newframe();
|
||||
break;
|
||||
case 8:
|
||||
case 8:
|
||||
/* previous frame */
|
||||
CFRA--;
|
||||
if(CFRA<1) CFRA=1;
|
||||
@@ -1337,7 +1337,7 @@ static void do_info_timelinemenu(void *arg, int event)
|
||||
|
||||
static uiBlock *info_timelinemenu(void *arg_unused)
|
||||
{
|
||||
/* static short tog=0; */
|
||||
/* static short tog=0; */
|
||||
uiBlock *block;
|
||||
short yco= 0;
|
||||
short menuwidth=120;
|
||||
@@ -1408,13 +1408,13 @@ static void do_info_rendermenu(void *arg, int event)
|
||||
if(select_area(SPACE_VIEW3D)) {
|
||||
BIF_do_ogl_render(curarea->spacedata.first, 0 );
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
break;
|
||||
case 3:
|
||||
if(select_area(SPACE_VIEW3D)) {
|
||||
BIF_do_ogl_render(curarea->spacedata.first, 1 );
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
break;
|
||||
case 4:
|
||||
BIF_toggle_render_display();
|
||||
break;
|
||||
case 5:
|
||||
@@ -1451,7 +1451,7 @@ static void do_info_rendermenu(void *arg, int event)
|
||||
|
||||
break;
|
||||
|
||||
case 7:
|
||||
case 7:
|
||||
extern_set_butspace(F10KEY);
|
||||
break;
|
||||
}
|
||||
@@ -1460,7 +1460,7 @@ static void do_info_rendermenu(void *arg, int event)
|
||||
|
||||
static uiBlock *info_rendermenu(void *arg_unused)
|
||||
{
|
||||
/* static short tog=0; */
|
||||
/* static short tog=0; */
|
||||
uiBlock *block;
|
||||
short yco= 0;
|
||||
short menuwidth=120;
|
||||
@@ -1502,10 +1502,10 @@ static void do_info_help_websitesmenu(void *arg, int event)
|
||||
{
|
||||
/* these are no defines, easier this way, the codes are in the function below */
|
||||
switch(event) {
|
||||
case 0: /* */
|
||||
case 0: /* */
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
}
|
||||
|
||||
@@ -1567,7 +1567,7 @@ static void do_info_helpmenu(void *arg, int event)
|
||||
|
||||
static uiBlock *info_helpmenu(void *arg_unused)
|
||||
{
|
||||
/* static short tog=0; */
|
||||
/* static short tog=0; */
|
||||
uiBlock *block;
|
||||
short yco= 0;
|
||||
short menuwidth=120;
|
||||
@@ -1618,12 +1618,12 @@ static void info_text(int x, int y)
|
||||
|
||||
|
||||
if(G.obedit) {
|
||||
sprintf(infostr,"Ve:%d-%d Fa:%d-%d Mem:%.2fM ",
|
||||
sprintf(infostr,"Ve:%d-%d Fa:%d-%d Mem:%.2fM ",
|
||||
G.totvertsel, G.totvert, G.totfacesel, G.totface,
|
||||
(mem_in_use>>10)/1024.0);
|
||||
}
|
||||
else {
|
||||
sprintf(infostr,"Ve:%d Fa:%d Ob:%d-%d La:%d Mem:%.2fM ",
|
||||
sprintf(infostr,"Ve:%d Fa:%d Ob:%d-%d La:%d Mem:%.2fM ",
|
||||
G.totvert, G.totface, G.totobj, G.totobjsel, G.totlamp, (mem_in_use>>10)/1024.0);
|
||||
}
|
||||
ob= OBACT;
|
||||
@@ -1631,7 +1631,7 @@ static void info_text(int x, int y)
|
||||
strcat(infostr, ob->id.name+2);
|
||||
}
|
||||
|
||||
if (g_progress_bar) {
|
||||
if (g_progress_bar) {
|
||||
hsize = 4 + (138.0 * g_done);
|
||||
fac1 = 0.5 * g_done; // do some rainbow colours on progress
|
||||
fac2 = 1.0;
|
||||
@@ -1653,7 +1653,7 @@ static void info_text(int x, int y)
|
||||
swatch_color= hsv_to_cpack(fac1, fac2, fac3);
|
||||
|
||||
cpack( swatch_color );
|
||||
glRecti(x-24, y-4, x-24+hsize, y+13);
|
||||
glRecti(x-24, y-4, x-24+hsize, y+13);
|
||||
|
||||
glColor3ub(0, 0, 0);
|
||||
|
||||
@@ -1661,7 +1661,7 @@ static void info_text(int x, int y)
|
||||
|
||||
BIF_DrawString(G.font, headerstr, (U.transopts & TR_MENUS), 0);
|
||||
|
||||
glRasterPos2i(x+120, y);
|
||||
glRasterPos2i(x+120, y);
|
||||
|
||||
BIF_DrawString(G.font, infostr, (U.transopts & TR_MENUS), 0);
|
||||
}
|
||||
@@ -1680,11 +1680,11 @@ void info_buttons(void)
|
||||
if(U.uiflag & FLIPINFOMENU) {
|
||||
uiDefIconButS(block, TOG|BIT|6, B_FLIPINFOMENU, ICON_DISCLOSURE_TRI_RIGHT,
|
||||
xco,2,XIC,YIC-2,
|
||||
&(U.uiflag), 0, 0, 0, 0, "Enables display of pulldown menus");/* dir */
|
||||
&(U.uiflag), 0, 0, 0, 0, "Enables display of pulldown menus");/* dir */
|
||||
} else {
|
||||
uiDefIconButS(block, TOG|BIT|6, B_FLIPINFOMENU, ICON_DISCLOSURE_TRI_DOWN,
|
||||
xco,2,XIC,YIC-2,
|
||||
&(U.uiflag), 0, 0, 0, 0, "Hides pulldown menus");/* dir */
|
||||
&(U.uiflag), 0, 0, 0, 0, "Hides pulldown menus");/* dir */
|
||||
}
|
||||
xco+=XIC;
|
||||
|
||||
@@ -1770,11 +1770,11 @@ void info_buttons(void)
|
||||
if(U.uiflag & FLIPFULLSCREEN) {
|
||||
uiDefIconBut(block, BUT, B_FLIPFULLSCREEN, ICON_WINDOW_WINDOW,
|
||||
(short)(curarea->winx-(XIC*2)-2), 0,XIC,YIC,
|
||||
0, 0, 0, 0, 0, "Toggles Blender to fullscreen mode");/* dir */
|
||||
0, 0, 0, 0, 0, "Toggles Blender to fullscreen mode");/* dir */
|
||||
} else {
|
||||
uiDefIconBut(block, BUT, B_FLIPFULLSCREEN, ICON_WINDOW_FULLSCREEN,
|
||||
(short)(curarea->winx-(XIC*2)-2), 0,XIC,YIC,
|
||||
0, 0, 0, 0, 0, "Toggles Blender to fullscreen mode");/* dir */
|
||||
0, 0, 0, 0, 0, "Toggles Blender to fullscreen mode");/* dir */
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software Foundation,
|
||||
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
|
||||
* All rights reserved.
|
||||
@@ -84,119 +84,119 @@ static int viewmovetemp = 0;
|
||||
|
||||
void do_ipo_buttons(short event)
|
||||
{
|
||||
EditIpo *ei;
|
||||
View2D *v2d;
|
||||
rcti rect;
|
||||
float xmin, ymin, dx, dy;
|
||||
int a, val, first;
|
||||
short mval[2];
|
||||
EditIpo *ei;
|
||||
View2D *v2d;
|
||||
rcti rect;
|
||||
float xmin, ymin, dx, dy;
|
||||
int a, val, first;
|
||||
short mval[2];
|
||||
|
||||
if(curarea->win==0) return;
|
||||
if(curarea->win==0) return;
|
||||
|
||||
switch(event) {
|
||||
case B_IPOHOME:
|
||||
switch(event) {
|
||||
case B_IPOHOME:
|
||||
|
||||
/* boundbox */
|
||||
/* boundbox */
|
||||
|
||||
v2d= &(G.sipo->v2d);
|
||||
first= 1;
|
||||
v2d= &(G.sipo->v2d);
|
||||
first= 1;
|
||||
|
||||
ei= G.sipo->editipo;
|
||||
if(ei==0) return;
|
||||
for(a=0; a<G.sipo->totipo; a++, ei++) {
|
||||
if ISPOIN(ei, flag & IPO_VISIBLE, icu) {
|
||||
|
||||
boundbox_ipocurve(ei->icu);
|
||||
|
||||
if(first) {
|
||||
v2d->tot= ei->icu->totrct;
|
||||
first= 0;
|
||||
}
|
||||
else BLI_union_rctf(&(v2d->tot), &(ei->icu->totrct));
|
||||
}
|
||||
}
|
||||
ei= G.sipo->editipo;
|
||||
if(ei==0) return;
|
||||
for(a=0; a<G.sipo->totipo; a++, ei++) {
|
||||
if ISPOIN(ei, flag & IPO_VISIBLE, icu) {
|
||||
|
||||
boundbox_ipocurve(ei->icu);
|
||||
|
||||
if(first) {
|
||||
v2d->tot= ei->icu->totrct;
|
||||
first= 0;
|
||||
}
|
||||
else BLI_union_rctf(&(v2d->tot), &(ei->icu->totrct));
|
||||
}
|
||||
}
|
||||
|
||||
/* speciale home */
|
||||
if(G.qual & LR_SHIFTKEY) {
|
||||
v2d->tot.xmin= SFRA;
|
||||
v2d->tot.xmax= EFRA;
|
||||
}
|
||||
/* speciale home */
|
||||
if(G.qual & LR_SHIFTKEY) {
|
||||
v2d->tot.xmin= SFRA;
|
||||
v2d->tot.xmax= EFRA;
|
||||
}
|
||||
|
||||
/* zoom out a bit */
|
||||
dx= 0.10*(v2d->tot.xmax-v2d->tot.xmin);
|
||||
dy= 0.10*(v2d->tot.ymax-v2d->tot.ymin);
|
||||
|
||||
if(dx<v2d->min[0]) dx= v2d->min[0];
|
||||
if(dy<v2d->min[1]) dy= v2d->min[1];
|
||||
|
||||
v2d->cur.xmin= v2d->tot.xmin- dx;
|
||||
v2d->cur.xmax= v2d->tot.xmax+ dx;
|
||||
v2d->cur.ymin= v2d->tot.ymin- dy;
|
||||
v2d->cur.ymax= v2d->tot.ymax+ dy;
|
||||
/* zoom out a bit */
|
||||
dx= 0.10*(v2d->tot.xmax-v2d->tot.xmin);
|
||||
dy= 0.10*(v2d->tot.ymax-v2d->tot.ymin);
|
||||
|
||||
if(dx<v2d->min[0]) dx= v2d->min[0];
|
||||
if(dy<v2d->min[1]) dy= v2d->min[1];
|
||||
|
||||
v2d->cur.xmin= v2d->tot.xmin- dx;
|
||||
v2d->cur.xmax= v2d->tot.xmax+ dx;
|
||||
v2d->cur.ymin= v2d->tot.ymin- dy;
|
||||
v2d->cur.ymax= v2d->tot.ymax+ dy;
|
||||
|
||||
test_view2d(G.v2d, curarea->winx, curarea->winy);
|
||||
scrarea_queue_winredraw(curarea);
|
||||
break;
|
||||
case B_IPOBORDER:
|
||||
val= get_border(&rect, 2);
|
||||
if(val) {
|
||||
mval[0]= rect.xmin;
|
||||
mval[1]= rect.ymin;
|
||||
areamouseco_to_ipoco(G.v2d, mval, &xmin, &ymin);
|
||||
mval[0]= rect.xmax;
|
||||
mval[1]= rect.ymax;
|
||||
areamouseco_to_ipoco(G.v2d, mval, &(G.v2d->cur.xmax), &(G.v2d->cur.ymax));
|
||||
G.v2d->cur.xmin= xmin;
|
||||
G.v2d->cur.ymin= ymin;
|
||||
|
||||
test_view2d(G.v2d, curarea->winx, curarea->winy);
|
||||
scrarea_queue_winredraw(curarea);
|
||||
}
|
||||
break;
|
||||
test_view2d(G.v2d, curarea->winx, curarea->winy);
|
||||
scrarea_queue_winredraw(curarea);
|
||||
break;
|
||||
case B_IPOBORDER:
|
||||
val= get_border(&rect, 2);
|
||||
if(val) {
|
||||
mval[0]= rect.xmin;
|
||||
mval[1]= rect.ymin;
|
||||
areamouseco_to_ipoco(G.v2d, mval, &xmin, &ymin);
|
||||
mval[0]= rect.xmax;
|
||||
mval[1]= rect.ymax;
|
||||
areamouseco_to_ipoco(G.v2d, mval, &(G.v2d->cur.xmax), &(G.v2d->cur.ymax));
|
||||
G.v2d->cur.xmin= xmin;
|
||||
G.v2d->cur.ymin= ymin;
|
||||
|
||||
test_view2d(G.v2d, curarea->winx, curarea->winy);
|
||||
scrarea_queue_winredraw(curarea);
|
||||
}
|
||||
break;
|
||||
|
||||
case B_IPOPIN:
|
||||
allqueue (REDRAWIPO, 0);
|
||||
break;
|
||||
case B_IPOPIN:
|
||||
allqueue (REDRAWIPO, 0);
|
||||
break;
|
||||
|
||||
case B_IPOCOPY:
|
||||
copy_editipo();
|
||||
break;
|
||||
case B_IPOPASTE:
|
||||
paste_editipo();
|
||||
break;
|
||||
case B_IPOCONT:
|
||||
set_exprap_ipo(IPO_HORIZ);
|
||||
break;
|
||||
case B_IPOEXTRAP:
|
||||
set_exprap_ipo(IPO_DIR);
|
||||
break;
|
||||
case B_IPOCYCLIC:
|
||||
set_exprap_ipo(IPO_CYCL);
|
||||
break;
|
||||
case B_IPOCYCLICX:
|
||||
set_exprap_ipo(IPO_CYCLX);
|
||||
break;
|
||||
case B_IPOMAIN:
|
||||
make_editipo();
|
||||
scrarea_queue_winredraw(curarea);
|
||||
scrarea_queue_headredraw(curarea);
|
||||
case B_IPOCOPY:
|
||||
copy_editipo();
|
||||
break;
|
||||
case B_IPOPASTE:
|
||||
paste_editipo();
|
||||
break;
|
||||
case B_IPOCONT:
|
||||
set_exprap_ipo(IPO_HORIZ);
|
||||
break;
|
||||
case B_IPOEXTRAP:
|
||||
set_exprap_ipo(IPO_DIR);
|
||||
break;
|
||||
case B_IPOCYCLIC:
|
||||
set_exprap_ipo(IPO_CYCL);
|
||||
break;
|
||||
case B_IPOCYCLICX:
|
||||
set_exprap_ipo(IPO_CYCLX);
|
||||
break;
|
||||
case B_IPOMAIN:
|
||||
make_editipo();
|
||||
scrarea_queue_winredraw(curarea);
|
||||
scrarea_queue_headredraw(curarea);
|
||||
|
||||
break;
|
||||
case B_IPOSHOWKEY:
|
||||
/* reverse value because of winqread */
|
||||
G.sipo->showkey= 1-G.sipo->showkey;
|
||||
ipo_toggle_showkey();
|
||||
scrarea_queue_headredraw(curarea);
|
||||
scrarea_queue_winredraw(curarea);
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
break;
|
||||
case B_VIEW2DZOOM:
|
||||
viewmovetemp= 0;
|
||||
view2dzoom(event);
|
||||
scrarea_queue_headredraw(curarea);
|
||||
break;
|
||||
|
||||
}
|
||||
break;
|
||||
case B_IPOSHOWKEY:
|
||||
/* reverse value because of winqread */
|
||||
G.sipo->showkey= 1-G.sipo->showkey;
|
||||
ipo_toggle_showkey();
|
||||
scrarea_queue_headredraw(curarea);
|
||||
scrarea_queue_winredraw(curarea);
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
break;
|
||||
case B_VIEW2DZOOM:
|
||||
viewmovetemp= 0;
|
||||
view2dzoom(event);
|
||||
scrarea_queue_headredraw(curarea);
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
void ipo_buttons(void)
|
||||
@@ -234,14 +234,14 @@ void ipo_buttons(void)
|
||||
if(ob && give_current_material(ob, ob->actcol)) {
|
||||
uiDefIconButS(block, ROW, B_IPOMAIN, ICON_MATERIAL, xco+=XIC,0,XIC,YIC, &G.sipo->blocktype, 1.0, (float)ID_MA, 0, 0, "Displays Material Ipos");
|
||||
if(G.sipo->blocktype==ID_MA) {
|
||||
uiDefButS(block, NUM, B_IPOMAIN, "", xco+=XIC,0,XIC-4,YIC, &G.sipo->channel, 0.0, 7.0, 0, 0, "Displays Channel Number of the active Material texture. Click to change.");
|
||||
uiDefButS(block, NUM, B_IPOMAIN, "", xco+=XIC,0,XIC-4,YIC, &G.sipo->channel, 0.0, 7.0, 0, 0, "Displays Channel Number of the active Material texture. Click to change.");
|
||||
xco-= 4;
|
||||
}
|
||||
}
|
||||
if(G.scene->world) {
|
||||
uiDefIconButS(block, ROW, B_IPOMAIN, ICON_WORLD, xco+=XIC,0,XIC,YIC, &G.sipo->blocktype, 1.0, (float)ID_WO, 0, 0, "Display World Ipos");
|
||||
if(G.sipo->blocktype==ID_WO) {
|
||||
uiDefButS(block, NUM, B_IPOMAIN, "", xco+=XIC,0,XIC-4,YIC, &G.sipo->channel, 0.0, 7.0, 0, 0, "Displays Channel Number of the active World texture. Click to change.");
|
||||
uiDefButS(block, NUM, B_IPOMAIN, "", xco+=XIC,0,XIC-4,YIC, &G.sipo->channel, 0.0, 7.0, 0, 0, "Displays Channel Number of the active World texture. Click to change.");
|
||||
xco-= 4;
|
||||
}
|
||||
}
|
||||
@@ -255,7 +255,7 @@ void ipo_buttons(void)
|
||||
if(ob && ob->type==OB_LAMP) {
|
||||
uiDefIconButS(block, ROW, B_IPOMAIN, ICON_LAMP, xco+=XIC,0,XIC,YIC, &G.sipo->blocktype, 1.0, (float)ID_LA, 0, 0, "Display Lamp Ipos");
|
||||
if(G.sipo->blocktype==ID_LA) {
|
||||
uiDefButS(block, NUM, B_IPOMAIN, "", xco+=XIC,0,XIC-4,YIC, &G.sipo->channel, 0.0, 7.0, 0, 0, "Displays Channel Number of the active Lamp texture. Click to change.");
|
||||
uiDefButS(block, NUM, B_IPOMAIN, "", xco+=XIC,0,XIC-4,YIC, &G.sipo->channel, 0.0, 7.0, 0, 0, "Displays Channel Number of the active Lamp texture. Click to change.");
|
||||
xco-= 4;
|
||||
}
|
||||
}
|
||||
@@ -301,8 +301,8 @@ void ipo_buttons(void)
|
||||
/* EXTRAP */
|
||||
uiDefIconBut(block, BUT, B_IPOCONT, ICON_CONSTANT, xco+=XIC,0,XIC,YIC, 0, 0, 0, 0, 0, "Sets the extend mode to constant");
|
||||
uiDefIconBut(block, BUT, B_IPOEXTRAP, ICON_LINEAR, xco+=XIC,0,XIC,YIC, 0, 0, 0, 0, 0, "Sets the extend mode to extrapolation");
|
||||
uiDefIconBut(block, BUT, B_IPOCYCLIC, ICON_CYCLIC, xco+=XIC,0,XIC,YIC, 0, 0, 0, 0, 0, "Sets the extend mode to cyclic");
|
||||
uiDefIconBut(block, BUT, B_IPOCYCLICX, ICON_CYCLICLINEAR, xco+=XIC,0,XIC,YIC, 0, 0, 0, 0, 0, "Sets the extend mode to cyclic extrapolation");
|
||||
uiDefIconBut(block, BUT, B_IPOCYCLIC, ICON_CYCLIC, xco+=XIC,0,XIC,YIC, 0, 0, 0, 0, 0, "Sets the extend mode to cyclic");
|
||||
uiDefIconBut(block, BUT, B_IPOCYCLICX, ICON_CYCLICLINEAR, xco+=XIC,0,XIC,YIC, 0, 0, 0, 0, 0, "Sets the extend mode to cyclic extrapolation");
|
||||
xco+= XIC/2;
|
||||
|
||||
uiClearButLock();
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software Foundation,
|
||||
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
|
||||
* All rights reserved.
|
||||
@@ -73,28 +73,28 @@
|
||||
|
||||
void do_nla_buttons(unsigned short event)
|
||||
{
|
||||
View2D *v2d;
|
||||
View2D *v2d;
|
||||
|
||||
switch(event){
|
||||
case B_NLAHOME:
|
||||
// Find X extents
|
||||
v2d= &(G.snla->v2d);
|
||||
switch(event){
|
||||
case B_NLAHOME:
|
||||
// Find X extents
|
||||
v2d= &(G.snla->v2d);
|
||||
|
||||
v2d->cur.xmin = G.scene->r.sfra;
|
||||
v2d->cur.ymin=-SCROLLB;
|
||||
|
||||
// if (!G.saction->action){
|
||||
v2d->cur.xmax=G.scene->r.efra;
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// v2d->cur.xmax=calc_action_length(G.saction->action)+1;
|
||||
// }
|
||||
|
||||
test_view2d(G.v2d, curarea->winx, curarea->winy);
|
||||
addqueue (curarea->win, REDRAW, 1);
|
||||
break;
|
||||
}
|
||||
v2d->cur.xmin = G.scene->r.sfra;
|
||||
v2d->cur.ymin=-SCROLLB;
|
||||
|
||||
// if (!G.saction->action){
|
||||
v2d->cur.xmax=G.scene->r.efra;
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// v2d->cur.xmax=calc_action_length(G.saction->action)+1;
|
||||
// }
|
||||
|
||||
test_view2d(G.v2d, curarea->winx, curarea->winy);
|
||||
addqueue (curarea->win, REDRAW, 1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void nla_buttons(void)
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software Foundation,
|
||||
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
|
||||
* All rights reserved.
|
||||
@@ -74,31 +74,31 @@ static int viewmovetemp = 0;
|
||||
|
||||
void do_oops_buttons(short event)
|
||||
{
|
||||
float dx, dy;
|
||||
|
||||
if(curarea->win==0) return;
|
||||
float dx, dy;
|
||||
|
||||
if(curarea->win==0) return;
|
||||
|
||||
switch(event) {
|
||||
case B_OOPSHOME:
|
||||
boundbox_oops();
|
||||
G.v2d->cur= G.v2d->tot;
|
||||
dx= 0.15*(G.v2d->cur.xmax-G.v2d->cur.xmin);
|
||||
dy= 0.15*(G.v2d->cur.ymax-G.v2d->cur.ymin);
|
||||
G.v2d->cur.xmin-= dx;
|
||||
G.v2d->cur.xmax+= dx;
|
||||
G.v2d->cur.ymin-= dy;
|
||||
G.v2d->cur.ymax+= dy;
|
||||
test_view2d(G.v2d, curarea->winx, curarea->winy);
|
||||
scrarea_queue_winredraw(curarea);
|
||||
break;
|
||||
|
||||
case B_NEWOOPS:
|
||||
scrarea_queue_winredraw(curarea);
|
||||
scrarea_queue_headredraw(curarea);
|
||||
G.soops->lockpoin= 0;
|
||||
break;
|
||||
}
|
||||
|
||||
switch(event) {
|
||||
case B_OOPSHOME:
|
||||
boundbox_oops();
|
||||
G.v2d->cur= G.v2d->tot;
|
||||
dx= 0.15*(G.v2d->cur.xmax-G.v2d->cur.xmin);
|
||||
dy= 0.15*(G.v2d->cur.ymax-G.v2d->cur.ymin);
|
||||
G.v2d->cur.xmin-= dx;
|
||||
G.v2d->cur.xmax+= dx;
|
||||
G.v2d->cur.ymin-= dy;
|
||||
G.v2d->cur.ymax+= dy;
|
||||
test_view2d(G.v2d, curarea->winx, curarea->winy);
|
||||
scrarea_queue_winredraw(curarea);
|
||||
break;
|
||||
|
||||
case B_NEWOOPS:
|
||||
scrarea_queue_winredraw(curarea);
|
||||
scrarea_queue_headredraw(curarea);
|
||||
G.soops->lockpoin= 0;
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void oops_buttons(void)
|
||||
@@ -156,7 +156,7 @@ void oops_buttons(void)
|
||||
else strcpy(naam, oops->id->name);
|
||||
|
||||
cpack(0x0);
|
||||
glRasterPos2i(xco+=XIC+10, 5);
|
||||
glRasterPos2i(xco+=XIC+10, 5);
|
||||
BMF_DrawString(uiBlockGetCurFont(block), naam);
|
||||
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software Foundation,
|
||||
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
|
||||
* All rights reserved.
|
||||
@@ -75,22 +75,22 @@ static int viewmovetemp = 0;
|
||||
|
||||
void do_seq_buttons(short event)
|
||||
{
|
||||
Editing *ed;
|
||||
Editing *ed;
|
||||
|
||||
ed= G.scene->ed;
|
||||
if(ed==0) return;
|
||||
ed= G.scene->ed;
|
||||
if(ed==0) return;
|
||||
|
||||
switch(event) {
|
||||
case B_SEQHOME:
|
||||
G.v2d->cur= G.v2d->tot;
|
||||
test_view2d(G.v2d, curarea->winx, curarea->winy);
|
||||
scrarea_queue_winredraw(curarea);
|
||||
break;
|
||||
case B_SEQCLEAR:
|
||||
free_imbuf_seq();
|
||||
allqueue(REDRAWSEQ, 1);
|
||||
break;
|
||||
}
|
||||
switch(event) {
|
||||
case B_SEQHOME:
|
||||
G.v2d->cur= G.v2d->tot;
|
||||
test_view2d(G.v2d, curarea->winx, curarea->winy);
|
||||
scrarea_queue_winredraw(curarea);
|
||||
break;
|
||||
case B_SEQCLEAR:
|
||||
free_imbuf_seq();
|
||||
allqueue(REDRAWSEQ, 1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void seq_buttons()
|
||||
@@ -99,9 +99,9 @@ void seq_buttons()
|
||||
short xco;
|
||||
char naam[20];
|
||||
uiBlock *block;
|
||||
|
||||
|
||||
sseq= curarea->spacedata.first;
|
||||
|
||||
|
||||
sprintf(naam, "header %d", curarea->headwin);
|
||||
block= uiNewBlock(&curarea->uiblocks, naam, UI_EMBOSSX, UI_HELV, curarea->headwin);
|
||||
uiBlockSetCol(block, BUTPURPLE);
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software Foundation,
|
||||
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
|
||||
* All rights reserved.
|
||||
@@ -77,93 +77,93 @@
|
||||
|
||||
void do_sound_buttons(unsigned short event)
|
||||
{
|
||||
ID *id, *idtest;
|
||||
int nr;
|
||||
char name[256];
|
||||
ID *id, *idtest;
|
||||
int nr;
|
||||
char name[256];
|
||||
|
||||
switch(event) {
|
||||
switch(event) {
|
||||
|
||||
case B_SOUNDBROWSE:
|
||||
if(G.ssound->sndnr== -2) {
|
||||
activate_databrowse((ID *)G.ssound->sound, ID_SO, 0,
|
||||
B_SOUNDBROWSE, &G.ssound->sndnr, do_sound_buttons);
|
||||
return;
|
||||
}
|
||||
if (G.ssound->sndnr < 0) break;
|
||||
if (G.ssound->sndnr == 32766) {
|
||||
if (G.ssound && G.ssound->sound) strcpy(name, G.ssound->sound->name);
|
||||
else strcpy(name, U.sounddir);
|
||||
activate_fileselect(FILE_SPECIAL, "SELECT WAV FILE", name,
|
||||
load_space_sound);
|
||||
} else {
|
||||
nr= 1;
|
||||
id= (ID *)G.ssound->sound;
|
||||
case B_SOUNDBROWSE:
|
||||
if(G.ssound->sndnr== -2) {
|
||||
activate_databrowse((ID *)G.ssound->sound, ID_SO, 0,
|
||||
B_SOUNDBROWSE, &G.ssound->sndnr, do_sound_buttons);
|
||||
return;
|
||||
}
|
||||
if (G.ssound->sndnr < 0) break;
|
||||
if (G.ssound->sndnr == 32766) {
|
||||
if (G.ssound && G.ssound->sound) strcpy(name, G.ssound->sound->name);
|
||||
else strcpy(name, U.sounddir);
|
||||
activate_fileselect(FILE_SPECIAL, "SELECT WAV FILE", name,
|
||||
load_space_sound);
|
||||
} else {
|
||||
nr= 1;
|
||||
id= (ID *)G.ssound->sound;
|
||||
|
||||
idtest= G.main->sound.first;
|
||||
while(idtest) {
|
||||
if(nr==G.ssound->sndnr) {
|
||||
break;
|
||||
}
|
||||
nr++;
|
||||
idtest= idtest->next;
|
||||
}
|
||||
idtest= G.main->sound.first;
|
||||
while(idtest) {
|
||||
if(nr==G.ssound->sndnr) {
|
||||
break;
|
||||
}
|
||||
nr++;
|
||||
idtest= idtest->next;
|
||||
}
|
||||
|
||||
if(idtest==0) { /* no new */
|
||||
return;
|
||||
}
|
||||
if(idtest==0) { /* no new */
|
||||
return;
|
||||
}
|
||||
|
||||
if(idtest!=id) {
|
||||
G.ssound->sound= (bSound *)idtest;
|
||||
if(idtest->us==0) idtest->us= 1;
|
||||
allqueue(REDRAWSOUND, 0);
|
||||
}
|
||||
}
|
||||
if(idtest!=id) {
|
||||
G.ssound->sound= (bSound *)idtest;
|
||||
if(idtest->us==0) idtest->us= 1;
|
||||
allqueue(REDRAWSOUND, 0);
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
case B_SOUNDBROWSE2:
|
||||
id = (ID *)G.buts->lockpoin;
|
||||
if(G.buts->texnr == -2) {
|
||||
activate_databrowse(id, ID_SO, 0, B_SOUNDBROWSE2,
|
||||
&G.buts->texnr, do_sound_buttons);
|
||||
return;
|
||||
}
|
||||
if (G.buts->texnr < 0) break;
|
||||
if (G.buts->texnr == 32766) {
|
||||
if (id) strcpy(name, ((bSound *)id)->name);
|
||||
else strcpy(name, U.sounddir);
|
||||
activate_fileselect(FILE_SPECIAL, "SELECT WAV FILE",
|
||||
name, load_sound_buttons);
|
||||
} else {
|
||||
nr= 1;
|
||||
break;
|
||||
case B_SOUNDBROWSE2:
|
||||
id = (ID *)G.buts->lockpoin;
|
||||
if(G.buts->texnr == -2) {
|
||||
activate_databrowse(id, ID_SO, 0, B_SOUNDBROWSE2,
|
||||
&G.buts->texnr, do_sound_buttons);
|
||||
return;
|
||||
}
|
||||
if (G.buts->texnr < 0) break;
|
||||
if (G.buts->texnr == 32766) {
|
||||
if (id) strcpy(name, ((bSound *)id)->name);
|
||||
else strcpy(name, U.sounddir);
|
||||
activate_fileselect(FILE_SPECIAL, "SELECT WAV FILE",
|
||||
name, load_sound_buttons);
|
||||
} else {
|
||||
nr= 1;
|
||||
|
||||
idtest= G.main->sound.first;
|
||||
while (idtest) {
|
||||
if(nr == G.buts->texnr) {
|
||||
break;
|
||||
}
|
||||
nr++;
|
||||
idtest = idtest->next;
|
||||
}
|
||||
idtest= G.main->sound.first;
|
||||
while (idtest) {
|
||||
if(nr == G.buts->texnr) {
|
||||
break;
|
||||
}
|
||||
nr++;
|
||||
idtest = idtest->next;
|
||||
}
|
||||
|
||||
if (idtest == 0) { /* geen new */
|
||||
return;
|
||||
}
|
||||
if (idtest == 0) { /* geen new */
|
||||
return;
|
||||
}
|
||||
|
||||
if (idtest != id) {
|
||||
G.buts->lockpoin = (bSound *)idtest;
|
||||
if(idtest->us==0) idtest->us= 1;
|
||||
//allqueue(REDRAWBUTSSOUND, 0);
|
||||
BIF_preview_changed(G.buts);
|
||||
}
|
||||
}
|
||||
break;
|
||||
if (idtest != id) {
|
||||
G.buts->lockpoin = (bSound *)idtest;
|
||||
if(idtest->us==0) idtest->us= 1;
|
||||
//allqueue(REDRAWBUTSSOUND, 0);
|
||||
BIF_preview_changed(G.buts);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case B_SOUNDHOME:
|
||||
G.v2d->cur= G.v2d->tot;
|
||||
test_view2d(G.v2d, curarea->winx, curarea->winy);
|
||||
scrarea_queue_winredraw(curarea);
|
||||
break;
|
||||
}
|
||||
case B_SOUNDHOME:
|
||||
G.v2d->cur= G.v2d->tot;
|
||||
test_view2d(G.v2d, curarea->winx, curarea->winy);
|
||||
scrarea_queue_winredraw(curarea);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sound_buttons(void)
|
||||
@@ -226,35 +226,35 @@ void sound_buttons(void)
|
||||
|
||||
void load_space_sound(char *str)
|
||||
{
|
||||
bSound *sound;
|
||||
bSound *sound;
|
||||
|
||||
sound= sound_new_sound(str);
|
||||
if (sound) {
|
||||
if (G.ssound) {
|
||||
G.ssound->sound= sound;
|
||||
}
|
||||
} else {
|
||||
error("Not a valid sample: %s", str);
|
||||
}
|
||||
sound= sound_new_sound(str);
|
||||
if (sound) {
|
||||
if (G.ssound) {
|
||||
G.ssound->sound= sound;
|
||||
}
|
||||
} else {
|
||||
error("Not a valid sample: %s", str);
|
||||
}
|
||||
|
||||
allqueue(REDRAWSOUND, 0);
|
||||
allqueue(REDRAWBUTSLOGIC, 0);
|
||||
allqueue(REDRAWSOUND, 0);
|
||||
allqueue(REDRAWBUTSLOGIC, 0);
|
||||
}
|
||||
|
||||
void load_sound_buttons(char *str)
|
||||
{
|
||||
bSound *sound;
|
||||
bSound *sound;
|
||||
|
||||
sound= sound_new_sound(str);
|
||||
if (sound) {
|
||||
if (curarea && curarea->spacetype==SPACE_BUTS) {
|
||||
// if (G.buts->mainb == BUTS_SOUND) {
|
||||
// G.buts->lockpoin = sound;
|
||||
// }
|
||||
}
|
||||
} else {
|
||||
error("Not a valid sample: %s", str);
|
||||
}
|
||||
sound= sound_new_sound(str);
|
||||
if (sound) {
|
||||
if (curarea && curarea->spacetype==SPACE_BUTS) {
|
||||
// if (G.buts->mainb == BUTS_SOUND) {
|
||||
// G.buts->lockpoin = sound;
|
||||
// }
|
||||
}
|
||||
} else {
|
||||
error("Not a valid sample: %s", str);
|
||||
}
|
||||
|
||||
//allqueue(REDRAWBUTSSOUND, 0);
|
||||
//allqueue(REDRAWBUTSSOUND, 0);
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software Foundation,
|
||||
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
|
||||
* All rights reserved.
|
||||
@@ -78,109 +78,109 @@
|
||||
|
||||
void do_text_buttons(unsigned short event)
|
||||
{
|
||||
SpaceText *st= curarea->spacedata.first;
|
||||
ID *id, *idtest;
|
||||
int nr= 1;
|
||||
Text *text;
|
||||
|
||||
if (!st) return;
|
||||
if (st->spacetype != SPACE_TEXT) return;
|
||||
|
||||
switch (event) {
|
||||
case B_TEXTBROWSE:
|
||||
if (st->menunr==-2) {
|
||||
activate_databrowse((ID *)st->text, ID_TXT, 0, B_TEXTBROWSE,
|
||||
&st->menunr, do_text_buttons);
|
||||
break;
|
||||
}
|
||||
if(st->menunr < 0) break;
|
||||
|
||||
text= st->text;
|
||||
SpaceText *st= curarea->spacedata.first;
|
||||
ID *id, *idtest;
|
||||
int nr= 1;
|
||||
Text *text;
|
||||
|
||||
if (!st) return;
|
||||
if (st->spacetype != SPACE_TEXT) return;
|
||||
|
||||
switch (event) {
|
||||
case B_TEXTBROWSE:
|
||||
if (st->menunr==-2) {
|
||||
activate_databrowse((ID *)st->text, ID_TXT, 0, B_TEXTBROWSE,
|
||||
&st->menunr, do_text_buttons);
|
||||
break;
|
||||
}
|
||||
if(st->menunr < 0) break;
|
||||
|
||||
text= st->text;
|
||||
|
||||
nr= 1;
|
||||
id= (ID *)text;
|
||||
|
||||
if (st->menunr==32767) {
|
||||
st->text= (Text *)add_empty_text();
|
||||
nr= 1;
|
||||
id= (ID *)text;
|
||||
|
||||
if (st->menunr==32767) {
|
||||
st->text= (Text *)add_empty_text();
|
||||
|
||||
st->top= 0;
|
||||
|
||||
allqueue(REDRAWTEXT, 0);
|
||||
allqueue(REDRAWHEADERS, 0);
|
||||
}
|
||||
else if (st->menunr==32766) {
|
||||
activate_fileselect(FILE_SPECIAL, "LOAD TEXT FILE", G.sce, add_text_fs);
|
||||
return;
|
||||
}
|
||||
else {
|
||||
idtest= G.main->text.first;
|
||||
while(idtest) {
|
||||
if(nr==st->menunr) {
|
||||
break;
|
||||
}
|
||||
nr++;
|
||||
idtest= idtest->next;
|
||||
}
|
||||
if(idtest==0) { /* new text */
|
||||
activate_fileselect(FILE_SPECIAL, "LOAD TEXT FILE",
|
||||
G.sce, add_text_fs);
|
||||
return;
|
||||
}
|
||||
if(idtest!=id) {
|
||||
st->text= (Text *)idtest;
|
||||
st->top= 0;
|
||||
|
||||
pop_space_text(st);
|
||||
|
||||
allqueue(REDRAWTEXT, 0);
|
||||
allqueue(REDRAWHEADERS, 0);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case B_TEXTDELETE:
|
||||
|
||||
text= st->text;
|
||||
if (!text) return;
|
||||
|
||||
BPY_clear_bad_scriptlinks(text);
|
||||
free_text_controllers(text);
|
||||
|
||||
unlink_text(text);
|
||||
free_libblock(&G.main->text, text);
|
||||
|
||||
break;
|
||||
|
||||
st->top= 0;
|
||||
|
||||
allqueue(REDRAWTEXT, 0);
|
||||
allqueue(REDRAWHEADERS, 0);
|
||||
}
|
||||
else if (st->menunr==32766) {
|
||||
activate_fileselect(FILE_SPECIAL, "LOAD TEXT FILE", G.sce, add_text_fs);
|
||||
return;
|
||||
}
|
||||
else {
|
||||
idtest= G.main->text.first;
|
||||
while(idtest) {
|
||||
if(nr==st->menunr) {
|
||||
break;
|
||||
}
|
||||
nr++;
|
||||
idtest= idtest->next;
|
||||
}
|
||||
if(idtest==0) { /* new text */
|
||||
activate_fileselect(FILE_SPECIAL, "LOAD TEXT FILE",
|
||||
G.sce, add_text_fs);
|
||||
return;
|
||||
}
|
||||
if(idtest!=id) {
|
||||
st->text= (Text *)idtest;
|
||||
st->top= 0;
|
||||
|
||||
pop_space_text(st);
|
||||
|
||||
allqueue(REDRAWTEXT, 0);
|
||||
allqueue(REDRAWHEADERS, 0);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case B_TEXTDELETE:
|
||||
|
||||
text= st->text;
|
||||
if (!text) return;
|
||||
|
||||
BPY_clear_bad_scriptlinks(text);
|
||||
free_text_controllers(text);
|
||||
|
||||
unlink_text(text);
|
||||
free_libblock(&G.main->text, text);
|
||||
|
||||
break;
|
||||
|
||||
/*
|
||||
case B_TEXTSTORE:
|
||||
st->text->flags ^= TXT_ISEXT;
|
||||
|
||||
allqueue(REDRAWHEADERS, 0);
|
||||
break;
|
||||
*/
|
||||
case B_TEXTLINENUM:
|
||||
if(st->showlinenrs)
|
||||
st->showlinenrs = 0;
|
||||
else
|
||||
st->showlinenrs = 1;
|
||||
case B_TEXTSTORE:
|
||||
st->text->flags ^= TXT_ISEXT;
|
||||
|
||||
allqueue(REDRAWHEADERS, 0);
|
||||
break;
|
||||
*/
|
||||
case B_TEXTLINENUM:
|
||||
if(st->showlinenrs)
|
||||
st->showlinenrs = 0;
|
||||
else
|
||||
st->showlinenrs = 1;
|
||||
|
||||
allqueue(REDRAWTEXT, 0);
|
||||
allqueue(REDRAWHEADERS, 0);
|
||||
break;
|
||||
allqueue(REDRAWTEXT, 0);
|
||||
allqueue(REDRAWHEADERS, 0);
|
||||
break;
|
||||
|
||||
case B_TEXTFONT:
|
||||
switch(st->font_id) {
|
||||
case 0:
|
||||
st->lheight= 12; break;
|
||||
case 1:
|
||||
st->lheight= 15; break;
|
||||
}
|
||||
case B_TEXTFONT:
|
||||
switch(st->font_id) {
|
||||
case 0:
|
||||
st->lheight= 12; break;
|
||||
case 1:
|
||||
st->lheight= 15; break;
|
||||
}
|
||||
|
||||
allqueue(REDRAWTEXT, 0);
|
||||
allqueue(REDRAWHEADERS, 0);
|
||||
allqueue(REDRAWTEXT, 0);
|
||||
allqueue(REDRAWHEADERS, 0);
|
||||
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void text_buttons(void)
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software Foundation,
|
||||
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
|
||||
* All rights reserved.
|
||||
@@ -106,2775 +106,2775 @@
|
||||
* This can be cleaned when I make some new 'mode' icons.
|
||||
*/
|
||||
|
||||
#define V3D_OBJECTMODE_SEL ICON_ORTHO
|
||||
#define V3D_EDITMODE_SEL ICON_EDITMODE_HLT
|
||||
#define V3D_FACESELECTMODE_SEL ICON_FACESEL_HLT
|
||||
#define V3D_VERTEXPAINTMODE_SEL ICON_VPAINT_HLT
|
||||
#define V3D_TEXTUREPAINTMODE_SEL ICON_TPAINT_HLT
|
||||
#define V3D_WEIGHTPAINTMODE_SEL ICON_WPAINT_HLT
|
||||
#define V3D_POSEMODE_SEL ICON_POSE_HLT
|
||||
#define V3D_OBJECTMODE_SEL ICON_ORTHO
|
||||
#define V3D_EDITMODE_SEL ICON_EDITMODE_HLT
|
||||
#define V3D_FACESELECTMODE_SEL ICON_FACESEL_HLT
|
||||
#define V3D_VERTEXPAINTMODE_SEL ICON_VPAINT_HLT
|
||||
#define V3D_TEXTUREPAINTMODE_SEL ICON_TPAINT_HLT
|
||||
#define V3D_WEIGHTPAINTMODE_SEL ICON_WPAINT_HLT
|
||||
#define V3D_POSEMODE_SEL ICON_POSE_HLT
|
||||
|
||||
static int viewmovetemp = 0;
|
||||
|
||||
void do_layer_buttons(short event)
|
||||
{
|
||||
static int oldlay= 1;
|
||||
|
||||
if(G.vd==0) return;
|
||||
if(G.vd->localview) return;
|
||||
|
||||
if(event==-1 && (G.qual & LR_CTRLKEY)) {
|
||||
G.vd->scenelock= !G.vd->scenelock;
|
||||
do_view3d_buttons(B_SCENELOCK);
|
||||
} else if (event==-1) {
|
||||
if(G.vd->lay== (2<<20)-1) {
|
||||
if(G.qual & LR_SHIFTKEY) G.vd->lay= oldlay;
|
||||
}
|
||||
else {
|
||||
oldlay= G.vd->lay;
|
||||
G.vd->lay= (2<<20)-1;
|
||||
}
|
||||
|
||||
if(G.vd->scenelock) handle_view3d_lock();
|
||||
scrarea_queue_winredraw(curarea);
|
||||
}
|
||||
else {
|
||||
if(G.qual & LR_ALTKEY) {
|
||||
if(event<11) event+= 10;
|
||||
}
|
||||
if(G.qual & LR_SHIFTKEY) {
|
||||
if(G.vd->lay & (1<<event)) G.vd->lay -= (1<<event);
|
||||
else G.vd->lay += (1<<event);
|
||||
}
|
||||
do_view3d_buttons(event+B_LAY);
|
||||
}
|
||||
/* redraw seems double: but the queue nicely handles that */
|
||||
scrarea_queue_headredraw(curarea);
|
||||
|
||||
if(curarea->spacetype==SPACE_OOPS) allqueue(REDRAWVIEW3D, 1); /* 1==also do headwin */
|
||||
|
||||
static int oldlay= 1;
|
||||
|
||||
if(G.vd==0) return;
|
||||
if(G.vd->localview) return;
|
||||
|
||||
if(event==-1 && (G.qual & LR_CTRLKEY)) {
|
||||
G.vd->scenelock= !G.vd->scenelock;
|
||||
do_view3d_buttons(B_SCENELOCK);
|
||||
} else if (event==-1) {
|
||||
if(G.vd->lay== (2<<20)-1) {
|
||||
if(G.qual & LR_SHIFTKEY) G.vd->lay= oldlay;
|
||||
}
|
||||
else {
|
||||
oldlay= G.vd->lay;
|
||||
G.vd->lay= (2<<20)-1;
|
||||
}
|
||||
|
||||
if(G.vd->scenelock) handle_view3d_lock();
|
||||
scrarea_queue_winredraw(curarea);
|
||||
}
|
||||
else {
|
||||
if(G.qual & LR_ALTKEY) {
|
||||
if(event<11) event+= 10;
|
||||
}
|
||||
if(G.qual & LR_SHIFTKEY) {
|
||||
if(G.vd->lay & (1<<event)) G.vd->lay -= (1<<event);
|
||||
else G.vd->lay += (1<<event);
|
||||
}
|
||||
do_view3d_buttons(event+B_LAY);
|
||||
}
|
||||
/* redraw seems double: but the queue nicely handles that */
|
||||
scrarea_queue_headredraw(curarea);
|
||||
|
||||
if(curarea->spacetype==SPACE_OOPS) allqueue(REDRAWVIEW3D, 1); /* 1==also do headwin */
|
||||
|
||||
}
|
||||
|
||||
static void do_view3d_view_cameracontrolsmenu(void *arg, int event)
|
||||
{
|
||||
switch(event) {
|
||||
case 0: /* Orbit Left */
|
||||
persptoetsen(PAD4);
|
||||
break;
|
||||
case 1: /* Orbit Right */
|
||||
persptoetsen(PAD6);
|
||||
break;
|
||||
case 2: /* Orbit Up */
|
||||
persptoetsen(PAD8);
|
||||
break;
|
||||
case 3: /* Orbit Down */
|
||||
persptoetsen(PAD2);
|
||||
break;
|
||||
case 4: /* Zoom In */
|
||||
persptoetsen(PADPLUSKEY);
|
||||
break;
|
||||
case 5: /* Zoom Out */
|
||||
persptoetsen(PADMINUS);
|
||||
break;
|
||||
case 6: /* Reset Zoom */
|
||||
persptoetsen(PADENTER);
|
||||
break;
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
switch(event) {
|
||||
case 0: /* Orbit Left */
|
||||
persptoetsen(PAD4);
|
||||
break;
|
||||
case 1: /* Orbit Right */
|
||||
persptoetsen(PAD6);
|
||||
break;
|
||||
case 2: /* Orbit Up */
|
||||
persptoetsen(PAD8);
|
||||
break;
|
||||
case 3: /* Orbit Down */
|
||||
persptoetsen(PAD2);
|
||||
break;
|
||||
case 4: /* Zoom In */
|
||||
persptoetsen(PADPLUSKEY);
|
||||
break;
|
||||
case 5: /* Zoom Out */
|
||||
persptoetsen(PADMINUS);
|
||||
break;
|
||||
case 6: /* Reset Zoom */
|
||||
persptoetsen(PADENTER);
|
||||
break;
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
}
|
||||
|
||||
static uiBlock *view3d_view_cameracontrolsmenu(void *arg_unused)
|
||||
{
|
||||
/* static short tog=0; */
|
||||
uiBlock *block;
|
||||
short yco= 0, menuwidth=120;
|
||||
|
||||
block= uiNewBlock(&curarea->uiblocks, "view3d_view_cameracontrolsmenu", UI_EMBOSSP, UI_HELV, G.curscreen->mainwin);
|
||||
uiBlockSetButmFunc(block, do_view3d_view_cameracontrolsmenu, NULL);
|
||||
uiBlockSetCol(block, MENUCOL);
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Orbit Left|NumPad 4", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 0, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Orbit Right|NumPad 6", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 1, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Orbit Up|NumPad 8", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 2, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Orbit Down|NumPad 2", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 3, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, 140, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Zoom In|NumPad +", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 4, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Zoom Out|NumPad -", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 5, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Reset Zoom|NumPad Enter", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 6, "");
|
||||
/* static short tog=0; */
|
||||
uiBlock *block;
|
||||
short yco= 0, menuwidth=120;
|
||||
|
||||
block= uiNewBlock(&curarea->uiblocks, "view3d_view_cameracontrolsmenu", UI_EMBOSSP, UI_HELV, G.curscreen->mainwin);
|
||||
uiBlockSetButmFunc(block, do_view3d_view_cameracontrolsmenu, NULL);
|
||||
uiBlockSetCol(block, MENUCOL);
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Orbit Left|NumPad 4", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 0, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Orbit Right|NumPad 6", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 1, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Orbit Up|NumPad 8", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 2, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Orbit Down|NumPad 2", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 3, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, 140, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Zoom In|NumPad +", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 4, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Zoom Out|NumPad -", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 5, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Reset Zoom|NumPad Enter", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 6, "");
|
||||
|
||||
uiBlockSetDirection(block, UI_RIGHT);
|
||||
uiTextBoundsBlock(block, 50);
|
||||
return block;
|
||||
uiBlockSetDirection(block, UI_RIGHT);
|
||||
uiTextBoundsBlock(block, 50);
|
||||
return block;
|
||||
}
|
||||
|
||||
static void do_view3d_viewmenu(void *arg, int event)
|
||||
{
|
||||
extern int play_anim(int mode);
|
||||
extern int play_anim(int mode);
|
||||
|
||||
float *curs;
|
||||
|
||||
switch(event) {
|
||||
case 0: /* User */
|
||||
G.vd->viewbut = 0;
|
||||
G.vd->persp = 1;
|
||||
break;
|
||||
case 1: /* Camera */
|
||||
persptoetsen(PAD0);
|
||||
break;
|
||||
case 2: /* Top */
|
||||
persptoetsen(PAD7);
|
||||
break;
|
||||
case 3: /* Front */
|
||||
persptoetsen(PAD1);
|
||||
break;
|
||||
case 4: /* Side */
|
||||
persptoetsen(PAD3);
|
||||
break;
|
||||
case 5: /* Perspective */
|
||||
G.vd->persp=1;
|
||||
break;
|
||||
case 6: /* Orthographic */
|
||||
G.vd->persp=0;
|
||||
break;
|
||||
case 7: /* Local View */
|
||||
G.vd->localview= 1;
|
||||
initlocalview();
|
||||
break;
|
||||
case 8: /* Global View */
|
||||
G.vd->localview= 0;
|
||||
endlocalview(curarea);
|
||||
break;
|
||||
case 9: /* Frame All (Home) */
|
||||
view3d_home(0);
|
||||
break;
|
||||
case 10: /* Center at Cursor */
|
||||
curs= give_cursor();
|
||||
G.vd->ofs[0]= -curs[0];
|
||||
G.vd->ofs[1]= -curs[1];
|
||||
G.vd->ofs[2]= -curs[2];
|
||||
scrarea_queue_winredraw(curarea);
|
||||
break;
|
||||
case 11: /* Center View to Selected */
|
||||
centreview();
|
||||
break;
|
||||
case 12: /* Align View to Selected */
|
||||
mainqenter(PADASTERKEY, 1);
|
||||
break;
|
||||
case 13: /* Play Back Animation */
|
||||
play_anim(0);
|
||||
break;
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
float *curs;
|
||||
|
||||
switch(event) {
|
||||
case 0: /* User */
|
||||
G.vd->viewbut = 0;
|
||||
G.vd->persp = 1;
|
||||
break;
|
||||
case 1: /* Camera */
|
||||
persptoetsen(PAD0);
|
||||
break;
|
||||
case 2: /* Top */
|
||||
persptoetsen(PAD7);
|
||||
break;
|
||||
case 3: /* Front */
|
||||
persptoetsen(PAD1);
|
||||
break;
|
||||
case 4: /* Side */
|
||||
persptoetsen(PAD3);
|
||||
break;
|
||||
case 5: /* Perspective */
|
||||
G.vd->persp=1;
|
||||
break;
|
||||
case 6: /* Orthographic */
|
||||
G.vd->persp=0;
|
||||
break;
|
||||
case 7: /* Local View */
|
||||
G.vd->localview= 1;
|
||||
initlocalview();
|
||||
break;
|
||||
case 8: /* Global View */
|
||||
G.vd->localview= 0;
|
||||
endlocalview(curarea);
|
||||
break;
|
||||
case 9: /* Frame All (Home) */
|
||||
view3d_home(0);
|
||||
break;
|
||||
case 10: /* Center at Cursor */
|
||||
curs= give_cursor();
|
||||
G.vd->ofs[0]= -curs[0];
|
||||
G.vd->ofs[1]= -curs[1];
|
||||
G.vd->ofs[2]= -curs[2];
|
||||
scrarea_queue_winredraw(curarea);
|
||||
break;
|
||||
case 11: /* Center View to Selected */
|
||||
centreview();
|
||||
break;
|
||||
case 12: /* Align View to Selected */
|
||||
mainqenter(PADASTERKEY, 1);
|
||||
break;
|
||||
case 13: /* Play Back Animation */
|
||||
play_anim(0);
|
||||
break;
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
}
|
||||
|
||||
static uiBlock *view3d_viewmenu(void *arg_unused)
|
||||
{
|
||||
/* static short tog=0; */
|
||||
uiBlock *block;
|
||||
short yco= 0, menuwidth=120;
|
||||
|
||||
block= uiNewBlock(&curarea->uiblocks, "view3d_viewmenu", UI_EMBOSSP, UI_HELV, curarea->headwin);
|
||||
uiBlockSetButmFunc(block, do_view3d_viewmenu, NULL);
|
||||
uiBlockSetCol(block, MENUCOL);
|
||||
|
||||
if ((G.vd->viewbut == 0) && !(G.vd->persp == 2)) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "User", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 0, "");
|
||||
else uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "User", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 0, "");
|
||||
if (G.vd->persp == 2) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Camera|NumPad 0", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 1, "");
|
||||
else uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Camera|NumPad 0", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 1, "");
|
||||
if (G.vd->viewbut == 1) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Top|NumPad 7", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 2, "");
|
||||
else uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Top|NumPad 7", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 2, "");
|
||||
if (G.vd->viewbut == 2) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Front|NumPad 1", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 3, "");
|
||||
else uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Front|NumPad 1", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 3, "");
|
||||
if (G.vd->viewbut == 3) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Side|NumPad 3", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 4, "");
|
||||
else uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Side|NumPad 3", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 4, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
if(G.vd->persp==1) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Perspective|NumPad 5", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 5, "");
|
||||
else uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Perspective|NumPad 5", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 5, "");
|
||||
if(G.vd->persp==0) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Orthographic|NumPad 5", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 6, "");
|
||||
else uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Orthographic|NumPad 5", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 6, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
if(G.vd->localview) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Local View|NumPad /", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 7, "");
|
||||
else uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Local View|NumPad /", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 7, "");
|
||||
if(!G.vd->localview) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Global View|NumPad /", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 8, "");
|
||||
else uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Global View|NumPad /", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 8, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBlockBut(block, view3d_view_cameracontrolsmenu, NULL, ICON_RIGHTARROW_THIN, "Viewport Navigation", 0, yco-=20, 120, 19, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Frame All|Home", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 9, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Frame Cursor|C", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 10, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Frame Selected|NumPad .", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 11, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Align View to Selected|NumPad *", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 12, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Play Back Animation|Alt A", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 13, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
if(!curarea->full) uiDefIconTextBut(block, BUTM, B_FULL, ICON_BLANK1, "Maximize Window|Ctrl UpArrow", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0,0, "");
|
||||
else uiDefIconTextBut(block, BUTM, B_FULL, ICON_BLANK1, "Tile Window|Ctrl DownArrow", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 0, "");
|
||||
/* static short tog=0; */
|
||||
uiBlock *block;
|
||||
short yco= 0, menuwidth=120;
|
||||
|
||||
block= uiNewBlock(&curarea->uiblocks, "view3d_viewmenu", UI_EMBOSSP, UI_HELV, curarea->headwin);
|
||||
uiBlockSetButmFunc(block, do_view3d_viewmenu, NULL);
|
||||
uiBlockSetCol(block, MENUCOL);
|
||||
|
||||
if ((G.vd->viewbut == 0) && !(G.vd->persp == 2)) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "User", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 0, "");
|
||||
else uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "User", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 0, "");
|
||||
if (G.vd->persp == 2) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Camera|NumPad 0", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 1, "");
|
||||
else uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Camera|NumPad 0", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 1, "");
|
||||
if (G.vd->viewbut == 1) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Top|NumPad 7", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 2, "");
|
||||
else uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Top|NumPad 7", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 2, "");
|
||||
if (G.vd->viewbut == 2) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Front|NumPad 1", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 3, "");
|
||||
else uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Front|NumPad 1", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 3, "");
|
||||
if (G.vd->viewbut == 3) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Side|NumPad 3", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 4, "");
|
||||
else uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Side|NumPad 3", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 4, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
if(G.vd->persp==1) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Perspective|NumPad 5", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 5, "");
|
||||
else uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Perspective|NumPad 5", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 5, "");
|
||||
if(G.vd->persp==0) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Orthographic|NumPad 5", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 6, "");
|
||||
else uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Orthographic|NumPad 5", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 6, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
if(G.vd->localview) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Local View|NumPad /", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 7, "");
|
||||
else uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Local View|NumPad /", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 7, "");
|
||||
if(!G.vd->localview) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Global View|NumPad /", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 8, "");
|
||||
else uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Global View|NumPad /", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 8, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBlockBut(block, view3d_view_cameracontrolsmenu, NULL, ICON_RIGHTARROW_THIN, "Viewport Navigation", 0, yco-=20, 120, 19, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Frame All|Home", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 9, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Frame Cursor|C", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 10, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Frame Selected|NumPad .", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 11, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Align View to Selected|NumPad *", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 12, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Play Back Animation|Alt A", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 13, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
if(!curarea->full) uiDefIconTextBut(block, BUTM, B_FULL, ICON_BLANK1, "Maximize Window|Ctrl UpArrow", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0,0, "");
|
||||
else uiDefIconTextBut(block, BUTM, B_FULL, ICON_BLANK1, "Tile Window|Ctrl DownArrow", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
if(curarea->headertype==HEADERTOP) {
|
||||
uiBlockSetDirection(block, UI_DOWN);
|
||||
}
|
||||
else {
|
||||
uiBlockSetDirection(block, UI_TOP);
|
||||
uiBlockFlipOrder(block);
|
||||
}
|
||||
if(curarea->headertype==HEADERTOP) {
|
||||
uiBlockSetDirection(block, UI_DOWN);
|
||||
}
|
||||
else {
|
||||
uiBlockSetDirection(block, UI_TOP);
|
||||
uiBlockFlipOrder(block);
|
||||
}
|
||||
|
||||
uiTextBoundsBlock(block, 50);
|
||||
|
||||
return block;
|
||||
uiTextBoundsBlock(block, 50);
|
||||
|
||||
return block;
|
||||
}
|
||||
|
||||
static void do_view3d_select_objectmenu(void *arg, int event)
|
||||
{
|
||||
// extern void borderselect(void);
|
||||
// extern void deselectall(void);
|
||||
|
||||
switch(event) {
|
||||
|
||||
case 0: /* border select */
|
||||
borderselect();
|
||||
break;
|
||||
case 1: /* Select/Deselect All */
|
||||
deselectall();
|
||||
break;
|
||||
case 2: /* Select Linked */
|
||||
selectlinks();
|
||||
break;
|
||||
case 3: /* Select Grouped */
|
||||
group_menu();
|
||||
break;
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
// extern void borderselect(void);
|
||||
// extern void deselectall(void);
|
||||
|
||||
switch(event) {
|
||||
|
||||
case 0: /* border select */
|
||||
borderselect();
|
||||
break;
|
||||
case 1: /* Select/Deselect All */
|
||||
deselectall();
|
||||
break;
|
||||
case 2: /* Select Linked */
|
||||
selectlinks();
|
||||
break;
|
||||
case 3: /* Select Grouped */
|
||||
group_menu();
|
||||
break;
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
}
|
||||
|
||||
static uiBlock *view3d_select_objectmenu(void *arg_unused)
|
||||
{
|
||||
uiBlock *block;
|
||||
short yco= 0, menuwidth=120;
|
||||
|
||||
block= uiNewBlock(&curarea->uiblocks, "view3d_select_objectmenu", UI_EMBOSSP, UI_HELV, curarea->headwin);
|
||||
uiBlockSetButmFunc(block, do_view3d_select_objectmenu, NULL);
|
||||
uiBlockSetCol(block, MENUCOL);
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Border Select|B", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Select/Deselect All|A", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Linked...|Shift L", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Grouped...|Shift G", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, "");
|
||||
|
||||
if(curarea->headertype==HEADERTOP) {
|
||||
uiBlockSetDirection(block, UI_DOWN);
|
||||
}
|
||||
else {
|
||||
uiBlockSetDirection(block, UI_TOP);
|
||||
uiBlockFlipOrder(block);
|
||||
}
|
||||
|
||||
uiTextBoundsBlock(block, 50);
|
||||
return block;
|
||||
uiBlock *block;
|
||||
short yco= 0, menuwidth=120;
|
||||
|
||||
block= uiNewBlock(&curarea->uiblocks, "view3d_select_objectmenu", UI_EMBOSSP, UI_HELV, curarea->headwin);
|
||||
uiBlockSetButmFunc(block, do_view3d_select_objectmenu, NULL);
|
||||
uiBlockSetCol(block, MENUCOL);
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Border Select|B", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Select/Deselect All|A", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Linked...|Shift L", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Grouped...|Shift G", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, "");
|
||||
|
||||
if(curarea->headertype==HEADERTOP) {
|
||||
uiBlockSetDirection(block, UI_DOWN);
|
||||
}
|
||||
else {
|
||||
uiBlockSetDirection(block, UI_TOP);
|
||||
uiBlockFlipOrder(block);
|
||||
}
|
||||
|
||||
uiTextBoundsBlock(block, 50);
|
||||
return block;
|
||||
}
|
||||
|
||||
static void do_view3d_select_meshmenu(void *arg, int event)
|
||||
{
|
||||
// extern void borderselect(void);
|
||||
// extern void borderselect(void);
|
||||
|
||||
switch(event) {
|
||||
|
||||
case 0: /* border select */
|
||||
borderselect();
|
||||
break;
|
||||
case 2: /* Select/Deselect all */
|
||||
deselectall_mesh();
|
||||
break;
|
||||
case 3: /* Inverse */
|
||||
selectswap_mesh();
|
||||
break;
|
||||
case 4: /* select linked vertices */
|
||||
G.qual |= LR_CTRLKEY;
|
||||
selectconnected_mesh();
|
||||
G.qual &= ~LR_CTRLKEY;
|
||||
break;
|
||||
case 5: /* select random */
|
||||
// selectrandom_mesh();
|
||||
break;
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
switch(event) {
|
||||
|
||||
case 0: /* border select */
|
||||
borderselect();
|
||||
break;
|
||||
case 2: /* Select/Deselect all */
|
||||
deselectall_mesh();
|
||||
break;
|
||||
case 3: /* Inverse */
|
||||
selectswap_mesh();
|
||||
break;
|
||||
case 4: /* select linked vertices */
|
||||
G.qual |= LR_CTRLKEY;
|
||||
selectconnected_mesh();
|
||||
G.qual &= ~LR_CTRLKEY;
|
||||
break;
|
||||
case 5: /* select random */
|
||||
// selectrandom_mesh();
|
||||
break;
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
}
|
||||
|
||||
|
||||
static uiBlock *view3d_select_meshmenu(void *arg_unused)
|
||||
{
|
||||
uiBlock *block;
|
||||
short yco= 0, menuwidth=120;
|
||||
|
||||
block= uiNewBlock(&curarea->uiblocks, "view3d_select_meshmenu", UI_EMBOSSP, UI_HELV, curarea->headwin);
|
||||
uiBlockSetButmFunc(block, do_view3d_select_meshmenu, NULL);
|
||||
uiBlockSetCol(block, MENUCOL);
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Border Select|B", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Select/Deselect All|A", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Inverse", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
//uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Edge Loop|Shift R", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 12, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Random Vertices...", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 5, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Connected Vertices|Ctrl L", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 4, "");
|
||||
|
||||
if(curarea->headertype==HEADERTOP) {
|
||||
uiBlockSetDirection(block, UI_DOWN);
|
||||
}
|
||||
else {
|
||||
uiBlockSetDirection(block, UI_TOP);
|
||||
uiBlockFlipOrder(block);
|
||||
}
|
||||
uiBlock *block;
|
||||
short yco= 0, menuwidth=120;
|
||||
|
||||
block= uiNewBlock(&curarea->uiblocks, "view3d_select_meshmenu", UI_EMBOSSP, UI_HELV, curarea->headwin);
|
||||
uiBlockSetButmFunc(block, do_view3d_select_meshmenu, NULL);
|
||||
uiBlockSetCol(block, MENUCOL);
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Border Select|B", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Select/Deselect All|A", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Inverse", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
//uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Edge Loop|Shift R", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 12, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Random Vertices...", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 5, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Connected Vertices|Ctrl L", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 4, "");
|
||||
|
||||
if(curarea->headertype==HEADERTOP) {
|
||||
uiBlockSetDirection(block, UI_DOWN);
|
||||
}
|
||||
else {
|
||||
uiBlockSetDirection(block, UI_TOP);
|
||||
uiBlockFlipOrder(block);
|
||||
}
|
||||
|
||||
uiTextBoundsBlock(block, 50);
|
||||
return block;
|
||||
uiTextBoundsBlock(block, 50);
|
||||
return block;
|
||||
}
|
||||
|
||||
static void do_view3d_select_curvemenu(void *arg, int event)
|
||||
{
|
||||
// extern void borderselect(void);
|
||||
// extern void borderselect(void);
|
||||
|
||||
switch(event) {
|
||||
case 0: /* border select */
|
||||
borderselect();
|
||||
break;
|
||||
case 2: /* Select/Deselect all */
|
||||
deselectall_nurb();
|
||||
break;
|
||||
case 3: /* Inverse */
|
||||
selectswapNurb();
|
||||
break;
|
||||
//case 4: /* select connected control points */
|
||||
//G.qual |= LR_CTRLKEY;
|
||||
//selectconnected_nurb();
|
||||
//G.qual &= ~LR_CTRLKEY;
|
||||
//break;
|
||||
case 5: /* select row (nurb) */
|
||||
selectrow_nurb();
|
||||
break;
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
switch(event) {
|
||||
case 0: /* border select */
|
||||
borderselect();
|
||||
break;
|
||||
case 2: /* Select/Deselect all */
|
||||
deselectall_nurb();
|
||||
break;
|
||||
case 3: /* Inverse */
|
||||
selectswapNurb();
|
||||
break;
|
||||
//case 4: /* select connected control points */
|
||||
//G.qual |= LR_CTRLKEY;
|
||||
//selectconnected_nurb();
|
||||
//G.qual &= ~LR_CTRLKEY;
|
||||
//break;
|
||||
case 5: /* select row (nurb) */
|
||||
selectrow_nurb();
|
||||
break;
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
}
|
||||
|
||||
|
||||
static uiBlock *view3d_select_curvemenu(void *arg_unused)
|
||||
{
|
||||
uiBlock *block;
|
||||
short yco= 0, menuwidth=120;
|
||||
|
||||
block= uiNewBlock(&curarea->uiblocks, "view3d_select_curvemenu", UI_EMBOSSP, UI_HELV, curarea->headwin);
|
||||
uiBlockSetButmFunc(block, do_view3d_select_curvemenu, NULL);
|
||||
uiBlockSetCol(block, MENUCOL);
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Border Select|B", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Select/Deselect All|A", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Inverse", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, "");
|
||||
|
||||
if (OBACT->type == OB_SURF) {
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Control Point Row|Shift R", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 5, "");
|
||||
}
|
||||
/* commented out because it seems to only like the LKEY method - based on mouse pointer position :( */
|
||||
//uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Connected Control Points|Ctrl L", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 4, "");
|
||||
|
||||
if(curarea->headertype==HEADERTOP) {
|
||||
uiBlockSetDirection(block, UI_DOWN);
|
||||
}
|
||||
else {
|
||||
uiBlockSetDirection(block, UI_TOP);
|
||||
uiBlockFlipOrder(block);
|
||||
}
|
||||
|
||||
uiTextBoundsBlock(block, 50);
|
||||
return block;
|
||||
uiBlock *block;
|
||||
short yco= 0, menuwidth=120;
|
||||
|
||||
block= uiNewBlock(&curarea->uiblocks, "view3d_select_curvemenu", UI_EMBOSSP, UI_HELV, curarea->headwin);
|
||||
uiBlockSetButmFunc(block, do_view3d_select_curvemenu, NULL);
|
||||
uiBlockSetCol(block, MENUCOL);
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Border Select|B", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Select/Deselect All|A", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Inverse", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, "");
|
||||
|
||||
if (OBACT->type == OB_SURF) {
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Control Point Row|Shift R", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 5, "");
|
||||
}
|
||||
/* commented out because it seems to only like the LKEY method - based on mouse pointer position :( */
|
||||
//uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Connected Control Points|Ctrl L", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 4, "");
|
||||
|
||||
if(curarea->headertype==HEADERTOP) {
|
||||
uiBlockSetDirection(block, UI_DOWN);
|
||||
}
|
||||
else {
|
||||
uiBlockSetDirection(block, UI_TOP);
|
||||
uiBlockFlipOrder(block);
|
||||
}
|
||||
|
||||
uiTextBoundsBlock(block, 50);
|
||||
return block;
|
||||
}
|
||||
|
||||
static void do_view3d_select_metaballmenu(void *arg, int event)
|
||||
{
|
||||
//XXX extern void borderselect(void);
|
||||
|
||||
switch(event) {
|
||||
case 0: /* border select */
|
||||
borderselect();
|
||||
break;
|
||||
case 2: /* Select/Deselect all */
|
||||
deselectall_mball();
|
||||
break;
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
switch(event) {
|
||||
case 0: /* border select */
|
||||
borderselect();
|
||||
break;
|
||||
case 2: /* Select/Deselect all */
|
||||
deselectall_mball();
|
||||
break;
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
}
|
||||
|
||||
|
||||
static uiBlock *view3d_select_metaballmenu(void *arg_unused)
|
||||
{
|
||||
uiBlock *block;
|
||||
short yco= 0, menuwidth=120;
|
||||
|
||||
block= uiNewBlock(&curarea->uiblocks, "view3d_select_metaballmenu", UI_EMBOSSP, UI_HELV, curarea->headwin);
|
||||
uiBlockSetButmFunc(block, do_view3d_select_metaballmenu, NULL);
|
||||
uiBlockSetCol(block, MENUCOL);
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Border Select|B", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Select/Deselect All|A", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
||||
|
||||
if(curarea->headertype==HEADERTOP) {
|
||||
uiBlockSetDirection(block, UI_DOWN);
|
||||
}
|
||||
else {
|
||||
uiBlockSetDirection(block, UI_TOP);
|
||||
uiBlockFlipOrder(block);
|
||||
}
|
||||
uiBlock *block;
|
||||
short yco= 0, menuwidth=120;
|
||||
|
||||
block= uiNewBlock(&curarea->uiblocks, "view3d_select_metaballmenu", UI_EMBOSSP, UI_HELV, curarea->headwin);
|
||||
uiBlockSetButmFunc(block, do_view3d_select_metaballmenu, NULL);
|
||||
uiBlockSetCol(block, MENUCOL);
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Border Select|B", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Select/Deselect All|A", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
||||
|
||||
if(curarea->headertype==HEADERTOP) {
|
||||
uiBlockSetDirection(block, UI_DOWN);
|
||||
}
|
||||
else {
|
||||
uiBlockSetDirection(block, UI_TOP);
|
||||
uiBlockFlipOrder(block);
|
||||
}
|
||||
|
||||
uiTextBoundsBlock(block, 50);
|
||||
return block;
|
||||
uiTextBoundsBlock(block, 50);
|
||||
return block;
|
||||
}
|
||||
|
||||
static void do_view3d_select_latticemenu(void *arg, int event)
|
||||
{
|
||||
// extern void borderselect(void);
|
||||
|
||||
switch(event) {
|
||||
case 0: /* border select */
|
||||
borderselect();
|
||||
break;
|
||||
case 2: /* Select/Deselect all */
|
||||
deselectall_Latt();
|
||||
break;
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
// extern void borderselect(void);
|
||||
|
||||
switch(event) {
|
||||
case 0: /* border select */
|
||||
borderselect();
|
||||
break;
|
||||
case 2: /* Select/Deselect all */
|
||||
deselectall_Latt();
|
||||
break;
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
}
|
||||
|
||||
static uiBlock *view3d_select_latticemenu(void *arg_unused)
|
||||
{
|
||||
uiBlock *block;
|
||||
short yco= 0, menuwidth=120;
|
||||
|
||||
block= uiNewBlock(&curarea->uiblocks, "view3d_select_latticemenu", UI_EMBOSSP, UI_HELV, curarea->headwin);
|
||||
uiBlockSetButmFunc(block, do_view3d_select_latticemenu, NULL);
|
||||
uiBlockSetCol(block, MENUCOL);
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Border Select|B", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Select/Deselect All|A", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
||||
uiBlock *block;
|
||||
short yco= 0, menuwidth=120;
|
||||
|
||||
block= uiNewBlock(&curarea->uiblocks, "view3d_select_latticemenu", UI_EMBOSSP, UI_HELV, curarea->headwin);
|
||||
uiBlockSetButmFunc(block, do_view3d_select_latticemenu, NULL);
|
||||
uiBlockSetCol(block, MENUCOL);
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Border Select|B", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Select/Deselect All|A", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
||||
|
||||
if(curarea->headertype==HEADERTOP) {
|
||||
uiBlockSetDirection(block, UI_DOWN);
|
||||
}
|
||||
else {
|
||||
uiBlockSetDirection(block, UI_TOP);
|
||||
uiBlockFlipOrder(block);
|
||||
}
|
||||
if(curarea->headertype==HEADERTOP) {
|
||||
uiBlockSetDirection(block, UI_DOWN);
|
||||
}
|
||||
else {
|
||||
uiBlockSetDirection(block, UI_TOP);
|
||||
uiBlockFlipOrder(block);
|
||||
}
|
||||
|
||||
uiTextBoundsBlock(block, 50);
|
||||
return block;
|
||||
uiTextBoundsBlock(block, 50);
|
||||
return block;
|
||||
}
|
||||
|
||||
static void do_view3d_select_armaturemenu(void *arg, int event)
|
||||
{
|
||||
// extern void borderselect(void);
|
||||
// extern void borderselect(void);
|
||||
|
||||
switch(event) {
|
||||
case 0: /* border select */
|
||||
borderselect();
|
||||
break;
|
||||
case 2: /* Select/Deselect all */
|
||||
deselectall_armature();
|
||||
break;
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
switch(event) {
|
||||
case 0: /* border select */
|
||||
borderselect();
|
||||
break;
|
||||
case 2: /* Select/Deselect all */
|
||||
deselectall_armature();
|
||||
break;
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
}
|
||||
|
||||
static uiBlock *view3d_select_armaturemenu(void *arg_unused)
|
||||
{
|
||||
uiBlock *block;
|
||||
short yco= 0, menuwidth=120;
|
||||
|
||||
block= uiNewBlock(&curarea->uiblocks, "view3d_select_armaturemenu", UI_EMBOSSP, UI_HELV, curarea->headwin);
|
||||
uiBlockSetButmFunc(block, do_view3d_select_armaturemenu, NULL);
|
||||
uiBlockSetCol(block, MENUCOL);
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Border Select|B", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Select/Deselect All|A", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
||||
uiBlock *block;
|
||||
short yco= 0, menuwidth=120;
|
||||
|
||||
block= uiNewBlock(&curarea->uiblocks, "view3d_select_armaturemenu", UI_EMBOSSP, UI_HELV, curarea->headwin);
|
||||
uiBlockSetButmFunc(block, do_view3d_select_armaturemenu, NULL);
|
||||
uiBlockSetCol(block, MENUCOL);
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Border Select|B", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Select/Deselect All|A", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
||||
|
||||
if(curarea->headertype==HEADERTOP) {
|
||||
uiBlockSetDirection(block, UI_DOWN);
|
||||
}
|
||||
else {
|
||||
uiBlockSetDirection(block, UI_TOP);
|
||||
uiBlockFlipOrder(block);
|
||||
}
|
||||
if(curarea->headertype==HEADERTOP) {
|
||||
uiBlockSetDirection(block, UI_DOWN);
|
||||
}
|
||||
else {
|
||||
uiBlockSetDirection(block, UI_TOP);
|
||||
uiBlockFlipOrder(block);
|
||||
}
|
||||
|
||||
uiTextBoundsBlock(block, 50);
|
||||
return block;
|
||||
uiTextBoundsBlock(block, 50);
|
||||
return block;
|
||||
}
|
||||
|
||||
static void do_view3d_select_pose_armaturemenu(void *arg, int event)
|
||||
{
|
||||
// extern void borderselect(void);
|
||||
|
||||
switch(event) {
|
||||
case 0: /* border select */
|
||||
borderselect();
|
||||
break;
|
||||
case 2: /* Select/Deselect all */
|
||||
deselectall_posearmature(1);
|
||||
break;
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
// extern void borderselect(void);
|
||||
|
||||
switch(event) {
|
||||
case 0: /* border select */
|
||||
borderselect();
|
||||
break;
|
||||
case 2: /* Select/Deselect all */
|
||||
deselectall_posearmature(1);
|
||||
break;
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
}
|
||||
|
||||
static uiBlock *view3d_select_pose_armaturemenu(void *arg_unused)
|
||||
{
|
||||
uiBlock *block;
|
||||
short yco= 0, menuwidth=120;
|
||||
|
||||
block= uiNewBlock(&curarea->uiblocks, "view3d_select_pose_armaturemenu", UI_EMBOSSP, UI_HELV, curarea->headwin);
|
||||
uiBlockSetButmFunc(block, do_view3d_select_pose_armaturemenu, NULL);
|
||||
uiBlockSetCol(block, MENUCOL);
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Border Select|B", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Select/Deselect All|A", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
||||
uiBlock *block;
|
||||
short yco= 0, menuwidth=120;
|
||||
|
||||
block= uiNewBlock(&curarea->uiblocks, "view3d_select_pose_armaturemenu", UI_EMBOSSP, UI_HELV, curarea->headwin);
|
||||
uiBlockSetButmFunc(block, do_view3d_select_pose_armaturemenu, NULL);
|
||||
uiBlockSetCol(block, MENUCOL);
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Border Select|B", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Select/Deselect All|A", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
||||
|
||||
if(curarea->headertype==HEADERTOP) {
|
||||
uiBlockSetDirection(block, UI_DOWN);
|
||||
}
|
||||
else {
|
||||
uiBlockSetDirection(block, UI_TOP);
|
||||
uiBlockFlipOrder(block);
|
||||
}
|
||||
if(curarea->headertype==HEADERTOP) {
|
||||
uiBlockSetDirection(block, UI_DOWN);
|
||||
}
|
||||
else {
|
||||
uiBlockSetDirection(block, UI_TOP);
|
||||
uiBlockFlipOrder(block);
|
||||
}
|
||||
|
||||
uiTextBoundsBlock(block, 50);
|
||||
return block;
|
||||
uiTextBoundsBlock(block, 50);
|
||||
return block;
|
||||
}
|
||||
|
||||
static void do_view3d_select_faceselmenu(void *arg, int event)
|
||||
{
|
||||
// extern void borderselect(void);
|
||||
|
||||
switch(event) {
|
||||
case 0: /* border select */
|
||||
borderselect();
|
||||
break;
|
||||
case 2: /* Select/Deselect all */
|
||||
deselectall_tface();
|
||||
break;
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
// extern void borderselect(void);
|
||||
|
||||
switch(event) {
|
||||
case 0: /* border select */
|
||||
borderselect();
|
||||
break;
|
||||
case 2: /* Select/Deselect all */
|
||||
deselectall_tface();
|
||||
break;
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
}
|
||||
|
||||
static uiBlock *view3d_select_faceselmenu(void *arg_unused)
|
||||
{
|
||||
uiBlock *block;
|
||||
short yco= 0, menuwidth=120;
|
||||
|
||||
block= uiNewBlock(&curarea->uiblocks, "view3d_select_faceselmenu", UI_EMBOSSP, UI_HELV, curarea->headwin);
|
||||
uiBlockSetButmFunc(block, do_view3d_select_faceselmenu, NULL);
|
||||
uiBlockSetCol(block, MENUCOL);
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Border Select|B", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Select/Deselect All|A", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
||||
uiBlock *block;
|
||||
short yco= 0, menuwidth=120;
|
||||
|
||||
block= uiNewBlock(&curarea->uiblocks, "view3d_select_faceselmenu", UI_EMBOSSP, UI_HELV, curarea->headwin);
|
||||
uiBlockSetButmFunc(block, do_view3d_select_faceselmenu, NULL);
|
||||
uiBlockSetCol(block, MENUCOL);
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Border Select|B", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Select/Deselect All|A", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
||||
|
||||
if(curarea->headertype==HEADERTOP) {
|
||||
uiBlockSetDirection(block, UI_DOWN);
|
||||
}
|
||||
else {
|
||||
uiBlockSetDirection(block, UI_TOP);
|
||||
uiBlockFlipOrder(block);
|
||||
}
|
||||
if(curarea->headertype==HEADERTOP) {
|
||||
uiBlockSetDirection(block, UI_DOWN);
|
||||
}
|
||||
else {
|
||||
uiBlockSetDirection(block, UI_TOP);
|
||||
uiBlockFlipOrder(block);
|
||||
}
|
||||
|
||||
uiTextBoundsBlock(block, 50);
|
||||
return block;
|
||||
uiTextBoundsBlock(block, 50);
|
||||
return block;
|
||||
}
|
||||
|
||||
static void do_view3d_edit_object_transformmenu(void *arg, int event)
|
||||
{
|
||||
switch(event) {
|
||||
case 0: /* clear origin */
|
||||
clear_object('o');
|
||||
break;
|
||||
case 1: /* clear size */
|
||||
clear_object('s');
|
||||
break;
|
||||
case 2: /* clear rotation */
|
||||
clear_object('r');
|
||||
break;
|
||||
case 3: /* clear location */
|
||||
clear_object('g');
|
||||
break;
|
||||
case 4: /* apply deformation */
|
||||
make_duplilist_real();
|
||||
break;
|
||||
case 5: /* apply size/rotation */
|
||||
apply_object();
|
||||
break;
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
switch(event) {
|
||||
case 0: /* clear origin */
|
||||
clear_object('o');
|
||||
break;
|
||||
case 1: /* clear size */
|
||||
clear_object('s');
|
||||
break;
|
||||
case 2: /* clear rotation */
|
||||
clear_object('r');
|
||||
break;
|
||||
case 3: /* clear location */
|
||||
clear_object('g');
|
||||
break;
|
||||
case 4: /* apply deformation */
|
||||
make_duplilist_real();
|
||||
break;
|
||||
case 5: /* apply size/rotation */
|
||||
apply_object();
|
||||
break;
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
}
|
||||
|
||||
static uiBlock *view3d_edit_object_transformmenu(void *arg_unused)
|
||||
{
|
||||
uiBlock *block;
|
||||
short yco = 20, menuwidth = 120;
|
||||
uiBlock *block;
|
||||
short yco = 20, menuwidth = 120;
|
||||
|
||||
block= uiNewBlock(&curarea->uiblocks, "view3d_edit_object_transformmenu", UI_EMBOSSP, UI_HELV, G.curscreen->mainwin);
|
||||
uiBlockSetButmFunc(block, do_view3d_edit_object_transformmenu, NULL);
|
||||
uiBlockSetCol(block, MENUCOL);
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Apply Size/Rotation|Ctrl A", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 5, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Apply Deformation|Ctrl Shift A", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 4, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Clear Location|Alt G", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Clear Rotation|Alt R", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Clear Size|Alt S", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Clear Origin|Alt O", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, "");
|
||||
|
||||
uiBlockSetDirection(block, UI_RIGHT);
|
||||
uiTextBoundsBlock(block, 60);
|
||||
return block;
|
||||
block= uiNewBlock(&curarea->uiblocks, "view3d_edit_object_transformmenu", UI_EMBOSSP, UI_HELV, G.curscreen->mainwin);
|
||||
uiBlockSetButmFunc(block, do_view3d_edit_object_transformmenu, NULL);
|
||||
uiBlockSetCol(block, MENUCOL);
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Apply Size/Rotation|Ctrl A", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 5, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Apply Deformation|Ctrl Shift A", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 4, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Clear Location|Alt G", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Clear Rotation|Alt R", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Clear Size|Alt S", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Clear Origin|Alt O", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, "");
|
||||
|
||||
uiBlockSetDirection(block, UI_RIGHT);
|
||||
uiTextBoundsBlock(block, 60);
|
||||
return block;
|
||||
}
|
||||
|
||||
static void do_view3d_edit_object_parentmenu(void *arg, int event)
|
||||
{
|
||||
switch(event) {
|
||||
case 0: /* clear parent */
|
||||
clear_parent();
|
||||
break;
|
||||
case 1: /* make parent */
|
||||
make_parent();
|
||||
break;
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
switch(event) {
|
||||
case 0: /* clear parent */
|
||||
clear_parent();
|
||||
break;
|
||||
case 1: /* make parent */
|
||||
make_parent();
|
||||
break;
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
}
|
||||
|
||||
static uiBlock *view3d_edit_object_parentmenu(void *arg_unused)
|
||||
{
|
||||
uiBlock *block;
|
||||
short yco = 20, menuwidth = 120;
|
||||
uiBlock *block;
|
||||
short yco = 20, menuwidth = 120;
|
||||
|
||||
block= uiNewBlock(&curarea->uiblocks, "view3d_edit_object_parentmenu", UI_EMBOSSP, UI_HELV, G.curscreen->mainwin);
|
||||
uiBlockSetButmFunc(block, do_view3d_edit_object_parentmenu, NULL);
|
||||
uiBlockSetCol(block, MENUCOL);
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Make Parent...|Ctrl P", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Clear Parent...|Alt P", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, "");
|
||||
block= uiNewBlock(&curarea->uiblocks, "view3d_edit_object_parentmenu", UI_EMBOSSP, UI_HELV, G.curscreen->mainwin);
|
||||
uiBlockSetButmFunc(block, do_view3d_edit_object_parentmenu, NULL);
|
||||
uiBlockSetCol(block, MENUCOL);
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Make Parent...|Ctrl P", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Clear Parent...|Alt P", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, "");
|
||||
|
||||
uiBlockSetDirection(block, UI_RIGHT);
|
||||
uiTextBoundsBlock(block, 60);
|
||||
return block;
|
||||
uiBlockSetDirection(block, UI_RIGHT);
|
||||
uiTextBoundsBlock(block, 60);
|
||||
return block;
|
||||
}
|
||||
|
||||
static void do_view3d_edit_object_trackmenu(void *arg, int event)
|
||||
{
|
||||
switch(event) {
|
||||
case 0: /* clear track */
|
||||
clear_track();
|
||||
break;
|
||||
case 1: /* make track */
|
||||
make_track();
|
||||
break;
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
switch(event) {
|
||||
case 0: /* clear track */
|
||||
clear_track();
|
||||
break;
|
||||
case 1: /* make track */
|
||||
make_track();
|
||||
break;
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
}
|
||||
|
||||
static uiBlock *view3d_edit_object_trackmenu(void *arg_unused)
|
||||
{
|
||||
uiBlock *block;
|
||||
short yco = 20, menuwidth = 120;
|
||||
uiBlock *block;
|
||||
short yco = 20, menuwidth = 120;
|
||||
|
||||
block= uiNewBlock(&curarea->uiblocks, "view3d_edit_object_trackmenu", UI_EMBOSSP, UI_HELV, G.curscreen->mainwin);
|
||||
uiBlockSetButmFunc(block, do_view3d_edit_object_trackmenu, NULL);
|
||||
uiBlockSetCol(block, MENUCOL);
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Make Track...|Ctrl T", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Clear Track...|Alt T", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, "");
|
||||
|
||||
uiBlockSetDirection(block, UI_RIGHT);
|
||||
uiTextBoundsBlock(block, 60);
|
||||
return block;
|
||||
block= uiNewBlock(&curarea->uiblocks, "view3d_edit_object_trackmenu", UI_EMBOSSP, UI_HELV, G.curscreen->mainwin);
|
||||
uiBlockSetButmFunc(block, do_view3d_edit_object_trackmenu, NULL);
|
||||
uiBlockSetCol(block, MENUCOL);
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Make Track...|Ctrl T", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Clear Track...|Alt T", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, "");
|
||||
|
||||
uiBlockSetDirection(block, UI_RIGHT);
|
||||
uiTextBoundsBlock(block, 60);
|
||||
return block;
|
||||
}
|
||||
|
||||
static void do_view3d_edit_objectmenu(void *arg, int event)
|
||||
{
|
||||
/* needed to check for valid selected objects */
|
||||
Base *base=NULL;
|
||||
Object *ob=NULL;
|
||||
/* needed to check for valid selected objects */
|
||||
Base *base=NULL;
|
||||
Object *ob=NULL;
|
||||
|
||||
base= BASACT;
|
||||
if (base) ob= base->object;
|
||||
|
||||
switch(event) {
|
||||
|
||||
case 0: /* transform properties*/
|
||||
blenderqread(NKEY, 1);
|
||||
break;
|
||||
case 1: /* delete */
|
||||
delete_context_selected();
|
||||
break;
|
||||
case 2: /* duplicate */
|
||||
duplicate_context_selected();
|
||||
break;
|
||||
case 3: /* duplicate linked */
|
||||
G.qual |= LR_ALTKEY;
|
||||
adduplicate(0);
|
||||
G.qual &= ~LR_ALTKEY;
|
||||
break;
|
||||
case 4: /* make links */
|
||||
linkmenu();
|
||||
break;
|
||||
case 5: /* make single user */
|
||||
single_user();
|
||||
break;
|
||||
case 6: /* copy properties */
|
||||
copymenu();
|
||||
break;
|
||||
case 7: /* boolean operation */
|
||||
special_editmenu();
|
||||
break;
|
||||
case 8: /* join objects */
|
||||
if( (ob= OBACT) ) {
|
||||
if(ob->type == OB_MESH) join_mesh();
|
||||
else if(ob->type == OB_CURVE) join_curve(OB_CURVE);
|
||||
else if(ob->type == OB_SURF) join_curve(OB_SURF);
|
||||
else if(ob->type == OB_ARMATURE) join_armature();
|
||||
}
|
||||
break;
|
||||
case 9: /* convert object type */
|
||||
convertmenu();
|
||||
break;
|
||||
case 10: /* move to layer */
|
||||
movetolayer();
|
||||
break;
|
||||
case 11: /* insert keyframe */
|
||||
common_insertkey();
|
||||
break;
|
||||
case 12: /* snap */
|
||||
snapmenu();
|
||||
break;
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
base= BASACT;
|
||||
if (base) ob= base->object;
|
||||
|
||||
switch(event) {
|
||||
|
||||
case 0: /* transform properties*/
|
||||
blenderqread(NKEY, 1);
|
||||
break;
|
||||
case 1: /* delete */
|
||||
delete_context_selected();
|
||||
break;
|
||||
case 2: /* duplicate */
|
||||
duplicate_context_selected();
|
||||
break;
|
||||
case 3: /* duplicate linked */
|
||||
G.qual |= LR_ALTKEY;
|
||||
adduplicate(0);
|
||||
G.qual &= ~LR_ALTKEY;
|
||||
break;
|
||||
case 4: /* make links */
|
||||
linkmenu();
|
||||
break;
|
||||
case 5: /* make single user */
|
||||
single_user();
|
||||
break;
|
||||
case 6: /* copy properties */
|
||||
copymenu();
|
||||
break;
|
||||
case 7: /* boolean operation */
|
||||
special_editmenu();
|
||||
break;
|
||||
case 8: /* join objects */
|
||||
if( (ob= OBACT) ) {
|
||||
if(ob->type == OB_MESH) join_mesh();
|
||||
else if(ob->type == OB_CURVE) join_curve(OB_CURVE);
|
||||
else if(ob->type == OB_SURF) join_curve(OB_SURF);
|
||||
else if(ob->type == OB_ARMATURE) join_armature();
|
||||
}
|
||||
break;
|
||||
case 9: /* convert object type */
|
||||
convertmenu();
|
||||
break;
|
||||
case 10: /* move to layer */
|
||||
movetolayer();
|
||||
break;
|
||||
case 11: /* insert keyframe */
|
||||
common_insertkey();
|
||||
break;
|
||||
case 12: /* snap */
|
||||
snapmenu();
|
||||
break;
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
}
|
||||
|
||||
static uiBlock *view3d_edit_objectmenu(void *arg_unused)
|
||||
{
|
||||
uiBlock *block;
|
||||
short yco= 0, menuwidth=120;
|
||||
|
||||
block= uiNewBlock(&curarea->uiblocks, "view3d_edit_objectmenu", UI_EMBOSSP, UI_HELV, curarea->headwin);
|
||||
uiBlockSetButmFunc(block, do_view3d_edit_objectmenu, NULL);
|
||||
uiBlockSetCol(block, MENUCOL);
|
||||
|
||||
//uiDefIconTextBlockBut(block, 0, NULL, ICON_RIGHTARROW_THIN, "Move", 0, yco-=20, 120, 19, "");
|
||||
//uiDefIconTextBlockBut(block, 0, NULL, ICON_RIGHTARROW_THIN, "Rotate", 0, yco-=20, 120, 19, "");
|
||||
//uiDefIconTextBlockBut(block, 0, NULL, ICON_RIGHTARROW_THIN, "Scale", 0, yco-=20, 120, 19, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Transform Properties...|N", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, "");
|
||||
uiDefIconTextBlockBut(block, view3d_edit_object_transformmenu, NULL, ICON_RIGHTARROW_THIN, "Transform", 0, yco-=20, 120, 19, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Snap...|Shift S", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 12, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Insert Keyframe|I", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 11, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Duplicate|Shift D", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Duplicate Linked|Alt D", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Delete|X", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Make Links...|Ctrl L", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 4, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Make Single User...|U", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 5, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Copy Properties...|Ctrl C", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 6, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBlockBut(block, view3d_edit_object_parentmenu, NULL, ICON_RIGHTARROW_THIN, "Parent", 0, yco-=20, 120, 19, "");
|
||||
uiDefIconTextBlockBut(block, view3d_edit_object_trackmenu, NULL, ICON_RIGHTARROW_THIN, "Track", 0, yco-=20, 120, 19, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
if (OBACT && OBACT->type == OB_MESH) {
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Boolean Operation...|W", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 7, "");
|
||||
}
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Join Objects|Ctrl J", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 8, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Convert Object Type...|Alt C", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 9, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Move to Layer...|M", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 10, "");
|
||||
|
||||
if(curarea->headertype==HEADERTOP) {
|
||||
uiBlockSetDirection(block, UI_DOWN);
|
||||
}
|
||||
else {
|
||||
uiBlockSetDirection(block, UI_TOP);
|
||||
uiBlockFlipOrder(block);
|
||||
}
|
||||
uiBlock *block;
|
||||
short yco= 0, menuwidth=120;
|
||||
|
||||
block= uiNewBlock(&curarea->uiblocks, "view3d_edit_objectmenu", UI_EMBOSSP, UI_HELV, curarea->headwin);
|
||||
uiBlockSetButmFunc(block, do_view3d_edit_objectmenu, NULL);
|
||||
uiBlockSetCol(block, MENUCOL);
|
||||
|
||||
//uiDefIconTextBlockBut(block, 0, NULL, ICON_RIGHTARROW_THIN, "Move", 0, yco-=20, 120, 19, "");
|
||||
//uiDefIconTextBlockBut(block, 0, NULL, ICON_RIGHTARROW_THIN, "Rotate", 0, yco-=20, 120, 19, "");
|
||||
//uiDefIconTextBlockBut(block, 0, NULL, ICON_RIGHTARROW_THIN, "Scale", 0, yco-=20, 120, 19, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Transform Properties...|N", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, "");
|
||||
uiDefIconTextBlockBut(block, view3d_edit_object_transformmenu, NULL, ICON_RIGHTARROW_THIN, "Transform", 0, yco-=20, 120, 19, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Snap...|Shift S", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 12, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Insert Keyframe|I", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 11, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Duplicate|Shift D", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Duplicate Linked|Alt D", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Delete|X", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Make Links...|Ctrl L", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 4, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Make Single User...|U", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 5, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Copy Properties...|Ctrl C", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 6, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBlockBut(block, view3d_edit_object_parentmenu, NULL, ICON_RIGHTARROW_THIN, "Parent", 0, yco-=20, 120, 19, "");
|
||||
uiDefIconTextBlockBut(block, view3d_edit_object_trackmenu, NULL, ICON_RIGHTARROW_THIN, "Track", 0, yco-=20, 120, 19, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
if (OBACT && OBACT->type == OB_MESH) {
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Boolean Operation...|W", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 7, "");
|
||||
}
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Join Objects|Ctrl J", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 8, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Convert Object Type...|Alt C", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 9, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Move to Layer...|M", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 10, "");
|
||||
|
||||
if(curarea->headertype==HEADERTOP) {
|
||||
uiBlockSetDirection(block, UI_DOWN);
|
||||
}
|
||||
else {
|
||||
uiBlockSetDirection(block, UI_TOP);
|
||||
uiBlockFlipOrder(block);
|
||||
}
|
||||
|
||||
uiTextBoundsBlock(block, 50);
|
||||
return block;
|
||||
uiTextBoundsBlock(block, 50);
|
||||
return block;
|
||||
}
|
||||
|
||||
|
||||
static void do_view3d_edit_propfalloffmenu(void *arg, int event)
|
||||
{
|
||||
extern int prop_mode;
|
||||
|
||||
switch(event) {
|
||||
case 0: /* proportional edit - sharp*/
|
||||
prop_mode = 0;
|
||||
break;
|
||||
case 1: /* proportional edit - smooth*/
|
||||
prop_mode = 1;
|
||||
break;
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
extern int prop_mode;
|
||||
|
||||
switch(event) {
|
||||
case 0: /* proportional edit - sharp*/
|
||||
prop_mode = 0;
|
||||
break;
|
||||
case 1: /* proportional edit - smooth*/
|
||||
prop_mode = 1;
|
||||
break;
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
}
|
||||
|
||||
static uiBlock *view3d_edit_propfalloffmenu(void *arg_unused)
|
||||
{
|
||||
uiBlock *block;
|
||||
short yco = 20, menuwidth = 120;
|
||||
extern int prop_mode;
|
||||
uiBlock *block;
|
||||
short yco = 20, menuwidth = 120;
|
||||
extern int prop_mode;
|
||||
|
||||
block= uiNewBlock(&curarea->uiblocks, "view3d_edit_propfalloffmenu", UI_EMBOSSP, UI_HELV, G.curscreen->mainwin);
|
||||
uiBlockSetButmFunc(block, do_view3d_edit_propfalloffmenu, NULL);
|
||||
uiBlockSetCol(block, MENUCOL);
|
||||
|
||||
if (prop_mode==0) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Sharp|Shift O", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, "");
|
||||
else uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Sharp|Shift O", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, "");
|
||||
if (prop_mode==1) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Smooth|Shift O", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, "");
|
||||
else uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Smooth|Shift O", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, "");
|
||||
|
||||
uiBlockSetDirection(block, UI_RIGHT);
|
||||
uiTextBoundsBlock(block, 60);
|
||||
return block;
|
||||
block= uiNewBlock(&curarea->uiblocks, "view3d_edit_propfalloffmenu", UI_EMBOSSP, UI_HELV, G.curscreen->mainwin);
|
||||
uiBlockSetButmFunc(block, do_view3d_edit_propfalloffmenu, NULL);
|
||||
uiBlockSetCol(block, MENUCOL);
|
||||
|
||||
if (prop_mode==0) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Sharp|Shift O", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, "");
|
||||
else uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Sharp|Shift O", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, "");
|
||||
if (prop_mode==1) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Smooth|Shift O", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, "");
|
||||
else uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Smooth|Shift O", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, "");
|
||||
|
||||
uiBlockSetDirection(block, UI_RIGHT);
|
||||
uiTextBoundsBlock(block, 60);
|
||||
return block;
|
||||
}
|
||||
|
||||
static void do_view3d_edit_mesh_verticesmenu(void *arg, int event)
|
||||
{
|
||||
extern float doublimit;
|
||||
|
||||
switch(event) {
|
||||
|
||||
case 0: /* make vertex parent */
|
||||
make_parent();
|
||||
break;
|
||||
case 1: /* remove doubles */
|
||||
notice("Removed: %d", removedoublesflag(1, doublimit));
|
||||
break;
|
||||
case 2: /* smooth */
|
||||
vertexsmooth();
|
||||
break;
|
||||
case 3: /* separate */
|
||||
separate_mesh();
|
||||
break;
|
||||
case 4: /*split */
|
||||
split_mesh();
|
||||
break;
|
||||
case 5: /*merge */
|
||||
mergemenu();
|
||||
break;
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
extern float doublimit;
|
||||
|
||||
switch(event) {
|
||||
|
||||
case 0: /* make vertex parent */
|
||||
make_parent();
|
||||
break;
|
||||
case 1: /* remove doubles */
|
||||
notice("Removed: %d", removedoublesflag(1, doublimit));
|
||||
break;
|
||||
case 2: /* smooth */
|
||||
vertexsmooth();
|
||||
break;
|
||||
case 3: /* separate */
|
||||
separate_mesh();
|
||||
break;
|
||||
case 4: /*split */
|
||||
split_mesh();
|
||||
break;
|
||||
case 5: /*merge */
|
||||
mergemenu();
|
||||
break;
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
}
|
||||
|
||||
static uiBlock *view3d_edit_mesh_verticesmenu(void *arg_unused)
|
||||
{
|
||||
uiBlock *block;
|
||||
short yco = 20, menuwidth = 120;
|
||||
uiBlock *block;
|
||||
short yco = 20, menuwidth = 120;
|
||||
|
||||
block= uiNewBlock(&curarea->uiblocks, "view3d_edit_mesh_verticesmenu", UI_EMBOSSP, UI_HELV, G.curscreen->mainwin);
|
||||
uiBlockSetButmFunc(block, do_view3d_edit_mesh_verticesmenu, NULL);
|
||||
uiBlockSetCol(block, MENUCOL);
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Merge...|Alt M", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 5, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Split|Y", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 4, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Separate|P", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Smooth", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Remove Doubles", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
block= uiNewBlock(&curarea->uiblocks, "view3d_edit_mesh_verticesmenu", UI_EMBOSSP, UI_HELV, G.curscreen->mainwin);
|
||||
uiBlockSetButmFunc(block, do_view3d_edit_mesh_verticesmenu, NULL);
|
||||
uiBlockSetCol(block, MENUCOL);
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Merge...|Alt M", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 5, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Split|Y", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 4, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Separate|P", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Smooth", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Remove Doubles", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Make Vertex Parent|Ctrl P", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Make Vertex Parent|Ctrl P", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, "");
|
||||
|
||||
uiBlockSetDirection(block, UI_RIGHT);
|
||||
uiTextBoundsBlock(block, 60);
|
||||
return block;
|
||||
uiBlockSetDirection(block, UI_RIGHT);
|
||||
uiTextBoundsBlock(block, 60);
|
||||
return block;
|
||||
}
|
||||
|
||||
static void do_view3d_edit_mesh_edgesmenu(void *arg, int event)
|
||||
{
|
||||
extern short editbutflag;
|
||||
float fac;
|
||||
short randfac;
|
||||
extern short editbutflag;
|
||||
float fac;
|
||||
short randfac;
|
||||
|
||||
switch(event) {
|
||||
|
||||
case 0: /* subdivide smooth */
|
||||
subdivideflag(1, 0.0, editbutflag | B_SMOOTH);
|
||||
break;
|
||||
case 1: /*subdivide fractal */
|
||||
randfac= 10;
|
||||
if(button(&randfac, 1, 100, "Rand fac:")==0) return;
|
||||
fac= -( (float)randfac )/100;
|
||||
subdivideflag(1, fac, editbutflag);
|
||||
break;
|
||||
case 2: /* subdivide */
|
||||
subdivideflag(1, 0.0, editbutflag);
|
||||
break;
|
||||
case 3: /* knife subdivide */
|
||||
// KnifeSubdivide();
|
||||
break;
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
switch(event) {
|
||||
|
||||
case 0: /* subdivide smooth */
|
||||
subdivideflag(1, 0.0, editbutflag | B_SMOOTH);
|
||||
break;
|
||||
case 1: /*subdivide fractal */
|
||||
randfac= 10;
|
||||
if(button(&randfac, 1, 100, "Rand fac:")==0) return;
|
||||
fac= -( (float)randfac )/100;
|
||||
subdivideflag(1, fac, editbutflag);
|
||||
break;
|
||||
case 2: /* subdivide */
|
||||
subdivideflag(1, 0.0, editbutflag);
|
||||
break;
|
||||
case 3: /* knife subdivide */
|
||||
// KnifeSubdivide();
|
||||
break;
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
}
|
||||
|
||||
static uiBlock *view3d_edit_mesh_edgesmenu(void *arg_unused)
|
||||
{
|
||||
uiBlock *block;
|
||||
short yco = 20, menuwidth = 120;
|
||||
uiBlock *block;
|
||||
short yco = 20, menuwidth = 120;
|
||||
|
||||
block= uiNewBlock(&curarea->uiblocks, "view3d_edit_mesh_edgesmenu", UI_EMBOSSP, UI_HELV, G.curscreen->mainwin);
|
||||
uiBlockSetButmFunc(block, do_view3d_edit_mesh_edgesmenu, NULL);
|
||||
uiBlockSetCol(block, MENUCOL);
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Knife Subdivide|K", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Subdivide", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Subdivide Fractal", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Subdivide Smooth", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, "");
|
||||
block= uiNewBlock(&curarea->uiblocks, "view3d_edit_mesh_edgesmenu", UI_EMBOSSP, UI_HELV, G.curscreen->mainwin);
|
||||
uiBlockSetButmFunc(block, do_view3d_edit_mesh_edgesmenu, NULL);
|
||||
uiBlockSetCol(block, MENUCOL);
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Knife Subdivide|K", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Subdivide", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Subdivide Fractal", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Subdivide Smooth", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, "");
|
||||
|
||||
uiBlockSetDirection(block, UI_RIGHT);
|
||||
uiTextBoundsBlock(block, 60);
|
||||
return block;
|
||||
uiBlockSetDirection(block, UI_RIGHT);
|
||||
uiTextBoundsBlock(block, 60);
|
||||
return block;
|
||||
}
|
||||
|
||||
static void do_view3d_edit_mesh_facesmenu(void *arg, int event)
|
||||
{
|
||||
switch(event) {
|
||||
case 0: /* Fill Faces */
|
||||
fill_mesh();
|
||||
break;
|
||||
case 1: /* Beauty Fill Faces */
|
||||
beauty_fill();
|
||||
break;
|
||||
case 2: /* Quads to Tris */
|
||||
convert_to_triface(0);
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
countall();
|
||||
makeDispList(G.obedit);
|
||||
break;
|
||||
case 3: /* Tris to Quads */
|
||||
join_triangles();
|
||||
break;
|
||||
case 4: /* Flip triangle edges */
|
||||
edge_flip();
|
||||
break;
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
switch(event) {
|
||||
case 0: /* Fill Faces */
|
||||
fill_mesh();
|
||||
break;
|
||||
case 1: /* Beauty Fill Faces */
|
||||
beauty_fill();
|
||||
break;
|
||||
case 2: /* Quads to Tris */
|
||||
convert_to_triface(0);
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
countall();
|
||||
makeDispList(G.obedit);
|
||||
break;
|
||||
case 3: /* Tris to Quads */
|
||||
join_triangles();
|
||||
break;
|
||||
case 4: /* Flip triangle edges */
|
||||
edge_flip();
|
||||
break;
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
}
|
||||
|
||||
static uiBlock *view3d_edit_mesh_facesmenu(void *arg_unused)
|
||||
{
|
||||
uiBlock *block;
|
||||
short yco = 20, menuwidth = 120;
|
||||
uiBlock *block;
|
||||
short yco = 20, menuwidth = 120;
|
||||
|
||||
block= uiNewBlock(&curarea->uiblocks, "view3d_edit_mesh_facesmenu", UI_EMBOSSP, UI_HELV, G.curscreen->mainwin);
|
||||
uiBlockSetButmFunc(block, do_view3d_edit_mesh_facesmenu, NULL);
|
||||
uiBlockSetCol(block, MENUCOL);
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Fill|Shift F", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Beauty Fill|Alt F", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Convert Quads to Triangles|Ctrl T", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Convert Triangles to Quads|Alt J", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Flip Triangle Edges|Ctrl F", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 4, "");
|
||||
|
||||
uiBlockSetDirection(block, UI_RIGHT);
|
||||
uiTextBoundsBlock(block, 60);
|
||||
return block;
|
||||
block= uiNewBlock(&curarea->uiblocks, "view3d_edit_mesh_facesmenu", UI_EMBOSSP, UI_HELV, G.curscreen->mainwin);
|
||||
uiBlockSetButmFunc(block, do_view3d_edit_mesh_facesmenu, NULL);
|
||||
uiBlockSetCol(block, MENUCOL);
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Fill|Shift F", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Beauty Fill|Alt F", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Convert Quads to Triangles|Ctrl T", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Convert Triangles to Quads|Alt J", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Flip Triangle Edges|Ctrl F", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 4, "");
|
||||
|
||||
uiBlockSetDirection(block, UI_RIGHT);
|
||||
uiTextBoundsBlock(block, 60);
|
||||
return block;
|
||||
}
|
||||
|
||||
static void do_view3d_edit_mesh_normalsmenu(void *arg, int event)
|
||||
{
|
||||
switch(event) {
|
||||
case 0: /* flip */
|
||||
flip_editnormals();
|
||||
break;
|
||||
case 1: /* recalculate inside */
|
||||
righthandfaces(2);
|
||||
break;
|
||||
case 2: /* recalculate outside */
|
||||
righthandfaces(1);
|
||||
break;
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
switch(event) {
|
||||
case 0: /* flip */
|
||||
flip_editnormals();
|
||||
break;
|
||||
case 1: /* recalculate inside */
|
||||
righthandfaces(2);
|
||||
break;
|
||||
case 2: /* recalculate outside */
|
||||
righthandfaces(1);
|
||||
break;
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
}
|
||||
|
||||
static uiBlock *view3d_edit_mesh_normalsmenu(void *arg_unused)
|
||||
{
|
||||
uiBlock *block;
|
||||
short yco = 20, menuwidth = 120;
|
||||
uiBlock *block;
|
||||
short yco = 20, menuwidth = 120;
|
||||
|
||||
block= uiNewBlock(&curarea->uiblocks, "view3d_edit_mesh_normalsmenu", UI_EMBOSSP, UI_HELV, G.curscreen->mainwin);
|
||||
uiBlockSetButmFunc(block, do_view3d_edit_mesh_normalsmenu, NULL);
|
||||
uiBlockSetCol(block, MENUCOL);
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Recalculate Outside|Ctrl N", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Recalculate Inside|Ctrl Shift N", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Flip", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, "");
|
||||
|
||||
uiBlockSetDirection(block, UI_RIGHT);
|
||||
uiTextBoundsBlock(block, 60);
|
||||
return block;
|
||||
block= uiNewBlock(&curarea->uiblocks, "view3d_edit_mesh_normalsmenu", UI_EMBOSSP, UI_HELV, G.curscreen->mainwin);
|
||||
uiBlockSetButmFunc(block, do_view3d_edit_mesh_normalsmenu, NULL);
|
||||
uiBlockSetCol(block, MENUCOL);
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Recalculate Outside|Ctrl N", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Recalculate Inside|Ctrl Shift N", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Flip", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, "");
|
||||
|
||||
uiBlockSetDirection(block, UI_RIGHT);
|
||||
uiTextBoundsBlock(block, 60);
|
||||
return block;
|
||||
}
|
||||
|
||||
static void do_view3d_edit_meshmenu(void *arg, int event)
|
||||
{
|
||||
switch(event) {
|
||||
|
||||
case 0: /* Undo Editing */
|
||||
remake_editMesh();
|
||||
break;
|
||||
case 1: /* transform properties */
|
||||
blenderqread(NKEY, 1);
|
||||
break;
|
||||
case 2: /* Extrude */
|
||||
extrude_mesh();
|
||||
break;
|
||||
case 3: /* duplicate */
|
||||
duplicate_context_selected();
|
||||
break;
|
||||
case 4: /* Make Edge/Face */
|
||||
addedgevlak_mesh();
|
||||
break;
|
||||
case 5: /* delete */
|
||||
delete_context_selected();
|
||||
break;
|
||||
case 6: /* Shrink/Fatten Along Normals */
|
||||
transform('N');
|
||||
break;
|
||||
case 7: /* Shear */
|
||||
transform('S');
|
||||
break;
|
||||
case 8: /* Warp */
|
||||
transform('w');
|
||||
break;
|
||||
case 9: /* proportional edit (toggle) */
|
||||
if(G.f & G_PROPORTIONAL) G.f &= ~G_PROPORTIONAL;
|
||||
else G.f |= G_PROPORTIONAL;
|
||||
break;
|
||||
case 10: /* show hidden vertices */
|
||||
reveal_mesh();
|
||||
break;
|
||||
case 11: /* hide selected vertices */
|
||||
hide_mesh(0);
|
||||
break;
|
||||
case 12: /* hide deselected vertices */
|
||||
hide_mesh(1);
|
||||
break;
|
||||
case 13: /* insert keyframe */
|
||||
common_insertkey();
|
||||
break;
|
||||
case 14: /* snap */
|
||||
snapmenu();
|
||||
break;
|
||||
case 15: /* move to layer */
|
||||
movetolayer();
|
||||
break;
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
switch(event) {
|
||||
|
||||
case 0: /* Undo Editing */
|
||||
remake_editMesh();
|
||||
break;
|
||||
case 1: /* transform properties */
|
||||
blenderqread(NKEY, 1);
|
||||
break;
|
||||
case 2: /* Extrude */
|
||||
extrude_mesh();
|
||||
break;
|
||||
case 3: /* duplicate */
|
||||
duplicate_context_selected();
|
||||
break;
|
||||
case 4: /* Make Edge/Face */
|
||||
addedgevlak_mesh();
|
||||
break;
|
||||
case 5: /* delete */
|
||||
delete_context_selected();
|
||||
break;
|
||||
case 6: /* Shrink/Fatten Along Normals */
|
||||
transform('N');
|
||||
break;
|
||||
case 7: /* Shear */
|
||||
transform('S');
|
||||
break;
|
||||
case 8: /* Warp */
|
||||
transform('w');
|
||||
break;
|
||||
case 9: /* proportional edit (toggle) */
|
||||
if(G.f & G_PROPORTIONAL) G.f &= ~G_PROPORTIONAL;
|
||||
else G.f |= G_PROPORTIONAL;
|
||||
break;
|
||||
case 10: /* show hidden vertices */
|
||||
reveal_mesh();
|
||||
break;
|
||||
case 11: /* hide selected vertices */
|
||||
hide_mesh(0);
|
||||
break;
|
||||
case 12: /* hide deselected vertices */
|
||||
hide_mesh(1);
|
||||
break;
|
||||
case 13: /* insert keyframe */
|
||||
common_insertkey();
|
||||
break;
|
||||
case 14: /* snap */
|
||||
snapmenu();
|
||||
break;
|
||||
case 15: /* move to layer */
|
||||
movetolayer();
|
||||
break;
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
}
|
||||
|
||||
static uiBlock *view3d_edit_meshmenu(void *arg_unused)
|
||||
{
|
||||
|
||||
uiBlock *block;
|
||||
short yco= 0, menuwidth=120;
|
||||
|
||||
block= uiNewBlock(&curarea->uiblocks, "view3d_edit_meshmenu", UI_EMBOSSP, UI_HELV, curarea->headwin);
|
||||
uiBlockSetButmFunc(block, do_view3d_edit_meshmenu, NULL);
|
||||
uiBlockSetCol(block, MENUCOL);
|
||||
|
||||
/*
|
||||
uiDefIconTextBlockBut(block, view3d_edit_mesh_facesmenu, NULL, ICON_RIGHTARROW_THIN, "Move", 0, yco-=20, 120, 19, "");
|
||||
uiDefIconTextBlockBut(block, view3d_edit_mesh_facesmenu, NULL, ICON_RIGHTARROW_THIN, "Rotate", 0, yco-=20, 120, 19, "");
|
||||
uiDefIconTextBlockBut(block, view3d_edit_mesh_facesmenu, NULL, ICON_RIGHTARROW_THIN, "Scale", 0, yco-=20, 120, 19, "");
|
||||
*/
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Undo Editing|U", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Transform Properties...|N", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Snap...|Shift S", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 14, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Insert Keyframe|I", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 13, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Extrude|E", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Duplicate|Shift D", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Make Edge/Face|F", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 4, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Delete...|X", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 5, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBlockBut(block, view3d_edit_mesh_verticesmenu, NULL, ICON_RIGHTARROW_THIN, "Vertices", 0, yco-=20, 120, 19, "");
|
||||
uiDefIconTextBlockBut(block, view3d_edit_mesh_edgesmenu, NULL, ICON_RIGHTARROW_THIN, "Edges", 0, yco-=20, 120, 19, "");
|
||||
uiDefIconTextBlockBut(block, view3d_edit_mesh_facesmenu, NULL, ICON_RIGHTARROW_THIN, "Faces", 0, yco-=20, 120, 19, "");
|
||||
uiDefIconTextBlockBut(block, view3d_edit_mesh_normalsmenu, NULL, ICON_RIGHTARROW_THIN, "Normals", 0, yco-=20, 120, 19, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Shrink/Fatten Along Normals|Alt S", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 6, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Shear|Ctrl S", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 7, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Warp|Ctrl W", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 8, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
if(G.f & G_PROPORTIONAL) {
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Proportional Editing|O", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 9, "");
|
||||
} else {
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Proportional Editing|O", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 9, "");
|
||||
}
|
||||
uiDefIconTextBlockBut(block, view3d_edit_propfalloffmenu, NULL, ICON_RIGHTARROW_THIN, "Proportional Falloff", 0, yco-=20, 120, 19, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Show Hidden Vertices", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 10, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Hide Selected Vertices|H", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 11, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Hide Deselected Vertices|Shift H", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 12, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Move to Layer...|M", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 15, "");
|
||||
|
||||
if(curarea->headertype==HEADERTOP) {
|
||||
uiBlockSetDirection(block, UI_DOWN);
|
||||
}
|
||||
else {
|
||||
uiBlockSetDirection(block, UI_TOP);
|
||||
uiBlockFlipOrder(block);
|
||||
}
|
||||
uiBlock *block;
|
||||
short yco= 0, menuwidth=120;
|
||||
|
||||
block= uiNewBlock(&curarea->uiblocks, "view3d_edit_meshmenu", UI_EMBOSSP, UI_HELV, curarea->headwin);
|
||||
uiBlockSetButmFunc(block, do_view3d_edit_meshmenu, NULL);
|
||||
uiBlockSetCol(block, MENUCOL);
|
||||
|
||||
/*
|
||||
uiDefIconTextBlockBut(block, view3d_edit_mesh_facesmenu, NULL, ICON_RIGHTARROW_THIN, "Move", 0, yco-=20, 120, 19, "");
|
||||
uiDefIconTextBlockBut(block, view3d_edit_mesh_facesmenu, NULL, ICON_RIGHTARROW_THIN, "Rotate", 0, yco-=20, 120, 19, "");
|
||||
uiDefIconTextBlockBut(block, view3d_edit_mesh_facesmenu, NULL, ICON_RIGHTARROW_THIN, "Scale", 0, yco-=20, 120, 19, "");
|
||||
*/
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Undo Editing|U", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Transform Properties...|N", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Snap...|Shift S", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 14, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Insert Keyframe|I", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 13, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Extrude|E", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Duplicate|Shift D", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Make Edge/Face|F", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 4, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Delete...|X", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 5, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBlockBut(block, view3d_edit_mesh_verticesmenu, NULL, ICON_RIGHTARROW_THIN, "Vertices", 0, yco-=20, 120, 19, "");
|
||||
uiDefIconTextBlockBut(block, view3d_edit_mesh_edgesmenu, NULL, ICON_RIGHTARROW_THIN, "Edges", 0, yco-=20, 120, 19, "");
|
||||
uiDefIconTextBlockBut(block, view3d_edit_mesh_facesmenu, NULL, ICON_RIGHTARROW_THIN, "Faces", 0, yco-=20, 120, 19, "");
|
||||
uiDefIconTextBlockBut(block, view3d_edit_mesh_normalsmenu, NULL, ICON_RIGHTARROW_THIN, "Normals", 0, yco-=20, 120, 19, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Shrink/Fatten Along Normals|Alt S", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 6, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Shear|Ctrl S", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 7, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Warp|Ctrl W", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 8, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
if(G.f & G_PROPORTIONAL) {
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Proportional Editing|O", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 9, "");
|
||||
} else {
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Proportional Editing|O", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 9, "");
|
||||
}
|
||||
uiDefIconTextBlockBut(block, view3d_edit_propfalloffmenu, NULL, ICON_RIGHTARROW_THIN, "Proportional Falloff", 0, yco-=20, 120, 19, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Show Hidden Vertices", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 10, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Hide Selected Vertices|H", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 11, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Hide Deselected Vertices|Shift H", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 12, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Move to Layer...|M", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 15, "");
|
||||
|
||||
if(curarea->headertype==HEADERTOP) {
|
||||
uiBlockSetDirection(block, UI_DOWN);
|
||||
}
|
||||
else {
|
||||
uiBlockSetDirection(block, UI_TOP);
|
||||
uiBlockFlipOrder(block);
|
||||
}
|
||||
|
||||
uiTextBoundsBlock(block, 50);
|
||||
return block;
|
||||
uiTextBoundsBlock(block, 50);
|
||||
return block;
|
||||
}
|
||||
|
||||
static void do_view3d_edit_curve_controlpointsmenu(void *arg, int event)
|
||||
{
|
||||
switch(event) {
|
||||
case 0: /* tilt */
|
||||
transform('t');
|
||||
break;
|
||||
case 1: /* clear tilt */
|
||||
clear_tilt();
|
||||
break;
|
||||
case 2: /* Free */
|
||||
sethandlesNurb(3);
|
||||
makeDispList(G.obedit);
|
||||
break;
|
||||
case 3: /* vector */
|
||||
sethandlesNurb(2);
|
||||
makeDispList(G.obedit);
|
||||
break;
|
||||
case 4: /* smooth */
|
||||
sethandlesNurb(1);
|
||||
makeDispList(G.obedit);
|
||||
break;
|
||||
case 5: /* make vertex parent */
|
||||
make_parent();
|
||||
break;
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
switch(event) {
|
||||
case 0: /* tilt */
|
||||
transform('t');
|
||||
break;
|
||||
case 1: /* clear tilt */
|
||||
clear_tilt();
|
||||
break;
|
||||
case 2: /* Free */
|
||||
sethandlesNurb(3);
|
||||
makeDispList(G.obedit);
|
||||
break;
|
||||
case 3: /* vector */
|
||||
sethandlesNurb(2);
|
||||
makeDispList(G.obedit);
|
||||
break;
|
||||
case 4: /* smooth */
|
||||
sethandlesNurb(1);
|
||||
makeDispList(G.obedit);
|
||||
break;
|
||||
case 5: /* make vertex parent */
|
||||
make_parent();
|
||||
break;
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
}
|
||||
|
||||
static uiBlock *view3d_edit_curve_controlpointsmenu(void *arg_unused)
|
||||
{
|
||||
uiBlock *block;
|
||||
short yco = 20, menuwidth = 120;
|
||||
uiBlock *block;
|
||||
short yco = 20, menuwidth = 120;
|
||||
|
||||
block= uiNewBlock(&curarea->uiblocks, "view3d_edit_curve_controlpointsmenu", UI_EMBOSSP, UI_HELV, G.curscreen->mainwin);
|
||||
uiBlockSetButmFunc(block, do_view3d_edit_curve_controlpointsmenu, NULL);
|
||||
uiBlockSetCol(block, MENUCOL);
|
||||
|
||||
if (OBACT->type == OB_CURVE) {
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Tilt|T", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Clear Tilt|Alt T", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Toggle Free/Aligned|H", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Vector|V", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Smooth|Shift H", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 4, "");
|
||||
}
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Make Vertex Parent|Ctrl P", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 5, "");
|
||||
|
||||
uiBlockSetDirection(block, UI_RIGHT);
|
||||
uiTextBoundsBlock(block, 60);
|
||||
return block;
|
||||
block= uiNewBlock(&curarea->uiblocks, "view3d_edit_curve_controlpointsmenu", UI_EMBOSSP, UI_HELV, G.curscreen->mainwin);
|
||||
uiBlockSetButmFunc(block, do_view3d_edit_curve_controlpointsmenu, NULL);
|
||||
uiBlockSetCol(block, MENUCOL);
|
||||
|
||||
if (OBACT->type == OB_CURVE) {
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Tilt|T", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Clear Tilt|Alt T", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Toggle Free/Aligned|H", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Vector|V", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Smooth|Shift H", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 4, "");
|
||||
}
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Make Vertex Parent|Ctrl P", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 5, "");
|
||||
|
||||
uiBlockSetDirection(block, UI_RIGHT);
|
||||
uiTextBoundsBlock(block, 60);
|
||||
return block;
|
||||
}
|
||||
|
||||
static void do_view3d_edit_curve_segmentsmenu(void *arg, int event)
|
||||
{
|
||||
switch(event) {
|
||||
case 0: /* subdivide */
|
||||
subdivideNurb();
|
||||
break;
|
||||
case 1: /* switch direction */
|
||||
switchdirectionNurb2();
|
||||
break;
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
switch(event) {
|
||||
case 0: /* subdivide */
|
||||
subdivideNurb();
|
||||
break;
|
||||
case 1: /* switch direction */
|
||||
switchdirectionNurb2();
|
||||
break;
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
}
|
||||
|
||||
static uiBlock *view3d_edit_curve_segmentsmenu(void *arg_unused)
|
||||
{
|
||||
uiBlock *block;
|
||||
short yco = 20, menuwidth = 120;
|
||||
uiBlock *block;
|
||||
short yco = 20, menuwidth = 120;
|
||||
|
||||
block= uiNewBlock(&curarea->uiblocks, "view3d_edit_curve_segmentsmenu", UI_EMBOSSP, UI_HELV, G.curscreen->mainwin);
|
||||
uiBlockSetButmFunc(block, do_view3d_edit_curve_segmentsmenu, NULL);
|
||||
uiBlockSetCol(block, MENUCOL);
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Subdivide", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Switch Direction", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, "");
|
||||
block= uiNewBlock(&curarea->uiblocks, "view3d_edit_curve_segmentsmenu", UI_EMBOSSP, UI_HELV, G.curscreen->mainwin);
|
||||
uiBlockSetButmFunc(block, do_view3d_edit_curve_segmentsmenu, NULL);
|
||||
uiBlockSetCol(block, MENUCOL);
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Subdivide", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Switch Direction", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, "");
|
||||
|
||||
uiBlockSetDirection(block, UI_RIGHT);
|
||||
uiTextBoundsBlock(block, 60);
|
||||
return block;
|
||||
uiBlockSetDirection(block, UI_RIGHT);
|
||||
uiTextBoundsBlock(block, 60);
|
||||
return block;
|
||||
}
|
||||
|
||||
static void do_view3d_edit_curvemenu(void *arg, int event)
|
||||
{
|
||||
switch(event) {
|
||||
|
||||
case 0: /* Undo Editing */
|
||||
remake_editNurb();
|
||||
break;
|
||||
case 1: /* transformation properties */
|
||||
blenderqread(NKEY, 1);
|
||||
break;
|
||||
case 2: /* insert keyframe */
|
||||
common_insertkey();
|
||||
break;
|
||||
case 4: /* extrude */
|
||||
if (OBACT->type == OB_CURVE) {
|
||||
addvert_Nurb('e');
|
||||
} else if (OBACT->type == OB_SURF) {
|
||||
extrude_nurb();
|
||||
}
|
||||
break;
|
||||
case 5: /* duplicate */
|
||||
duplicate_context_selected();
|
||||
break;
|
||||
case 6: /* make segment */
|
||||
addsegment_nurb();
|
||||
break;
|
||||
case 7: /* toggle cyclic */
|
||||
makecyclicNurb();
|
||||
makeDispList(G.obedit);
|
||||
break;
|
||||
case 8: /* delete */
|
||||
delete_context_selected();
|
||||
break;
|
||||
case 9: /* proportional edit (toggle) */
|
||||
if(G.f & G_PROPORTIONAL) G.f &= ~G_PROPORTIONAL;
|
||||
else G.f |= G_PROPORTIONAL;
|
||||
break;
|
||||
case 10: /* show hidden control points */
|
||||
revealNurb();
|
||||
break;
|
||||
case 11: /* hide selected control points */
|
||||
hideNurb(0);
|
||||
break;
|
||||
case 12: /* hide deselected control points */
|
||||
hideNurb(1);
|
||||
break;
|
||||
case 13: /* Shear */
|
||||
transform('S');
|
||||
break;
|
||||
case 14: /* Warp */
|
||||
transform('w');
|
||||
break;
|
||||
case 15: /* snap */
|
||||
snapmenu();
|
||||
break;
|
||||
case 16: /* move to layer */
|
||||
movetolayer();
|
||||
break;
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
switch(event) {
|
||||
|
||||
case 0: /* Undo Editing */
|
||||
remake_editNurb();
|
||||
break;
|
||||
case 1: /* transformation properties */
|
||||
blenderqread(NKEY, 1);
|
||||
break;
|
||||
case 2: /* insert keyframe */
|
||||
common_insertkey();
|
||||
break;
|
||||
case 4: /* extrude */
|
||||
if (OBACT->type == OB_CURVE) {
|
||||
addvert_Nurb('e');
|
||||
} else if (OBACT->type == OB_SURF) {
|
||||
extrude_nurb();
|
||||
}
|
||||
break;
|
||||
case 5: /* duplicate */
|
||||
duplicate_context_selected();
|
||||
break;
|
||||
case 6: /* make segment */
|
||||
addsegment_nurb();
|
||||
break;
|
||||
case 7: /* toggle cyclic */
|
||||
makecyclicNurb();
|
||||
makeDispList(G.obedit);
|
||||
break;
|
||||
case 8: /* delete */
|
||||
delete_context_selected();
|
||||
break;
|
||||
case 9: /* proportional edit (toggle) */
|
||||
if(G.f & G_PROPORTIONAL) G.f &= ~G_PROPORTIONAL;
|
||||
else G.f |= G_PROPORTIONAL;
|
||||
break;
|
||||
case 10: /* show hidden control points */
|
||||
revealNurb();
|
||||
break;
|
||||
case 11: /* hide selected control points */
|
||||
hideNurb(0);
|
||||
break;
|
||||
case 12: /* hide deselected control points */
|
||||
hideNurb(1);
|
||||
break;
|
||||
case 13: /* Shear */
|
||||
transform('S');
|
||||
break;
|
||||
case 14: /* Warp */
|
||||
transform('w');
|
||||
break;
|
||||
case 15: /* snap */
|
||||
snapmenu();
|
||||
break;
|
||||
case 16: /* move to layer */
|
||||
movetolayer();
|
||||
break;
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
}
|
||||
|
||||
static uiBlock *view3d_edit_curvemenu(void *arg_unused)
|
||||
{
|
||||
uiBlock *block;
|
||||
short yco= 0, menuwidth=120;
|
||||
uiBlock *block;
|
||||
short yco= 0, menuwidth=120;
|
||||
|
||||
block= uiNewBlock(&curarea->uiblocks, "view3d_edit_curvemenu", UI_EMBOSSP, UI_HELV, curarea->headwin);
|
||||
uiBlockSetButmFunc(block, do_view3d_edit_curvemenu, NULL);
|
||||
uiBlockSetCol(block, MENUCOL);
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Undo Editing|U", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Transform Properties...|N", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Snap...|Shift S", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 15, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Insert Keyframe|I", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Extrude|E", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 4, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Duplicate|Shift D", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 5, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Make Segment|F", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 6, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Toggle Cyclic|C", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 7, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Delete...|X", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 8, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBlockBut(block, view3d_edit_curve_controlpointsmenu, NULL, ICON_RIGHTARROW_THIN, "Control Points", 0, yco-=20, menuwidth, 19, "");
|
||||
uiDefIconTextBlockBut(block, view3d_edit_curve_segmentsmenu, NULL, ICON_RIGHTARROW_THIN, "Segments", 0, yco-=20, menuwidth, 19, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Shear|Ctrl S", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 13, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Warp|Ctrl W", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 14, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
if(G.f & G_PROPORTIONAL) {
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Proportional Editing|O", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 9, "");
|
||||
} else {
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Proportional Editing|O", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 9, "");
|
||||
}
|
||||
uiDefIconTextBlockBut(block, view3d_edit_propfalloffmenu, NULL, ICON_RIGHTARROW_THIN, "Proportional Falloff", 0, yco-=20, 120, 19, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Show Hidden Control Points|Alt H", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 10, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Hide Selected Control Points|H", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 11, "");
|
||||
if (OBACT->type == OB_SURF) uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Hide Deselected Control Points|Shift H", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 12, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Move to Layer...|M", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 16, "");
|
||||
|
||||
if(curarea->headertype==HEADERTOP) {
|
||||
uiBlockSetDirection(block, UI_DOWN);
|
||||
}
|
||||
else {
|
||||
uiBlockSetDirection(block, UI_TOP);
|
||||
uiBlockFlipOrder(block);
|
||||
}
|
||||
block= uiNewBlock(&curarea->uiblocks, "view3d_edit_curvemenu", UI_EMBOSSP, UI_HELV, curarea->headwin);
|
||||
uiBlockSetButmFunc(block, do_view3d_edit_curvemenu, NULL);
|
||||
uiBlockSetCol(block, MENUCOL);
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Undo Editing|U", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Transform Properties...|N", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Snap...|Shift S", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 15, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Insert Keyframe|I", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Extrude|E", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 4, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Duplicate|Shift D", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 5, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Make Segment|F", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 6, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Toggle Cyclic|C", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 7, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Delete...|X", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 8, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBlockBut(block, view3d_edit_curve_controlpointsmenu, NULL, ICON_RIGHTARROW_THIN, "Control Points", 0, yco-=20, menuwidth, 19, "");
|
||||
uiDefIconTextBlockBut(block, view3d_edit_curve_segmentsmenu, NULL, ICON_RIGHTARROW_THIN, "Segments", 0, yco-=20, menuwidth, 19, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Shear|Ctrl S", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 13, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Warp|Ctrl W", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 14, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
if(G.f & G_PROPORTIONAL) {
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Proportional Editing|O", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 9, "");
|
||||
} else {
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Proportional Editing|O", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 9, "");
|
||||
}
|
||||
uiDefIconTextBlockBut(block, view3d_edit_propfalloffmenu, NULL, ICON_RIGHTARROW_THIN, "Proportional Falloff", 0, yco-=20, 120, 19, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Show Hidden Control Points|Alt H", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 10, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Hide Selected Control Points|H", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 11, "");
|
||||
if (OBACT->type == OB_SURF) uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Hide Deselected Control Points|Shift H", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 12, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Move to Layer...|M", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 16, "");
|
||||
|
||||
if(curarea->headertype==HEADERTOP) {
|
||||
uiBlockSetDirection(block, UI_DOWN);
|
||||
}
|
||||
else {
|
||||
uiBlockSetDirection(block, UI_TOP);
|
||||
uiBlockFlipOrder(block);
|
||||
}
|
||||
|
||||
uiTextBoundsBlock(block, 50);
|
||||
return block;
|
||||
uiTextBoundsBlock(block, 50);
|
||||
return block;
|
||||
}
|
||||
|
||||
static void do_view3d_edit_metaballmenu(void *arg, int event)
|
||||
{
|
||||
switch(event) {
|
||||
case 1: /* duplicate */
|
||||
duplicate_context_selected();
|
||||
break;
|
||||
case 2: /* delete */
|
||||
delete_context_selected();
|
||||
break;
|
||||
case 3: /* Shear */
|
||||
transform('S');
|
||||
break;
|
||||
case 4: /* Warp */
|
||||
transform('w');
|
||||
break;
|
||||
case 5: /* move to layer */
|
||||
movetolayer();
|
||||
break;
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
switch(event) {
|
||||
case 1: /* duplicate */
|
||||
duplicate_context_selected();
|
||||
break;
|
||||
case 2: /* delete */
|
||||
delete_context_selected();
|
||||
break;
|
||||
case 3: /* Shear */
|
||||
transform('S');
|
||||
break;
|
||||
case 4: /* Warp */
|
||||
transform('w');
|
||||
break;
|
||||
case 5: /* move to layer */
|
||||
movetolayer();
|
||||
break;
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
}
|
||||
|
||||
static uiBlock *view3d_edit_metaballmenu(void *arg_unused)
|
||||
{
|
||||
uiBlock *block;
|
||||
short yco= 0, menuwidth=120;
|
||||
|
||||
block= uiNewBlock(&curarea->uiblocks, "view3d_edit_metaballmenu", UI_EMBOSSP, UI_HELV, curarea->headwin);
|
||||
uiBlockSetButmFunc(block, do_view3d_edit_metaballmenu, NULL);
|
||||
uiBlockSetCol(block, MENUCOL);
|
||||
|
||||
uiBlock *block;
|
||||
short yco= 0, menuwidth=120;
|
||||
|
||||
block= uiNewBlock(&curarea->uiblocks, "view3d_edit_metaballmenu", UI_EMBOSSP, UI_HELV, curarea->headwin);
|
||||
uiBlockSetButmFunc(block, do_view3d_edit_metaballmenu, NULL);
|
||||
uiBlockSetCol(block, MENUCOL);
|
||||
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Duplicate|Shift D", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Delete...|X", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Shear|Ctrl S", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Warp|Ctrl W", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 4, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Move to Layer...|M", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 5, "");
|
||||
|
||||
if(curarea->headertype==HEADERTOP) {
|
||||
uiBlockSetDirection(block, UI_DOWN);
|
||||
}
|
||||
else {
|
||||
uiBlockSetDirection(block, UI_TOP);
|
||||
uiBlockFlipOrder(block);
|
||||
}
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Duplicate|Shift D", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Delete...|X", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Shear|Ctrl S", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Warp|Ctrl W", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 4, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Move to Layer...|M", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 5, "");
|
||||
|
||||
if(curarea->headertype==HEADERTOP) {
|
||||
uiBlockSetDirection(block, UI_DOWN);
|
||||
}
|
||||
else {
|
||||
uiBlockSetDirection(block, UI_TOP);
|
||||
uiBlockFlipOrder(block);
|
||||
}
|
||||
|
||||
uiTextBoundsBlock(block, 50);
|
||||
return block;
|
||||
uiTextBoundsBlock(block, 50);
|
||||
return block;
|
||||
}
|
||||
|
||||
static void do_view3d_edit_text_charsmenu(void *arg, int event)
|
||||
{
|
||||
switch(event) {
|
||||
case 0: /* copyright */
|
||||
do_textedit(0,0,169);
|
||||
break;
|
||||
case 1: /* registered trademark */
|
||||
do_textedit(0,0,174);
|
||||
break;
|
||||
case 2: /* degree sign */
|
||||
do_textedit(0,0,176);
|
||||
break;
|
||||
case 3: /* Multiplication Sign */
|
||||
do_textedit(0,0,215);
|
||||
break;
|
||||
case 4: /* Circle */
|
||||
do_textedit(0,0,138);
|
||||
break;
|
||||
case 5: /* superscript 1 */
|
||||
do_textedit(0,0,185);
|
||||
break;
|
||||
case 6: /* superscript 2 */
|
||||
do_textedit(0,0,178);
|
||||
break;
|
||||
case 7: /* superscript 3 */
|
||||
do_textedit(0,0,179);
|
||||
break;
|
||||
case 8: /* double >> */
|
||||
do_textedit(0,0,187);
|
||||
break;
|
||||
case 9: /* double << */
|
||||
do_textedit(0,0,171);
|
||||
break;
|
||||
case 10: /* Promillage */
|
||||
do_textedit(0,0,139);
|
||||
break;
|
||||
case 11: /* dutch florin */
|
||||
do_textedit(0,0,164);
|
||||
break;
|
||||
case 12: /* british pound */
|
||||
do_textedit(0,0,163);
|
||||
break;
|
||||
case 13: /* japanese yen*/
|
||||
do_textedit(0,0,165);
|
||||
break;
|
||||
case 14: /* german S */
|
||||
do_textedit(0,0,223);
|
||||
break;
|
||||
case 15: /* spanish question mark */
|
||||
do_textedit(0,0,191);
|
||||
break;
|
||||
case 16: /* spanish exclamation mark */
|
||||
do_textedit(0,0,161);
|
||||
break;
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
switch(event) {
|
||||
case 0: /* copyright */
|
||||
do_textedit(0,0,169);
|
||||
break;
|
||||
case 1: /* registered trademark */
|
||||
do_textedit(0,0,174);
|
||||
break;
|
||||
case 2: /* degree sign */
|
||||
do_textedit(0,0,176);
|
||||
break;
|
||||
case 3: /* Multiplication Sign */
|
||||
do_textedit(0,0,215);
|
||||
break;
|
||||
case 4: /* Circle */
|
||||
do_textedit(0,0,138);
|
||||
break;
|
||||
case 5: /* superscript 1 */
|
||||
do_textedit(0,0,185);
|
||||
break;
|
||||
case 6: /* superscript 2 */
|
||||
do_textedit(0,0,178);
|
||||
break;
|
||||
case 7: /* superscript 3 */
|
||||
do_textedit(0,0,179);
|
||||
break;
|
||||
case 8: /* double >> */
|
||||
do_textedit(0,0,187);
|
||||
break;
|
||||
case 9: /* double << */
|
||||
do_textedit(0,0,171);
|
||||
break;
|
||||
case 10: /* Promillage */
|
||||
do_textedit(0,0,139);
|
||||
break;
|
||||
case 11: /* dutch florin */
|
||||
do_textedit(0,0,164);
|
||||
break;
|
||||
case 12: /* british pound */
|
||||
do_textedit(0,0,163);
|
||||
break;
|
||||
case 13: /* japanese yen*/
|
||||
do_textedit(0,0,165);
|
||||
break;
|
||||
case 14: /* german S */
|
||||
do_textedit(0,0,223);
|
||||
break;
|
||||
case 15: /* spanish question mark */
|
||||
do_textedit(0,0,191);
|
||||
break;
|
||||
case 16: /* spanish exclamation mark */
|
||||
do_textedit(0,0,161);
|
||||
break;
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
}
|
||||
|
||||
static uiBlock *view3d_edit_text_charsmenu(void *arg_unused)
|
||||
{
|
||||
uiBlock *block;
|
||||
short yco = 20, menuwidth = 120;
|
||||
uiBlock *block;
|
||||
short yco = 20, menuwidth = 120;
|
||||
|
||||
block= uiNewBlock(&curarea->uiblocks, "view3d_edit_text_charsmenu", UI_EMBOSSP, UI_HELV, G.curscreen->mainwin);
|
||||
uiBlockSetButmFunc(block, do_view3d_edit_text_charsmenu, NULL);
|
||||
uiBlockSetCol(block, MENUCOL);
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Copyright|Alt C", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Registered Trademark|Alt R", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Degree Sign|Alt G", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Multiplication Sign|Alt x", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Circle|Alt .", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 4, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Superscript 1|Alt 1", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 5, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Superscript 2|Alt 2", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 6, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Superscript 3|Alt 3", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 7, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Double >>|Alt >", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 8, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Double <<|Alt <", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 9, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Promillage|Alt %", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 10, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Dutch Florin|Alt F", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 11, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "British Pound|Alt L", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 12, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Japanese Yen|Alt Y", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 13, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "German S|Alt S", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 14, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Spanish Question Mark|Alt ?", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 15, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Spanish Exclamation Mark|Alt !", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 16, "");
|
||||
|
||||
uiBlockSetDirection(block, UI_RIGHT);
|
||||
uiTextBoundsBlock(block, 60);
|
||||
|
||||
return block;
|
||||
block= uiNewBlock(&curarea->uiblocks, "view3d_edit_text_charsmenu", UI_EMBOSSP, UI_HELV, G.curscreen->mainwin);
|
||||
uiBlockSetButmFunc(block, do_view3d_edit_text_charsmenu, NULL);
|
||||
uiBlockSetCol(block, MENUCOL);
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Copyright|Alt C", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Registered Trademark|Alt R", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Degree Sign|Alt G", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Multiplication Sign|Alt x", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Circle|Alt .", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 4, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Superscript 1|Alt 1", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 5, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Superscript 2|Alt 2", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 6, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Superscript 3|Alt 3", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 7, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Double >>|Alt >", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 8, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Double <<|Alt <", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 9, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Promillage|Alt %", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 10, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Dutch Florin|Alt F", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 11, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "British Pound|Alt L", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 12, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Japanese Yen|Alt Y", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 13, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "German S|Alt S", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 14, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Spanish Question Mark|Alt ?", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 15, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Spanish Exclamation Mark|Alt !", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 16, "");
|
||||
|
||||
uiBlockSetDirection(block, UI_RIGHT);
|
||||
uiTextBoundsBlock(block, 60);
|
||||
|
||||
return block;
|
||||
}
|
||||
|
||||
static void do_view3d_edit_textmenu(void *arg, int event)
|
||||
{
|
||||
switch(event) {
|
||||
|
||||
case 0: /* Undo Editing */
|
||||
remake_editText();
|
||||
break;
|
||||
case 1: /* paste from file buffer */
|
||||
paste_editText();
|
||||
break;
|
||||
case 2: /* move to layer */
|
||||
movetolayer();
|
||||
break;
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
switch(event) {
|
||||
|
||||
case 0: /* Undo Editing */
|
||||
remake_editText();
|
||||
break;
|
||||
case 1: /* paste from file buffer */
|
||||
paste_editText();
|
||||
break;
|
||||
case 2: /* move to layer */
|
||||
movetolayer();
|
||||
break;
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
}
|
||||
|
||||
static uiBlock *view3d_edit_textmenu(void *arg_unused)
|
||||
{
|
||||
uiBlock *block;
|
||||
short yco= 0, menuwidth=120;
|
||||
|
||||
block= uiNewBlock(&curarea->uiblocks, "view3d_edit_textmenu", UI_EMBOSSP, UI_HELV, curarea->headwin);
|
||||
uiBlockSetButmFunc(block, do_view3d_edit_textmenu, NULL);
|
||||
uiBlockSetCol(block, MENUCOL);
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Undo Editing|U", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Paste From Buffer File|Alt V", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBlockBut(block, view3d_edit_text_charsmenu, NULL, ICON_RIGHTARROW_THIN, "Special Characters", 0, yco-=20, 120, 19, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Move to Layer...|M", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
||||
uiBlock *block;
|
||||
short yco= 0, menuwidth=120;
|
||||
|
||||
block= uiNewBlock(&curarea->uiblocks, "view3d_edit_textmenu", UI_EMBOSSP, UI_HELV, curarea->headwin);
|
||||
uiBlockSetButmFunc(block, do_view3d_edit_textmenu, NULL);
|
||||
uiBlockSetCol(block, MENUCOL);
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Undo Editing|U", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Paste From Buffer File|Alt V", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBlockBut(block, view3d_edit_text_charsmenu, NULL, ICON_RIGHTARROW_THIN, "Special Characters", 0, yco-=20, 120, 19, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Move to Layer...|M", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
||||
|
||||
if(curarea->headertype==HEADERTOP) {
|
||||
uiBlockSetDirection(block, UI_DOWN);
|
||||
}
|
||||
else {
|
||||
uiBlockSetDirection(block, UI_TOP);
|
||||
uiBlockFlipOrder(block);
|
||||
}
|
||||
if(curarea->headertype==HEADERTOP) {
|
||||
uiBlockSetDirection(block, UI_DOWN);
|
||||
}
|
||||
else {
|
||||
uiBlockSetDirection(block, UI_TOP);
|
||||
uiBlockFlipOrder(block);
|
||||
}
|
||||
|
||||
uiTextBoundsBlock(block, 50);
|
||||
return block;
|
||||
uiTextBoundsBlock(block, 50);
|
||||
return block;
|
||||
}
|
||||
|
||||
static void do_view3d_edit_latticemenu(void *arg, int event)
|
||||
{
|
||||
switch(event) {
|
||||
|
||||
case 0: /* Undo Editing */
|
||||
remake_editLatt();
|
||||
break;
|
||||
case 1: /* snap */
|
||||
snapmenu();
|
||||
break;
|
||||
case 2: /* insert keyframe */
|
||||
common_insertkey();
|
||||
break;
|
||||
case 3: /* Shear */
|
||||
transform('S');
|
||||
break;
|
||||
case 4: /* Warp */
|
||||
transform('w');
|
||||
break;
|
||||
case 5: /* proportional edit (toggle) */
|
||||
if(G.f & G_PROPORTIONAL) G.f &= ~G_PROPORTIONAL;
|
||||
else G.f |= G_PROPORTIONAL;
|
||||
break;
|
||||
case 6: /* move to layer */
|
||||
movetolayer();
|
||||
break;
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
switch(event) {
|
||||
|
||||
case 0: /* Undo Editing */
|
||||
remake_editLatt();
|
||||
break;
|
||||
case 1: /* snap */
|
||||
snapmenu();
|
||||
break;
|
||||
case 2: /* insert keyframe */
|
||||
common_insertkey();
|
||||
break;
|
||||
case 3: /* Shear */
|
||||
transform('S');
|
||||
break;
|
||||
case 4: /* Warp */
|
||||
transform('w');
|
||||
break;
|
||||
case 5: /* proportional edit (toggle) */
|
||||
if(G.f & G_PROPORTIONAL) G.f &= ~G_PROPORTIONAL;
|
||||
else G.f |= G_PROPORTIONAL;
|
||||
break;
|
||||
case 6: /* move to layer */
|
||||
movetolayer();
|
||||
break;
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
}
|
||||
|
||||
static uiBlock *view3d_edit_latticemenu(void *arg_unused)
|
||||
{
|
||||
uiBlock *block;
|
||||
short yco= 0, menuwidth=120;
|
||||
|
||||
block= uiNewBlock(&curarea->uiblocks, "view3d_edit_latticemenu", UI_EMBOSSP, UI_HELV, curarea->headwin);
|
||||
uiBlockSetButmFunc(block, do_view3d_edit_latticemenu, NULL);
|
||||
uiBlockSetCol(block, MENUCOL);
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Undo Editing|U", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Snap...|Shift S", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Insert Keyframe|I", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
uiBlock *block;
|
||||
short yco= 0, menuwidth=120;
|
||||
|
||||
block= uiNewBlock(&curarea->uiblocks, "view3d_edit_latticemenu", UI_EMBOSSP, UI_HELV, curarea->headwin);
|
||||
uiBlockSetButmFunc(block, do_view3d_edit_latticemenu, NULL);
|
||||
uiBlockSetCol(block, MENUCOL);
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Undo Editing|U", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Snap...|Shift S", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Insert Keyframe|I", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Shear|Ctrl S", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Warp|Ctrl W", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 4, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
if(G.f & G_PROPORTIONAL) {
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Proportional Editing|O", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 5, "");
|
||||
} else {
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Proportional Editing|O", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 5, "");
|
||||
}
|
||||
uiDefIconTextBlockBut(block, view3d_edit_propfalloffmenu, NULL, ICON_RIGHTARROW_THIN, "Proportional Falloff", 0, yco-=20, 120, 19, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Shear|Ctrl S", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Warp|Ctrl W", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 4, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
if(G.f & G_PROPORTIONAL) {
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Proportional Editing|O", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 5, "");
|
||||
} else {
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Proportional Editing|O", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 5, "");
|
||||
}
|
||||
uiDefIconTextBlockBut(block, view3d_edit_propfalloffmenu, NULL, ICON_RIGHTARROW_THIN, "Proportional Falloff", 0, yco-=20, 120, 19, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Move to Layer...|M", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 6, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Move to Layer...|M", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 6, "");
|
||||
|
||||
|
||||
if(curarea->headertype==HEADERTOP) {
|
||||
uiBlockSetDirection(block, UI_DOWN);
|
||||
}
|
||||
else {
|
||||
uiBlockSetDirection(block, UI_TOP);
|
||||
uiBlockFlipOrder(block);
|
||||
}
|
||||
if(curarea->headertype==HEADERTOP) {
|
||||
uiBlockSetDirection(block, UI_DOWN);
|
||||
}
|
||||
else {
|
||||
uiBlockSetDirection(block, UI_TOP);
|
||||
uiBlockFlipOrder(block);
|
||||
}
|
||||
|
||||
uiTextBoundsBlock(block, 50);
|
||||
return block;
|
||||
uiTextBoundsBlock(block, 50);
|
||||
return block;
|
||||
}
|
||||
|
||||
static void do_view3d_edit_armaturemenu(void *arg, int event)
|
||||
{
|
||||
switch(event) {
|
||||
|
||||
case 0: /* Undo Editing */
|
||||
remake_editArmature();
|
||||
break;
|
||||
case 1: /* transformation properties */
|
||||
blenderqread(NKEY, 1);
|
||||
break;
|
||||
case 2: /* snap */
|
||||
snapmenu();
|
||||
break;
|
||||
case 3: /* extrude */
|
||||
extrude_armature();
|
||||
break;
|
||||
case 4: /* duplicate */
|
||||
duplicate_context_selected();
|
||||
break;
|
||||
case 5: /* delete */
|
||||
delete_context_selected();
|
||||
break;
|
||||
case 6: /* Shear */
|
||||
transform('S');
|
||||
break;
|
||||
case 7: /* Warp */
|
||||
transform('w');
|
||||
break;
|
||||
case 8: /* Move to Layer */
|
||||
movetolayer();
|
||||
break;
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
switch(event) {
|
||||
|
||||
case 0: /* Undo Editing */
|
||||
remake_editArmature();
|
||||
break;
|
||||
case 1: /* transformation properties */
|
||||
blenderqread(NKEY, 1);
|
||||
break;
|
||||
case 2: /* snap */
|
||||
snapmenu();
|
||||
break;
|
||||
case 3: /* extrude */
|
||||
extrude_armature();
|
||||
break;
|
||||
case 4: /* duplicate */
|
||||
duplicate_context_selected();
|
||||
break;
|
||||
case 5: /* delete */
|
||||
delete_context_selected();
|
||||
break;
|
||||
case 6: /* Shear */
|
||||
transform('S');
|
||||
break;
|
||||
case 7: /* Warp */
|
||||
transform('w');
|
||||
break;
|
||||
case 8: /* Move to Layer */
|
||||
movetolayer();
|
||||
break;
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
}
|
||||
|
||||
static uiBlock *view3d_edit_armaturemenu(void *arg_unused)
|
||||
{
|
||||
uiBlock *block;
|
||||
short yco= 0, menuwidth=120;
|
||||
|
||||
block= uiNewBlock(&curarea->uiblocks, "view3d_edit_armaturemenu", UI_EMBOSSP, UI_HELV, curarea->headwin);
|
||||
uiBlockSetButmFunc(block, do_view3d_edit_armaturemenu, NULL);
|
||||
uiBlockSetCol(block, MENUCOL);
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Undo Editing|U", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Transform Properties|N", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Snap...|Shift S", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
uiBlock *block;
|
||||
short yco= 0, menuwidth=120;
|
||||
|
||||
block= uiNewBlock(&curarea->uiblocks, "view3d_edit_armaturemenu", UI_EMBOSSP, UI_HELV, curarea->headwin);
|
||||
uiBlockSetButmFunc(block, do_view3d_edit_armaturemenu, NULL);
|
||||
uiBlockSetCol(block, MENUCOL);
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Undo Editing|U", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Transform Properties|N", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Snap...|Shift S", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Extrude|E", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Duplicate|Shift D", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 4, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Delete|X", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 5, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Extrude|E", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Duplicate|Shift D", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 4, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Delete|X", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 5, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Shear|Ctrl S", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 6, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Warp|Ctrl W", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 7, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Shear|Ctrl S", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 6, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Warp|Ctrl W", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 7, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Move to Layer...|M", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 8, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Move to Layer...|M", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 8, "");
|
||||
|
||||
|
||||
if(curarea->headertype==HEADERTOP) {
|
||||
uiBlockSetDirection(block, UI_DOWN);
|
||||
}
|
||||
else {
|
||||
uiBlockSetDirection(block, UI_TOP);
|
||||
uiBlockFlipOrder(block);
|
||||
}
|
||||
if(curarea->headertype==HEADERTOP) {
|
||||
uiBlockSetDirection(block, UI_DOWN);
|
||||
}
|
||||
else {
|
||||
uiBlockSetDirection(block, UI_TOP);
|
||||
uiBlockFlipOrder(block);
|
||||
}
|
||||
|
||||
uiTextBoundsBlock(block, 50);
|
||||
|
||||
return block;
|
||||
uiTextBoundsBlock(block, 50);
|
||||
|
||||
return block;
|
||||
}
|
||||
|
||||
static void do_view3d_pose_armature_transformmenu(void *arg, int event)
|
||||
{
|
||||
switch(event) {
|
||||
case 0: /* clear origin */
|
||||
clear_object('o');
|
||||
break;
|
||||
case 1: /* clear size */
|
||||
clear_object('s');
|
||||
break;
|
||||
case 2: /* clear rotation */
|
||||
clear_object('r');
|
||||
break;
|
||||
case 3: /* clear location */
|
||||
clear_object('g');
|
||||
break;
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
switch(event) {
|
||||
case 0: /* clear origin */
|
||||
clear_object('o');
|
||||
break;
|
||||
case 1: /* clear size */
|
||||
clear_object('s');
|
||||
break;
|
||||
case 2: /* clear rotation */
|
||||
clear_object('r');
|
||||
break;
|
||||
case 3: /* clear location */
|
||||
clear_object('g');
|
||||
break;
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
}
|
||||
|
||||
static uiBlock *view3d_pose_armature_transformmenu(void *arg_unused)
|
||||
{
|
||||
uiBlock *block;
|
||||
short yco = 20, menuwidth = 120;
|
||||
uiBlock *block;
|
||||
short yco = 20, menuwidth = 120;
|
||||
|
||||
block= uiNewBlock(&curarea->uiblocks, "view3d_pose_armature_transformmenu", UI_EMBOSSP, UI_HELV, G.curscreen->mainwin);
|
||||
uiBlockSetButmFunc(block, do_view3d_pose_armature_transformmenu, NULL);
|
||||
uiBlockSetCol(block, MENUCOL);
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Clear Location|Alt G", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Clear Rotation|Alt R", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Clear Size|Alt S", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Clear Origin|Alt O", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, "");
|
||||
|
||||
uiBlockSetDirection(block, UI_RIGHT);
|
||||
uiTextBoundsBlock(block, 60);
|
||||
return block;
|
||||
block= uiNewBlock(&curarea->uiblocks, "view3d_pose_armature_transformmenu", UI_EMBOSSP, UI_HELV, G.curscreen->mainwin);
|
||||
uiBlockSetButmFunc(block, do_view3d_pose_armature_transformmenu, NULL);
|
||||
uiBlockSetCol(block, MENUCOL);
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Clear Location|Alt G", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Clear Rotation|Alt R", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Clear Size|Alt S", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Clear Origin|Alt O", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, "");
|
||||
|
||||
uiBlockSetDirection(block, UI_RIGHT);
|
||||
uiTextBoundsBlock(block, 60);
|
||||
return block;
|
||||
}
|
||||
|
||||
static void do_view3d_pose_armaturemenu(void *arg, int event)
|
||||
{
|
||||
switch(event) {
|
||||
|
||||
case 0: /* transform properties */
|
||||
blenderqread(NKEY, 1);
|
||||
break;
|
||||
case 1: /* insert keyframe */
|
||||
common_insertkey();
|
||||
break;
|
||||
case 2: /* Move to Layer */
|
||||
movetolayer();
|
||||
break;
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
switch(event) {
|
||||
|
||||
case 0: /* transform properties */
|
||||
blenderqread(NKEY, 1);
|
||||
break;
|
||||
case 1: /* insert keyframe */
|
||||
common_insertkey();
|
||||
break;
|
||||
case 2: /* Move to Layer */
|
||||
movetolayer();
|
||||
break;
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
}
|
||||
|
||||
static uiBlock *view3d_pose_armaturemenu(void *arg_unused)
|
||||
{
|
||||
uiBlock *block;
|
||||
short yco= 0, menuwidth=120;
|
||||
|
||||
block= uiNewBlock(&curarea->uiblocks, "view3d_pose_armaturemenu", UI_EMBOSSP, UI_HELV, curarea->headwin);
|
||||
uiBlockSetButmFunc(block, do_view3d_pose_armaturemenu, NULL);
|
||||
uiBlockSetCol(block, MENUCOL);
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Transform Properties|N", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, "");
|
||||
uiDefIconTextBlockBut(block, view3d_pose_armature_transformmenu, NULL, ICON_RIGHTARROW_THIN, "Transform", 0, yco-=20, 120, 19, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
uiBlock *block;
|
||||
short yco= 0, menuwidth=120;
|
||||
|
||||
block= uiNewBlock(&curarea->uiblocks, "view3d_pose_armaturemenu", UI_EMBOSSP, UI_HELV, curarea->headwin);
|
||||
uiBlockSetButmFunc(block, do_view3d_pose_armaturemenu, NULL);
|
||||
uiBlockSetCol(block, MENUCOL);
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Transform Properties|N", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, "");
|
||||
uiDefIconTextBlockBut(block, view3d_pose_armature_transformmenu, NULL, ICON_RIGHTARROW_THIN, "Transform", 0, yco-=20, 120, 19, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Insert Keyframe|I", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Insert Keyframe|I", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Move to Layer...|M", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
||||
|
||||
if(curarea->headertype==HEADERTOP) {
|
||||
uiBlockSetDirection(block, UI_DOWN);
|
||||
}
|
||||
else {
|
||||
uiBlockSetDirection(block, UI_TOP);
|
||||
uiBlockFlipOrder(block);
|
||||
}
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Move to Layer...|M", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
||||
|
||||
if(curarea->headertype==HEADERTOP) {
|
||||
uiBlockSetDirection(block, UI_DOWN);
|
||||
}
|
||||
else {
|
||||
uiBlockSetDirection(block, UI_TOP);
|
||||
uiBlockFlipOrder(block);
|
||||
}
|
||||
|
||||
uiTextBoundsBlock(block, 50);
|
||||
|
||||
return block;
|
||||
uiTextBoundsBlock(block, 50);
|
||||
|
||||
return block;
|
||||
}
|
||||
|
||||
|
||||
static void do_view3d_paintmenu(void *arg, int event)
|
||||
{
|
||||
switch(event) {
|
||||
case 0: /* undo vertex painting */
|
||||
vpaint_undo();
|
||||
break;
|
||||
case 1: /* undo weight painting */
|
||||
wpaint_undo();
|
||||
break;
|
||||
case 2: /* clear vertex colors */
|
||||
clear_vpaint();
|
||||
break;
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
switch(event) {
|
||||
case 0: /* undo vertex painting */
|
||||
vpaint_undo();
|
||||
break;
|
||||
case 1: /* undo weight painting */
|
||||
wpaint_undo();
|
||||
break;
|
||||
case 2: /* clear vertex colors */
|
||||
clear_vpaint();
|
||||
break;
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
}
|
||||
|
||||
static uiBlock *view3d_paintmenu(void *arg_unused)
|
||||
{
|
||||
uiBlock *block;
|
||||
short yco= 0, menuwidth=120;
|
||||
|
||||
block= uiNewBlock(&curarea->uiblocks, "view3d_paintmenu", UI_EMBOSSP, UI_HELV, curarea->headwin);
|
||||
uiBlockSetButmFunc(block, do_view3d_paintmenu, NULL);
|
||||
uiBlockSetCol(block, MENUCOL);
|
||||
|
||||
if (G.f & G_VERTEXPAINT) uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Undo Vertex Painting|U", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, "");
|
||||
if (G.f & G_WEIGHTPAINT) uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Undo Weight Painting|U", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, "");
|
||||
if (G.f & G_TEXTUREPAINT) uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
if (G.f & G_VERTEXPAINT) {
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Clear Vertex Colors|Shift K", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
||||
}
|
||||
|
||||
if(curarea->headertype==HEADERTOP) {
|
||||
uiBlockSetDirection(block, UI_DOWN);
|
||||
}
|
||||
else {
|
||||
uiBlockSetDirection(block, UI_TOP);
|
||||
uiBlockFlipOrder(block);
|
||||
}
|
||||
uiBlock *block;
|
||||
short yco= 0, menuwidth=120;
|
||||
|
||||
block= uiNewBlock(&curarea->uiblocks, "view3d_paintmenu", UI_EMBOSSP, UI_HELV, curarea->headwin);
|
||||
uiBlockSetButmFunc(block, do_view3d_paintmenu, NULL);
|
||||
uiBlockSetCol(block, MENUCOL);
|
||||
|
||||
if (G.f & G_VERTEXPAINT) uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Undo Vertex Painting|U", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, "");
|
||||
if (G.f & G_WEIGHTPAINT) uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Undo Weight Painting|U", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, "");
|
||||
if (G.f & G_TEXTUREPAINT) uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
if (G.f & G_VERTEXPAINT) {
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Clear Vertex Colors|Shift K", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
||||
}
|
||||
|
||||
if(curarea->headertype==HEADERTOP) {
|
||||
uiBlockSetDirection(block, UI_DOWN);
|
||||
}
|
||||
else {
|
||||
uiBlockSetDirection(block, UI_TOP);
|
||||
uiBlockFlipOrder(block);
|
||||
}
|
||||
|
||||
uiTextBoundsBlock(block, 50);
|
||||
return block;
|
||||
uiTextBoundsBlock(block, 50);
|
||||
return block;
|
||||
}
|
||||
|
||||
static void do_view3d_facesel_propertiesmenu(void *arg, int event)
|
||||
{
|
||||
extern TFace *lasttface;
|
||||
set_lasttface();
|
||||
|
||||
switch(event) {
|
||||
case 0: /* textured */
|
||||
lasttface->mode ^= TF_TEX;
|
||||
break;
|
||||
case 1: /* tiled*/
|
||||
lasttface->mode ^= TF_TILES;
|
||||
break;
|
||||
case 2: /* light */
|
||||
lasttface->mode ^= TF_LIGHT;
|
||||
break;
|
||||
case 3: /* invisible */
|
||||
lasttface->mode ^= TF_INVISIBLE;
|
||||
break;
|
||||
case 4: /* collision */
|
||||
lasttface->mode ^= TF_DYNAMIC;
|
||||
break;
|
||||
case 5: /* shared vertex colors */
|
||||
lasttface->mode ^= TF_SHAREDCOL;
|
||||
break;
|
||||
case 6: /* two sided */
|
||||
lasttface->mode ^= TF_TWOSIDE;
|
||||
break;
|
||||
case 7: /* use object color */
|
||||
lasttface->mode ^= TF_OBCOL;
|
||||
break;
|
||||
case 8: /* halo */
|
||||
lasttface->mode ^= TF_BILLBOARD;
|
||||
break;
|
||||
case 9: /* billboard */
|
||||
lasttface->mode ^= TF_BILLBOARD2;
|
||||
break;
|
||||
case 10: /* shadow */
|
||||
lasttface->mode ^= TF_SHADOW;
|
||||
break;
|
||||
case 11: /* text */
|
||||
lasttface->mode ^= TF_BMFONT;
|
||||
break;
|
||||
case 12: /* opaque blend mode */
|
||||
lasttface->transp = TF_SOLID;
|
||||
break;
|
||||
case 13: /* additive blend mode */
|
||||
lasttface->transp |= TF_ADD;
|
||||
break;
|
||||
case 14: /* alpha blend mode */
|
||||
lasttface->transp = TF_ALPHA;
|
||||
break;
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
allqueue(REDRAWBUTSLOGIC, 0);
|
||||
extern TFace *lasttface;
|
||||
set_lasttface();
|
||||
|
||||
switch(event) {
|
||||
case 0: /* textured */
|
||||
lasttface->mode ^= TF_TEX;
|
||||
break;
|
||||
case 1: /* tiled*/
|
||||
lasttface->mode ^= TF_TILES;
|
||||
break;
|
||||
case 2: /* light */
|
||||
lasttface->mode ^= TF_LIGHT;
|
||||
break;
|
||||
case 3: /* invisible */
|
||||
lasttface->mode ^= TF_INVISIBLE;
|
||||
break;
|
||||
case 4: /* collision */
|
||||
lasttface->mode ^= TF_DYNAMIC;
|
||||
break;
|
||||
case 5: /* shared vertex colors */
|
||||
lasttface->mode ^= TF_SHAREDCOL;
|
||||
break;
|
||||
case 6: /* two sided */
|
||||
lasttface->mode ^= TF_TWOSIDE;
|
||||
break;
|
||||
case 7: /* use object color */
|
||||
lasttface->mode ^= TF_OBCOL;
|
||||
break;
|
||||
case 8: /* halo */
|
||||
lasttface->mode ^= TF_BILLBOARD;
|
||||
break;
|
||||
case 9: /* billboard */
|
||||
lasttface->mode ^= TF_BILLBOARD2;
|
||||
break;
|
||||
case 10: /* shadow */
|
||||
lasttface->mode ^= TF_SHADOW;
|
||||
break;
|
||||
case 11: /* text */
|
||||
lasttface->mode ^= TF_BMFONT;
|
||||
break;
|
||||
case 12: /* opaque blend mode */
|
||||
lasttface->transp = TF_SOLID;
|
||||
break;
|
||||
case 13: /* additive blend mode */
|
||||
lasttface->transp |= TF_ADD;
|
||||
break;
|
||||
case 14: /* alpha blend mode */
|
||||
lasttface->transp = TF_ALPHA;
|
||||
break;
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
allqueue(REDRAWBUTSLOGIC, 0);
|
||||
}
|
||||
|
||||
static uiBlock *view3d_facesel_propertiesmenu(void *arg_unused)
|
||||
{
|
||||
extern TFace *lasttface;
|
||||
uiBlock *block;
|
||||
short yco = 20, menuwidth = 120;
|
||||
extern TFace *lasttface;
|
||||
uiBlock *block;
|
||||
short yco = 20, menuwidth = 120;
|
||||
|
||||
/* to display ticks/crosses depending on face properties */
|
||||
set_lasttface();
|
||||
/* to display ticks/crosses depending on face properties */
|
||||
set_lasttface();
|
||||
|
||||
block= uiNewBlock(&curarea->uiblocks, "view3d_facesel_propertiesmenu", UI_EMBOSSP, UI_HELV, G.curscreen->mainwin);
|
||||
uiBlockSetButmFunc(block, do_view3d_facesel_propertiesmenu, NULL);
|
||||
uiBlockSetCol(block, MENUCOL);
|
||||
|
||||
if (lasttface->mode & TF_TEX) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Textured", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 0, "");
|
||||
else uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Textured", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
if (lasttface->mode & TF_TILES) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Tiled", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 1, "");
|
||||
else uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Tiled", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 1, "");
|
||||
|
||||
if (lasttface->mode & TF_LIGHT) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Light", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 2, "");
|
||||
else uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Light", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 2, "");
|
||||
|
||||
if (lasttface->mode & TF_INVISIBLE) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Invisible", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 3, "");
|
||||
else uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Invisible", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 3, "");
|
||||
|
||||
if (lasttface->mode & TF_DYNAMIC) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Collision", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 4, "");
|
||||
else uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Collision", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 4, "");
|
||||
|
||||
if (lasttface->mode & TF_SHAREDCOL) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Shared Vertex Colors", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 5, "");
|
||||
else uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Shared Vertex Colors", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 5, "");
|
||||
|
||||
if (lasttface->mode & TF_TWOSIDE) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Two Sided", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 6, "");
|
||||
else uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Two Sided", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 6, "");
|
||||
|
||||
if (lasttface->mode & TF_OBCOL) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Use Object Color", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 7, "");
|
||||
else uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Use Object Color", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 7, "");
|
||||
|
||||
if (lasttface->mode & TF_BILLBOARD) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Halo", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 8, "");
|
||||
else uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Halo", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 8, "");
|
||||
|
||||
if (lasttface->mode & TF_BILLBOARD2) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Billboard", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 9, "");
|
||||
else uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Billboard", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 9, "");
|
||||
|
||||
if (lasttface->mode & TF_SHADOW) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Shadow", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 10, "");
|
||||
else uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Shadow", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 10, "");
|
||||
|
||||
if (lasttface->mode & TF_BMFONT) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Text", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 11, "");
|
||||
else uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Text", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 11, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
if (lasttface->transp == TF_SOLID) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Opaque Blend Mode", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 12, "");
|
||||
else uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Opaque Blend Mode", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 12, "");
|
||||
|
||||
if (lasttface->transp == TF_ADD) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Additive Blend Mode", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 13, "");
|
||||
else uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Additive Blend Mode", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 13, "");
|
||||
|
||||
if (lasttface->transp == TF_ALPHA) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Alpha Blend Mode", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 14, "");
|
||||
else uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Alpha Blend Mode", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 14, "");
|
||||
block= uiNewBlock(&curarea->uiblocks, "view3d_facesel_propertiesmenu", UI_EMBOSSP, UI_HELV, G.curscreen->mainwin);
|
||||
uiBlockSetButmFunc(block, do_view3d_facesel_propertiesmenu, NULL);
|
||||
uiBlockSetCol(block, MENUCOL);
|
||||
|
||||
if (lasttface->mode & TF_TEX) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Textured", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 0, "");
|
||||
else uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Textured", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
if (lasttface->mode & TF_TILES) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Tiled", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 1, "");
|
||||
else uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Tiled", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 1, "");
|
||||
|
||||
if (lasttface->mode & TF_LIGHT) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Light", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 2, "");
|
||||
else uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Light", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 2, "");
|
||||
|
||||
if (lasttface->mode & TF_INVISIBLE) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Invisible", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 3, "");
|
||||
else uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Invisible", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 3, "");
|
||||
|
||||
if (lasttface->mode & TF_DYNAMIC) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Collision", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 4, "");
|
||||
else uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Collision", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 4, "");
|
||||
|
||||
if (lasttface->mode & TF_SHAREDCOL) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Shared Vertex Colors", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 5, "");
|
||||
else uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Shared Vertex Colors", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 5, "");
|
||||
|
||||
if (lasttface->mode & TF_TWOSIDE) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Two Sided", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 6, "");
|
||||
else uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Two Sided", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 6, "");
|
||||
|
||||
if (lasttface->mode & TF_OBCOL) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Use Object Color", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 7, "");
|
||||
else uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Use Object Color", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 7, "");
|
||||
|
||||
if (lasttface->mode & TF_BILLBOARD) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Halo", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 8, "");
|
||||
else uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Halo", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 8, "");
|
||||
|
||||
if (lasttface->mode & TF_BILLBOARD2) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Billboard", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 9, "");
|
||||
else uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Billboard", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 9, "");
|
||||
|
||||
if (lasttface->mode & TF_SHADOW) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Shadow", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 10, "");
|
||||
else uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Shadow", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 10, "");
|
||||
|
||||
if (lasttface->mode & TF_BMFONT) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Text", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 11, "");
|
||||
else uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Text", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 11, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
if (lasttface->transp == TF_SOLID) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Opaque Blend Mode", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 12, "");
|
||||
else uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Opaque Blend Mode", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 12, "");
|
||||
|
||||
if (lasttface->transp == TF_ADD) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Additive Blend Mode", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 13, "");
|
||||
else uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Additive Blend Mode", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 13, "");
|
||||
|
||||
if (lasttface->transp == TF_ALPHA) uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Alpha Blend Mode", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 14, "");
|
||||
else uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Alpha Blend Mode", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 14, "");
|
||||
|
||||
uiBlockSetDirection(block, UI_RIGHT);
|
||||
uiTextBoundsBlock(block, 60);
|
||||
return block;
|
||||
uiBlockSetDirection(block, UI_RIGHT);
|
||||
uiTextBoundsBlock(block, 60);
|
||||
return block;
|
||||
}
|
||||
|
||||
static void do_view3d_faceselmenu(void *arg, int event)
|
||||
{
|
||||
/* code copied from buttons.c :(
|
||||
would be nice if it was split up into functions */
|
||||
Mesh *me;
|
||||
Object *ob;
|
||||
extern TFace *lasttface; /* caches info on tface bookkeeping ?*/
|
||||
|
||||
ob= OBACT;
|
||||
|
||||
switch(event) {
|
||||
case 0: /* copy draw mode */
|
||||
case 1: /* copy UVs */
|
||||
case 2: /* copy vertex colors */
|
||||
me= get_mesh(ob);
|
||||
if(me && me->tface) {
|
||||
/* code copied from buttons.c :(
|
||||
would be nice if it was split up into functions */
|
||||
Mesh *me;
|
||||
Object *ob;
|
||||
extern TFace *lasttface; /* caches info on tface bookkeeping ?*/
|
||||
|
||||
ob= OBACT;
|
||||
|
||||
switch(event) {
|
||||
case 0: /* copy draw mode */
|
||||
case 1: /* copy UVs */
|
||||
case 2: /* copy vertex colors */
|
||||
me= get_mesh(ob);
|
||||
if(me && me->tface) {
|
||||
|
||||
TFace *tface= me->tface;
|
||||
int a= me->totface;
|
||||
|
||||
set_lasttface();
|
||||
if(lasttface) {
|
||||
|
||||
while(a--) {
|
||||
if(tface!=lasttface && (tface->flag & TF_SELECT)) {
|
||||
if(event==0) {
|
||||
tface->mode= lasttface->mode;
|
||||
tface->transp= lasttface->transp;
|
||||
} else if(event==1) {
|
||||
memcpy(tface->uv, lasttface->uv, sizeof(tface->uv));
|
||||
tface->tpage= lasttface->tpage;
|
||||
tface->tile= lasttface->tile;
|
||||
|
||||
if(lasttface->mode & TF_TILES) tface->mode |= TF_TILES;
|
||||
else tface->mode &= ~TF_TILES;
|
||||
|
||||
} else if(event==2) memcpy(tface->col, lasttface->col, sizeof(tface->col));
|
||||
}
|
||||
tface++;
|
||||
}
|
||||
}
|
||||
do_shared_vertexcol(me);
|
||||
}
|
||||
break;
|
||||
case 3: /* clear vertex colors */
|
||||
clear_vpaint_selectedfaces();
|
||||
break;
|
||||
// case 3: /* uv calculation */
|
||||
// uv_autocalc_tface();
|
||||
// break;
|
||||
case 4: /* show hidden faces */
|
||||
reveal_tface();
|
||||
break;
|
||||
case 5: /* hide selected faces */
|
||||
hide_tface();
|
||||
break;
|
||||
case 6: /* hide deselected faces */
|
||||
G.qual |= LR_SHIFTKEY;
|
||||
hide_tface();
|
||||
G.qual &= ~LR_SHIFTKEY;
|
||||
break;
|
||||
case 7: /* rotate UVs */
|
||||
rotate_uv_tface();
|
||||
break;
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
allqueue(REDRAWBUTSLOGIC, 0);
|
||||
allqueue(REDRAWIMAGE, 0);
|
||||
TFace *tface= me->tface;
|
||||
int a= me->totface;
|
||||
|
||||
set_lasttface();
|
||||
if(lasttface) {
|
||||
|
||||
while(a--) {
|
||||
if(tface!=lasttface && (tface->flag & TF_SELECT)) {
|
||||
if(event==0) {
|
||||
tface->mode= lasttface->mode;
|
||||
tface->transp= lasttface->transp;
|
||||
} else if(event==1) {
|
||||
memcpy(tface->uv, lasttface->uv, sizeof(tface->uv));
|
||||
tface->tpage= lasttface->tpage;
|
||||
tface->tile= lasttface->tile;
|
||||
|
||||
if(lasttface->mode & TF_TILES) tface->mode |= TF_TILES;
|
||||
else tface->mode &= ~TF_TILES;
|
||||
|
||||
} else if(event==2) memcpy(tface->col, lasttface->col, sizeof(tface->col));
|
||||
}
|
||||
tface++;
|
||||
}
|
||||
}
|
||||
do_shared_vertexcol(me);
|
||||
}
|
||||
break;
|
||||
case 3: /* clear vertex colors */
|
||||
clear_vpaint_selectedfaces();
|
||||
break;
|
||||
// case 3: /* uv calculation */
|
||||
// uv_autocalc_tface();
|
||||
// break;
|
||||
case 4: /* show hidden faces */
|
||||
reveal_tface();
|
||||
break;
|
||||
case 5: /* hide selected faces */
|
||||
hide_tface();
|
||||
break;
|
||||
case 6: /* hide deselected faces */
|
||||
G.qual |= LR_SHIFTKEY;
|
||||
hide_tface();
|
||||
G.qual &= ~LR_SHIFTKEY;
|
||||
break;
|
||||
case 7: /* rotate UVs */
|
||||
rotate_uv_tface();
|
||||
break;
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
allqueue(REDRAWBUTSLOGIC, 0);
|
||||
allqueue(REDRAWIMAGE, 0);
|
||||
}
|
||||
|
||||
static uiBlock *view3d_faceselmenu(void *arg_unused)
|
||||
{
|
||||
uiBlock *block;
|
||||
short yco= 0, menuwidth=120;
|
||||
|
||||
set_lasttface();
|
||||
|
||||
block= uiNewBlock(&curarea->uiblocks, "view3d_faceselmenu", UI_EMBOSSP, UI_HELV, curarea->headwin);
|
||||
uiBlockSetButmFunc(block, do_view3d_faceselmenu, NULL);
|
||||
uiBlockSetCol(block, MENUCOL);
|
||||
|
||||
uiDefIconTextBlockBut(block, view3d_facesel_propertiesmenu, NULL, ICON_RIGHTARROW_THIN, "Active Draw Mode", 0, yco-=20, 120, 19, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Copy Draw Mode", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, "");
|
||||
uiBlock *block;
|
||||
short yco= 0, menuwidth=120;
|
||||
|
||||
set_lasttface();
|
||||
|
||||
block= uiNewBlock(&curarea->uiblocks, "view3d_faceselmenu", UI_EMBOSSP, UI_HELV, curarea->headwin);
|
||||
uiBlockSetButmFunc(block, do_view3d_faceselmenu, NULL);
|
||||
uiBlockSetCol(block, MENUCOL);
|
||||
|
||||
uiDefIconTextBlockBut(block, view3d_facesel_propertiesmenu, NULL, ICON_RIGHTARROW_THIN, "Active Draw Mode", 0, yco-=20, 120, 19, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Copy Draw Mode", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 0, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Copy UVs & Textures", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Copy Vertex Colors", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Clear Vertex Colors|Shift K", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
/* for some reason calling this from the header messes up the 'from window'
|
||||
* UV calculation :(
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Calculate UVs", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, "");
|
||||
*/
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Rotate UVs|R", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 7, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Show Hidden Faces|Alt H", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 4, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Hide Selected Faces|H", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 5, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Hide Deselected Faces|Shift H", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 6, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Copy UVs & Textures", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 1, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Copy Vertex Colors", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 2, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Clear Vertex Colors|Shift K", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
/* for some reason calling this from the header messes up the 'from window'
|
||||
* UV calculation :(
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Calculate UVs", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 3, "");
|
||||
*/
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Rotate UVs|R", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 7, "");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Show Hidden Faces|Alt H", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 4, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Hide Selected Faces|H", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 5, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Hide Deselected Faces|Shift H", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 6, "");
|
||||
|
||||
|
||||
if(curarea->headertype==HEADERTOP) {
|
||||
uiBlockSetDirection(block, UI_DOWN);
|
||||
}
|
||||
else {
|
||||
uiBlockSetDirection(block, UI_TOP);
|
||||
uiBlockFlipOrder(block);
|
||||
}
|
||||
if(curarea->headertype==HEADERTOP) {
|
||||
uiBlockSetDirection(block, UI_DOWN);
|
||||
}
|
||||
else {
|
||||
uiBlockSetDirection(block, UI_TOP);
|
||||
uiBlockFlipOrder(block);
|
||||
}
|
||||
|
||||
uiTextBoundsBlock(block, 50);
|
||||
return block;
|
||||
uiTextBoundsBlock(block, 50);
|
||||
return block;
|
||||
}
|
||||
|
||||
|
||||
static char *view3d_modeselect_pup(void)
|
||||
{
|
||||
static char string[1024];
|
||||
char formatstring[1024];
|
||||
static char string[1024];
|
||||
char formatstring[1024];
|
||||
|
||||
strcpy(formatstring, "Mode: %%t");
|
||||
|
||||
strcat(formatstring, "|%s %%x%d"); // add space in the menu for Object
|
||||
|
||||
/* if active object is an armature */
|
||||
if (OBACT && OBACT->type==OB_ARMATURE) {
|
||||
strcat(formatstring, "|%s %%x%d"); // add space in the menu for pose
|
||||
}
|
||||
|
||||
/* if active object is a mesh */
|
||||
if (OBACT && OBACT->type == OB_MESH) {
|
||||
strcat(formatstring, "|%s %%x%d|%s %%x%d|%s %%x%d"); // add space in the menu for faceselect, vertex paint, texture paint
|
||||
|
||||
/* if active mesh has an armature */
|
||||
if ((((Mesh*)(OBACT->data))->dvert)) {
|
||||
strcat(formatstring, "|%s %%x%d"); // add space in the menu for weight paint
|
||||
}
|
||||
}
|
||||
|
||||
/* if active object is editable */
|
||||
if (OBACT && ((OBACT->type == OB_MESH) || (OBACT->type == OB_ARMATURE)
|
||||
|| (OBACT->type == OB_CURVE) || (OBACT->type == OB_SURF) || (OBACT->type == OB_FONT)
|
||||
|| (OBACT->type == OB_MBALL) || (OBACT->type == OB_LATTICE))) {
|
||||
strcat(formatstring, "|%s %%x%d"); // add space in the menu for Edit
|
||||
}
|
||||
|
||||
/*
|
||||
* fill in the spaces in the menu with appropriate mode choices depending on active object
|
||||
*/
|
||||
strcpy(formatstring, "Mode: %%t");
|
||||
|
||||
strcat(formatstring, "|%s %%x%d"); // add space in the menu for Object
|
||||
|
||||
/* if active object is an armature */
|
||||
if (OBACT && OBACT->type==OB_ARMATURE) {
|
||||
strcat(formatstring, "|%s %%x%d"); // add space in the menu for pose
|
||||
}
|
||||
|
||||
/* if active object is a mesh */
|
||||
if (OBACT && OBACT->type == OB_MESH) {
|
||||
strcat(formatstring, "|%s %%x%d|%s %%x%d|%s %%x%d"); // add space in the menu for faceselect, vertex paint, texture paint
|
||||
|
||||
/* if active mesh has an armature */
|
||||
if ((((Mesh*)(OBACT->data))->dvert)) {
|
||||
strcat(formatstring, "|%s %%x%d"); // add space in the menu for weight paint
|
||||
}
|
||||
}
|
||||
|
||||
/* if active object is editable */
|
||||
if (OBACT && ((OBACT->type == OB_MESH) || (OBACT->type == OB_ARMATURE)
|
||||
|| (OBACT->type == OB_CURVE) || (OBACT->type == OB_SURF) || (OBACT->type == OB_FONT)
|
||||
|| (OBACT->type == OB_MBALL) || (OBACT->type == OB_LATTICE))) {
|
||||
strcat(formatstring, "|%s %%x%d"); // add space in the menu for Edit
|
||||
}
|
||||
|
||||
/*
|
||||
* fill in the spaces in the menu with appropriate mode choices depending on active object
|
||||
*/
|
||||
|
||||
/* if active object is an armature */
|
||||
if (OBACT && OBACT->type==OB_ARMATURE) {
|
||||
sprintf(string, formatstring,
|
||||
"Object", V3D_OBJECTMODE_SEL,
|
||||
"Edit", V3D_EDITMODE_SEL,
|
||||
"Pose", V3D_POSEMODE_SEL
|
||||
);
|
||||
}
|
||||
/* if active object is a mesh with armature */
|
||||
else if ((OBACT && OBACT->type == OB_MESH) && ((((Mesh*)(OBACT->data))->dvert))) {
|
||||
sprintf(string, formatstring,
|
||||
"Object", V3D_OBJECTMODE_SEL,
|
||||
"Edit", V3D_EDITMODE_SEL,
|
||||
"Face Select", V3D_FACESELECTMODE_SEL,
|
||||
"Vertex Paint", V3D_VERTEXPAINTMODE_SEL,
|
||||
"Texture Paint", V3D_TEXTUREPAINTMODE_SEL,
|
||||
"Weight Paint", V3D_WEIGHTPAINTMODE_SEL
|
||||
);
|
||||
}
|
||||
/* if active object is a mesh */
|
||||
else if (OBACT && OBACT->type == OB_MESH) {
|
||||
sprintf(string, formatstring,
|
||||
"Object", V3D_OBJECTMODE_SEL,
|
||||
"Edit", V3D_EDITMODE_SEL,
|
||||
"Face Select", V3D_FACESELECTMODE_SEL,
|
||||
"Vertex Paint", V3D_VERTEXPAINTMODE_SEL,
|
||||
"Texture Paint", V3D_TEXTUREPAINTMODE_SEL
|
||||
);
|
||||
}
|
||||
/* if active object is editable */
|
||||
else if (OBACT && ((OBACT->type == OB_MESH) || (OBACT->type == OB_ARMATURE)
|
||||
|| (OBACT->type == OB_CURVE) || (OBACT->type == OB_SURF) || (OBACT->type == OB_FONT)
|
||||
|| (OBACT->type == OB_MBALL) || (OBACT->type == OB_LATTICE))) {
|
||||
sprintf(string, formatstring,
|
||||
"Object", V3D_OBJECTMODE_SEL,
|
||||
"Edit", V3D_EDITMODE_SEL
|
||||
);
|
||||
}
|
||||
/* if active object is not editable */
|
||||
else {
|
||||
sprintf(string, formatstring,
|
||||
"Object", V3D_OBJECTMODE_SEL
|
||||
);
|
||||
}
|
||||
|
||||
return (string);
|
||||
/* if active object is an armature */
|
||||
if (OBACT && OBACT->type==OB_ARMATURE) {
|
||||
sprintf(string, formatstring,
|
||||
"Object", V3D_OBJECTMODE_SEL,
|
||||
"Edit", V3D_EDITMODE_SEL,
|
||||
"Pose", V3D_POSEMODE_SEL
|
||||
);
|
||||
}
|
||||
/* if active object is a mesh with armature */
|
||||
else if ((OBACT && OBACT->type == OB_MESH) && ((((Mesh*)(OBACT->data))->dvert))) {
|
||||
sprintf(string, formatstring,
|
||||
"Object", V3D_OBJECTMODE_SEL,
|
||||
"Edit", V3D_EDITMODE_SEL,
|
||||
"Face Select", V3D_FACESELECTMODE_SEL,
|
||||
"Vertex Paint", V3D_VERTEXPAINTMODE_SEL,
|
||||
"Texture Paint", V3D_TEXTUREPAINTMODE_SEL,
|
||||
"Weight Paint", V3D_WEIGHTPAINTMODE_SEL
|
||||
);
|
||||
}
|
||||
/* if active object is a mesh */
|
||||
else if (OBACT && OBACT->type == OB_MESH) {
|
||||
sprintf(string, formatstring,
|
||||
"Object", V3D_OBJECTMODE_SEL,
|
||||
"Edit", V3D_EDITMODE_SEL,
|
||||
"Face Select", V3D_FACESELECTMODE_SEL,
|
||||
"Vertex Paint", V3D_VERTEXPAINTMODE_SEL,
|
||||
"Texture Paint", V3D_TEXTUREPAINTMODE_SEL
|
||||
);
|
||||
}
|
||||
/* if active object is editable */
|
||||
else if (OBACT && ((OBACT->type == OB_MESH) || (OBACT->type == OB_ARMATURE)
|
||||
|| (OBACT->type == OB_CURVE) || (OBACT->type == OB_SURF) || (OBACT->type == OB_FONT)
|
||||
|| (OBACT->type == OB_MBALL) || (OBACT->type == OB_LATTICE))) {
|
||||
sprintf(string, formatstring,
|
||||
"Object", V3D_OBJECTMODE_SEL,
|
||||
"Edit", V3D_EDITMODE_SEL
|
||||
);
|
||||
}
|
||||
/* if active object is not editable */
|
||||
else {
|
||||
sprintf(string, formatstring,
|
||||
"Object", V3D_OBJECTMODE_SEL
|
||||
);
|
||||
}
|
||||
|
||||
return (string);
|
||||
}
|
||||
|
||||
void do_view3d_buttons(short event)
|
||||
{
|
||||
int bit;
|
||||
int bit;
|
||||
|
||||
/* watch it: if curarea->win does not exist, check that when calling direct drawing routines */
|
||||
/* watch it: if curarea->win does not exist, check that when calling direct drawing routines */
|
||||
|
||||
switch(event) {
|
||||
case B_HOME:
|
||||
view3d_home(0);
|
||||
break;
|
||||
case B_SCENELOCK:
|
||||
if(G.vd->scenelock) {
|
||||
G.vd->lay= G.scene->lay;
|
||||
/* seek for layact */
|
||||
bit= 0;
|
||||
while(bit<32) {
|
||||
if(G.vd->lay & (1<<bit)) {
|
||||
G.vd->layact= 1<<bit;
|
||||
break;
|
||||
}
|
||||
bit++;
|
||||
}
|
||||
G.vd->camera= G.scene->camera;
|
||||
scrarea_queue_winredraw(curarea);
|
||||
scrarea_queue_headredraw(curarea);
|
||||
}
|
||||
break;
|
||||
case B_LOCALVIEW:
|
||||
if(G.vd->localview) initlocalview();
|
||||
else endlocalview(curarea);
|
||||
scrarea_queue_headredraw(curarea);
|
||||
break;
|
||||
case B_EDITMODE:
|
||||
if (G.f & G_VERTEXPAINT) {
|
||||
/* Switch off vertex paint */
|
||||
G.f &= ~G_VERTEXPAINT;
|
||||
}
|
||||
if (G.f & G_WEIGHTPAINT){
|
||||
/* Switch off weight paint */
|
||||
G.f &= ~G_WEIGHTPAINT;
|
||||
}
|
||||
switch(event) {
|
||||
case B_HOME:
|
||||
view3d_home(0);
|
||||
break;
|
||||
case B_SCENELOCK:
|
||||
if(G.vd->scenelock) {
|
||||
G.vd->lay= G.scene->lay;
|
||||
/* seek for layact */
|
||||
bit= 0;
|
||||
while(bit<32) {
|
||||
if(G.vd->lay & (1<<bit)) {
|
||||
G.vd->layact= 1<<bit;
|
||||
break;
|
||||
}
|
||||
bit++;
|
||||
}
|
||||
G.vd->camera= G.scene->camera;
|
||||
scrarea_queue_winredraw(curarea);
|
||||
scrarea_queue_headredraw(curarea);
|
||||
}
|
||||
break;
|
||||
case B_LOCALVIEW:
|
||||
if(G.vd->localview) initlocalview();
|
||||
else endlocalview(curarea);
|
||||
scrarea_queue_headredraw(curarea);
|
||||
break;
|
||||
case B_EDITMODE:
|
||||
if (G.f & G_VERTEXPAINT) {
|
||||
/* Switch off vertex paint */
|
||||
G.f &= ~G_VERTEXPAINT;
|
||||
}
|
||||
if (G.f & G_WEIGHTPAINT){
|
||||
/* Switch off weight paint */
|
||||
G.f &= ~G_WEIGHTPAINT;
|
||||
}
|
||||
#ifdef NAN_TPT
|
||||
if (G.f & G_TEXTUREPAINT) {
|
||||
/* Switch off texture paint */
|
||||
G.f &= ~G_TEXTUREPAINT;
|
||||
}
|
||||
if (G.f & G_TEXTUREPAINT) {
|
||||
/* Switch off texture paint */
|
||||
G.f &= ~G_TEXTUREPAINT;
|
||||
}
|
||||
#endif /* NAN_VPT */
|
||||
if(G.obedit==0) enter_editmode();
|
||||
else exit_editmode(1);
|
||||
scrarea_queue_headredraw(curarea);
|
||||
break;
|
||||
case B_POSEMODE:
|
||||
/* if (G.obedit){
|
||||
error("Unable to perform function in EditMode");
|
||||
G.vd->flag &= ~V3D_POSEMODE;
|
||||
scrarea_queue_headredraw(curarea);
|
||||
}
|
||||
else{
|
||||
*/
|
||||
if (G.obpose==NULL) enter_posemode();
|
||||
else exit_posemode(1);
|
||||
if(G.obedit==0) enter_editmode();
|
||||
else exit_editmode(1);
|
||||
scrarea_queue_headredraw(curarea);
|
||||
break;
|
||||
case B_POSEMODE:
|
||||
/* if (G.obedit){
|
||||
error("Unable to perform function in EditMode");
|
||||
G.vd->flag &= ~V3D_POSEMODE;
|
||||
scrarea_queue_headredraw(curarea);
|
||||
}
|
||||
else{
|
||||
*/
|
||||
if (G.obpose==NULL) enter_posemode();
|
||||
else exit_posemode(1);
|
||||
|
||||
allqueue(REDRAWHEADERS, 0);
|
||||
|
||||
break;
|
||||
case B_WPAINT:
|
||||
if (G.f & G_VERTEXPAINT) {
|
||||
/* Switch off vertex paint */
|
||||
G.f &= ~G_VERTEXPAINT;
|
||||
}
|
||||
allqueue(REDRAWHEADERS, 0);
|
||||
|
||||
break;
|
||||
case B_WPAINT:
|
||||
if (G.f & G_VERTEXPAINT) {
|
||||
/* Switch off vertex paint */
|
||||
G.f &= ~G_VERTEXPAINT;
|
||||
}
|
||||
#ifdef NAN_TPT
|
||||
if ((!(G.f & G_WEIGHTPAINT)) && (G.f & G_TEXTUREPAINT)) {
|
||||
/* Switch off texture paint */
|
||||
G.f &= ~G_TEXTUREPAINT;
|
||||
}
|
||||
if ((!(G.f & G_WEIGHTPAINT)) && (G.f & G_TEXTUREPAINT)) {
|
||||
/* Switch off texture paint */
|
||||
G.f &= ~G_TEXTUREPAINT;
|
||||
}
|
||||
#endif /* NAN_VPT */
|
||||
if(G.obedit) {
|
||||
error("Unable to perform function in EditMode");
|
||||
G.vd->flag &= ~V3D_WEIGHTPAINT;
|
||||
scrarea_queue_headredraw(curarea);
|
||||
}
|
||||
else if(G.obpose) {
|
||||
error("Unable to perform function in PoseMode");
|
||||
G.vd->flag &= ~V3D_WEIGHTPAINT;
|
||||
scrarea_queue_headredraw(curarea);
|
||||
}
|
||||
else set_wpaint();
|
||||
break;
|
||||
case B_VPAINT:
|
||||
if ((!(G.f & G_VERTEXPAINT)) && (G.f & G_WEIGHTPAINT)) {
|
||||
G.f &= ~G_WEIGHTPAINT;
|
||||
}
|
||||
if(G.obedit) {
|
||||
error("Unable to perform function in EditMode");
|
||||
G.vd->flag &= ~V3D_WEIGHTPAINT;
|
||||
scrarea_queue_headredraw(curarea);
|
||||
}
|
||||
else if(G.obpose) {
|
||||
error("Unable to perform function in PoseMode");
|
||||
G.vd->flag &= ~V3D_WEIGHTPAINT;
|
||||
scrarea_queue_headredraw(curarea);
|
||||
}
|
||||
else set_wpaint();
|
||||
break;
|
||||
case B_VPAINT:
|
||||
if ((!(G.f & G_VERTEXPAINT)) && (G.f & G_WEIGHTPAINT)) {
|
||||
G.f &= ~G_WEIGHTPAINT;
|
||||
}
|
||||
#ifdef NAN_TPT
|
||||
if ((!(G.f & G_VERTEXPAINT)) && (G.f & G_TEXTUREPAINT)) {
|
||||
/* Switch off texture paint */
|
||||
G.f &= ~G_TEXTUREPAINT;
|
||||
}
|
||||
if ((!(G.f & G_VERTEXPAINT)) && (G.f & G_TEXTUREPAINT)) {
|
||||
/* Switch off texture paint */
|
||||
G.f &= ~G_TEXTUREPAINT;
|
||||
}
|
||||
#endif /* NAN_VPT */
|
||||
if(G.obedit) {
|
||||
error("Unable to perform function in EditMode");
|
||||
G.vd->flag &= ~V3D_VERTEXPAINT;
|
||||
scrarea_queue_headredraw(curarea);
|
||||
}
|
||||
else if(G.obpose) {
|
||||
error("Unable to perform function in PoseMode");
|
||||
G.vd->flag &= ~V3D_VERTEXPAINT;
|
||||
scrarea_queue_headredraw(curarea);
|
||||
}
|
||||
else set_vpaint();
|
||||
break;
|
||||
|
||||
if(G.obedit) {
|
||||
error("Unable to perform function in EditMode");
|
||||
G.vd->flag &= ~V3D_VERTEXPAINT;
|
||||
scrarea_queue_headredraw(curarea);
|
||||
}
|
||||
else if(G.obpose) {
|
||||
error("Unable to perform function in PoseMode");
|
||||
G.vd->flag &= ~V3D_VERTEXPAINT;
|
||||
scrarea_queue_headredraw(curarea);
|
||||
}
|
||||
else set_vpaint();
|
||||
break;
|
||||
|
||||
#ifdef NAN_TPT
|
||||
case B_TEXTUREPAINT:
|
||||
if (G.f & G_TEXTUREPAINT) {
|
||||
G.f &= ~G_TEXTUREPAINT;
|
||||
}
|
||||
else {
|
||||
if (G.obedit) {
|
||||
error("Unable to perform function in EditMode");
|
||||
G.vd->flag &= ~V3D_TEXTUREPAINT;
|
||||
}
|
||||
else {
|
||||
if (G.f & G_WEIGHTPAINT){
|
||||
/* Switch off weight paint */
|
||||
G.f &= ~G_WEIGHTPAINT;
|
||||
}
|
||||
if (G.f & G_VERTEXPAINT) {
|
||||
/* Switch off vertex paint */
|
||||
G.f &= ~G_VERTEXPAINT;
|
||||
}
|
||||
if (G.f & G_FACESELECT) {
|
||||
/* Switch off face select */
|
||||
G.f &= ~G_FACESELECT;
|
||||
}
|
||||
G.f |= G_TEXTUREPAINT;
|
||||
scrarea_queue_headredraw(curarea);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case B_TEXTUREPAINT:
|
||||
if (G.f & G_TEXTUREPAINT) {
|
||||
G.f &= ~G_TEXTUREPAINT;
|
||||
}
|
||||
else {
|
||||
if (G.obedit) {
|
||||
error("Unable to perform function in EditMode");
|
||||
G.vd->flag &= ~V3D_TEXTUREPAINT;
|
||||
}
|
||||
else {
|
||||
if (G.f & G_WEIGHTPAINT){
|
||||
/* Switch off weight paint */
|
||||
G.f &= ~G_WEIGHTPAINT;
|
||||
}
|
||||
if (G.f & G_VERTEXPAINT) {
|
||||
/* Switch off vertex paint */
|
||||
G.f &= ~G_VERTEXPAINT;
|
||||
}
|
||||
if (G.f & G_FACESELECT) {
|
||||
/* Switch off face select */
|
||||
G.f &= ~G_FACESELECT;
|
||||
}
|
||||
G.f |= G_TEXTUREPAINT;
|
||||
scrarea_queue_headredraw(curarea);
|
||||
}
|
||||
}
|
||||
break;
|
||||
#endif /* NAN_TPT */
|
||||
|
||||
case B_FACESEL:
|
||||
if(G.obedit) {
|
||||
error("Unable to perform function in EditMode");
|
||||
G.vd->flag &= ~V3D_FACESELECT;
|
||||
scrarea_queue_headredraw(curarea);
|
||||
}
|
||||
else if(G.obpose) {
|
||||
error("Unable to perform function in PoseMode");
|
||||
G.vd->flag &= ~V3D_FACESELECT;
|
||||
scrarea_queue_headredraw(curarea);
|
||||
}
|
||||
else set_faceselect();
|
||||
break;
|
||||
|
||||
case B_VIEWBUT:
|
||||
|
||||
if(G.vd->viewbut==1) persptoetsen(PAD7);
|
||||
else if(G.vd->viewbut==2) persptoetsen(PAD1);
|
||||
else if(G.vd->viewbut==3) persptoetsen(PAD3);
|
||||
break;
|
||||
case B_FACESEL:
|
||||
if(G.obedit) {
|
||||
error("Unable to perform function in EditMode");
|
||||
G.vd->flag &= ~V3D_FACESELECT;
|
||||
scrarea_queue_headredraw(curarea);
|
||||
}
|
||||
else if(G.obpose) {
|
||||
error("Unable to perform function in PoseMode");
|
||||
G.vd->flag &= ~V3D_FACESELECT;
|
||||
scrarea_queue_headredraw(curarea);
|
||||
}
|
||||
else set_faceselect();
|
||||
break;
|
||||
|
||||
case B_VIEWBUT:
|
||||
|
||||
if(G.vd->viewbut==1) persptoetsen(PAD7);
|
||||
else if(G.vd->viewbut==2) persptoetsen(PAD1);
|
||||
else if(G.vd->viewbut==3) persptoetsen(PAD3);
|
||||
break;
|
||||
|
||||
case B_PERSP:
|
||||
|
||||
if(G.vd->persp==2) persptoetsen(PAD0);
|
||||
else {
|
||||
G.vd->persp= 1-G.vd->persp;
|
||||
persptoetsen(PAD5);
|
||||
}
|
||||
|
||||
break;
|
||||
case B_PROPTOOL:
|
||||
allqueue(REDRAWHEADERS, 0);
|
||||
break;
|
||||
case B_VIEWRENDER:
|
||||
if (curarea->spacetype==SPACE_VIEW3D) {
|
||||
BIF_do_ogl_render(curarea->spacedata.first, G.qual!=0 );
|
||||
}
|
||||
break;
|
||||
case B_STARTGAME:
|
||||
if (select_area(SPACE_VIEW3D)) {
|
||||
start_game();
|
||||
}
|
||||
break;
|
||||
case B_VIEWZOOM:
|
||||
viewmovetemp= 0;
|
||||
viewmove(2);
|
||||
scrarea_queue_headredraw(curarea);
|
||||
break;
|
||||
case B_VIEWTRANS:
|
||||
viewmovetemp= 0;
|
||||
viewmove(1);
|
||||
scrarea_queue_headredraw(curarea);
|
||||
break;
|
||||
case B_MODESELECT:
|
||||
if (G.vd->modeselect == V3D_OBJECTMODE_SEL) {
|
||||
G.vd->flag &= ~V3D_MODE;
|
||||
G.f &= ~G_VERTEXPAINT; /* Switch off vertex paint */
|
||||
G.f &= ~G_TEXTUREPAINT; /* Switch off texture paint */
|
||||
G.f &= ~G_WEIGHTPAINT; /* Switch off weight paint */
|
||||
G.f &= ~G_FACESELECT; /* Switch off face select */
|
||||
if (G.obpose) exit_posemode(1); /* exit posemode */
|
||||
if(G.obedit) exit_editmode(1); /* exit editmode */
|
||||
} else if (G.vd->modeselect == V3D_EDITMODE_SEL) {
|
||||
if(!G.obedit) {
|
||||
G.vd->flag &= ~V3D_MODE;
|
||||
G.f &= ~G_VERTEXPAINT; /* Switch off vertex paint */
|
||||
G.f &= ~G_TEXTUREPAINT; /* Switch off texture paint */
|
||||
G.f &= ~G_WEIGHTPAINT; /* Switch off weight paint */
|
||||
if (G.obpose) exit_posemode(1); /* exit posemode */
|
||||
|
||||
enter_editmode();
|
||||
}
|
||||
} else if (G.vd->modeselect == V3D_FACESELECTMODE_SEL) {
|
||||
if ((G.obedit) && (G.f & G_FACESELECT)) {
|
||||
exit_editmode(1); /* exit editmode */
|
||||
} else if ((G.f & G_FACESELECT) && (G.f & G_VERTEXPAINT)) {
|
||||
G.f &= ~G_VERTEXPAINT;
|
||||
} else if ((G.f & G_FACESELECT) && (G.f & G_TEXTUREPAINT)) {
|
||||
G.f &= ~G_TEXTUREPAINT;
|
||||
} else {
|
||||
G.vd->flag &= ~V3D_MODE;
|
||||
G.f &= ~G_VERTEXPAINT; /* Switch off vertex paint */
|
||||
G.f &= ~G_TEXTUREPAINT; /* Switch off texture paint */
|
||||
G.f &= ~G_WEIGHTPAINT; /* Switch off weight paint */
|
||||
if (G.obpose) exit_posemode(1); /* exit posemode */
|
||||
if (G.obedit) exit_editmode(1); /* exit editmode */
|
||||
|
||||
set_faceselect();
|
||||
}
|
||||
} else if (G.vd->modeselect == V3D_VERTEXPAINTMODE_SEL) {
|
||||
if (!(G.f & G_VERTEXPAINT)) {
|
||||
G.vd->flag &= ~V3D_MODE;
|
||||
G.f &= ~G_TEXTUREPAINT; /* Switch off texture paint */
|
||||
G.f &= ~G_WEIGHTPAINT; /* Switch off weight paint */
|
||||
if (G.obpose) exit_posemode(1); /* exit posemode */
|
||||
if(G.obedit) exit_editmode(1); /* exit editmode */
|
||||
|
||||
set_vpaint();
|
||||
}
|
||||
} else if (G.vd->modeselect == V3D_TEXTUREPAINTMODE_SEL) {
|
||||
if (!(G.f & G_TEXTUREPAINT)) {
|
||||
G.vd->flag &= ~V3D_MODE;
|
||||
G.f &= ~G_VERTEXPAINT; /* Switch off vertex paint */
|
||||
G.f &= ~G_WEIGHTPAINT; /* Switch off weight paint */
|
||||
if (G.obpose) exit_posemode(1); /* exit posemode */
|
||||
if(G.obedit) exit_editmode(1); /* exit editmode */
|
||||
|
||||
G.f |= G_TEXTUREPAINT; /* Switch on texture paint flag */
|
||||
}
|
||||
} else if (G.vd->modeselect == V3D_WEIGHTPAINTMODE_SEL) {
|
||||
if (!(G.f & G_WEIGHTPAINT) && (OBACT && OBACT->type == OB_MESH) && ((((Mesh*)(OBACT->data))->dvert))) {
|
||||
G.vd->flag &= ~V3D_MODE;
|
||||
G.f &= ~G_VERTEXPAINT; /* Switch off vertex paint */
|
||||
G.f &= ~G_TEXTUREPAINT; /* Switch off texture paint */
|
||||
if (G.obpose) exit_posemode(1); /* exit posemode */
|
||||
if(G.obedit) exit_editmode(1); /* exit editmode */
|
||||
|
||||
set_wpaint();
|
||||
}
|
||||
} else if (G.vd->modeselect == V3D_POSEMODE_SEL) {
|
||||
if (!G.obpose) {
|
||||
G.vd->flag &= ~V3D_MODE;
|
||||
if(G.obedit) exit_editmode(1); /* exit editmode */
|
||||
|
||||
enter_posemode();
|
||||
}
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
break;
|
||||
|
||||
default:
|
||||
case B_PERSP:
|
||||
|
||||
if(G.vd->persp==2) persptoetsen(PAD0);
|
||||
else {
|
||||
G.vd->persp= 1-G.vd->persp;
|
||||
persptoetsen(PAD5);
|
||||
}
|
||||
|
||||
break;
|
||||
case B_PROPTOOL:
|
||||
allqueue(REDRAWHEADERS, 0);
|
||||
break;
|
||||
case B_VIEWRENDER:
|
||||
if (curarea->spacetype==SPACE_VIEW3D) {
|
||||
BIF_do_ogl_render(curarea->spacedata.first, G.qual!=0 );
|
||||
}
|
||||
break;
|
||||
case B_STARTGAME:
|
||||
if (select_area(SPACE_VIEW3D)) {
|
||||
start_game();
|
||||
}
|
||||
break;
|
||||
case B_VIEWZOOM:
|
||||
viewmovetemp= 0;
|
||||
viewmove(2);
|
||||
scrarea_queue_headredraw(curarea);
|
||||
break;
|
||||
case B_VIEWTRANS:
|
||||
viewmovetemp= 0;
|
||||
viewmove(1);
|
||||
scrarea_queue_headredraw(curarea);
|
||||
break;
|
||||
case B_MODESELECT:
|
||||
if (G.vd->modeselect == V3D_OBJECTMODE_SEL) {
|
||||
G.vd->flag &= ~V3D_MODE;
|
||||
G.f &= ~G_VERTEXPAINT; /* Switch off vertex paint */
|
||||
G.f &= ~G_TEXTUREPAINT; /* Switch off texture paint */
|
||||
G.f &= ~G_WEIGHTPAINT; /* Switch off weight paint */
|
||||
G.f &= ~G_FACESELECT; /* Switch off face select */
|
||||
if (G.obpose) exit_posemode(1); /* exit posemode */
|
||||
if(G.obedit) exit_editmode(1); /* exit editmode */
|
||||
} else if (G.vd->modeselect == V3D_EDITMODE_SEL) {
|
||||
if(!G.obedit) {
|
||||
G.vd->flag &= ~V3D_MODE;
|
||||
G.f &= ~G_VERTEXPAINT; /* Switch off vertex paint */
|
||||
G.f &= ~G_TEXTUREPAINT; /* Switch off texture paint */
|
||||
G.f &= ~G_WEIGHTPAINT; /* Switch off weight paint */
|
||||
if (G.obpose) exit_posemode(1); /* exit posemode */
|
||||
|
||||
enter_editmode();
|
||||
}
|
||||
} else if (G.vd->modeselect == V3D_FACESELECTMODE_SEL) {
|
||||
if ((G.obedit) && (G.f & G_FACESELECT)) {
|
||||
exit_editmode(1); /* exit editmode */
|
||||
} else if ((G.f & G_FACESELECT) && (G.f & G_VERTEXPAINT)) {
|
||||
G.f &= ~G_VERTEXPAINT;
|
||||
} else if ((G.f & G_FACESELECT) && (G.f & G_TEXTUREPAINT)) {
|
||||
G.f &= ~G_TEXTUREPAINT;
|
||||
} else {
|
||||
G.vd->flag &= ~V3D_MODE;
|
||||
G.f &= ~G_VERTEXPAINT; /* Switch off vertex paint */
|
||||
G.f &= ~G_TEXTUREPAINT; /* Switch off texture paint */
|
||||
G.f &= ~G_WEIGHTPAINT; /* Switch off weight paint */
|
||||
if (G.obpose) exit_posemode(1); /* exit posemode */
|
||||
if (G.obedit) exit_editmode(1); /* exit editmode */
|
||||
|
||||
set_faceselect();
|
||||
}
|
||||
} else if (G.vd->modeselect == V3D_VERTEXPAINTMODE_SEL) {
|
||||
if (!(G.f & G_VERTEXPAINT)) {
|
||||
G.vd->flag &= ~V3D_MODE;
|
||||
G.f &= ~G_TEXTUREPAINT; /* Switch off texture paint */
|
||||
G.f &= ~G_WEIGHTPAINT; /* Switch off weight paint */
|
||||
if (G.obpose) exit_posemode(1); /* exit posemode */
|
||||
if(G.obedit) exit_editmode(1); /* exit editmode */
|
||||
|
||||
set_vpaint();
|
||||
}
|
||||
} else if (G.vd->modeselect == V3D_TEXTUREPAINTMODE_SEL) {
|
||||
if (!(G.f & G_TEXTUREPAINT)) {
|
||||
G.vd->flag &= ~V3D_MODE;
|
||||
G.f &= ~G_VERTEXPAINT; /* Switch off vertex paint */
|
||||
G.f &= ~G_WEIGHTPAINT; /* Switch off weight paint */
|
||||
if (G.obpose) exit_posemode(1); /* exit posemode */
|
||||
if(G.obedit) exit_editmode(1); /* exit editmode */
|
||||
|
||||
G.f |= G_TEXTUREPAINT; /* Switch on texture paint flag */
|
||||
}
|
||||
} else if (G.vd->modeselect == V3D_WEIGHTPAINTMODE_SEL) {
|
||||
if (!(G.f & G_WEIGHTPAINT) && (OBACT && OBACT->type == OB_MESH) && ((((Mesh*)(OBACT->data))->dvert))) {
|
||||
G.vd->flag &= ~V3D_MODE;
|
||||
G.f &= ~G_VERTEXPAINT; /* Switch off vertex paint */
|
||||
G.f &= ~G_TEXTUREPAINT; /* Switch off texture paint */
|
||||
if (G.obpose) exit_posemode(1); /* exit posemode */
|
||||
if(G.obedit) exit_editmode(1); /* exit editmode */
|
||||
|
||||
set_wpaint();
|
||||
}
|
||||
} else if (G.vd->modeselect == V3D_POSEMODE_SEL) {
|
||||
if (!G.obpose) {
|
||||
G.vd->flag &= ~V3D_MODE;
|
||||
if(G.obedit) exit_editmode(1); /* exit editmode */
|
||||
|
||||
enter_posemode();
|
||||
}
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
break;
|
||||
|
||||
default:
|
||||
|
||||
if(event>=B_LAY && event<B_LAY+31) {
|
||||
if(G.vd->lay!=0 && (G.qual & LR_SHIFTKEY)) {
|
||||
|
||||
/* but do find active layer */
|
||||
|
||||
bit= event-B_LAY;
|
||||
if( G.vd->lay & (1<<bit)) G.vd->layact= 1<<bit;
|
||||
else {
|
||||
if( (G.vd->lay & G.vd->layact) == 0) {
|
||||
bit= 0;
|
||||
while(bit<32) {
|
||||
if(G.vd->lay & (1<<bit)) {
|
||||
G.vd->layact= 1<<bit;
|
||||
break;
|
||||
}
|
||||
bit++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
bit= event-B_LAY;
|
||||
G.vd->lay= 1<<bit;
|
||||
G.vd->layact= G.vd->lay;
|
||||
scrarea_queue_headredraw(curarea);
|
||||
}
|
||||
scrarea_queue_winredraw(curarea);
|
||||
countall();
|
||||
if(event>=B_LAY && event<B_LAY+31) {
|
||||
if(G.vd->lay!=0 && (G.qual & LR_SHIFTKEY)) {
|
||||
|
||||
/* but do find active layer */
|
||||
|
||||
bit= event-B_LAY;
|
||||
if( G.vd->lay & (1<<bit)) G.vd->layact= 1<<bit;
|
||||
else {
|
||||
if( (G.vd->lay & G.vd->layact) == 0) {
|
||||
bit= 0;
|
||||
while(bit<32) {
|
||||
if(G.vd->lay & (1<<bit)) {
|
||||
G.vd->layact= 1<<bit;
|
||||
break;
|
||||
}
|
||||
bit++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
bit= event-B_LAY;
|
||||
G.vd->lay= 1<<bit;
|
||||
G.vd->layact= G.vd->lay;
|
||||
scrarea_queue_headredraw(curarea);
|
||||
}
|
||||
scrarea_queue_winredraw(curarea);
|
||||
countall();
|
||||
|
||||
if(G.vd->scenelock) handle_view3d_lock();
|
||||
allqueue(REDRAWOOPS, 0);
|
||||
}
|
||||
break;
|
||||
}
|
||||
if(G.vd->scenelock) handle_view3d_lock();
|
||||
allqueue(REDRAWOOPS, 0);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void view3d_buttons(void)
|
||||
{
|
||||
uiBlock *block;
|
||||
int a;
|
||||
short xco = 0;
|
||||
char naam[20];
|
||||
short xmax;
|
||||
|
||||
sprintf(naam, "header %d", curarea->headwin);
|
||||
block= uiNewBlock(&curarea->uiblocks, naam, UI_EMBOSSX, UI_HELV, curarea->headwin);
|
||||
uiBlockSetCol(block, MIDGREY);
|
||||
uiBlock *block;
|
||||
int a;
|
||||
short xco = 0;
|
||||
char naam[20];
|
||||
short xmax;
|
||||
|
||||
sprintf(naam, "header %d", curarea->headwin);
|
||||
block= uiNewBlock(&curarea->uiblocks, naam, UI_EMBOSSX, UI_HELV, curarea->headwin);
|
||||
uiBlockSetCol(block, MIDGREY);
|
||||
|
||||
curarea->butspacetype= SPACE_VIEW3D;
|
||||
|
||||
uiDefIconTextButC(block, ICONTEXTROW,B_NEWSPACE, ICON_VIEW3D, windowtype_pup(), 6,0,XIC,YIC, &(curarea->butspacetype), 1.0, SPACEICONMAX, 0, 0, "Displays Current Window Type. Click for menu of available types.");
|
||||
curarea->butspacetype= SPACE_VIEW3D;
|
||||
|
||||
uiDefIconTextButC(block, ICONTEXTROW,B_NEWSPACE, ICON_VIEW3D, windowtype_pup(), 6,0,XIC,YIC, &(curarea->butspacetype), 1.0, SPACEICONMAX, 0, 0, "Displays Current Window Type. Click for menu of available types.");
|
||||
|
||||
xco+= XIC+18;
|
||||
xco+= XIC+18;
|
||||
|
||||
/* pull down menus */
|
||||
uiBlockSetEmboss(block, UI_EMBOSSP);
|
||||
if(area_is_active_area(curarea)) uiBlockSetCol(block, HEADERCOLSEL);
|
||||
else uiBlockSetCol(block, HEADERCOL);
|
||||
|
||||
/* compensate for local mode when setting up the viewing menu/iconrow values */
|
||||
if(G.vd->view==7) G.vd->viewbut= 1;
|
||||
else if(G.vd->view==1) G.vd->viewbut= 2;
|
||||
else if(G.vd->view==3) G.vd->viewbut= 3;
|
||||
else G.vd->viewbut= 0;
|
||||
|
||||
xmax= GetButStringLength("View");
|
||||
uiDefBlockBut(block, view3d_viewmenu, NULL, "View", xco, 0, xmax, 20, "");
|
||||
xco+= xmax;
|
||||
|
||||
xmax= GetButStringLength("Select");
|
||||
if (G.obedit) {
|
||||
if (OBACT && OBACT->type == OB_MESH) {
|
||||
uiDefBlockBut(block, view3d_select_meshmenu, NULL, "Select", xco, 0, xmax, 20, "");
|
||||
} else if (OBACT && (OBACT->type == OB_CURVE || OBACT->type == OB_SURF)) {
|
||||
uiDefBlockBut(block, view3d_select_curvemenu, NULL, "Select", xco, 0, xmax, 20, "");
|
||||
} else if (OBACT && OBACT->type == OB_FONT) {
|
||||
uiDefBlockBut(block, view3d_select_meshmenu, NULL, "Select", xco, 0, xmax, 20, "");
|
||||
} else if (OBACT && OBACT->type == OB_MBALL) {
|
||||
uiDefBlockBut(block, view3d_select_metaballmenu, NULL, "Select", xco, 0, xmax, 20, "");
|
||||
} else if (OBACT && OBACT->type == OB_LATTICE) {
|
||||
uiDefBlockBut(block, view3d_select_latticemenu, NULL, "Select", xco, 0, xmax, 20, "");
|
||||
} else if (OBACT && OBACT->type == OB_ARMATURE) {
|
||||
uiDefBlockBut(block, view3d_select_armaturemenu, NULL, "Select", xco, 0, xmax, 20, "");
|
||||
}
|
||||
} else if (G.f & G_FACESELECT) {
|
||||
if (OBACT && OBACT->type == OB_MESH) {
|
||||
uiDefBlockBut(block, view3d_select_faceselmenu, NULL, "Select", xco, 0, xmax, 20, "");
|
||||
}
|
||||
} else if (G.obpose) {
|
||||
if (OBACT && OBACT->type == OB_ARMATURE) {
|
||||
uiDefBlockBut(block, view3d_select_pose_armaturemenu, NULL, "Select", xco, 0, xmax, 20, "");
|
||||
}
|
||||
} else if ((G.f & G_VERTEXPAINT) || (G.f & G_TEXTUREPAINT) || (G.f & G_WEIGHTPAINT)) {
|
||||
uiDefBut(block, LABEL,0,"", xco, 0, xmax, 20, 0, 0, 0, 0, 0, "");
|
||||
} else {
|
||||
uiDefBlockBut(block, view3d_select_objectmenu, NULL, "Select", xco, 0, xmax, 20, "");
|
||||
}
|
||||
xco+= xmax;
|
||||
|
||||
if ((G.f & G_VERTEXPAINT) || (G.f & G_TEXTUREPAINT) || (G.f & G_WEIGHTPAINT)) {
|
||||
xmax= GetButStringLength("Paint");
|
||||
uiDefBlockBut(block, view3d_paintmenu, NULL, "Paint", xco, 0, xmax, 20, "");
|
||||
xco+= xmax;
|
||||
} else if (G.obedit) {
|
||||
if (OBACT && OBACT->type == OB_MESH) {
|
||||
xmax= GetButStringLength("Mesh");
|
||||
uiDefBlockBut(block, view3d_edit_meshmenu, NULL, "Mesh", xco, 0, xmax, 20, "");
|
||||
xco+= xmax;
|
||||
} else if (OBACT && OBACT->type == OB_CURVE) {
|
||||
xmax= GetButStringLength("Curve");
|
||||
uiDefBlockBut(block, view3d_edit_curvemenu, NULL, "Curve", xco, 0, xmax, 20, "");
|
||||
xco+= xmax;
|
||||
} else if (OBACT && OBACT->type == OB_SURF) {
|
||||
xmax= GetButStringLength("Surface");
|
||||
uiDefBlockBut(block, view3d_edit_curvemenu, NULL, "Surface", xco, 0, xmax, 20, "");
|
||||
xco+= xmax;
|
||||
} else if (OBACT && OBACT->type == OB_FONT) {
|
||||
xmax= GetButStringLength("Text");
|
||||
uiDefBlockBut(block, view3d_edit_textmenu, NULL, "Text", xco, 0, xmax, 20, "");
|
||||
xco+= xmax;
|
||||
} else if (OBACT && OBACT->type == OB_MBALL) {
|
||||
xmax= GetButStringLength("Metaball");
|
||||
uiDefBlockBut(block, view3d_edit_metaballmenu, NULL, "Metaball", xco, 0, xmax, 20, "");
|
||||
xco+= xmax;
|
||||
} else if (OBACT && OBACT->type == OB_LATTICE) {
|
||||
xmax= GetButStringLength("Lattice");
|
||||
uiDefBlockBut(block, view3d_edit_latticemenu, NULL, "Lattice", xco, 0, xmax, 20, "");
|
||||
xco+= xmax;
|
||||
} else if (OBACT && OBACT->type == OB_ARMATURE) {
|
||||
xmax= GetButStringLength("Armature");
|
||||
uiDefBlockBut(block, view3d_edit_armaturemenu, NULL, "Armature", xco, 0, xmax, 20, "");
|
||||
xco+= xmax;
|
||||
}
|
||||
} else if (G.f & G_FACESELECT) {
|
||||
if (OBACT && OBACT->type == OB_MESH) {
|
||||
xmax= GetButStringLength("Face");
|
||||
uiDefBlockBut(block, view3d_faceselmenu, NULL, "Face", xco, 0, xmax, 20, "");
|
||||
xco+= xmax;
|
||||
}
|
||||
} else if (G.obpose) {
|
||||
if (OBACT && OBACT->type == OB_ARMATURE) {
|
||||
xmax= GetButStringLength("Armature");
|
||||
uiDefBlockBut(block, view3d_pose_armaturemenu, NULL, "Armature", xco, 0, xmax, 20, "");
|
||||
xco+= xmax;
|
||||
}
|
||||
} else {
|
||||
xmax= GetButStringLength("Object");
|
||||
uiDefBlockBut(block, view3d_edit_objectmenu, NULL, "Object", xco, 0, xmax, 20, "");
|
||||
xco+= xmax;
|
||||
}
|
||||
/* pull down menus */
|
||||
uiBlockSetEmboss(block, UI_EMBOSSP);
|
||||
if(area_is_active_area(curarea)) uiBlockSetCol(block, HEADERCOLSEL);
|
||||
else uiBlockSetCol(block, HEADERCOL);
|
||||
|
||||
/* compensate for local mode when setting up the viewing menu/iconrow values */
|
||||
if(G.vd->view==7) G.vd->viewbut= 1;
|
||||
else if(G.vd->view==1) G.vd->viewbut= 2;
|
||||
else if(G.vd->view==3) G.vd->viewbut= 3;
|
||||
else G.vd->viewbut= 0;
|
||||
|
||||
xmax= GetButStringLength("View");
|
||||
uiDefBlockBut(block, view3d_viewmenu, NULL, "View", xco, 0, xmax, 20, "");
|
||||
xco+= xmax;
|
||||
|
||||
xmax= GetButStringLength("Select");
|
||||
if (G.obedit) {
|
||||
if (OBACT && OBACT->type == OB_MESH) {
|
||||
uiDefBlockBut(block, view3d_select_meshmenu, NULL, "Select", xco, 0, xmax, 20, "");
|
||||
} else if (OBACT && (OBACT->type == OB_CURVE || OBACT->type == OB_SURF)) {
|
||||
uiDefBlockBut(block, view3d_select_curvemenu, NULL, "Select", xco, 0, xmax, 20, "");
|
||||
} else if (OBACT && OBACT->type == OB_FONT) {
|
||||
uiDefBlockBut(block, view3d_select_meshmenu, NULL, "Select", xco, 0, xmax, 20, "");
|
||||
} else if (OBACT && OBACT->type == OB_MBALL) {
|
||||
uiDefBlockBut(block, view3d_select_metaballmenu, NULL, "Select", xco, 0, xmax, 20, "");
|
||||
} else if (OBACT && OBACT->type == OB_LATTICE) {
|
||||
uiDefBlockBut(block, view3d_select_latticemenu, NULL, "Select", xco, 0, xmax, 20, "");
|
||||
} else if (OBACT && OBACT->type == OB_ARMATURE) {
|
||||
uiDefBlockBut(block, view3d_select_armaturemenu, NULL, "Select", xco, 0, xmax, 20, "");
|
||||
}
|
||||
} else if (G.f & G_FACESELECT) {
|
||||
if (OBACT && OBACT->type == OB_MESH) {
|
||||
uiDefBlockBut(block, view3d_select_faceselmenu, NULL, "Select", xco, 0, xmax, 20, "");
|
||||
}
|
||||
} else if (G.obpose) {
|
||||
if (OBACT && OBACT->type == OB_ARMATURE) {
|
||||
uiDefBlockBut(block, view3d_select_pose_armaturemenu, NULL, "Select", xco, 0, xmax, 20, "");
|
||||
}
|
||||
} else if ((G.f & G_VERTEXPAINT) || (G.f & G_TEXTUREPAINT) || (G.f & G_WEIGHTPAINT)) {
|
||||
uiDefBut(block, LABEL,0,"", xco, 0, xmax, 20, 0, 0, 0, 0, 0, "");
|
||||
} else {
|
||||
uiDefBlockBut(block, view3d_select_objectmenu, NULL, "Select", xco, 0, xmax, 20, "");
|
||||
}
|
||||
xco+= xmax;
|
||||
|
||||
if ((G.f & G_VERTEXPAINT) || (G.f & G_TEXTUREPAINT) || (G.f & G_WEIGHTPAINT)) {
|
||||
xmax= GetButStringLength("Paint");
|
||||
uiDefBlockBut(block, view3d_paintmenu, NULL, "Paint", xco, 0, xmax, 20, "");
|
||||
xco+= xmax;
|
||||
} else if (G.obedit) {
|
||||
if (OBACT && OBACT->type == OB_MESH) {
|
||||
xmax= GetButStringLength("Mesh");
|
||||
uiDefBlockBut(block, view3d_edit_meshmenu, NULL, "Mesh", xco, 0, xmax, 20, "");
|
||||
xco+= xmax;
|
||||
} else if (OBACT && OBACT->type == OB_CURVE) {
|
||||
xmax= GetButStringLength("Curve");
|
||||
uiDefBlockBut(block, view3d_edit_curvemenu, NULL, "Curve", xco, 0, xmax, 20, "");
|
||||
xco+= xmax;
|
||||
} else if (OBACT && OBACT->type == OB_SURF) {
|
||||
xmax= GetButStringLength("Surface");
|
||||
uiDefBlockBut(block, view3d_edit_curvemenu, NULL, "Surface", xco, 0, xmax, 20, "");
|
||||
xco+= xmax;
|
||||
} else if (OBACT && OBACT->type == OB_FONT) {
|
||||
xmax= GetButStringLength("Text");
|
||||
uiDefBlockBut(block, view3d_edit_textmenu, NULL, "Text", xco, 0, xmax, 20, "");
|
||||
xco+= xmax;
|
||||
} else if (OBACT && OBACT->type == OB_MBALL) {
|
||||
xmax= GetButStringLength("Metaball");
|
||||
uiDefBlockBut(block, view3d_edit_metaballmenu, NULL, "Metaball", xco, 0, xmax, 20, "");
|
||||
xco+= xmax;
|
||||
} else if (OBACT && OBACT->type == OB_LATTICE) {
|
||||
xmax= GetButStringLength("Lattice");
|
||||
uiDefBlockBut(block, view3d_edit_latticemenu, NULL, "Lattice", xco, 0, xmax, 20, "");
|
||||
xco+= xmax;
|
||||
} else if (OBACT && OBACT->type == OB_ARMATURE) {
|
||||
xmax= GetButStringLength("Armature");
|
||||
uiDefBlockBut(block, view3d_edit_armaturemenu, NULL, "Armature", xco, 0, xmax, 20, "");
|
||||
xco+= xmax;
|
||||
}
|
||||
} else if (G.f & G_FACESELECT) {
|
||||
if (OBACT && OBACT->type == OB_MESH) {
|
||||
xmax= GetButStringLength("Face");
|
||||
uiDefBlockBut(block, view3d_faceselmenu, NULL, "Face", xco, 0, xmax, 20, "");
|
||||
xco+= xmax;
|
||||
}
|
||||
} else if (G.obpose) {
|
||||
if (OBACT && OBACT->type == OB_ARMATURE) {
|
||||
xmax= GetButStringLength("Armature");
|
||||
uiDefBlockBut(block, view3d_pose_armaturemenu, NULL, "Armature", xco, 0, xmax, 20, "");
|
||||
xco+= xmax;
|
||||
}
|
||||
} else {
|
||||
xmax= GetButStringLength("Object");
|
||||
uiDefBlockBut(block, view3d_edit_objectmenu, NULL, "Object", xco, 0, xmax, 20, "");
|
||||
xco+= xmax;
|
||||
}
|
||||
|
||||
/* end pulldowns, other buttons: */
|
||||
uiBlockSetCol(block, MIDGREY);
|
||||
uiBlockSetEmboss(block, UI_EMBOSSX);
|
||||
|
||||
/* mode */
|
||||
G.vd->modeselect = V3D_OBJECTMODE_SEL;
|
||||
if (G.f & G_WEIGHTPAINT) G.vd->modeselect = V3D_WEIGHTPAINTMODE_SEL;
|
||||
else if (G.f & G_VERTEXPAINT) G.vd->modeselect = V3D_VERTEXPAINTMODE_SEL;
|
||||
else if (G.f & G_TEXTUREPAINT) G.vd->modeselect = V3D_TEXTUREPAINTMODE_SEL;
|
||||
else if(G.f & G_FACESELECT) G.vd->modeselect = V3D_FACESELECTMODE_SEL;
|
||||
if (G.obpose) G.vd->modeselect = V3D_POSEMODE_SEL;
|
||||
if (G.obedit) G.vd->modeselect = V3D_EDITMODE_SEL;
|
||||
|
||||
G.vd->flag &= ~V3D_MODE;
|
||||
if(G.obedit) G.vd->flag |= V3D_EDITMODE;
|
||||
if(G.f & G_VERTEXPAINT) G.vd->flag |= V3D_VERTEXPAINT;
|
||||
if(G.f & G_WEIGHTPAINT) G.vd->flag |= V3D_WEIGHTPAINT;
|
||||
/* end pulldowns, other buttons: */
|
||||
uiBlockSetCol(block, MIDGREY);
|
||||
uiBlockSetEmboss(block, UI_EMBOSSX);
|
||||
|
||||
/* mode */
|
||||
G.vd->modeselect = V3D_OBJECTMODE_SEL;
|
||||
if (G.f & G_WEIGHTPAINT) G.vd->modeselect = V3D_WEIGHTPAINTMODE_SEL;
|
||||
else if (G.f & G_VERTEXPAINT) G.vd->modeselect = V3D_VERTEXPAINTMODE_SEL;
|
||||
else if (G.f & G_TEXTUREPAINT) G.vd->modeselect = V3D_TEXTUREPAINTMODE_SEL;
|
||||
else if(G.f & G_FACESELECT) G.vd->modeselect = V3D_FACESELECTMODE_SEL;
|
||||
if (G.obpose) G.vd->modeselect = V3D_POSEMODE_SEL;
|
||||
if (G.obedit) G.vd->modeselect = V3D_EDITMODE_SEL;
|
||||
|
||||
G.vd->flag &= ~V3D_MODE;
|
||||
if(G.obedit) G.vd->flag |= V3D_EDITMODE;
|
||||
if(G.f & G_VERTEXPAINT) G.vd->flag |= V3D_VERTEXPAINT;
|
||||
if(G.f & G_WEIGHTPAINT) G.vd->flag |= V3D_WEIGHTPAINT;
|
||||
#ifdef NAN_TPT
|
||||
if (G.f & G_TEXTUREPAINT) G.vd->flag |= V3D_TEXTUREPAINT;
|
||||
if (G.f & G_TEXTUREPAINT) G.vd->flag |= V3D_TEXTUREPAINT;
|
||||
#endif /* NAN_TPT */
|
||||
if(G.f & G_FACESELECT) G.vd->flag |= V3D_FACESELECT;
|
||||
if(G.obpose){
|
||||
G.vd->flag |= V3D_POSEMODE;
|
||||
}
|
||||
|
||||
xco+= 16;
|
||||
if(G.f & G_FACESELECT) G.vd->flag |= V3D_FACESELECT;
|
||||
if(G.obpose){
|
||||
G.vd->flag |= V3D_POSEMODE;
|
||||
}
|
||||
|
||||
xco+= 16;
|
||||
|
||||
uiDefIconTextButS(block, MENU, B_MODESELECT, (G.vd->modeselect),view3d_modeselect_pup() ,
|
||||
xco,0,120,20, &(G.vd->modeselect), 0, 0, 0, 0, "Mode:");
|
||||
|
||||
xco+= 130;
|
||||
|
||||
/* DRAWTYPE */
|
||||
uiDefIconButS(block, ICONROW, B_REDR, ICON_BBOX, xco,0,XIC,YIC, &(G.vd->drawtype), 1.0, 5.0, 0, 0, "Drawtype: boundbox/wire/solid/shaded (ZKEY, SHIFT+Z)");
|
||||
uiDefIconTextButS(block, MENU, B_MODESELECT, (G.vd->modeselect),view3d_modeselect_pup() ,
|
||||
xco,0,120,20, &(G.vd->modeselect), 0, 0, 0, 0, "Mode:");
|
||||
|
||||
xco+= 130;
|
||||
|
||||
/* DRAWTYPE */
|
||||
uiDefIconButS(block, ICONROW, B_REDR, ICON_BBOX, xco,0,XIC,YIC, &(G.vd->drawtype), 1.0, 5.0, 0, 0, "Drawtype: boundbox/wire/solid/shaded (ZKEY, SHIFT+Z)");
|
||||
|
||||
// uiDefIconTextButS(block, MENU, REDRAWVIEW3D, (ICON_BBOX+G.vd->drawtype-1), "Viewport Shading%t|Bounding Box %x1|Wireframe %x2|Solid %x3|Shaded %x4|Textured %x5",
|
||||
// xco,0,124,20, &(G.vd->drawtype), 0, 0, 0, 0, "Viewport Shading");
|
||||
// uiDefButS(block, MENU, REDRAWVIEW3D, "Viewport Shading%t|Bounding Box %x1|Wireframe %x2|Solid %x3|Shaded %x4|Textured %x5",
|
||||
// xco,0,110,20, &(G.vd->drawtype), 0, 0, 0, 0, "Viewport Shading");
|
||||
|
||||
xco+= XIC+10;
|
||||
/* LAYERS */
|
||||
if(G.vd->localview==0) {
|
||||
|
||||
for(a=0; a<10; a++) {
|
||||
uiDefButI(block, TOG|BIT|(a+10), B_LAY+10+a, "",(short)(xco+a*(XIC/2)), 0, XIC/2, (YIC)/2, &(G.vd->lay), 0, 0, 0, 0, "Toggles Layer visibility");
|
||||
uiDefButI(block, TOG|BIT|a, B_LAY+a, "", (short)(xco+a*(XIC/2)), (short)(YIC/2),(short)(XIC/2),(short)(YIC/2), &(G.vd->lay), 0, 0, 0, 0, "Toggles Layer visibility");
|
||||
if(a==4) xco+= 5;
|
||||
}
|
||||
xco+= (a-2)*(XIC/2)+5;
|
||||
// uiDefIconTextButS(block, MENU, REDRAWVIEW3D, (ICON_BBOX+G.vd->drawtype-1), "Viewport Shading%t|Bounding Box %x1|Wireframe %x2|Solid %x3|Shaded %x4|Textured %x5",
|
||||
// xco,0,124,20, &(G.vd->drawtype), 0, 0, 0, 0, "Viewport Shading");
|
||||
// uiDefButS(block, MENU, REDRAWVIEW3D, "Viewport Shading%t|Bounding Box %x1|Wireframe %x2|Solid %x3|Shaded %x4|Textured %x5",
|
||||
// xco,0,110,20, &(G.vd->drawtype), 0, 0, 0, 0, "Viewport Shading");
|
||||
|
||||
xco+= XIC+10;
|
||||
/* LAYERS */
|
||||
if(G.vd->localview==0) {
|
||||
|
||||
for(a=0; a<10; a++) {
|
||||
uiDefButI(block, TOG|BIT|(a+10), B_LAY+10+a, "",(short)(xco+a*(XIC/2)), 0, XIC/2, (YIC)/2, &(G.vd->lay), 0, 0, 0, 0, "Toggles Layer visibility");
|
||||
uiDefButI(block, TOG|BIT|a, B_LAY+a, "", (short)(xco+a*(XIC/2)), (short)(YIC/2),(short)(XIC/2),(short)(YIC/2), &(G.vd->lay), 0, 0, 0, 0, "Toggles Layer visibility");
|
||||
if(a==4) xco+= 5;
|
||||
}
|
||||
xco+= (a-2)*(XIC/2)+5;
|
||||
|
||||
/* LOCK */
|
||||
uiDefIconButS(block, ICONTOG, B_SCENELOCK, ICON_UNLOCKED, xco+=XIC,0,XIC,YIC, &(G.vd->scenelock), 0, 0, 0, 0, "Locks layers and used Camera to Scene");
|
||||
xco+= 14;
|
||||
/* LOCK */
|
||||
uiDefIconButS(block, ICONTOG, B_SCENELOCK, ICON_UNLOCKED, xco+=XIC,0,XIC,YIC, &(G.vd->scenelock), 0, 0, 0, 0, "Locks layers and used Camera to Scene");
|
||||
xco+= 14;
|
||||
|
||||
}
|
||||
else xco+= (10+1)*(XIC/2)+10+4;
|
||||
}
|
||||
else xco+= (10+1)*(XIC/2)+10+4;
|
||||
|
||||
/* VIEWMOVE */
|
||||
/*
|
||||
uiDefIconButI(block, TOG, B_VIEWTRANS, ICON_VIEWMOVE, xco+=XIC,0,XIC,YIC, &viewmovetemp, 0, 0, 0, 0, "Translates view (SHIFT+MiddleMouse)");
|
||||
uiDefIconButI(block, TOG, B_VIEWZOOM, ICON_VIEWZOOM, xco+=XIC,0,XIC,YIC, &viewmovetemp, 0, 0, 0, 0, "Zooms view (CTRL+MiddleMouse)");
|
||||
*/
|
||||
|
||||
/* around */
|
||||
xco+= XIC/2;
|
||||
uiDefIconButS(block, ROW, 1, ICON_ROTATE, xco+=XIC,0,XIC,YIC, &G.vd->around, 3.0, 0.0, 0, 0, "Enables Rotation or Scaling around boundbox center (COMMAKEY)");
|
||||
uiDefIconButS(block, ROW, 1, ICON_ROTATECENTER, xco+=XIC,0,XIC,YIC, &G.vd->around, 3.0, 3.0, 0, 0, "Enables Rotation or Scaling around median point");
|
||||
uiDefIconButS(block, ROW, 1, ICON_CURSOR, xco+=XIC,0,XIC,YIC, &G.vd->around, 3.0, 1.0, 0, 0, "Enables Rotation or Scaling around cursor (DOTKEY)");
|
||||
uiDefIconButS(block, ROW, 1, ICON_ROTATECOLLECTION, xco+=XIC,0,XIC,YIC, &G.vd->around, 3.0, 2.0, 0, 0, "Enables Rotation or Scaling around individual object centers");
|
||||
/* VIEWMOVE */
|
||||
/*
|
||||
uiDefIconButI(block, TOG, B_VIEWTRANS, ICON_VIEWMOVE, xco+=XIC,0,XIC,YIC, &viewmovetemp, 0, 0, 0, 0, "Translates view (SHIFT+MiddleMouse)");
|
||||
uiDefIconButI(block, TOG, B_VIEWZOOM, ICON_VIEWZOOM, xco+=XIC,0,XIC,YIC, &viewmovetemp, 0, 0, 0, 0, "Zooms view (CTRL+MiddleMouse)");
|
||||
*/
|
||||
|
||||
/* around */
|
||||
xco+= XIC/2;
|
||||
uiDefIconButS(block, ROW, 1, ICON_ROTATE, xco+=XIC,0,XIC,YIC, &G.vd->around, 3.0, 0.0, 0, 0, "Enables Rotation or Scaling around boundbox center (COMMAKEY)");
|
||||
uiDefIconButS(block, ROW, 1, ICON_ROTATECENTER, xco+=XIC,0,XIC,YIC, &G.vd->around, 3.0, 3.0, 0, 0, "Enables Rotation or Scaling around median point");
|
||||
uiDefIconButS(block, ROW, 1, ICON_CURSOR, xco+=XIC,0,XIC,YIC, &G.vd->around, 3.0, 1.0, 0, 0, "Enables Rotation or Scaling around cursor (DOTKEY)");
|
||||
uiDefIconButS(block, ROW, 1, ICON_ROTATECOLLECTION, xco+=XIC,0,XIC,YIC, &G.vd->around, 3.0, 2.0, 0, 0, "Enables Rotation or Scaling around individual object centers");
|
||||
|
||||
if(G.vd->bgpic) {
|
||||
xco+= XIC/2;
|
||||
uiDefIconButS(block, TOG|BIT|1, B_REDR, ICON_IMAGE_COL, xco+=XIC,0,XIC,YIC, &G.vd->flag, 0, 0, 0, 0, "Displays a Background picture");
|
||||
}
|
||||
if(G.obedit && (OBACT->type == OB_MESH || OBACT->type == OB_CURVE || OBACT->type == OB_SURF || OBACT->type == OB_LATTICE)) {
|
||||
extern int prop_mode;
|
||||
xco+= XIC/2;
|
||||
uiDefIconButI(block, ICONTOG|BIT|14, B_PROPTOOL, ICON_GRID, xco+=XIC,0,XIC,YIC, &G.f, 0, 0, 0, 0, "Toggles Proportional Vertex Editing (OKEY)");
|
||||
if(G.f & G_PROPORTIONAL) {
|
||||
uiDefIconButI(block, ROW, 0, ICON_SHARPCURVE, xco+=XIC,0,XIC,YIC, &prop_mode, 4.0, 0.0, 0, 0, "Enables Sharp falloff (SHIFT+OKEY)");
|
||||
uiDefIconButI(block, ROW, 0, ICON_SMOOTHCURVE, xco+=XIC,0,XIC,YIC, &prop_mode, 4.0, 1.0, 0, 0, "Enables Smooth falloff (SHIFT+OKEY)");
|
||||
}
|
||||
}
|
||||
|
||||
xco+=XIC;
|
||||
if(G.vd->bgpic) {
|
||||
xco+= XIC/2;
|
||||
uiDefIconButS(block, TOG|BIT|1, B_REDR, ICON_IMAGE_COL, xco+=XIC,0,XIC,YIC, &G.vd->flag, 0, 0, 0, 0, "Displays a Background picture");
|
||||
}
|
||||
if(G.obedit && (OBACT->type == OB_MESH || OBACT->type == OB_CURVE || OBACT->type == OB_SURF || OBACT->type == OB_LATTICE)) {
|
||||
extern int prop_mode;
|
||||
xco+= XIC/2;
|
||||
uiDefIconButI(block, ICONTOG|BIT|14, B_PROPTOOL, ICON_GRID, xco+=XIC,0,XIC,YIC, &G.f, 0, 0, 0, 0, "Toggles Proportional Vertex Editing (OKEY)");
|
||||
if(G.f & G_PROPORTIONAL) {
|
||||
uiDefIconButI(block, ROW, 0, ICON_SHARPCURVE, xco+=XIC,0,XIC,YIC, &prop_mode, 4.0, 0.0, 0, 0, "Enables Sharp falloff (SHIFT+OKEY)");
|
||||
uiDefIconButI(block, ROW, 0, ICON_SMOOTHCURVE, xco+=XIC,0,XIC,YIC, &prop_mode, 4.0, 1.0, 0, 0, "Enables Smooth falloff (SHIFT+OKEY)");
|
||||
}
|
||||
}
|
||||
|
||||
xco+=XIC;
|
||||
|
||||
/* Always do this last */
|
||||
curarea->headbutlen= xco+2*XIC;
|
||||
/* Always do this last */
|
||||
curarea->headbutlen= xco+2*XIC;
|
||||
|
||||
uiDrawBlock(block);
|
||||
uiDrawBlock(block);
|
||||
|
||||
}
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software Foundation,
|
||||
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
|
||||
* All rights reserved.
|
||||
@@ -174,7 +174,7 @@
|
||||
#include "blendef.h"
|
||||
#include "render.h"
|
||||
#include "ipo.h"
|
||||
#include "nla.h" /* __NLA : To be removed later */
|
||||
#include "nla.h" /* __NLA : To be removed later */
|
||||
#include "butspace.h" // test_idbutton
|
||||
|
||||
#include "TPT_DependKludge.h"
|
||||
@@ -184,44 +184,44 @@
|
||||
#include "SYS_System.h"
|
||||
|
||||
/* WATCH IT: always give all headerbuttons for same window the same name
|
||||
* event B_REDR is a standard redraw
|
||||
*
|
||||
*/
|
||||
* event B_REDR is a standard redraw
|
||||
*
|
||||
*/
|
||||
|
||||
char *windowtype_pup(void)
|
||||
{
|
||||
static char string[1024];
|
||||
static char string[1024];
|
||||
|
||||
strcpy(string, "Window type:%t"); //14
|
||||
strcat(string, "|3D Viewport %x1"); //30
|
||||
strcpy(string, "Window type:%t"); //14
|
||||
strcat(string, "|3D Viewport %x1"); //30
|
||||
|
||||
strcat(string, "|%l"); // 33
|
||||
strcat(string, "|%l"); // 33
|
||||
|
||||
strcat(string, "|Ipo Curve Editor %x2"); //54
|
||||
strcat(string, "|Action Editor %x12"); //73
|
||||
strcat(string, "|NLA Editor %x13"); //94
|
||||
strcat(string, "|Ipo Curve Editor %x2"); //54
|
||||
strcat(string, "|Action Editor %x12"); //73
|
||||
strcat(string, "|NLA Editor %x13"); //94
|
||||
|
||||
strcat(string, "|%l"); //97
|
||||
strcat(string, "|%l"); //97
|
||||
|
||||
strcat(string, "|UV/Image Editor %x6"); //117
|
||||
strcat(string, "|UV/Image Editor %x6"); //117
|
||||
|
||||
strcat(string, "|Video Sequence Editor %x8"); //143
|
||||
strcat(string, "|Audio Timeline %x11"); //163
|
||||
strcat(string, "|Text Editor %x9"); //179
|
||||
strcat(string, "|Video Sequence Editor %x8"); //143
|
||||
strcat(string, "|Audio Timeline %x11"); //163
|
||||
strcat(string, "|Text Editor %x9"); //179
|
||||
|
||||
strcat(string, "|%l"); //192
|
||||
strcat(string, "|%l"); //192
|
||||
|
||||
|
||||
strcat(string, "|User Preferences %x7"); //213
|
||||
strcat(string, "|OOPS Schematic %x3"); //232
|
||||
strcat(string, "|Buttons Window %x4"); //251
|
||||
strcat(string, "|User Preferences %x7"); //213
|
||||
strcat(string, "|OOPS Schematic %x3"); //232
|
||||
strcat(string, "|Buttons Window %x4"); //251
|
||||
|
||||
strcat(string, "|%l"); //254
|
||||
strcat(string, "|%l"); //254
|
||||
|
||||
strcat(string, "|Image Browser %x10");
|
||||
strcat(string, "|File Browser %x5");
|
||||
strcat(string, "|Image Browser %x10");
|
||||
strcat(string, "|File Browser %x5");
|
||||
|
||||
return (string);
|
||||
return (string);
|
||||
}
|
||||
|
||||
int GetButStringLength(char *str) {
|
||||
@@ -234,288 +234,289 @@ int GetButStringLength(char *str) {
|
||||
|
||||
/* ********************** GLOBAL ****************************** */
|
||||
|
||||
int std_libbuttons(uiBlock *block, short xco, short yco, int pin, short *pinpoin,
|
||||
int browse, ID *id, ID *parid, short *menupoin, int users, int lib,
|
||||
int del, int autobut, int keepbut)
|
||||
int std_libbuttons(uiBlock *block, short xco, short yco,
|
||||
int pin, short *pinpoin, int browse, ID *id,
|
||||
ID *parid, short *menupoin, int users, int lib,
|
||||
int del, int autobut, int keepbut)
|
||||
{
|
||||
ListBase *lb;
|
||||
Object *ob;
|
||||
Ipo *ipo;
|
||||
uiBut *but;
|
||||
int len, idwasnul=0, idtype, oldcol;
|
||||
char *str=NULL, str1[10];
|
||||
|
||||
oldcol= uiBlockGetCol(block);
|
||||
ListBase *lb;
|
||||
Object *ob;
|
||||
Ipo *ipo;
|
||||
uiBut *but;
|
||||
int len, idwasnul=0, idtype, oldcol;
|
||||
char *str=NULL, str1[10];
|
||||
|
||||
if(id && pin) {
|
||||
uiDefIconButS(block, ICONTOG, pin, ICON_PIN_DEHLT, xco,yco,XIC,YIC, pinpoin, 0, 0, 0, 0, "Keeps this view displaying the current data regardless of what object is selected");
|
||||
xco+= XIC;
|
||||
}
|
||||
if(browse) {
|
||||
if(id==0) {
|
||||
idwasnul= 1;
|
||||
/* only the browse button */
|
||||
ob= OBACT;
|
||||
if(curarea->spacetype==SPACE_IMAGE) {
|
||||
id= G.main->image.first;
|
||||
}
|
||||
else if(curarea->spacetype==SPACE_SOUND) {
|
||||
id= G.main->sound.first;
|
||||
}
|
||||
else if(curarea->spacetype==SPACE_ACTION) {
|
||||
id= G.main->action.first;
|
||||
}
|
||||
else if(curarea->spacetype==SPACE_NLA) {
|
||||
id=NULL;
|
||||
}
|
||||
else if(curarea->spacetype==SPACE_IPO) {
|
||||
id= G.main->ipo.first;
|
||||
/* test for ipotype */
|
||||
while(id) {
|
||||
ipo= (Ipo *)id;
|
||||
if(G.sipo->blocktype==ipo->blocktype) break;
|
||||
id= id->next;
|
||||
}
|
||||
}
|
||||
else if(curarea->spacetype==SPACE_BUTS) {
|
||||
if(browse==B_WORLDBROWSE) {
|
||||
id= G.main->world.first;
|
||||
}
|
||||
else if(ob && ob->type && (ob->type<OB_LAMP)) {
|
||||
if(G.buts->mainb==CONTEXT_SHADING) {
|
||||
int tab= G.buts->tab[CONTEXT_SHADING];
|
||||
|
||||
if(tab==TAB_SHADING_MAT) id= G.main->mat.first;
|
||||
else if(tab==TAB_SHADING_TEX) id= G.main->tex.first;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(curarea->spacetype==SPACE_TEXT) {
|
||||
id= G.main->text.first;
|
||||
}
|
||||
}
|
||||
if(id) {
|
||||
char *extrastr= NULL;
|
||||
|
||||
idtype= GS(id->name);
|
||||
lb= wich_libbase(G.main, GS(id->name));
|
||||
|
||||
if(idwasnul) id= NULL;
|
||||
else if(id->us>1) uiBlockSetCol(block, BUTDBLUE);
|
||||
oldcol= uiBlockGetCol(block);
|
||||
|
||||
if (pin && *pinpoin) {
|
||||
uiBlockSetCol(block, BUTDPINK);
|
||||
}
|
||||
|
||||
if ELEM7( idtype, ID_SCE, ID_SCR, ID_MA, ID_TE, ID_WO, ID_IP, ID_AC) extrastr= "ADD NEW %x 32767";
|
||||
else if (idtype==ID_TXT) extrastr= "OPEN NEW %x 32766 |ADD NEW %x 32767";
|
||||
else if (idtype==ID_SO) extrastr= "OPEN NEW %x 32766";
|
||||
|
||||
uiSetButLock(G.scene->id.lib!=0, "Can't edit library data");
|
||||
if( idtype==ID_SCE || idtype==ID_SCR ) uiClearButLock();
|
||||
|
||||
if(curarea->spacetype==SPACE_BUTS)
|
||||
uiSetButLock(idtype!=ID_SCR && G.obedit!=0 && G.buts->mainb==CONTEXT_EDITING, NULL);
|
||||
|
||||
if(parid) uiSetButLock(parid->lib!=0, "Can't edit library data");
|
||||
if(id && pin) {
|
||||
uiDefIconButS(block, ICONTOG, pin, ICON_PIN_DEHLT, xco,yco,XIC,YIC, pinpoin, 0, 0, 0, 0, "Keeps this view displaying the current data regardless of what object is selected");
|
||||
xco+= XIC;
|
||||
}
|
||||
if(browse) {
|
||||
if(id==0) {
|
||||
idwasnul= 1;
|
||||
/* only the browse button */
|
||||
ob= OBACT;
|
||||
if(curarea->spacetype==SPACE_IMAGE) {
|
||||
id= G.main->image.first;
|
||||
}
|
||||
else if(curarea->spacetype==SPACE_SOUND) {
|
||||
id= G.main->sound.first;
|
||||
}
|
||||
else if(curarea->spacetype==SPACE_ACTION) {
|
||||
id= G.main->action.first;
|
||||
}
|
||||
else if(curarea->spacetype==SPACE_NLA) {
|
||||
id=NULL;
|
||||
}
|
||||
else if(curarea->spacetype==SPACE_IPO) {
|
||||
id= G.main->ipo.first;
|
||||
/* test for ipotype */
|
||||
while(id) {
|
||||
ipo= (Ipo *)id;
|
||||
if(G.sipo->blocktype==ipo->blocktype) break;
|
||||
id= id->next;
|
||||
}
|
||||
}
|
||||
else if(curarea->spacetype==SPACE_BUTS) {
|
||||
if(browse==B_WORLDBROWSE) {
|
||||
id= G.main->world.first;
|
||||
}
|
||||
else if(ob && ob->type && (ob->type<OB_LAMP)) {
|
||||
if(G.buts->mainb==CONTEXT_SHADING) {
|
||||
int tab= G.buts->tab[CONTEXT_SHADING];
|
||||
|
||||
if(tab==TAB_SHADING_MAT) id= G.main->mat.first;
|
||||
else if(tab==TAB_SHADING_TEX) id= G.main->tex.first;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(curarea->spacetype==SPACE_TEXT) {
|
||||
id= G.main->text.first;
|
||||
}
|
||||
}
|
||||
if(id) {
|
||||
char *extrastr= NULL;
|
||||
|
||||
idtype= GS(id->name);
|
||||
lb= wich_libbase(G.main, GS(id->name));
|
||||
|
||||
if(idwasnul) id= NULL;
|
||||
else if(id->us>1) uiBlockSetCol(block, BUTDBLUE);
|
||||
|
||||
if (lb) {
|
||||
if( idtype==ID_IP)
|
||||
IPOnames_to_pupstring(&str, NULL, extrastr, lb, id, menupoin, G.sipo->blocktype);
|
||||
else
|
||||
IDnames_to_pupstring(&str, NULL, extrastr, lb, id, menupoin);
|
||||
}
|
||||
|
||||
uiDefButS(block, MENU, browse, str, xco,yco,XIC,YIC, menupoin, 0, 0, 0, 0, "Browses existing choices or adds NEW");
|
||||
|
||||
uiClearButLock();
|
||||
|
||||
MEM_freeN(str);
|
||||
xco+= XIC;
|
||||
}
|
||||
else if(curarea->spacetype==SPACE_BUTS) {
|
||||
if(G.buts->mainb==CONTEXT_SHADING) {
|
||||
uiSetButLock(G.scene->id.lib!=0, "Can't edit library data");
|
||||
if(parid) uiSetButLock(parid->lib!=0, "Can't edit library data");
|
||||
uiDefButS(block, MENU, browse, "ADD NEW %x 32767",xco,yco,XIC,YIC, menupoin, 0, 0, 0, 0, "Browses Datablock");
|
||||
uiClearButLock();
|
||||
// } else if (G.buts->mainb == BUTS_SOUND) {
|
||||
// uiDefButS(block, MENU, browse, "OPEN NEW %x 32766",xco,yco,XIC,YIC, menupoin, 0, 0, 0, 0, "Browses Datablock");
|
||||
}
|
||||
}
|
||||
else if(curarea->spacetype==SPACE_TEXT) {
|
||||
uiDefButS(block, MENU, browse, "OPEN NEW %x 32766 | ADD NEW %x 32767", xco,yco,XIC,YIC, menupoin, 0, 0, 0, 0, "Browses Datablock");
|
||||
}
|
||||
else if(curarea->spacetype==SPACE_SOUND) {
|
||||
uiDefButS(block, MENU, browse, "OPEN NEW %x 32766",xco,yco,XIC,YIC, menupoin, 0, 0, 0, 0, "Browses Datablock");
|
||||
}
|
||||
else if(curarea->spacetype==SPACE_NLA) {
|
||||
}
|
||||
else if(curarea->spacetype==SPACE_ACTION) {
|
||||
uiSetButLock(G.scene->id.lib!=0, "Can't edit library data");
|
||||
if(parid) uiSetButLock(parid->lib!=0, "Can't edit library data");
|
||||
if (pin && *pinpoin) {
|
||||
uiBlockSetCol(block, BUTDPINK);
|
||||
}
|
||||
|
||||
if ELEM7( idtype, ID_SCE, ID_SCR, ID_MA, ID_TE, ID_WO, ID_IP, ID_AC) extrastr= "ADD NEW %x 32767";
|
||||
else if (idtype==ID_TXT) extrastr= "OPEN NEW %x 32766 |ADD NEW %x 32767";
|
||||
else if (idtype==ID_SO) extrastr= "OPEN NEW %x 32766";
|
||||
|
||||
uiSetButLock(G.scene->id.lib!=0, "Can't edit library data");
|
||||
if( idtype==ID_SCE || idtype==ID_SCR ) uiClearButLock();
|
||||
|
||||
if(curarea->spacetype==SPACE_BUTS)
|
||||
uiSetButLock(idtype!=ID_SCR && G.obedit!=0 && G.buts->mainb==CONTEXT_EDITING, NULL);
|
||||
|
||||
if(parid) uiSetButLock(parid->lib!=0, "Can't edit library data");
|
||||
|
||||
uiDefButS(block, MENU, browse, "ADD NEW %x 32767", xco,yco,XIC,YIC, menupoin, 0, 0, 0, 0, "Browses Datablock");
|
||||
uiClearButLock();
|
||||
}
|
||||
else if(curarea->spacetype==SPACE_IPO) {
|
||||
uiSetButLock(G.scene->id.lib!=0, "Can't edit library data");
|
||||
if(parid) uiSetButLock(parid->lib!=0, "Can't edit library data");
|
||||
if (lb) {
|
||||
if( idtype==ID_IP)
|
||||
IPOnames_to_pupstring(&str, NULL, extrastr, lb, id, menupoin, G.sipo->blocktype);
|
||||
else
|
||||
IDnames_to_pupstring(&str, NULL, extrastr, lb, id, menupoin);
|
||||
}
|
||||
|
||||
uiDefButS(block, MENU, browse, str, xco,yco,XIC,YIC, menupoin, 0, 0, 0, 0, "Browses existing choices or adds NEW");
|
||||
|
||||
uiClearButLock();
|
||||
|
||||
MEM_freeN(str);
|
||||
xco+= XIC;
|
||||
}
|
||||
else if(curarea->spacetype==SPACE_BUTS) {
|
||||
if(G.buts->mainb==CONTEXT_SHADING) {
|
||||
uiSetButLock(G.scene->id.lib!=0, "Can't edit library data");
|
||||
if(parid) uiSetButLock(parid->lib!=0, "Can't edit library data");
|
||||
uiDefButS(block, MENU, browse, "ADD NEW %x 32767",xco,yco,XIC,YIC, menupoin, 0, 0, 0, 0, "Browses Datablock");
|
||||
uiClearButLock();
|
||||
// } else if (G.buts->mainb == BUTS_SOUND) {
|
||||
// uiDefButS(block, MENU, browse, "OPEN NEW %x 32766",xco,yco,XIC,YIC, menupoin, 0, 0, 0, 0, "Browses Datablock");
|
||||
}
|
||||
}
|
||||
else if(curarea->spacetype==SPACE_TEXT) {
|
||||
uiDefButS(block, MENU, browse, "OPEN NEW %x 32766 | ADD NEW %x 32767", xco,yco,XIC,YIC, menupoin, 0, 0, 0, 0, "Browses Datablock");
|
||||
}
|
||||
else if(curarea->spacetype==SPACE_SOUND) {
|
||||
uiDefButS(block, MENU, browse, "OPEN NEW %x 32766",xco,yco,XIC,YIC, menupoin, 0, 0, 0, 0, "Browses Datablock");
|
||||
}
|
||||
else if(curarea->spacetype==SPACE_NLA) {
|
||||
}
|
||||
else if(curarea->spacetype==SPACE_ACTION) {
|
||||
uiSetButLock(G.scene->id.lib!=0, "Can't edit library data");
|
||||
if(parid) uiSetButLock(parid->lib!=0, "Can't edit library data");
|
||||
|
||||
uiDefButS(block, MENU, browse, "ADD NEW %x 32767", xco,yco,XIC,YIC, menupoin, 0, 0, 0, 0, "Browses Datablock");
|
||||
uiClearButLock();
|
||||
}
|
||||
}
|
||||
uiDefButS(block, MENU, browse, "ADD NEW %x 32767", xco,yco,XIC,YIC, menupoin, 0, 0, 0, 0, "Browses Datablock");
|
||||
uiClearButLock();
|
||||
}
|
||||
else if(curarea->spacetype==SPACE_IPO) {
|
||||
uiSetButLock(G.scene->id.lib!=0, "Can't edit library data");
|
||||
if(parid) uiSetButLock(parid->lib!=0, "Can't edit library data");
|
||||
|
||||
uiDefButS(block, MENU, browse, "ADD NEW %x 32767", xco,yco,XIC,YIC, menupoin, 0, 0, 0, 0, "Browses Datablock");
|
||||
uiClearButLock();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
uiBlockSetCol(block, oldcol);
|
||||
uiBlockSetCol(block, oldcol);
|
||||
|
||||
if(id) {
|
||||
|
||||
/* name */
|
||||
if(id->us>1) uiBlockSetCol(block, BUTDBLUE);
|
||||
/* Pinned data ? */
|
||||
if (pin && *pinpoin) {
|
||||
uiBlockSetCol(block, BUTDPINK);
|
||||
}
|
||||
/* Redalert overrides pin color */
|
||||
if(id->us<=0) uiBlockSetCol(block, REDALERT);
|
||||
if(id) {
|
||||
|
||||
/* name */
|
||||
if(id->us>1) uiBlockSetCol(block, BUTDBLUE);
|
||||
/* Pinned data ? */
|
||||
if (pin && *pinpoin) {
|
||||
uiBlockSetCol(block, BUTDPINK);
|
||||
}
|
||||
/* Redalert overrides pin color */
|
||||
if(id->us<=0) uiBlockSetCol(block, REDALERT);
|
||||
|
||||
uiSetButLock(id->lib!=0, "Can't edit library data");
|
||||
|
||||
str1[0]= id->name[0];
|
||||
str1[1]= id->name[1];
|
||||
str1[2]= ':';
|
||||
str1[3]= 0;
|
||||
if(strcmp(str1, "SC:")==0) strcpy(str1, "SCE:");
|
||||
else if(strcmp(str1, "SR:")==0) strcpy(str1, "SCR:");
|
||||
|
||||
if( GS(id->name)==ID_IP) len= 110;
|
||||
else if(yco) len= 140; // comes from button panel
|
||||
else len= 120;
|
||||
|
||||
but= uiDefBut(block, TEX, B_IDNAME, str1,xco, yco, (short)len, YIC, id->name+2, 0.0, 19.0, 0, 0, "Displays current Datablock name. Click to change.");
|
||||
uiButSetFunc(but, test_idbutton_cb, id->name, NULL);
|
||||
uiSetButLock(id->lib!=0, "Can't edit library data");
|
||||
|
||||
str1[0]= id->name[0];
|
||||
str1[1]= id->name[1];
|
||||
str1[2]= ':';
|
||||
str1[3]= 0;
|
||||
if(strcmp(str1, "SC:")==0) strcpy(str1, "SCE:");
|
||||
else if(strcmp(str1, "SR:")==0) strcpy(str1, "SCR:");
|
||||
|
||||
if( GS(id->name)==ID_IP) len= 110;
|
||||
else if(yco) len= 140; // comes from button panel
|
||||
else len= 120;
|
||||
|
||||
but= uiDefBut(block, TEX, B_IDNAME, str1,xco, yco, (short)len, YIC, id->name+2, 0.0, 19.0, 0, 0, "Displays current Datablock name. Click to change.");
|
||||
uiButSetFunc(but, test_idbutton_cb, id->name, NULL);
|
||||
|
||||
uiClearButLock();
|
||||
uiClearButLock();
|
||||
|
||||
xco+= len;
|
||||
|
||||
if(id->lib) {
|
||||
|
||||
if(parid && parid->lib) uiDefIconBut(block, BUT, 0, ICON_DATALIB,xco,yco,XIC,YIC, 0, 0, 0, 0, 0, "Displays name of the current Indirect Library Datablock. Click to change.");
|
||||
else uiDefIconBut(block, BUT, lib, ICON_PARLIB, xco,yco,XIC,YIC, 0, 0, 0, 0, 0, "Displays current Library Datablock name. Click to make local.");
|
||||
|
||||
xco+= XIC;
|
||||
}
|
||||
|
||||
|
||||
if(users && id->us>1) {
|
||||
uiSetButLock (pin && *pinpoin, "Can't make pinned data single-user");
|
||||
|
||||
sprintf(str1, "%d", id->us);
|
||||
if(id->us<100) {
|
||||
|
||||
uiDefBut(block, BUT, users, str1, xco,yco,XIC,YIC, 0, 0, 0, 0, 0, "Displays number of users of this data. Click to make a single-user copy.");
|
||||
xco+= XIC;
|
||||
}
|
||||
else {
|
||||
uiDefBut(block, BUT, users, str1, xco, yco, XIC+10, YIC, 0, 0, 0, 0, 0, "Displays number of users of this data. Click to make a single-user copy.");
|
||||
xco+= XIC+10;
|
||||
}
|
||||
|
||||
uiClearButLock();
|
||||
|
||||
}
|
||||
|
||||
if(del) {
|
||||
xco+= len;
|
||||
|
||||
if(id->lib) {
|
||||
|
||||
if(parid && parid->lib) uiDefIconBut(block, BUT, 0, ICON_DATALIB,xco,yco,XIC,YIC, 0, 0, 0, 0, 0, "Displays name of the current Indirect Library Datablock. Click to change.");
|
||||
else uiDefIconBut(block, BUT, lib, ICON_PARLIB, xco,yco,XIC,YIC, 0, 0, 0, 0, 0, "Displays current Library Datablock name. Click to make local.");
|
||||
|
||||
xco+= XIC;
|
||||
}
|
||||
|
||||
|
||||
if(users && id->us>1) {
|
||||
uiSetButLock (pin && *pinpoin, "Can't make pinned data single-user");
|
||||
|
||||
sprintf(str1, "%d", id->us);
|
||||
if(id->us<100) {
|
||||
|
||||
uiDefBut(block, BUT, users, str1, xco,yco,XIC,YIC, 0, 0, 0, 0, 0, "Displays number of users of this data. Click to make a single-user copy.");
|
||||
xco+= XIC;
|
||||
}
|
||||
else {
|
||||
uiDefBut(block, BUT, users, str1, xco, yco, XIC+10, YIC, 0, 0, 0, 0, 0, "Displays number of users of this data. Click to make a single-user copy.");
|
||||
xco+= XIC+10;
|
||||
}
|
||||
|
||||
uiClearButLock();
|
||||
|
||||
}
|
||||
|
||||
if(del) {
|
||||
|
||||
uiSetButLock (pin && *pinpoin, "Can't unlink pinned data");
|
||||
if(parid && parid->lib);
|
||||
else {
|
||||
uiDefIconBut(block, BUT, del, ICON_X, xco,yco,XIC,YIC, 0, 0, 0, 0, 0, "Deletes link to this Datablock");
|
||||
xco+= XIC;
|
||||
}
|
||||
uiSetButLock (pin && *pinpoin, "Can't unlink pinned data");
|
||||
if(parid && parid->lib);
|
||||
else {
|
||||
uiDefIconBut(block, BUT, del, ICON_X, xco,yco,XIC,YIC, 0, 0, 0, 0, 0, "Deletes link to this Datablock");
|
||||
xco+= XIC;
|
||||
}
|
||||
|
||||
uiClearButLock();
|
||||
}
|
||||
uiClearButLock();
|
||||
}
|
||||
|
||||
if(autobut) {
|
||||
if(parid && parid->lib);
|
||||
else {
|
||||
uiDefIconBut(block, BUT, autobut, ICON_AUTO,xco,yco,XIC,YIC, 0, 0, 0, 0, 0, "Generates an automatic name");
|
||||
xco+= XIC;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
if(keepbut) {
|
||||
uiDefBut(block, BUT, keepbut, "F", xco,yco,XIC,YIC, 0, 0, 0, 0, 0, "Saves this datablock even if it has no users");
|
||||
xco+= XIC;
|
||||
}
|
||||
}
|
||||
else xco+=XIC;
|
||||
|
||||
uiBlockSetCol(block, oldcol);
|
||||
if(autobut) {
|
||||
if(parid && parid->lib);
|
||||
else {
|
||||
uiDefIconBut(block, BUT, autobut, ICON_AUTO,xco,yco,XIC,YIC, 0, 0, 0, 0, 0, "Generates an automatic name");
|
||||
xco+= XIC;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
if(keepbut) {
|
||||
uiDefBut(block, BUT, keepbut, "F", xco,yco,XIC,YIC, 0, 0, 0, 0, 0, "Saves this datablock even if it has no users");
|
||||
xco+= XIC;
|
||||
}
|
||||
}
|
||||
else xco+=XIC;
|
||||
|
||||
uiBlockSetCol(block, oldcol);
|
||||
|
||||
return xco;
|
||||
return xco;
|
||||
}
|
||||
|
||||
void do_update_for_newframe(int mute)
|
||||
{
|
||||
extern void audiostream_scrub(unsigned int frame); /* seqaudio.c */
|
||||
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
allqueue(REDRAWACTION,0);
|
||||
allqueue(REDRAWNLA,0);
|
||||
allqueue(REDRAWIPO, 0);
|
||||
allqueue(REDRAWINFO, 1);
|
||||
allqueue(REDRAWSEQ, 1);
|
||||
allqueue(REDRAWSOUND, 1);
|
||||
allqueue(REDRAWBUTSHEAD, 0);
|
||||
allqueue(REDRAWBUTSSHADING, 0);
|
||||
allqueue(REDRAWBUTSOBJECT, 0);
|
||||
extern void audiostream_scrub(unsigned int frame); /* seqaudio.c */
|
||||
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
allqueue(REDRAWACTION,0);
|
||||
allqueue(REDRAWNLA,0);
|
||||
allqueue(REDRAWIPO, 0);
|
||||
allqueue(REDRAWINFO, 1);
|
||||
allqueue(REDRAWSEQ, 1);
|
||||
allqueue(REDRAWSOUND, 1);
|
||||
allqueue(REDRAWBUTSHEAD, 0);
|
||||
allqueue(REDRAWBUTSSHADING, 0);
|
||||
allqueue(REDRAWBUTSOBJECT, 0);
|
||||
|
||||
/* layers/materials, object ipos are calculted in where_is_object (too) */
|
||||
do_all_ipos();
|
||||
BPY_do_all_scripts(SCRIPT_FRAMECHANGED);
|
||||
do_all_keys();
|
||||
do_all_actions();
|
||||
do_all_ikas();
|
||||
/* layers/materials, object ipos are calculted in where_is_object (too) */
|
||||
do_all_ipos();
|
||||
BPY_do_all_scripts(SCRIPT_FRAMECHANGED);
|
||||
do_all_keys();
|
||||
do_all_actions();
|
||||
do_all_ikas();
|
||||
|
||||
test_all_displists();
|
||||
|
||||
if ( (CFRA>1) && (!mute) && (G.scene->audio.flag & AUDIO_SCRUB)) audiostream_scrub( CFRA );
|
||||
test_all_displists();
|
||||
|
||||
if ( (CFRA>1) && (!mute) && (G.scene->audio.flag & AUDIO_SCRUB)) audiostream_scrub( CFRA );
|
||||
}
|
||||
|
||||
void update_for_newframe(void)
|
||||
{
|
||||
do_update_for_newframe(0);
|
||||
do_update_for_newframe(0);
|
||||
}
|
||||
|
||||
void update_for_newframe_muted(void)
|
||||
{
|
||||
do_update_for_newframe(1);
|
||||
do_update_for_newframe(1);
|
||||
}
|
||||
|
||||
static void show_splash(void)
|
||||
{
|
||||
extern char datatoc_splash_jpg[];
|
||||
extern int datatoc_splash_jpg_size;
|
||||
char *string = NULL;
|
||||
extern char datatoc_splash_jpg[];
|
||||
extern int datatoc_splash_jpg_size;
|
||||
char *string = NULL;
|
||||
|
||||
#ifdef NAN_BUILDINFO
|
||||
char buffer[1024];
|
||||
extern char * build_date;
|
||||
extern char * build_time;
|
||||
extern char * build_platform;
|
||||
extern char * build_type;
|
||||
char buffer[1024];
|
||||
extern char * build_date;
|
||||
extern char * build_time;
|
||||
extern char * build_platform;
|
||||
extern char * build_type;
|
||||
|
||||
string = &buffer[0];
|
||||
sprintf(string,"Built on %s %s Version %s %s", build_date, build_time, build_platform, build_type);
|
||||
string = &buffer[0];
|
||||
sprintf(string,"Built on %s %s Version %s %s", build_date, build_time, build_platform, build_type);
|
||||
#endif
|
||||
|
||||
splash((void *)datatoc_splash_jpg, datatoc_splash_jpg_size, string);
|
||||
splash((void *)datatoc_splash_jpg, datatoc_splash_jpg_size, string);
|
||||
}
|
||||
|
||||
|
||||
@@ -523,74 +524,74 @@ static void show_splash(void)
|
||||
|
||||
void filesel_u_fontdir(char *name)
|
||||
{
|
||||
char dir[FILE_MAXDIR], file[FILE_MAXFILE];
|
||||
BLI_split_dirfile(name, dir, file);
|
||||
char dir[FILE_MAXDIR], file[FILE_MAXFILE];
|
||||
BLI_split_dirfile(name, dir, file);
|
||||
|
||||
strcpy(U.fontdir, dir);
|
||||
allqueue(REDRAWALL, 0);
|
||||
strcpy(U.fontdir, dir);
|
||||
allqueue(REDRAWALL, 0);
|
||||
}
|
||||
|
||||
void filesel_u_textudir(char *name)
|
||||
{
|
||||
char dir[FILE_MAXDIR], file[FILE_MAXFILE];
|
||||
BLI_split_dirfile(name, dir, file);
|
||||
char dir[FILE_MAXDIR], file[FILE_MAXFILE];
|
||||
BLI_split_dirfile(name, dir, file);
|
||||
|
||||
strcpy(U.textudir, dir);
|
||||
allqueue(REDRAWALL, 0);
|
||||
strcpy(U.textudir, dir);
|
||||
allqueue(REDRAWALL, 0);
|
||||
}
|
||||
|
||||
void filesel_u_plugtexdir(char *name)
|
||||
{
|
||||
char dir[FILE_MAXDIR], file[FILE_MAXFILE];
|
||||
BLI_split_dirfile(name, dir, file);
|
||||
char dir[FILE_MAXDIR], file[FILE_MAXFILE];
|
||||
BLI_split_dirfile(name, dir, file);
|
||||
|
||||
strcpy(U.plugtexdir, dir);
|
||||
allqueue(REDRAWALL, 0);
|
||||
strcpy(U.plugtexdir, dir);
|
||||
allqueue(REDRAWALL, 0);
|
||||
}
|
||||
|
||||
void filesel_u_plugseqdir(char *name)
|
||||
{
|
||||
char dir[FILE_MAXDIR], file[FILE_MAXFILE];
|
||||
BLI_split_dirfile(name, dir, file);
|
||||
char dir[FILE_MAXDIR], file[FILE_MAXFILE];
|
||||
BLI_split_dirfile(name, dir, file);
|
||||
|
||||
strcpy(U.plugseqdir, dir);
|
||||
allqueue(REDRAWALL, 0);
|
||||
strcpy(U.plugseqdir, dir);
|
||||
allqueue(REDRAWALL, 0);
|
||||
}
|
||||
|
||||
void filesel_u_renderdir(char *name)
|
||||
{
|
||||
char dir[FILE_MAXDIR], file[FILE_MAXFILE];
|
||||
BLI_split_dirfile(name, dir, file);
|
||||
char dir[FILE_MAXDIR], file[FILE_MAXFILE];
|
||||
BLI_split_dirfile(name, dir, file);
|
||||
|
||||
strcpy(U.renderdir, dir);
|
||||
allqueue(REDRAWALL, 0);
|
||||
strcpy(U.renderdir, dir);
|
||||
allqueue(REDRAWALL, 0);
|
||||
}
|
||||
|
||||
void filesel_u_pythondir(char *name)
|
||||
{
|
||||
char dir[FILE_MAXDIR], file[FILE_MAXFILE];
|
||||
BLI_split_dirfile(name, dir, file);
|
||||
char dir[FILE_MAXDIR], file[FILE_MAXFILE];
|
||||
BLI_split_dirfile(name, dir, file);
|
||||
|
||||
strcpy(U.pythondir, dir);
|
||||
allqueue(REDRAWALL, 0);
|
||||
strcpy(U.pythondir, dir);
|
||||
allqueue(REDRAWALL, 0);
|
||||
}
|
||||
|
||||
void filesel_u_sounddir(char *name)
|
||||
{
|
||||
char dir[FILE_MAXDIR], file[FILE_MAXFILE];
|
||||
BLI_split_dirfile(name, dir, file);
|
||||
char dir[FILE_MAXDIR], file[FILE_MAXFILE];
|
||||
BLI_split_dirfile(name, dir, file);
|
||||
|
||||
strcpy(U.sounddir, dir);
|
||||
allqueue(REDRAWALL, 0);
|
||||
strcpy(U.sounddir, dir);
|
||||
allqueue(REDRAWALL, 0);
|
||||
}
|
||||
|
||||
void filesel_u_tempdir(char *name)
|
||||
{
|
||||
char dir[FILE_MAXDIR], file[FILE_MAXFILE];
|
||||
BLI_split_dirfile(name, dir, file);
|
||||
char dir[FILE_MAXDIR], file[FILE_MAXFILE];
|
||||
BLI_split_dirfile(name, dir, file);
|
||||
|
||||
strcpy(U.tempdir, dir);
|
||||
allqueue(REDRAWALL, 0);
|
||||
strcpy(U.tempdir, dir);
|
||||
allqueue(REDRAWALL, 0);
|
||||
}
|
||||
|
||||
/* END Functions for user preferences fileselect windows */
|
||||
@@ -598,1376 +599,1376 @@ void filesel_u_tempdir(char *name)
|
||||
|
||||
void do_global_buttons(unsigned short event)
|
||||
{
|
||||
ListBase *lb;
|
||||
Object *ob;
|
||||
Material *ma;
|
||||
MTex *mtex;
|
||||
Ipo *ipo;
|
||||
Lamp *la;
|
||||
World *wrld;
|
||||
Sequence *seq;
|
||||
bAction *act;
|
||||
ID *id, *idtest, *from;
|
||||
ScrArea *sa;
|
||||
int nr= 1;
|
||||
char buf[FILE_MAXDIR+FILE_MAXFILE];
|
||||
ListBase *lb;
|
||||
Object *ob;
|
||||
Material *ma;
|
||||
MTex *mtex;
|
||||
Ipo *ipo;
|
||||
Lamp *la;
|
||||
World *wrld;
|
||||
Sequence *seq;
|
||||
bAction *act;
|
||||
ID *id, *idtest, *from;
|
||||
ScrArea *sa;
|
||||
int nr= 1;
|
||||
char buf[FILE_MAXDIR+FILE_MAXFILE];
|
||||
|
||||
|
||||
ob= OBACT;
|
||||
|
||||
id= 0; /* id at null for texbrowse */
|
||||
|
||||
|
||||
switch(event) {
|
||||
|
||||
case B_NEWFRAME:
|
||||
scrarea_queue_winredraw(curarea);
|
||||
scrarea_queue_headredraw(curarea);
|
||||
ob= OBACT;
|
||||
|
||||
update_for_newframe();
|
||||
break;
|
||||
case B_REDR:
|
||||
scrarea_queue_winredraw(curarea);
|
||||
scrarea_queue_headredraw(curarea);
|
||||
break;
|
||||
case B_REDRCURW3D:
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
scrarea_queue_winredraw(curarea);
|
||||
scrarea_queue_headredraw(curarea);
|
||||
break;
|
||||
case B_EDITBROWSE:
|
||||
if(ob==0) return;
|
||||
if(ob->id.lib) return;
|
||||
id= ob->data;
|
||||
if(id==0) return;
|
||||
id= 0; /* id at null for texbrowse */
|
||||
|
||||
if(G.buts->menunr== -2) {
|
||||
activate_databrowse((ID *)G.buts->lockpoin, GS(id->name), 0, B_EDITBROWSE, &G.buts->menunr, do_global_buttons);
|
||||
return;
|
||||
}
|
||||
if(G.buts->menunr < 0) return;
|
||||
|
||||
lb= wich_libbase(G.main, GS(id->name));
|
||||
idtest= lb->first;
|
||||
while(idtest) {
|
||||
if(nr==G.buts->menunr) {
|
||||
if(idtest!=id) {
|
||||
id->us--;
|
||||
id_us_plus(idtest);
|
||||
|
||||
ob->data= idtest;
|
||||
|
||||
test_object_materials(idtest);
|
||||
|
||||
if( GS(idtest->name)==ID_CU ) {
|
||||
test_curve_type(ob);
|
||||
allqueue(REDRAWBUTSEDIT, 0);
|
||||
makeDispList(ob);
|
||||
}
|
||||
else if( ob->type==OB_MESH ) {
|
||||
makeDispList(ob);
|
||||
}
|
||||
|
||||
allqueue(REDRAWBUTSEDIT, 0);
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
allqueue(REDRAWACTION,0);
|
||||
allqueue(REDRAWIPO, 0);
|
||||
allqueue(REDRAWNLA,0);
|
||||
}
|
||||
break;
|
||||
}
|
||||
nr++;
|
||||
idtest= idtest->next;
|
||||
}
|
||||
|
||||
break;
|
||||
case B_MESHBROWSE:
|
||||
if(ob==0) return;
|
||||
if(ob->id.lib) return;
|
||||
|
||||
id= ob->data;
|
||||
if(id==0) id= G.main->mesh.first;
|
||||
if(id==0) return;
|
||||
|
||||
if(G.buts->menunr== -2) {
|
||||
activate_databrowse((ID *)G.buts->lockpoin, GS(id->name), 0, B_MESHBROWSE, &G.buts->menunr, do_global_buttons);
|
||||
return;
|
||||
}
|
||||
if(G.buts->menunr < 0) return;
|
||||
|
||||
switch(event) {
|
||||
|
||||
case B_NEWFRAME:
|
||||
scrarea_queue_winredraw(curarea);
|
||||
scrarea_queue_headredraw(curarea);
|
||||
|
||||
idtest= G.main->mesh.first;
|
||||
while(idtest) {
|
||||
if(nr==G.buts->menunr) {
|
||||
|
||||
set_mesh(ob, (Mesh *)idtest);
|
||||
|
||||
allqueue(REDRAWBUTSEDIT, 0);
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
allqueue(REDRAWACTION,0);
|
||||
allqueue(REDRAWIPO, 0);
|
||||
update_for_newframe();
|
||||
break;
|
||||
case B_REDR:
|
||||
scrarea_queue_winredraw(curarea);
|
||||
scrarea_queue_headredraw(curarea);
|
||||
break;
|
||||
case B_REDRCURW3D:
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
scrarea_queue_winredraw(curarea);
|
||||
scrarea_queue_headredraw(curarea);
|
||||
break;
|
||||
case B_EDITBROWSE:
|
||||
if(ob==0) return;
|
||||
if(ob->id.lib) return;
|
||||
id= ob->data;
|
||||
if(id==0) return;
|
||||
|
||||
break;
|
||||
}
|
||||
nr++;
|
||||
idtest= idtest->next;
|
||||
}
|
||||
if(G.buts->menunr== -2) {
|
||||
activate_databrowse((ID *)G.buts->lockpoin, GS(id->name), 0, B_EDITBROWSE, &G.buts->menunr, do_global_buttons);
|
||||
return;
|
||||
}
|
||||
if(G.buts->menunr < 0) return;
|
||||
|
||||
lb= wich_libbase(G.main, GS(id->name));
|
||||
idtest= lb->first;
|
||||
while(idtest) {
|
||||
if(nr==G.buts->menunr) {
|
||||
if(idtest!=id) {
|
||||
id->us--;
|
||||
id_us_plus(idtest);
|
||||
|
||||
ob->data= idtest;
|
||||
|
||||
test_object_materials(idtest);
|
||||
|
||||
if( GS(idtest->name)==ID_CU ) {
|
||||
test_curve_type(ob);
|
||||
allqueue(REDRAWBUTSEDIT, 0);
|
||||
makeDispList(ob);
|
||||
}
|
||||
else if( ob->type==OB_MESH ) {
|
||||
makeDispList(ob);
|
||||
}
|
||||
|
||||
allqueue(REDRAWBUTSEDIT, 0);
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
allqueue(REDRAWACTION,0);
|
||||
allqueue(REDRAWIPO, 0);
|
||||
allqueue(REDRAWNLA,0);
|
||||
}
|
||||
break;
|
||||
}
|
||||
nr++;
|
||||
idtest= idtest->next;
|
||||
}
|
||||
|
||||
break;
|
||||
case B_MATBROWSE:
|
||||
if(G.buts->menunr== -2) {
|
||||
activate_databrowse((ID *)G.buts->lockpoin, ID_MA, 0, B_MATBROWSE, &G.buts->menunr, do_global_buttons);
|
||||
return;
|
||||
}
|
||||
|
||||
if(G.buts->menunr < 0) return;
|
||||
|
||||
if(G.buts->pin) {
|
||||
|
||||
}
|
||||
else {
|
||||
|
||||
ma= give_current_material(ob, ob->actcol);
|
||||
nr= 1;
|
||||
|
||||
id= (ID *)ma;
|
||||
|
||||
idtest= G.main->mat.first;
|
||||
while(idtest) {
|
||||
if(nr==G.buts->menunr) {
|
||||
break;
|
||||
}
|
||||
nr++;
|
||||
idtest= idtest->next;
|
||||
}
|
||||
if(idtest==0) { /* new mat */
|
||||
if(id) idtest= (ID *)copy_material((Material *)id);
|
||||
else {
|
||||
idtest= (ID *)add_material("Material");
|
||||
}
|
||||
idtest->us--;
|
||||
}
|
||||
if(idtest!=id) {
|
||||
assign_material(ob, (Material *)idtest, ob->actcol);
|
||||
|
||||
allqueue(REDRAWBUTSHEAD, 0);
|
||||
allqueue(REDRAWBUTSSHADING, 0);
|
||||
allqueue(REDRAWIPO, 0);
|
||||
BIF_preview_changed(G.buts);
|
||||
}
|
||||
|
||||
}
|
||||
break;
|
||||
case B_MATDELETE:
|
||||
if(G.buts->pin) {
|
||||
|
||||
}
|
||||
else {
|
||||
ma= give_current_material(ob, ob->actcol);
|
||||
if(ma) {
|
||||
assign_material(ob, 0, ob->actcol);
|
||||
allqueue(REDRAWBUTSHEAD, 0);
|
||||
allqueue(REDRAWBUTSSHADING, 0);
|
||||
allqueue(REDRAWIPO, 0);
|
||||
BIF_preview_changed(G.buts);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case B_TEXDELETE:
|
||||
if(G.buts->pin) {
|
||||
|
||||
}
|
||||
else {
|
||||
if(G.buts->texfrom==0) { /* from mat */
|
||||
ma= give_current_material(ob, ob->actcol);
|
||||
if(ma) {
|
||||
mtex= ma->mtex[ ma->texact ];
|
||||
if(mtex) {
|
||||
if(mtex->tex) mtex->tex->id.us--;
|
||||
MEM_freeN(mtex);
|
||||
ma->mtex[ ma->texact ]= 0;
|
||||
allqueue(REDRAWBUTSSHADING, 0);
|
||||
allqueue(REDRAWIPO, 0);
|
||||
BIF_preview_changed(G.buts);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(G.buts->texfrom==1) { /* from world */
|
||||
wrld= G.scene->world;
|
||||
if(wrld) {
|
||||
mtex= wrld->mtex[ wrld->texact ];
|
||||
if(mtex) {
|
||||
if(mtex->tex) mtex->tex->id.us--;
|
||||
MEM_freeN(mtex);
|
||||
wrld->mtex[ wrld->texact ]= 0;
|
||||
allqueue(REDRAWBUTSSHADING, 0);
|
||||
allqueue(REDRAWIPO, 0);
|
||||
BIF_preview_changed(G.buts);
|
||||
}
|
||||
}
|
||||
}
|
||||
else { /* from lamp */
|
||||
la= ob->data;
|
||||
if(la && ob->type==OB_LAMP) { /* to be sure */
|
||||
mtex= la->mtex[ la->texact ];
|
||||
if(mtex) {
|
||||
if(mtex->tex) mtex->tex->id.us--;
|
||||
MEM_freeN(mtex);
|
||||
la->mtex[ la->texact ]= 0;
|
||||
allqueue(REDRAWBUTSSHADING, 0);
|
||||
allqueue(REDRAWIPO, 0);
|
||||
BIF_preview_changed(G.buts);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case B_EXTEXBROWSE:
|
||||
case B_TEXBROWSE:
|
||||
break;
|
||||
case B_MESHBROWSE:
|
||||
if(ob==0) return;
|
||||
if(ob->id.lib) return;
|
||||
|
||||
id= ob->data;
|
||||
if(id==0) id= G.main->mesh.first;
|
||||
if(id==0) return;
|
||||
|
||||
if(G.buts->menunr== -2) {
|
||||
activate_databrowse((ID *)G.buts->lockpoin, GS(id->name), 0, B_MESHBROWSE, &G.buts->menunr, do_global_buttons);
|
||||
return;
|
||||
}
|
||||
if(G.buts->menunr < 0) return;
|
||||
|
||||
|
||||
if(G.buts->texnr== -2) {
|
||||
|
||||
id= G.buts->lockpoin;
|
||||
if(event==B_EXTEXBROWSE) {
|
||||
id= 0;
|
||||
ma= give_current_material(ob, ob->actcol);
|
||||
if(ma) {
|
||||
mtex= ma->mtex[ ma->texact ];
|
||||
if(mtex) id= (ID *)mtex->tex;
|
||||
}
|
||||
}
|
||||
|
||||
activate_databrowse(id, ID_TE, 0, B_TEXBROWSE, &G.buts->texnr, do_global_buttons);
|
||||
return;
|
||||
}
|
||||
if(G.buts->texnr < 0) break;
|
||||
|
||||
if(G.buts->pin) {
|
||||
|
||||
}
|
||||
else {
|
||||
id= 0;
|
||||
|
||||
ma= give_current_material(ob, ob->actcol);
|
||||
if(ma) {
|
||||
mtex= ma->mtex[ ma->texact ];
|
||||
if(mtex) id= (ID *)mtex->tex;
|
||||
}
|
||||
idtest= G.main->mesh.first;
|
||||
while(idtest) {
|
||||
if(nr==G.buts->menunr) {
|
||||
|
||||
set_mesh(ob, (Mesh *)idtest);
|
||||
|
||||
allqueue(REDRAWBUTSEDIT, 0);
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
allqueue(REDRAWACTION,0);
|
||||
allqueue(REDRAWIPO, 0);
|
||||
|
||||
idtest= G.main->tex.first;
|
||||
while(idtest) {
|
||||
if(nr==G.buts->texnr) {
|
||||
break;
|
||||
}
|
||||
nr++;
|
||||
idtest= idtest->next;
|
||||
}
|
||||
if(idtest==0) { /* new tex */
|
||||
if(id) idtest= (ID *)copy_texture((Tex *)id);
|
||||
else idtest= (ID *)add_texture("Tex");
|
||||
idtest->us--;
|
||||
}
|
||||
if(idtest!=id && ma) {
|
||||
|
||||
if( ma->mtex[ma->texact]==0) ma->mtex[ma->texact]= add_mtex();
|
||||
|
||||
ma->mtex[ ma->texact ]->tex= (Tex *)idtest;
|
||||
id_us_plus(idtest);
|
||||
if(id) id->us--;
|
||||
|
||||
allqueue(REDRAWBUTSHEAD, 0);
|
||||
allqueue(REDRAWBUTSSHADING, 0);
|
||||
allqueue(REDRAWIPO, 0);
|
||||
BIF_preview_changed(G.buts);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case B_ACTIONDELETE:
|
||||
act=ob->action;
|
||||
|
||||
if (act)
|
||||
act->id.us--;
|
||||
ob->action=NULL;
|
||||
allqueue(REDRAWACTION, 0);
|
||||
allqueue(REDRAWNLA, 0);
|
||||
allqueue(REDRAWIPO, 0);
|
||||
break;
|
||||
case B_ACTIONBROWSE:
|
||||
if (!ob)
|
||||
break;
|
||||
act=ob->action;
|
||||
id= (ID *)act;
|
||||
break;
|
||||
}
|
||||
nr++;
|
||||
idtest= idtest->next;
|
||||
}
|
||||
|
||||
if (G.saction->actnr== -2){
|
||||
activate_databrowse((ID *)G.saction->action, ID_AC, 0, B_ACTIONBROWSE, &G.saction->actnr, do_global_buttons);
|
||||
return;
|
||||
}
|
||||
break;
|
||||
case B_MATBROWSE:
|
||||
if(G.buts->menunr== -2) {
|
||||
activate_databrowse((ID *)G.buts->lockpoin, ID_MA, 0, B_MATBROWSE, &G.buts->menunr, do_global_buttons);
|
||||
return;
|
||||
}
|
||||
|
||||
if(G.buts->menunr < 0) return;
|
||||
|
||||
if(G.buts->pin) {
|
||||
|
||||
}
|
||||
else {
|
||||
|
||||
ma= give_current_material(ob, ob->actcol);
|
||||
nr= 1;
|
||||
|
||||
id= (ID *)ma;
|
||||
|
||||
idtest= G.main->mat.first;
|
||||
while(idtest) {
|
||||
if(nr==G.buts->menunr) {
|
||||
break;
|
||||
}
|
||||
nr++;
|
||||
idtest= idtest->next;
|
||||
}
|
||||
if(idtest==0) { /* new mat */
|
||||
if(id) idtest= (ID *)copy_material((Material *)id);
|
||||
else {
|
||||
idtest= (ID *)add_material("Material");
|
||||
}
|
||||
idtest->us--;
|
||||
}
|
||||
if(idtest!=id) {
|
||||
assign_material(ob, (Material *)idtest, ob->actcol);
|
||||
|
||||
allqueue(REDRAWBUTSHEAD, 0);
|
||||
allqueue(REDRAWBUTSSHADING, 0);
|
||||
allqueue(REDRAWIPO, 0);
|
||||
BIF_preview_changed(G.buts);
|
||||
}
|
||||
|
||||
}
|
||||
break;
|
||||
case B_MATDELETE:
|
||||
if(G.buts->pin) {
|
||||
|
||||
}
|
||||
else {
|
||||
ma= give_current_material(ob, ob->actcol);
|
||||
if(ma) {
|
||||
assign_material(ob, 0, ob->actcol);
|
||||
allqueue(REDRAWBUTSHEAD, 0);
|
||||
allqueue(REDRAWBUTSSHADING, 0);
|
||||
allqueue(REDRAWIPO, 0);
|
||||
BIF_preview_changed(G.buts);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case B_TEXDELETE:
|
||||
if(G.buts->pin) {
|
||||
|
||||
}
|
||||
else {
|
||||
if(G.buts->texfrom==0) { /* from mat */
|
||||
ma= give_current_material(ob, ob->actcol);
|
||||
if(ma) {
|
||||
mtex= ma->mtex[ ma->texact ];
|
||||
if(mtex) {
|
||||
if(mtex->tex) mtex->tex->id.us--;
|
||||
MEM_freeN(mtex);
|
||||
ma->mtex[ ma->texact ]= 0;
|
||||
allqueue(REDRAWBUTSSHADING, 0);
|
||||
allqueue(REDRAWIPO, 0);
|
||||
BIF_preview_changed(G.buts);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(G.buts->texfrom==1) { /* from world */
|
||||
wrld= G.scene->world;
|
||||
if(wrld) {
|
||||
mtex= wrld->mtex[ wrld->texact ];
|
||||
if(mtex) {
|
||||
if(mtex->tex) mtex->tex->id.us--;
|
||||
MEM_freeN(mtex);
|
||||
wrld->mtex[ wrld->texact ]= 0;
|
||||
allqueue(REDRAWBUTSSHADING, 0);
|
||||
allqueue(REDRAWIPO, 0);
|
||||
BIF_preview_changed(G.buts);
|
||||
}
|
||||
}
|
||||
}
|
||||
else { /* from lamp */
|
||||
la= ob->data;
|
||||
if(la && ob->type==OB_LAMP) { /* to be sure */
|
||||
mtex= la->mtex[ la->texact ];
|
||||
if(mtex) {
|
||||
if(mtex->tex) mtex->tex->id.us--;
|
||||
MEM_freeN(mtex);
|
||||
la->mtex[ la->texact ]= 0;
|
||||
allqueue(REDRAWBUTSSHADING, 0);
|
||||
allqueue(REDRAWIPO, 0);
|
||||
BIF_preview_changed(G.buts);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case B_EXTEXBROWSE:
|
||||
case B_TEXBROWSE:
|
||||
|
||||
if(G.saction->actnr < 0) break;
|
||||
if(G.buts->texnr== -2) {
|
||||
|
||||
id= G.buts->lockpoin;
|
||||
if(event==B_EXTEXBROWSE) {
|
||||
id= 0;
|
||||
ma= give_current_material(ob, ob->actcol);
|
||||
if(ma) {
|
||||
mtex= ma->mtex[ ma->texact ];
|
||||
if(mtex) id= (ID *)mtex->tex;
|
||||
}
|
||||
}
|
||||
|
||||
activate_databrowse(id, ID_TE, 0, B_TEXBROWSE, &G.buts->texnr, do_global_buttons);
|
||||
return;
|
||||
}
|
||||
if(G.buts->texnr < 0) break;
|
||||
|
||||
if(G.buts->pin) {
|
||||
|
||||
}
|
||||
else {
|
||||
id= 0;
|
||||
|
||||
ma= give_current_material(ob, ob->actcol);
|
||||
if(ma) {
|
||||
mtex= ma->mtex[ ma->texact ];
|
||||
if(mtex) id= (ID *)mtex->tex;
|
||||
}
|
||||
|
||||
/* See if we have selected a valid action */
|
||||
for (idtest= G.main->action.first; idtest; idtest= idtest->next) {
|
||||
if(nr==G.saction->actnr) {
|
||||
break;
|
||||
}
|
||||
nr++;
|
||||
|
||||
}
|
||||
idtest= G.main->tex.first;
|
||||
while(idtest) {
|
||||
if(nr==G.buts->texnr) {
|
||||
break;
|
||||
}
|
||||
nr++;
|
||||
idtest= idtest->next;
|
||||
}
|
||||
if(idtest==0) { /* new tex */
|
||||
if(id) idtest= (ID *)copy_texture((Tex *)id);
|
||||
else idtest= (ID *)add_texture("Tex");
|
||||
idtest->us--;
|
||||
}
|
||||
if(idtest!=id && ma) {
|
||||
|
||||
if( ma->mtex[ma->texact]==0) ma->mtex[ma->texact]= add_mtex();
|
||||
|
||||
ma->mtex[ ma->texact ]->tex= (Tex *)idtest;
|
||||
id_us_plus(idtest);
|
||||
if(id) id->us--;
|
||||
|
||||
allqueue(REDRAWBUTSHEAD, 0);
|
||||
allqueue(REDRAWBUTSSHADING, 0);
|
||||
allqueue(REDRAWIPO, 0);
|
||||
BIF_preview_changed(G.buts);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case B_ACTIONDELETE:
|
||||
act=ob->action;
|
||||
|
||||
if (act)
|
||||
act->id.us--;
|
||||
ob->action=NULL;
|
||||
allqueue(REDRAWACTION, 0);
|
||||
allqueue(REDRAWNLA, 0);
|
||||
allqueue(REDRAWIPO, 0);
|
||||
break;
|
||||
case B_ACTIONBROWSE:
|
||||
if (!ob)
|
||||
break;
|
||||
act=ob->action;
|
||||
id= (ID *)act;
|
||||
|
||||
if(G.saction->pin) {
|
||||
G.saction->action= (bAction *)idtest;
|
||||
allqueue(REDRAWACTION, 0);
|
||||
}
|
||||
else {
|
||||
if (G.saction->actnr== -2){
|
||||
activate_databrowse((ID *)G.saction->action, ID_AC, 0, B_ACTIONBROWSE, &G.saction->actnr, do_global_buttons);
|
||||
return;
|
||||
}
|
||||
|
||||
/* Store current action */
|
||||
if (!idtest){
|
||||
if (act)
|
||||
idtest= (ID *)copy_action(act);
|
||||
else
|
||||
idtest=(ID *)add_empty_action();
|
||||
idtest->us--;
|
||||
}
|
||||
|
||||
|
||||
if(idtest!=id && ob) {
|
||||
act= (bAction *)idtest;
|
||||
|
||||
ob->action= act;
|
||||
ob->activecon=NULL;
|
||||
id_us_plus(idtest);
|
||||
|
||||
if(id) id->us--;
|
||||
|
||||
// Update everything
|
||||
do_global_buttons (B_NEWFRAME);
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
allqueue(REDRAWNLA, 0);
|
||||
allqueue(REDRAWACTION, 0);
|
||||
allqueue(REDRAWHEADERS, 0);
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
case B_IPOBROWSE:
|
||||
if(G.saction->actnr < 0) break;
|
||||
|
||||
ipo= get_ipo_to_edit(&from);
|
||||
id= (ID *)ipo;
|
||||
if(from==0) return;
|
||||
/* See if we have selected a valid action */
|
||||
for (idtest= G.main->action.first; idtest; idtest= idtest->next) {
|
||||
if(nr==G.saction->actnr) {
|
||||
break;
|
||||
}
|
||||
nr++;
|
||||
|
||||
}
|
||||
|
||||
if(G.sipo->menunr== -2) {
|
||||
activate_databrowse((ID *)G.sipo->ipo, ID_IP, GS(from->name), B_IPOBROWSE, &G.sipo->menunr, do_global_buttons);
|
||||
return;
|
||||
}
|
||||
if(G.saction->pin) {
|
||||
G.saction->action= (bAction *)idtest;
|
||||
allqueue(REDRAWACTION, 0);
|
||||
}
|
||||
else {
|
||||
|
||||
if(G.sipo->menunr < 0) break;
|
||||
/* Store current action */
|
||||
if (!idtest){
|
||||
if (act)
|
||||
idtest= (ID *)copy_action(act);
|
||||
else
|
||||
idtest=(ID *)add_empty_action();
|
||||
idtest->us--;
|
||||
}
|
||||
|
||||
|
||||
if(idtest!=id && ob) {
|
||||
act= (bAction *)idtest;
|
||||
|
||||
ob->action= act;
|
||||
ob->activecon=NULL;
|
||||
id_us_plus(idtest);
|
||||
|
||||
if(id) id->us--;
|
||||
|
||||
// Update everything
|
||||
do_global_buttons (B_NEWFRAME);
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
allqueue(REDRAWNLA, 0);
|
||||
allqueue(REDRAWACTION, 0);
|
||||
allqueue(REDRAWHEADERS, 0);
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
case B_IPOBROWSE:
|
||||
|
||||
idtest= G.main->ipo.first;
|
||||
while(idtest) {
|
||||
if( ((Ipo *)idtest)->blocktype == G.sipo->blocktype) {
|
||||
if(nr==G.sipo->menunr) {
|
||||
break;
|
||||
}
|
||||
nr++;
|
||||
}
|
||||
idtest= idtest->next;
|
||||
}
|
||||
ipo= get_ipo_to_edit(&from);
|
||||
id= (ID *)ipo;
|
||||
if(from==0) return;
|
||||
|
||||
if(G.sipo->pin) {
|
||||
if(idtest) {
|
||||
G.sipo->ipo= (Ipo *)idtest;
|
||||
allspace(REMAKEIPO, 0); // in fact it should only do this one, but there is no function for it
|
||||
}
|
||||
}
|
||||
else {
|
||||
// assign the ipo to ...
|
||||
if(G.sipo->menunr== -2) {
|
||||
activate_databrowse((ID *)G.sipo->ipo, ID_IP, GS(from->name), B_IPOBROWSE, &G.sipo->menunr, do_global_buttons);
|
||||
return;
|
||||
}
|
||||
|
||||
if(idtest==0) {
|
||||
if(ipo) idtest= (ID *)copy_ipo(ipo);
|
||||
else {
|
||||
nr= GS(from->name);
|
||||
if(nr==ID_OB){
|
||||
if (G.sipo->blocktype==IPO_CO)
|
||||
idtest= (ID *)add_ipo("CoIpo", IPO_CO); /* BLEARGH! */
|
||||
else
|
||||
idtest= (ID *)add_ipo("ObIpo", nr);
|
||||
}
|
||||
else if(nr==ID_MA) idtest= (ID *)add_ipo("MatIpo", nr);
|
||||
else if(nr==ID_SEQ) idtest= (ID *)add_ipo("MatSeq", nr);
|
||||
else if(nr==ID_CU) idtest= (ID *)add_ipo("CuIpo", nr);
|
||||
else if(nr==ID_KE) idtest= (ID *)add_ipo("KeyIpo", nr);
|
||||
else if(nr==ID_WO) idtest= (ID *)add_ipo("WoIpo", nr);
|
||||
else if(nr==ID_LA) idtest= (ID *)add_ipo("LaIpo", nr);
|
||||
else if(nr==ID_CA) idtest= (ID *)add_ipo("CaIpo", nr);
|
||||
else if(nr==ID_SO) idtest= (ID *)add_ipo("SndIpo", nr);
|
||||
else if(nr==ID_AC) idtest= (ID *)add_ipo("ActIpo", nr);
|
||||
else error("Warn bugs@blender.nl!");
|
||||
}
|
||||
idtest->us--;
|
||||
}
|
||||
if(idtest!=id && from) {
|
||||
ipo= (Ipo *)idtest;
|
||||
|
||||
if (ipo->blocktype==IPO_CO){
|
||||
((Object*)from)->activecon->ipo = ipo;
|
||||
id_us_plus(idtest);
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
allqueue(REDRAWACTION, 0);
|
||||
allqueue(REDRAWNLA, 0);
|
||||
}
|
||||
else if(ipo->blocktype==ID_OB) {
|
||||
( (Object *)from)->ipo= ipo;
|
||||
id_us_plus(idtest);
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
}
|
||||
else if(ipo->blocktype==ID_AC) {
|
||||
bActionChannel *chan;
|
||||
chan = get_hilighted_action_channel ((bAction*)from);
|
||||
if (!chan){
|
||||
error ("Create an action channel first");
|
||||
return;
|
||||
}
|
||||
chan->ipo=ipo;
|
||||
id_us_plus(idtest);
|
||||
allqueue(REDRAWNLA, 0);
|
||||
allqueue(REDRAWACTION, 0);
|
||||
}
|
||||
else if(ipo->blocktype==ID_MA) {
|
||||
( (Material *)from)->ipo= ipo;
|
||||
id_us_plus(idtest);
|
||||
allqueue(REDRAWBUTSSHADING, 0);
|
||||
}
|
||||
else if(ipo->blocktype==ID_SEQ) {
|
||||
seq= (Sequence *)from;
|
||||
if((seq->type & SEQ_EFFECT)||(seq->type == SEQ_SOUND)) {
|
||||
id_us_plus(idtest);
|
||||
seq->ipo= ipo;
|
||||
}
|
||||
}
|
||||
else if(ipo->blocktype==ID_CU) {
|
||||
( (Curve *)from)->ipo= ipo;
|
||||
id_us_plus(idtest);
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
}
|
||||
else if(ipo->blocktype==ID_KE) {
|
||||
( (Key *)from)->ipo= ipo;
|
||||
|
||||
id_us_plus(idtest);
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
|
||||
}
|
||||
else if(ipo->blocktype==ID_WO) {
|
||||
( (World *)from)->ipo= ipo;
|
||||
id_us_plus(idtest);
|
||||
allqueue(REDRAWBUTSSHADING, 0);
|
||||
}
|
||||
else if(ipo->blocktype==ID_LA) {
|
||||
( (Lamp *)from)->ipo= ipo;
|
||||
id_us_plus(idtest);
|
||||
allqueue(REDRAWBUTSLAMP, 0);
|
||||
}
|
||||
else if(ipo->blocktype==ID_CA) {
|
||||
( (Camera *)from)->ipo= ipo;
|
||||
id_us_plus(idtest);
|
||||
allqueue(REDRAWBUTSEDIT, 0);
|
||||
}
|
||||
else if(ipo->blocktype==ID_SO) {
|
||||
( (bSound *)from)->ipo= ipo;
|
||||
id_us_plus(idtest);
|
||||
allqueue(REDRAWBUTSEDIT, 0);
|
||||
}
|
||||
else
|
||||
printf("error in browse ipo \n");
|
||||
|
||||
if(id) id->us--;
|
||||
|
||||
scrarea_queue_winredraw(curarea);
|
||||
scrarea_queue_headredraw(curarea);
|
||||
allqueue(REDRAWIPO, 0);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case B_IPODELETE:
|
||||
ipo= get_ipo_to_edit(&from);
|
||||
if(from==0) return;
|
||||
|
||||
ipo->id.us--;
|
||||
|
||||
if(ipo->blocktype==ID_OB) ( (Object *)from)->ipo= 0;
|
||||
else if(ipo->blocktype==ID_MA) ( (Material *)from)->ipo= 0;
|
||||
else if(ipo->blocktype==ID_SEQ) ( (Sequence *)from)->ipo= 0;
|
||||
else if(ipo->blocktype==ID_CU) ( (Curve *)from)->ipo= 0;
|
||||
else if(ipo->blocktype==ID_KE) ( (Key *)from)->ipo= 0;
|
||||
else if(ipo->blocktype==ID_WO) ( (World *)from)->ipo= 0;
|
||||
else if(ipo->blocktype==ID_LA) ( (Lamp *)from)->ipo= 0;
|
||||
else if(ipo->blocktype==ID_WO) ( (World *)from)->ipo= 0;
|
||||
else if(ipo->blocktype==ID_CA) ( (Camera *)from)->ipo= 0;
|
||||
else if(ipo->blocktype==ID_SO) ( (bSound *)from)->ipo= 0;
|
||||
else if(ipo->blocktype==ID_AC) {
|
||||
bAction *act = (bAction*) from;
|
||||
bActionChannel *chan =
|
||||
get_hilighted_action_channel((bAction*)from);
|
||||
BLI_freelinkN (&act->chanbase, chan);
|
||||
}
|
||||
else if(ipo->blocktype==IPO_CO) ((Object *)from)->activecon->ipo= 0;
|
||||
if(G.sipo->menunr < 0) break;
|
||||
|
||||
else error("Warn bugs@blender.nl!");
|
||||
|
||||
editipo_changed(G.sipo, 1); /* doredraw */
|
||||
allqueue(REDRAWIPO, 0);
|
||||
allqueue(REDRAWNLA, 0);
|
||||
allqueue (REDRAWACTION, 0);
|
||||
|
||||
break;
|
||||
case B_WORLDBROWSE:
|
||||
idtest= G.main->ipo.first;
|
||||
while(idtest) {
|
||||
if( ((Ipo *)idtest)->blocktype == G.sipo->blocktype) {
|
||||
if(nr==G.sipo->menunr) {
|
||||
break;
|
||||
}
|
||||
nr++;
|
||||
}
|
||||
idtest= idtest->next;
|
||||
}
|
||||
|
||||
if(G.buts->menunr==-2) {
|
||||
activate_databrowse((ID *)G.scene->world, ID_WO, 0, B_WORLDBROWSE, &G.buts->menunr, do_global_buttons);
|
||||
break;
|
||||
}
|
||||
if(G.sipo->pin) {
|
||||
if(idtest) {
|
||||
G.sipo->ipo= (Ipo *)idtest;
|
||||
allspace(REMAKEIPO, 0); // in fact it should only do this one, but there is no function for it
|
||||
}
|
||||
}
|
||||
else {
|
||||
// assign the ipo to ...
|
||||
|
||||
if(G.buts->menunr < 0) break;
|
||||
/* no lock */
|
||||
|
||||
wrld= G.scene->world;
|
||||
nr= 1;
|
||||
|
||||
id= (ID *)wrld;
|
||||
|
||||
idtest= G.main->world.first;
|
||||
while(idtest) {
|
||||
if(nr==G.buts->menunr) {
|
||||
break;
|
||||
}
|
||||
nr++;
|
||||
idtest= idtest->next;
|
||||
}
|
||||
if(idtest==0) { /* new world */
|
||||
if(id) idtest= (ID *)copy_world((World *)id);
|
||||
else idtest= (ID *)add_world("World");
|
||||
idtest->us--;
|
||||
}
|
||||
if(idtest!=id) {
|
||||
G.scene->world= (World *)idtest;
|
||||
id_us_plus(idtest);
|
||||
if(id) id->us--;
|
||||
|
||||
allqueue(REDRAWBUTSHEAD, 0);
|
||||
allqueue(REDRAWBUTSSHADING, 0);
|
||||
allqueue(REDRAWIPO, 0);
|
||||
BIF_preview_changed(G.buts);
|
||||
}
|
||||
break;
|
||||
case B_WORLDDELETE:
|
||||
if(G.scene->world) {
|
||||
G.scene->world->id.us--;
|
||||
G.scene->world= 0;
|
||||
allqueue(REDRAWBUTSSHADING, 0);
|
||||
allqueue(REDRAWIPO, 0);
|
||||
}
|
||||
|
||||
break;
|
||||
case B_WTEXBROWSE:
|
||||
if(idtest==0) {
|
||||
if(ipo) idtest= (ID *)copy_ipo(ipo);
|
||||
else {
|
||||
nr= GS(from->name);
|
||||
if(nr==ID_OB){
|
||||
if (G.sipo->blocktype==IPO_CO)
|
||||
idtest= (ID *)add_ipo("CoIpo", IPO_CO); /* BLEARGH! */
|
||||
else
|
||||
idtest= (ID *)add_ipo("ObIpo", nr);
|
||||
}
|
||||
else if(nr==ID_MA) idtest= (ID *)add_ipo("MatIpo", nr);
|
||||
else if(nr==ID_SEQ) idtest= (ID *)add_ipo("MatSeq", nr);
|
||||
else if(nr==ID_CU) idtest= (ID *)add_ipo("CuIpo", nr);
|
||||
else if(nr==ID_KE) idtest= (ID *)add_ipo("KeyIpo", nr);
|
||||
else if(nr==ID_WO) idtest= (ID *)add_ipo("WoIpo", nr);
|
||||
else if(nr==ID_LA) idtest= (ID *)add_ipo("LaIpo", nr);
|
||||
else if(nr==ID_CA) idtest= (ID *)add_ipo("CaIpo", nr);
|
||||
else if(nr==ID_SO) idtest= (ID *)add_ipo("SndIpo", nr);
|
||||
else if(nr==ID_AC) idtest= (ID *)add_ipo("ActIpo", nr);
|
||||
else error("Warn bugs@blender.nl!");
|
||||
}
|
||||
idtest->us--;
|
||||
}
|
||||
if(idtest!=id && from) {
|
||||
ipo= (Ipo *)idtest;
|
||||
|
||||
if (ipo->blocktype==IPO_CO){
|
||||
((Object*)from)->activecon->ipo = ipo;
|
||||
id_us_plus(idtest);
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
allqueue(REDRAWACTION, 0);
|
||||
allqueue(REDRAWNLA, 0);
|
||||
}
|
||||
else if(ipo->blocktype==ID_OB) {
|
||||
( (Object *)from)->ipo= ipo;
|
||||
id_us_plus(idtest);
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
}
|
||||
else if(ipo->blocktype==ID_AC) {
|
||||
bActionChannel *chan;
|
||||
chan = get_hilighted_action_channel ((bAction*)from);
|
||||
if (!chan){
|
||||
error ("Create an action channel first");
|
||||
return;
|
||||
}
|
||||
chan->ipo=ipo;
|
||||
id_us_plus(idtest);
|
||||
allqueue(REDRAWNLA, 0);
|
||||
allqueue(REDRAWACTION, 0);
|
||||
}
|
||||
else if(ipo->blocktype==ID_MA) {
|
||||
( (Material *)from)->ipo= ipo;
|
||||
id_us_plus(idtest);
|
||||
allqueue(REDRAWBUTSSHADING, 0);
|
||||
}
|
||||
else if(ipo->blocktype==ID_SEQ) {
|
||||
seq= (Sequence *)from;
|
||||
if((seq->type & SEQ_EFFECT)||(seq->type == SEQ_SOUND)) {
|
||||
id_us_plus(idtest);
|
||||
seq->ipo= ipo;
|
||||
}
|
||||
}
|
||||
else if(ipo->blocktype==ID_CU) {
|
||||
( (Curve *)from)->ipo= ipo;
|
||||
id_us_plus(idtest);
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
}
|
||||
else if(ipo->blocktype==ID_KE) {
|
||||
( (Key *)from)->ipo= ipo;
|
||||
|
||||
id_us_plus(idtest);
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
|
||||
}
|
||||
else if(ipo->blocktype==ID_WO) {
|
||||
( (World *)from)->ipo= ipo;
|
||||
id_us_plus(idtest);
|
||||
allqueue(REDRAWBUTSSHADING, 0);
|
||||
}
|
||||
else if(ipo->blocktype==ID_LA) {
|
||||
( (Lamp *)from)->ipo= ipo;
|
||||
id_us_plus(idtest);
|
||||
allqueue(REDRAWBUTSLAMP, 0);
|
||||
}
|
||||
else if(ipo->blocktype==ID_CA) {
|
||||
( (Camera *)from)->ipo= ipo;
|
||||
id_us_plus(idtest);
|
||||
allqueue(REDRAWBUTSEDIT, 0);
|
||||
}
|
||||
else if(ipo->blocktype==ID_SO) {
|
||||
( (bSound *)from)->ipo= ipo;
|
||||
id_us_plus(idtest);
|
||||
allqueue(REDRAWBUTSEDIT, 0);
|
||||
}
|
||||
else
|
||||
printf("error in browse ipo \n");
|
||||
|
||||
if(id) id->us--;
|
||||
|
||||
scrarea_queue_winredraw(curarea);
|
||||
scrarea_queue_headredraw(curarea);
|
||||
allqueue(REDRAWIPO, 0);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case B_IPODELETE:
|
||||
ipo= get_ipo_to_edit(&from);
|
||||
if(from==0) return;
|
||||
|
||||
ipo->id.us--;
|
||||
|
||||
if(ipo->blocktype==ID_OB) ( (Object *)from)->ipo= 0;
|
||||
else if(ipo->blocktype==ID_MA) ( (Material *)from)->ipo= 0;
|
||||
else if(ipo->blocktype==ID_SEQ) ( (Sequence *)from)->ipo= 0;
|
||||
else if(ipo->blocktype==ID_CU) ( (Curve *)from)->ipo= 0;
|
||||
else if(ipo->blocktype==ID_KE) ( (Key *)from)->ipo= 0;
|
||||
else if(ipo->blocktype==ID_WO) ( (World *)from)->ipo= 0;
|
||||
else if(ipo->blocktype==ID_LA) ( (Lamp *)from)->ipo= 0;
|
||||
else if(ipo->blocktype==ID_WO) ( (World *)from)->ipo= 0;
|
||||
else if(ipo->blocktype==ID_CA) ( (Camera *)from)->ipo= 0;
|
||||
else if(ipo->blocktype==ID_SO) ( (bSound *)from)->ipo= 0;
|
||||
else if(ipo->blocktype==ID_AC) {
|
||||
bAction *act = (bAction*) from;
|
||||
bActionChannel *chan =
|
||||
get_hilighted_action_channel((bAction*)from);
|
||||
BLI_freelinkN (&act->chanbase, chan);
|
||||
}
|
||||
else if(ipo->blocktype==IPO_CO) ((Object *)from)->activecon->ipo= 0;
|
||||
|
||||
if(G.buts->texnr== -2) {
|
||||
id= 0;
|
||||
wrld= G.scene->world;
|
||||
if(wrld) {
|
||||
mtex= wrld->mtex[ wrld->texact ];
|
||||
if(mtex) id= (ID *)mtex->tex;
|
||||
}
|
||||
else error("Warn bugs@blender.nl!");
|
||||
|
||||
editipo_changed(G.sipo, 1); /* doredraw */
|
||||
allqueue(REDRAWIPO, 0);
|
||||
allqueue(REDRAWNLA, 0);
|
||||
allqueue (REDRAWACTION, 0);
|
||||
|
||||
break;
|
||||
case B_WORLDBROWSE:
|
||||
|
||||
activate_databrowse((ID *)id, ID_TE, 0, B_WTEXBROWSE, &G.buts->texnr, do_global_buttons);
|
||||
return;
|
||||
}
|
||||
if(G.buts->texnr < 0) break;
|
||||
if(G.buts->menunr==-2) {
|
||||
activate_databrowse((ID *)G.scene->world, ID_WO, 0, B_WORLDBROWSE, &G.buts->menunr, do_global_buttons);
|
||||
break;
|
||||
}
|
||||
|
||||
if(G.buts->pin) {
|
||||
|
||||
}
|
||||
else {
|
||||
id= 0;
|
||||
|
||||
wrld= G.scene->world;
|
||||
if(wrld) {
|
||||
mtex= wrld->mtex[ wrld->texact ];
|
||||
if(mtex) id= (ID *)mtex->tex;
|
||||
}
|
||||
if(G.buts->menunr < 0) break;
|
||||
/* no lock */
|
||||
|
||||
wrld= G.scene->world;
|
||||
nr= 1;
|
||||
|
||||
id= (ID *)wrld;
|
||||
|
||||
idtest= G.main->world.first;
|
||||
while(idtest) {
|
||||
if(nr==G.buts->menunr) {
|
||||
break;
|
||||
}
|
||||
nr++;
|
||||
idtest= idtest->next;
|
||||
}
|
||||
if(idtest==0) { /* new world */
|
||||
if(id) idtest= (ID *)copy_world((World *)id);
|
||||
else idtest= (ID *)add_world("World");
|
||||
idtest->us--;
|
||||
}
|
||||
if(idtest!=id) {
|
||||
G.scene->world= (World *)idtest;
|
||||
id_us_plus(idtest);
|
||||
if(id) id->us--;
|
||||
|
||||
allqueue(REDRAWBUTSHEAD, 0);
|
||||
allqueue(REDRAWBUTSSHADING, 0);
|
||||
allqueue(REDRAWIPO, 0);
|
||||
BIF_preview_changed(G.buts);
|
||||
}
|
||||
break;
|
||||
case B_WORLDDELETE:
|
||||
if(G.scene->world) {
|
||||
G.scene->world->id.us--;
|
||||
G.scene->world= 0;
|
||||
allqueue(REDRAWBUTSSHADING, 0);
|
||||
allqueue(REDRAWIPO, 0);
|
||||
}
|
||||
|
||||
break;
|
||||
case B_WTEXBROWSE:
|
||||
|
||||
idtest= G.main->tex.first;
|
||||
while(idtest) {
|
||||
if(nr==G.buts->texnr) {
|
||||
break;
|
||||
}
|
||||
nr++;
|
||||
idtest= idtest->next;
|
||||
}
|
||||
if(idtest==0) { /* new tex */
|
||||
if(id) idtest= (ID *)copy_texture((Tex *)id);
|
||||
else idtest= (ID *)add_texture("Tex");
|
||||
idtest->us--;
|
||||
}
|
||||
if(idtest!=id && wrld) {
|
||||
|
||||
if( wrld->mtex[wrld->texact]==0) {
|
||||
wrld->mtex[wrld->texact]= add_mtex();
|
||||
wrld->mtex[wrld->texact]->texco= TEXCO_VIEW;
|
||||
}
|
||||
wrld->mtex[ wrld->texact ]->tex= (Tex *)idtest;
|
||||
id_us_plus(idtest);
|
||||
if(id) id->us--;
|
||||
|
||||
allqueue(REDRAWBUTSHEAD, 0);
|
||||
allqueue(REDRAWBUTSSHADING, 0);
|
||||
allqueue(REDRAWIPO, 0);
|
||||
BIF_preview_changed(G.buts);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case B_LAMPBROWSE:
|
||||
/* no lock */
|
||||
if(ob==0) return;
|
||||
if(ob->type!=OB_LAMP) return;
|
||||
if(G.buts->texnr== -2) {
|
||||
id= 0;
|
||||
wrld= G.scene->world;
|
||||
if(wrld) {
|
||||
mtex= wrld->mtex[ wrld->texact ];
|
||||
if(mtex) id= (ID *)mtex->tex;
|
||||
}
|
||||
|
||||
if(G.buts->menunr== -2) {
|
||||
activate_databrowse((ID *)G.buts->lockpoin, ID_LA, 0, B_LAMPBROWSE, &G.buts->menunr, do_global_buttons);
|
||||
return;
|
||||
}
|
||||
if(G.buts->menunr < 0) break;
|
||||
|
||||
la= ob->data;
|
||||
nr= 1;
|
||||
id= (ID *)la;
|
||||
|
||||
idtest= G.main->lamp.first;
|
||||
while(idtest) {
|
||||
if(nr==G.buts->menunr) {
|
||||
break;
|
||||
}
|
||||
nr++;
|
||||
idtest= idtest->next;
|
||||
}
|
||||
if(idtest==0) { /* no new lamp */
|
||||
return;
|
||||
}
|
||||
if(idtest!=id) {
|
||||
ob->data= (Lamp *)idtest;
|
||||
id_us_plus(idtest);
|
||||
if(id) id->us--;
|
||||
|
||||
allqueue(REDRAWBUTSHEAD, 0);
|
||||
allqueue(REDRAWBUTSLAMP, 0);
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
allqueue(REDRAWIPO, 0);
|
||||
BIF_preview_changed(G.buts);
|
||||
}
|
||||
break;
|
||||
|
||||
case B_LTEXBROWSE:
|
||||
activate_databrowse((ID *)id, ID_TE, 0, B_WTEXBROWSE, &G.buts->texnr, do_global_buttons);
|
||||
return;
|
||||
}
|
||||
if(G.buts->texnr < 0) break;
|
||||
|
||||
if(ob==0) return;
|
||||
if(ob->type!=OB_LAMP) return;
|
||||
if(G.buts->pin) {
|
||||
|
||||
}
|
||||
else {
|
||||
id= 0;
|
||||
|
||||
wrld= G.scene->world;
|
||||
if(wrld) {
|
||||
mtex= wrld->mtex[ wrld->texact ];
|
||||
if(mtex) id= (ID *)mtex->tex;
|
||||
}
|
||||
|
||||
if(G.buts->texnr== -2) {
|
||||
id= 0;
|
||||
la= ob->data;
|
||||
mtex= la->mtex[ la->texact ];
|
||||
if(mtex) id= (ID *)mtex->tex;
|
||||
idtest= G.main->tex.first;
|
||||
while(idtest) {
|
||||
if(nr==G.buts->texnr) {
|
||||
break;
|
||||
}
|
||||
nr++;
|
||||
idtest= idtest->next;
|
||||
}
|
||||
if(idtest==0) { /* new tex */
|
||||
if(id) idtest= (ID *)copy_texture((Tex *)id);
|
||||
else idtest= (ID *)add_texture("Tex");
|
||||
idtest->us--;
|
||||
}
|
||||
if(idtest!=id && wrld) {
|
||||
|
||||
if( wrld->mtex[wrld->texact]==0) {
|
||||
wrld->mtex[wrld->texact]= add_mtex();
|
||||
wrld->mtex[wrld->texact]->texco= TEXCO_VIEW;
|
||||
}
|
||||
wrld->mtex[ wrld->texact ]->tex= (Tex *)idtest;
|
||||
id_us_plus(idtest);
|
||||
if(id) id->us--;
|
||||
|
||||
allqueue(REDRAWBUTSHEAD, 0);
|
||||
allqueue(REDRAWBUTSSHADING, 0);
|
||||
allqueue(REDRAWIPO, 0);
|
||||
BIF_preview_changed(G.buts);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case B_LAMPBROWSE:
|
||||
/* no lock */
|
||||
if(ob==0) return;
|
||||
if(ob->type!=OB_LAMP) return;
|
||||
|
||||
activate_databrowse(id, ID_TE, 0, B_LTEXBROWSE, &G.buts->texnr, do_global_buttons);
|
||||
return;
|
||||
}
|
||||
if(G.buts->texnr < 0) break;
|
||||
if(G.buts->menunr== -2) {
|
||||
activate_databrowse((ID *)G.buts->lockpoin, ID_LA, 0, B_LAMPBROWSE, &G.buts->menunr, do_global_buttons);
|
||||
return;
|
||||
}
|
||||
if(G.buts->menunr < 0) break;
|
||||
|
||||
la= ob->data;
|
||||
nr= 1;
|
||||
id= (ID *)la;
|
||||
|
||||
idtest= G.main->lamp.first;
|
||||
while(idtest) {
|
||||
if(nr==G.buts->menunr) {
|
||||
break;
|
||||
}
|
||||
nr++;
|
||||
idtest= idtest->next;
|
||||
}
|
||||
if(idtest==0) { /* no new lamp */
|
||||
return;
|
||||
}
|
||||
if(idtest!=id) {
|
||||
ob->data= (Lamp *)idtest;
|
||||
id_us_plus(idtest);
|
||||
if(id) id->us--;
|
||||
|
||||
allqueue(REDRAWBUTSHEAD, 0);
|
||||
allqueue(REDRAWBUTSLAMP, 0);
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
allqueue(REDRAWIPO, 0);
|
||||
BIF_preview_changed(G.buts);
|
||||
}
|
||||
break;
|
||||
|
||||
case B_LTEXBROWSE:
|
||||
|
||||
if(G.buts->pin) {
|
||||
|
||||
}
|
||||
else {
|
||||
id= 0;
|
||||
|
||||
la= ob->data;
|
||||
mtex= la->mtex[ la->texact ];
|
||||
if(mtex) id= (ID *)mtex->tex;
|
||||
if(ob==0) return;
|
||||
if(ob->type!=OB_LAMP) return;
|
||||
|
||||
idtest= G.main->tex.first;
|
||||
while(idtest) {
|
||||
if(nr==G.buts->texnr) {
|
||||
break;
|
||||
}
|
||||
nr++;
|
||||
idtest= idtest->next;
|
||||
}
|
||||
if(idtest==0) { /* new tex */
|
||||
if(id) idtest= (ID *)copy_texture((Tex *)id);
|
||||
else idtest= (ID *)add_texture("Tex");
|
||||
idtest->us--;
|
||||
}
|
||||
if(idtest!=id && la) {
|
||||
|
||||
if( la->mtex[la->texact]==0) {
|
||||
la->mtex[la->texact]= add_mtex();
|
||||
la->mtex[la->texact]->texco= TEXCO_GLOB;
|
||||
}
|
||||
la->mtex[ la->texact ]->tex= (Tex *)idtest;
|
||||
id_us_plus(idtest);
|
||||
if(id) id->us--;
|
||||
|
||||
allqueue(REDRAWBUTSHEAD, 0);
|
||||
allqueue(REDRAWBUTSSHADING, 0);
|
||||
allqueue(REDRAWBUTSLAMP, 0);
|
||||
allqueue(REDRAWIPO, 0);
|
||||
BIF_preview_changed(G.buts);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case B_IMAGEDELETE:
|
||||
G.sima->image= 0;
|
||||
image_changed(G.sima, 0);
|
||||
allqueue(REDRAWIMAGE, 0);
|
||||
break;
|
||||
|
||||
case B_AUTOMATNAME:
|
||||
automatname(G.buts->lockpoin);
|
||||
allqueue(REDRAWBUTSHEAD, 0);
|
||||
break;
|
||||
case B_AUTOTEXNAME:
|
||||
if(G.buts->mainb==CONTEXT_SHADING) {
|
||||
if(G.buts->tab[CONTEXT_SHADING]==TAB_SHADING_TEX) {
|
||||
autotexname(G.buts->lockpoin);
|
||||
allqueue(REDRAWBUTSHEAD, 0);
|
||||
allqueue(REDRAWBUTSSHADING, 0);
|
||||
}
|
||||
else if(G.buts->tab[CONTEXT_SHADING]==TAB_SHADING_MAT) {
|
||||
ma= G.buts->lockpoin;
|
||||
if(ma->mtex[ ma->texact]) autotexname(ma->mtex[ma->texact]->tex);
|
||||
allqueue(REDRAWBUTSSHADING, 0);
|
||||
}
|
||||
else if(G.buts->tab[CONTEXT_SHADING]==TAB_SHADING_WORLD) {
|
||||
wrld= G.buts->lockpoin;
|
||||
if(wrld->mtex[ wrld->texact]) autotexname(wrld->mtex[wrld->texact]->tex);
|
||||
allqueue(REDRAWBUTSSHADING, 0);
|
||||
}
|
||||
else if(G.buts->tab[CONTEXT_SHADING]==TAB_SHADING_LAMP) {
|
||||
la= G.buts->lockpoin;
|
||||
if(la->mtex[ la->texact]) autotexname(la->mtex[la->texact]->tex);
|
||||
allqueue(REDRAWBUTSLAMP, 0);
|
||||
}
|
||||
}
|
||||
break;
|
||||
if(G.buts->texnr== -2) {
|
||||
id= 0;
|
||||
la= ob->data;
|
||||
mtex= la->mtex[ la->texact ];
|
||||
if(mtex) id= (ID *)mtex->tex;
|
||||
|
||||
case B_RESETAUTOSAVE:
|
||||
reset_autosave();
|
||||
allqueue(REDRAWINFO, 0);
|
||||
break;
|
||||
case B_SOUNDTOGGLE:
|
||||
SYS_WriteCommandLineInt(SYS_GetSystem(), "noaudio", (U.gameflags & USERDEF_DISABLE_SOUND));
|
||||
break;
|
||||
case B_SHOWSPLASH:
|
||||
show_splash();
|
||||
break;
|
||||
case B_MIPMAPCHANGED:
|
||||
set_mipmap(!(U.gameflags & USERDEF_DISABLE_SOUND));
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
break;
|
||||
case B_NEWSPACE:
|
||||
newspace(curarea, curarea->butspacetype);
|
||||
break;
|
||||
case B_LOADTEMP: /* is button from space.c */
|
||||
BIF_read_autosavefile();
|
||||
break;
|
||||
activate_databrowse(id, ID_TE, 0, B_LTEXBROWSE, &G.buts->texnr, do_global_buttons);
|
||||
return;
|
||||
}
|
||||
if(G.buts->texnr < 0) break;
|
||||
|
||||
case B_USERPREF:
|
||||
allqueue(REDRAWINFO, 0);
|
||||
break;
|
||||
if(G.buts->pin) {
|
||||
|
||||
}
|
||||
else {
|
||||
id= 0;
|
||||
|
||||
la= ob->data;
|
||||
mtex= la->mtex[ la->texact ];
|
||||
if(mtex) id= (ID *)mtex->tex;
|
||||
|
||||
case B_DRAWINFO: /* is button from space.c *info* */
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
break;
|
||||
idtest= G.main->tex.first;
|
||||
while(idtest) {
|
||||
if(nr==G.buts->texnr) {
|
||||
break;
|
||||
}
|
||||
nr++;
|
||||
idtest= idtest->next;
|
||||
}
|
||||
if(idtest==0) { /* new tex */
|
||||
if(id) idtest= (ID *)copy_texture((Tex *)id);
|
||||
else idtest= (ID *)add_texture("Tex");
|
||||
idtest->us--;
|
||||
}
|
||||
if(idtest!=id && la) {
|
||||
|
||||
if( la->mtex[la->texact]==0) {
|
||||
la->mtex[la->texact]= add_mtex();
|
||||
la->mtex[la->texact]->texco= TEXCO_GLOB;
|
||||
}
|
||||
la->mtex[ la->texact ]->tex= (Tex *)idtest;
|
||||
id_us_plus(idtest);
|
||||
if(id) id->us--;
|
||||
|
||||
allqueue(REDRAWBUTSHEAD, 0);
|
||||
allqueue(REDRAWBUTSSHADING, 0);
|
||||
allqueue(REDRAWBUTSLAMP, 0);
|
||||
allqueue(REDRAWIPO, 0);
|
||||
BIF_preview_changed(G.buts);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case B_IMAGEDELETE:
|
||||
G.sima->image= 0;
|
||||
image_changed(G.sima, 0);
|
||||
allqueue(REDRAWIMAGE, 0);
|
||||
break;
|
||||
|
||||
case B_AUTOMATNAME:
|
||||
automatname(G.buts->lockpoin);
|
||||
allqueue(REDRAWBUTSHEAD, 0);
|
||||
break;
|
||||
case B_AUTOTEXNAME:
|
||||
if(G.buts->mainb==CONTEXT_SHADING) {
|
||||
if(G.buts->tab[CONTEXT_SHADING]==TAB_SHADING_TEX) {
|
||||
autotexname(G.buts->lockpoin);
|
||||
allqueue(REDRAWBUTSHEAD, 0);
|
||||
allqueue(REDRAWBUTSSHADING, 0);
|
||||
}
|
||||
else if(G.buts->tab[CONTEXT_SHADING]==TAB_SHADING_MAT) {
|
||||
ma= G.buts->lockpoin;
|
||||
if(ma->mtex[ ma->texact]) autotexname(ma->mtex[ma->texact]->tex);
|
||||
allqueue(REDRAWBUTSSHADING, 0);
|
||||
}
|
||||
else if(G.buts->tab[CONTEXT_SHADING]==TAB_SHADING_WORLD) {
|
||||
wrld= G.buts->lockpoin;
|
||||
if(wrld->mtex[ wrld->texact]) autotexname(wrld->mtex[wrld->texact]->tex);
|
||||
allqueue(REDRAWBUTSSHADING, 0);
|
||||
}
|
||||
else if(G.buts->tab[CONTEXT_SHADING]==TAB_SHADING_LAMP) {
|
||||
la= G.buts->lockpoin;
|
||||
if(la->mtex[ la->texact]) autotexname(la->mtex[la->texact]->tex);
|
||||
allqueue(REDRAWBUTSLAMP, 0);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case B_FLIPINFOMENU: /* is button from space.c *info* */
|
||||
scrarea_queue_headredraw(curarea);
|
||||
break;
|
||||
case B_RESETAUTOSAVE:
|
||||
reset_autosave();
|
||||
allqueue(REDRAWINFO, 0);
|
||||
break;
|
||||
case B_SOUNDTOGGLE:
|
||||
SYS_WriteCommandLineInt(SYS_GetSystem(), "noaudio", (U.gameflags & USERDEF_DISABLE_SOUND));
|
||||
break;
|
||||
case B_SHOWSPLASH:
|
||||
show_splash();
|
||||
break;
|
||||
case B_MIPMAPCHANGED:
|
||||
set_mipmap(!(U.gameflags & USERDEF_DISABLE_SOUND));
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
break;
|
||||
case B_NEWSPACE:
|
||||
newspace(curarea, curarea->butspacetype);
|
||||
break;
|
||||
case B_LOADTEMP: /* is button from space.c */
|
||||
BIF_read_autosavefile();
|
||||
break;
|
||||
|
||||
case B_USERPREF:
|
||||
allqueue(REDRAWINFO, 0);
|
||||
break;
|
||||
|
||||
case B_DRAWINFO: /* is button from space.c *info* */
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
break;
|
||||
|
||||
case B_FLIPINFOMENU: /* is button from space.c *info* */
|
||||
scrarea_queue_headredraw(curarea);
|
||||
break;
|
||||
|
||||
#ifdef _WIN32 // FULLSCREEN
|
||||
case B_FLIPFULLSCREEN:
|
||||
if(U.uiflag & FLIPFULLSCREEN)
|
||||
U.uiflag &= ~FLIPFULLSCREEN;
|
||||
else
|
||||
U.uiflag |= FLIPFULLSCREEN;
|
||||
mainwindow_toggle_fullscreen((U.uiflag & FLIPFULLSCREEN));
|
||||
break;
|
||||
case B_FLIPFULLSCREEN:
|
||||
if(U.uiflag & FLIPFULLSCREEN)
|
||||
U.uiflag &= ~FLIPFULLSCREEN;
|
||||
else
|
||||
U.uiflag |= FLIPFULLSCREEN;
|
||||
mainwindow_toggle_fullscreen((U.uiflag & FLIPFULLSCREEN));
|
||||
break;
|
||||
#endif
|
||||
|
||||
/* Fileselect windows for user preferences file paths */
|
||||
/* Fileselect windows for user preferences file paths */
|
||||
|
||||
case B_FONTDIRFILESEL: /* is button from space.c *info* */
|
||||
if(curarea->spacetype==SPACE_INFO) {
|
||||
sa= closest_bigger_area();
|
||||
areawinset(sa->win);
|
||||
}
|
||||
case B_FONTDIRFILESEL: /* is button from space.c *info* */
|
||||
if(curarea->spacetype==SPACE_INFO) {
|
||||
sa= closest_bigger_area();
|
||||
areawinset(sa->win);
|
||||
}
|
||||
|
||||
activate_fileselect(FILE_SPECIAL, "SELECT FONT PATH", U.fontdir, filesel_u_fontdir);
|
||||
break;
|
||||
activate_fileselect(FILE_SPECIAL, "SELECT FONT PATH", U.fontdir, filesel_u_fontdir);
|
||||
break;
|
||||
|
||||
case B_TEXTUDIRFILESEL: /* is button from space.c *info* */
|
||||
if(curarea->spacetype==SPACE_INFO) {
|
||||
sa= closest_bigger_area();
|
||||
areawinset(sa->win);
|
||||
}
|
||||
case B_TEXTUDIRFILESEL: /* is button from space.c *info* */
|
||||
if(curarea->spacetype==SPACE_INFO) {
|
||||
sa= closest_bigger_area();
|
||||
areawinset(sa->win);
|
||||
}
|
||||
|
||||
activate_fileselect(FILE_SPECIAL, "SELECT TEXTURE PATH", U.textudir, filesel_u_textudir);
|
||||
break;
|
||||
|
||||
case B_PLUGTEXDIRFILESEL: /* is button form space.c *info* */
|
||||
if(curarea->spacetype==SPACE_INFO) {
|
||||
sa= closest_bigger_area();
|
||||
areawinset(sa->win);
|
||||
}
|
||||
activate_fileselect(FILE_SPECIAL, "SELECT TEXTURE PATH", U.textudir, filesel_u_textudir);
|
||||
break;
|
||||
|
||||
case B_PLUGTEXDIRFILESEL: /* is button form space.c *info* */
|
||||
if(curarea->spacetype==SPACE_INFO) {
|
||||
sa= closest_bigger_area();
|
||||
areawinset(sa->win);
|
||||
}
|
||||
|
||||
activate_fileselect(FILE_SPECIAL, "SELECT TEX PLUGIN PATH", U.plugtexdir, filesel_u_plugtexdir);
|
||||
break;
|
||||
|
||||
case B_PLUGSEQDIRFILESEL: /* is button from space.c *info* */
|
||||
if(curarea->spacetype==SPACE_INFO) {
|
||||
sa= closest_bigger_area();
|
||||
areawinset(sa->win);
|
||||
}
|
||||
activate_fileselect(FILE_SPECIAL, "SELECT TEX PLUGIN PATH", U.plugtexdir, filesel_u_plugtexdir);
|
||||
break;
|
||||
|
||||
case B_PLUGSEQDIRFILESEL: /* is button from space.c *info* */
|
||||
if(curarea->spacetype==SPACE_INFO) {
|
||||
sa= closest_bigger_area();
|
||||
areawinset(sa->win);
|
||||
}
|
||||
|
||||
activate_fileselect(FILE_SPECIAL, "SELECT SEQ PLUGIN PATH", U.plugseqdir, filesel_u_plugseqdir);
|
||||
break;
|
||||
|
||||
case B_RENDERDIRFILESEL: /* is button from space.c *info* */
|
||||
if(curarea->spacetype==SPACE_INFO) {
|
||||
sa= closest_bigger_area();
|
||||
areawinset(sa->win);
|
||||
}
|
||||
activate_fileselect(FILE_SPECIAL, "SELECT SEQ PLUGIN PATH", U.plugseqdir, filesel_u_plugseqdir);
|
||||
break;
|
||||
|
||||
case B_RENDERDIRFILESEL: /* is button from space.c *info* */
|
||||
if(curarea->spacetype==SPACE_INFO) {
|
||||
sa= closest_bigger_area();
|
||||
areawinset(sa->win);
|
||||
}
|
||||
|
||||
activate_fileselect(FILE_SPECIAL, "SELECT RENDER PATH", U.renderdir, filesel_u_renderdir);
|
||||
break;
|
||||
|
||||
case B_PYTHONDIRFILESEL: /* is button from space.c *info* */
|
||||
if(curarea->spacetype==SPACE_INFO) {
|
||||
sa= closest_bigger_area();
|
||||
areawinset(sa->win);
|
||||
}
|
||||
activate_fileselect(FILE_SPECIAL, "SELECT RENDER PATH", U.renderdir, filesel_u_renderdir);
|
||||
break;
|
||||
|
||||
case B_PYTHONDIRFILESEL: /* is button from space.c *info* */
|
||||
if(curarea->spacetype==SPACE_INFO) {
|
||||
sa= closest_bigger_area();
|
||||
areawinset(sa->win);
|
||||
}
|
||||
|
||||
activate_fileselect(FILE_SPECIAL, "SELECT SCRIPT PATH", U.pythondir, filesel_u_pythondir);
|
||||
break;
|
||||
activate_fileselect(FILE_SPECIAL, "SELECT SCRIPT PATH", U.pythondir, filesel_u_pythondir);
|
||||
break;
|
||||
|
||||
case B_SOUNDDIRFILESEL: /* is button from space.c *info* */
|
||||
if(curarea->spacetype==SPACE_INFO) {
|
||||
sa= closest_bigger_area();
|
||||
areawinset(sa->win);
|
||||
}
|
||||
case B_SOUNDDIRFILESEL: /* is button from space.c *info* */
|
||||
if(curarea->spacetype==SPACE_INFO) {
|
||||
sa= closest_bigger_area();
|
||||
areawinset(sa->win);
|
||||
}
|
||||
|
||||
activate_fileselect(FILE_SPECIAL, "SELECT SOUND PATH", U.sounddir, filesel_u_sounddir);
|
||||
break;
|
||||
activate_fileselect(FILE_SPECIAL, "SELECT SOUND PATH", U.sounddir, filesel_u_sounddir);
|
||||
break;
|
||||
|
||||
case B_TEMPDIRFILESEL: /* is button from space.c *info* */
|
||||
if(curarea->spacetype==SPACE_INFO) {
|
||||
sa= closest_bigger_area();
|
||||
areawinset(sa->win);
|
||||
}
|
||||
case B_TEMPDIRFILESEL: /* is button from space.c *info* */
|
||||
if(curarea->spacetype==SPACE_INFO) {
|
||||
sa= closest_bigger_area();
|
||||
areawinset(sa->win);
|
||||
}
|
||||
|
||||
activate_fileselect(FILE_SPECIAL, "SELECT TEMP FILE PATH", U.tempdir, filesel_u_tempdir);
|
||||
break;
|
||||
activate_fileselect(FILE_SPECIAL, "SELECT TEMP FILE PATH", U.tempdir, filesel_u_tempdir);
|
||||
break;
|
||||
|
||||
/* END Fileselect windows for user preferences file paths */
|
||||
/* END Fileselect windows for user preferences file paths */
|
||||
|
||||
|
||||
#ifdef INTERNATIONAL
|
||||
case B_LOADUIFONT: /* is button from space.c *info* */
|
||||
if(curarea->spacetype==SPACE_INFO) {
|
||||
sa= closest_bigger_area();
|
||||
areawinset(sa->win);
|
||||
}
|
||||
BLI_make_file_string("/", buf, U.fontdir, U.fontname);
|
||||
activate_fileselect(FILE_SPECIAL, "LOAD UI FONT", buf, set_interface_font);
|
||||
break;
|
||||
case B_LOADUIFONT: /* is button from space.c *info* */
|
||||
if(curarea->spacetype==SPACE_INFO) {
|
||||
sa= closest_bigger_area();
|
||||
areawinset(sa->win);
|
||||
}
|
||||
BLI_make_file_string("/", buf, U.fontdir, U.fontname);
|
||||
activate_fileselect(FILE_SPECIAL, "LOAD UI FONT", buf, set_interface_font);
|
||||
break;
|
||||
|
||||
case B_SETLANGUAGE: /* is button from space.c *info* */
|
||||
lang_setlanguage();
|
||||
allqueue(REDRAWALL, 0);
|
||||
break;
|
||||
case B_SETLANGUAGE: /* is button from space.c *info* */
|
||||
lang_setlanguage();
|
||||
allqueue(REDRAWALL, 0);
|
||||
break;
|
||||
|
||||
case B_SETFONTSIZE: /* is button from space.c *info* */
|
||||
FTF_SetSize(U.fontsize);
|
||||
allqueue(REDRAWALL, 0);
|
||||
break;
|
||||
|
||||
case B_SETTRANSBUTS: /* is button from space.c *info* */
|
||||
allqueue(REDRAWALL, 0);
|
||||
break;
|
||||
case B_SETFONTSIZE: /* is button from space.c *info* */
|
||||
FTF_SetSize(U.fontsize);
|
||||
allqueue(REDRAWALL, 0);
|
||||
break;
|
||||
|
||||
case B_SETTRANSBUTS: /* is button from space.c *info* */
|
||||
allqueue(REDRAWALL, 0);
|
||||
break;
|
||||
|
||||
case B_DOLANGUIFONT: /* is button from space.c *info* */
|
||||
if(U.transopts & TR_ALL)
|
||||
start_interface_font();
|
||||
else
|
||||
G.ui_international = FALSE;
|
||||
allqueue(REDRAWALL, 0);
|
||||
break;
|
||||
case B_DOLANGUIFONT: /* is button from space.c *info* */
|
||||
if(U.transopts & TR_ALL)
|
||||
start_interface_font();
|
||||
else
|
||||
G.ui_international = FALSE;
|
||||
allqueue(REDRAWALL, 0);
|
||||
break;
|
||||
#endif
|
||||
|
||||
case B_FULL:
|
||||
if(curarea->spacetype!=SPACE_INFO) {
|
||||
area_fullscreen();
|
||||
}
|
||||
break;
|
||||
|
||||
case B_FULL:
|
||||
if(curarea->spacetype!=SPACE_INFO) {
|
||||
area_fullscreen();
|
||||
}
|
||||
break;
|
||||
|
||||
case B_IDNAME:
|
||||
/* changing a metaballs name, sadly enough,
|
||||
* can require it to be updated because its
|
||||
* basis might have changed... -zr
|
||||
*/
|
||||
if (OBACT && OBACT->type==OB_MBALL)
|
||||
makeDispList(OBACT);
|
||||
|
||||
/* redraw because name has changed: new pup */
|
||||
scrarea_queue_headredraw(curarea);
|
||||
allqueue(REDRAWBUTSHEAD, 0);
|
||||
allqueue(REDRAWINFO, 1);
|
||||
allqueue(REDRAWOOPS, 1);
|
||||
/* name scene also in set PUPmenu */
|
||||
if ELEM(curarea->spacetype, SPACE_BUTS, SPACE_INFO) allqueue(REDRAWBUTSALL, 0);
|
||||
case B_IDNAME:
|
||||
/* changing a metaballs name, sadly enough,
|
||||
* can require it to be updated because its
|
||||
* basis might have changed... -zr
|
||||
*/
|
||||
if (OBACT && OBACT->type==OB_MBALL)
|
||||
makeDispList(OBACT);
|
||||
|
||||
/* redraw because name has changed: new pup */
|
||||
scrarea_queue_headredraw(curarea);
|
||||
allqueue(REDRAWBUTSHEAD, 0);
|
||||
allqueue(REDRAWINFO, 1);
|
||||
allqueue(REDRAWOOPS, 1);
|
||||
/* name scene also in set PUPmenu */
|
||||
if ELEM(curarea->spacetype, SPACE_BUTS, SPACE_INFO) allqueue(REDRAWBUTSALL, 0);
|
||||
|
||||
allqueue(REDRAWHEADERS, 0);
|
||||
allqueue(REDRAWHEADERS, 0);
|
||||
|
||||
break;
|
||||
|
||||
case B_KEEPDATA:
|
||||
/* keep datablock. similar to pressing FKEY in a fileselect window
|
||||
* maybe we can move that stuff to a seperate function? -- sg
|
||||
*/
|
||||
if (curarea->spacetype==SPACE_BUTS) {
|
||||
id= (ID *)G.buts->lockpoin;
|
||||
} else if(curarea->spacetype==SPACE_IPO) {
|
||||
id = (ID *)G.sipo->ipo;
|
||||
} /* similar for other spacetypes ? */
|
||||
if (id) {
|
||||
if( id->flag & LIB_FAKEUSER) {
|
||||
id->flag -= LIB_FAKEUSER;
|
||||
id->us--;
|
||||
} else {
|
||||
id->flag |= LIB_FAKEUSER;
|
||||
id->us++;
|
||||
}
|
||||
}
|
||||
allqueue(REDRAWHEADERS, 0);
|
||||
break;
|
||||
|
||||
case B_KEEPDATA:
|
||||
/* keep datablock. similar to pressing FKEY in a fileselect window
|
||||
* maybe we can move that stuff to a seperate function? -- sg
|
||||
*/
|
||||
if (curarea->spacetype==SPACE_BUTS) {
|
||||
id= (ID *)G.buts->lockpoin;
|
||||
} else if(curarea->spacetype==SPACE_IPO) {
|
||||
id = (ID *)G.sipo->ipo;
|
||||
} /* similar for other spacetypes ? */
|
||||
if (id) {
|
||||
if( id->flag & LIB_FAKEUSER) {
|
||||
id->flag -= LIB_FAKEUSER;
|
||||
id->us--;
|
||||
} else {
|
||||
id->flag |= LIB_FAKEUSER;
|
||||
id->us++;
|
||||
}
|
||||
}
|
||||
allqueue(REDRAWHEADERS, 0);
|
||||
|
||||
break;
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void do_global_buttons2(short event)
|
||||
{
|
||||
Base *base;
|
||||
Object *ob;
|
||||
Material *ma;
|
||||
MTex *mtex;
|
||||
Mesh *me;
|
||||
Curve *cu;
|
||||
MetaBall *mb;
|
||||
Ipo *ipo;
|
||||
Lamp *la;
|
||||
Lattice *lt;
|
||||
World *wrld;
|
||||
ID *idfrom;
|
||||
bAction *act;
|
||||
Base *base;
|
||||
Object *ob;
|
||||
Material *ma;
|
||||
MTex *mtex;
|
||||
Mesh *me;
|
||||
Curve *cu;
|
||||
MetaBall *mb;
|
||||
Ipo *ipo;
|
||||
Lamp *la;
|
||||
Lattice *lt;
|
||||
World *wrld;
|
||||
ID *idfrom;
|
||||
bAction *act;
|
||||
|
||||
/* general: Single User is allowed when from==LOCAL
|
||||
* Make Local is allowed when (from==LOCAL && id==LIB)
|
||||
*/
|
||||
|
||||
ob= OBACT;
|
||||
|
||||
switch(event) {
|
||||
|
||||
case B_LAMPALONE:
|
||||
if(ob && ob->id.lib==0) {
|
||||
la= ob->data;
|
||||
if(la->id.us>1) {
|
||||
if(okee("Single user")) {
|
||||
ob->data= copy_lamp(la);
|
||||
la->id.us--;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case B_LAMPLOCAL:
|
||||
if(ob && ob->id.lib==0) {
|
||||
la= ob->data;
|
||||
if(la->id.lib) {
|
||||
if(okee("Make local")) {
|
||||
make_local_lamp(la);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case B_ARMLOCAL:
|
||||
if (ob&&ob->id.lib==0){
|
||||
bArmature *arm=ob->data;
|
||||
if (arm->id.lib){
|
||||
if(okee("Make local")) {
|
||||
make_local_armature(arm);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case B_ARMALONE:
|
||||
if(ob && ob->id.lib==0) {
|
||||
bArmature *arm=ob->data;
|
||||
if(arm->id.us>1) {
|
||||
if(okee("Single user")) {
|
||||
ob->data= copy_armature(arm);
|
||||
arm->id.us--;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case B_ACTLOCAL:
|
||||
if(ob && ob->id.lib==0) {
|
||||
act= ob->action;
|
||||
if(act->id.lib) {
|
||||
if(okee("Make local")) {
|
||||
make_local_action(act);
|
||||
allqueue(REDRAWACTION,0);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case B_ACTALONE:
|
||||
if(ob && ob->id.lib==0) {
|
||||
act= ob->action;
|
||||
|
||||
if(act->id.us>1) {
|
||||
if(okee("Single user")) {
|
||||
ob->action=copy_action(act);
|
||||
ob->activecon=NULL;
|
||||
act->id.us--;
|
||||
allqueue(REDRAWACTION, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
/* general: Single User is allowed when from==LOCAL
|
||||
* Make Local is allowed when (from==LOCAL && id==LIB)
|
||||
*/
|
||||
|
||||
ob= OBACT;
|
||||
|
||||
switch(event) {
|
||||
|
||||
case B_LAMPALONE:
|
||||
if(ob && ob->id.lib==0) {
|
||||
la= ob->data;
|
||||
if(la->id.us>1) {
|
||||
if(okee("Single user")) {
|
||||
ob->data= copy_lamp(la);
|
||||
la->id.us--;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case B_LAMPLOCAL:
|
||||
if(ob && ob->id.lib==0) {
|
||||
la= ob->data;
|
||||
if(la->id.lib) {
|
||||
if(okee("Make local")) {
|
||||
make_local_lamp(la);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case B_ARMLOCAL:
|
||||
if (ob&&ob->id.lib==0){
|
||||
bArmature *arm=ob->data;
|
||||
if (arm->id.lib){
|
||||
if(okee("Make local")) {
|
||||
make_local_armature(arm);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case B_ARMALONE:
|
||||
if(ob && ob->id.lib==0) {
|
||||
bArmature *arm=ob->data;
|
||||
if(arm->id.us>1) {
|
||||
if(okee("Single user")) {
|
||||
ob->data= copy_armature(arm);
|
||||
arm->id.us--;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case B_ACTLOCAL:
|
||||
if(ob && ob->id.lib==0) {
|
||||
act= ob->action;
|
||||
if(act->id.lib) {
|
||||
if(okee("Make local")) {
|
||||
make_local_action(act);
|
||||
allqueue(REDRAWACTION,0);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case B_ACTALONE:
|
||||
if(ob && ob->id.lib==0) {
|
||||
act= ob->action;
|
||||
|
||||
if(act->id.us>1) {
|
||||
if(okee("Single user")) {
|
||||
ob->action=copy_action(act);
|
||||
ob->activecon=NULL;
|
||||
act->id.us--;
|
||||
allqueue(REDRAWACTION, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case B_CAMERAALONE:
|
||||
if(ob && ob->id.lib==0) {
|
||||
Camera *ca= ob->data;
|
||||
if(ca->id.us>1) {
|
||||
if(okee("Single user")) {
|
||||
ob->data= copy_camera(ca);
|
||||
ca->id.us--;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case B_CAMERALOCAL:
|
||||
if(ob && ob->id.lib==0) {
|
||||
Camera *ca= ob->data;
|
||||
if(ca->id.lib) {
|
||||
if(okee("Make local")) {
|
||||
make_local_camera(ca);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case B_WORLDALONE:
|
||||
wrld= G.scene->world;
|
||||
if(wrld->id.us>1) {
|
||||
if(okee("Single user")) {
|
||||
G.scene->world= copy_world(wrld);
|
||||
wrld->id.us--;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case B_WORLDLOCAL:
|
||||
wrld= G.scene->world;
|
||||
if(wrld && wrld->id.lib) {
|
||||
if(okee("Make local")) {
|
||||
make_local_world(wrld);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case B_CAMERAALONE:
|
||||
if(ob && ob->id.lib==0) {
|
||||
Camera *ca= ob->data;
|
||||
if(ca->id.us>1) {
|
||||
if(okee("Single user")) {
|
||||
ob->data= copy_camera(ca);
|
||||
ca->id.us--;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case B_CAMERALOCAL:
|
||||
if(ob && ob->id.lib==0) {
|
||||
Camera *ca= ob->data;
|
||||
if(ca->id.lib) {
|
||||
if(okee("Make local")) {
|
||||
make_local_camera(ca);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case B_WORLDALONE:
|
||||
wrld= G.scene->world;
|
||||
if(wrld->id.us>1) {
|
||||
if(okee("Single user")) {
|
||||
G.scene->world= copy_world(wrld);
|
||||
wrld->id.us--;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case B_WORLDLOCAL:
|
||||
wrld= G.scene->world;
|
||||
if(wrld && wrld->id.lib) {
|
||||
if(okee("Make local")) {
|
||||
make_local_world(wrld);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case B_LATTALONE:
|
||||
if(ob && ob->id.lib==0) {
|
||||
lt= ob->data;
|
||||
if(lt->id.us>1) {
|
||||
if(okee("Single user")) {
|
||||
ob->data= copy_lattice(lt);
|
||||
lt->id.us--;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case B_LATTLOCAL:
|
||||
if(ob && ob->id.lib==0) {
|
||||
lt= ob->data;
|
||||
if(lt->id.lib) {
|
||||
if(okee("Make local")) {
|
||||
make_local_lattice(lt);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case B_MATALONE:
|
||||
if(ob==0) return;
|
||||
ma= give_current_material(ob, ob->actcol);
|
||||
idfrom= material_from(ob, ob->actcol);
|
||||
if(idfrom && idfrom->lib==0) {
|
||||
if(ma->id.us>1) {
|
||||
if(okee("Single user")) {
|
||||
ma= copy_material(ma);
|
||||
ma->id.us= 0;
|
||||
assign_material(ob, ma, ob->actcol);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case B_MATLOCAL:
|
||||
if(ob==0) return;
|
||||
idfrom= material_from(ob, ob->actcol);
|
||||
if(idfrom->lib==0) {
|
||||
ma= give_current_material(ob, ob->actcol);
|
||||
if(ma && ma->id.lib) {
|
||||
if(okee("Make local")) {
|
||||
make_local_material(ma);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case B_LATTALONE:
|
||||
if(ob && ob->id.lib==0) {
|
||||
lt= ob->data;
|
||||
if(lt->id.us>1) {
|
||||
if(okee("Single user")) {
|
||||
ob->data= copy_lattice(lt);
|
||||
lt->id.us--;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case B_LATTLOCAL:
|
||||
if(ob && ob->id.lib==0) {
|
||||
lt= ob->data;
|
||||
if(lt->id.lib) {
|
||||
if(okee("Make local")) {
|
||||
make_local_lattice(lt);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case B_MATALONE:
|
||||
if(ob==0) return;
|
||||
ma= give_current_material(ob, ob->actcol);
|
||||
idfrom= material_from(ob, ob->actcol);
|
||||
if(idfrom && idfrom->lib==0) {
|
||||
if(ma->id.us>1) {
|
||||
if(okee("Single user")) {
|
||||
ma= copy_material(ma);
|
||||
ma->id.us= 0;
|
||||
assign_material(ob, ma, ob->actcol);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case B_MATLOCAL:
|
||||
if(ob==0) return;
|
||||
idfrom= material_from(ob, ob->actcol);
|
||||
if(idfrom->lib==0) {
|
||||
ma= give_current_material(ob, ob->actcol);
|
||||
if(ma && ma->id.lib) {
|
||||
if(okee("Make local")) {
|
||||
make_local_material(ma);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case B_MESHLOCAL:
|
||||
if(ob && ob->id.lib==0) {
|
||||
me= ob->data;
|
||||
if(me && me->id.lib) {
|
||||
if(okee("Make local")) {
|
||||
make_local_mesh(me);
|
||||
make_local_key( me->key );
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case B_MESHLOCAL:
|
||||
if(ob && ob->id.lib==0) {
|
||||
me= ob->data;
|
||||
if(me && me->id.lib) {
|
||||
if(okee("Make local")) {
|
||||
make_local_mesh(me);
|
||||
make_local_key( me->key );
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case B_MBALLALONE:
|
||||
if(ob && ob->id.lib==0) {
|
||||
mb= ob->data;
|
||||
if(mb->id.us>1) {
|
||||
if(okee("Single user")) {
|
||||
ob->data= copy_mball(mb);
|
||||
mb->id.us--;
|
||||
if(ob==G.obedit) allqueue(REDRAWVIEW3D, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case B_MBALLLOCAL:
|
||||
if(ob && ob->id.lib==0) {
|
||||
mb= ob->data;
|
||||
if(mb->id.lib) {
|
||||
if(okee("Make local")) {
|
||||
make_local_mball(mb);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case B_MBALLALONE:
|
||||
if(ob && ob->id.lib==0) {
|
||||
mb= ob->data;
|
||||
if(mb->id.us>1) {
|
||||
if(okee("Single user")) {
|
||||
ob->data= copy_mball(mb);
|
||||
mb->id.us--;
|
||||
if(ob==G.obedit) allqueue(REDRAWVIEW3D, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case B_MBALLLOCAL:
|
||||
if(ob && ob->id.lib==0) {
|
||||
mb= ob->data;
|
||||
if(mb->id.lib) {
|
||||
if(okee("Make local")) {
|
||||
make_local_mball(mb);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case B_CURVEALONE:
|
||||
if(ob && ob->id.lib==0) {
|
||||
cu= ob->data;
|
||||
if(cu->id.us>1) {
|
||||
if(okee("Single user")) {
|
||||
ob->data= copy_curve(cu);
|
||||
cu->id.us--;
|
||||
makeDispList(ob);
|
||||
if(ob==G.obedit) allqueue(REDRAWVIEW3D, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case B_CURVELOCAL:
|
||||
if(ob && ob->id.lib==0) {
|
||||
cu= ob->data;
|
||||
if(cu->id.lib) {
|
||||
if(okee("Make local")) {
|
||||
make_local_curve(cu);
|
||||
make_local_key( cu->key );
|
||||
makeDispList(ob);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case B_TEXALONE:
|
||||
if(G.buts->texfrom==0) { /* from mat */
|
||||
if(ob==0) return;
|
||||
ma= give_current_material(ob, ob->actcol);
|
||||
if(ma && ma->id.lib==0) {
|
||||
mtex= ma->mtex[ ma->texact ];
|
||||
if(mtex->tex && mtex->tex->id.us>1) {
|
||||
if(okee("Single user")) {
|
||||
mtex->tex->id.us--;
|
||||
mtex->tex= copy_texture(mtex->tex);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(G.buts->texfrom==1) { /* from world */
|
||||
wrld= G.scene->world;
|
||||
if(wrld->id.lib==0) {
|
||||
mtex= wrld->mtex[ wrld->texact ];
|
||||
if(mtex->tex && mtex->tex->id.us>1) {
|
||||
if(okee("Single user")) {
|
||||
mtex->tex->id.us--;
|
||||
mtex->tex= copy_texture(mtex->tex);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(G.buts->texfrom==2) { /* from lamp */
|
||||
if(ob==0 || ob->type!=OB_LAMP) return;
|
||||
la= ob->data;
|
||||
if(la->id.lib==0) {
|
||||
mtex= la->mtex[ la->texact ];
|
||||
if(mtex->tex && mtex->tex->id.us>1) {
|
||||
if(okee("Single user")) {
|
||||
mtex->tex->id.us--;
|
||||
mtex->tex= copy_texture(mtex->tex);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case B_TEXLOCAL:
|
||||
if(G.buts->texfrom==0) { /* from mat */
|
||||
if(ob==0) return;
|
||||
ma= give_current_material(ob, ob->actcol);
|
||||
if(ma && ma->id.lib==0) {
|
||||
mtex= ma->mtex[ ma->texact ];
|
||||
if(mtex->tex && mtex->tex->id.lib) {
|
||||
if(okee("Make local")) {
|
||||
make_local_texture(mtex->tex);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(G.buts->texfrom==1) { /* from world */
|
||||
wrld= G.scene->world;
|
||||
if(wrld->id.lib==0) {
|
||||
mtex= wrld->mtex[ wrld->texact ];
|
||||
if(mtex->tex && mtex->tex->id.lib) {
|
||||
if(okee("Make local")) {
|
||||
make_local_texture(mtex->tex);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(G.buts->texfrom==2) { /* from lamp */
|
||||
if(ob==0 || ob->type!=OB_LAMP) return;
|
||||
la= ob->data;
|
||||
if(la->id.lib==0) {
|
||||
mtex= la->mtex[ la->texact ];
|
||||
if(mtex->tex && mtex->tex->id.lib) {
|
||||
if(okee("Make local")) {
|
||||
make_local_texture(mtex->tex);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case B_IPOALONE:
|
||||
ipo= get_ipo_to_edit(&idfrom);
|
||||
|
||||
if(idfrom && idfrom->lib==0) {
|
||||
if(ipo->id.us>1) {
|
||||
if(okee("Single user")) {
|
||||
if(ipo->blocktype==ID_OB) ((Object *)idfrom)->ipo= copy_ipo(ipo);
|
||||
else if(ipo->blocktype==ID_MA) ((Material *)idfrom)->ipo= copy_ipo(ipo);
|
||||
else if(ipo->blocktype==ID_SEQ) ((Sequence *)idfrom)->ipo= copy_ipo(ipo);
|
||||
else if(ipo->blocktype==ID_CU) ((Curve *)idfrom)->ipo= copy_ipo(ipo);
|
||||
else if(ipo->blocktype==ID_KE) ((Key *)idfrom)->ipo= copy_ipo(ipo);
|
||||
else if(ipo->blocktype==ID_LA) ((Lamp *)idfrom)->ipo= copy_ipo(ipo);
|
||||
else if(ipo->blocktype==ID_WO) ((World *)idfrom)->ipo= copy_ipo(ipo);
|
||||
else if(ipo->blocktype==ID_CA) ((Camera *)idfrom)->ipo= copy_ipo(ipo);
|
||||
else if(ipo->blocktype==ID_SO) ((bSound *)idfrom)->ipo= copy_ipo(ipo);
|
||||
else if(ipo->blocktype==ID_AC) get_hilighted_action_channel((bAction *)idfrom)->ipo= copy_ipo(ipo);
|
||||
else if(ipo->blocktype==IPO_CO) ((Object *)idfrom)->activecon->ipo= copy_ipo(ipo);
|
||||
else error("Warn ton!");
|
||||
|
||||
ipo->id.us--;
|
||||
allqueue(REDRAWIPO, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case B_IPOLOCAL:
|
||||
ipo= get_ipo_to_edit(&idfrom);
|
||||
|
||||
if(idfrom && idfrom->lib==0) {
|
||||
if(ipo->id.lib) {
|
||||
if(okee("Make local")) {
|
||||
make_local_ipo(ipo);
|
||||
allqueue(REDRAWIPO, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case B_CURVEALONE:
|
||||
if(ob && ob->id.lib==0) {
|
||||
cu= ob->data;
|
||||
if(cu->id.us>1) {
|
||||
if(okee("Single user")) {
|
||||
ob->data= copy_curve(cu);
|
||||
cu->id.us--;
|
||||
makeDispList(ob);
|
||||
if(ob==G.obedit) allqueue(REDRAWVIEW3D, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case B_CURVELOCAL:
|
||||
if(ob && ob->id.lib==0) {
|
||||
cu= ob->data;
|
||||
if(cu->id.lib) {
|
||||
if(okee("Make local")) {
|
||||
make_local_curve(cu);
|
||||
make_local_key( cu->key );
|
||||
makeDispList(ob);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case B_TEXALONE:
|
||||
if(G.buts->texfrom==0) { /* from mat */
|
||||
if(ob==0) return;
|
||||
ma= give_current_material(ob, ob->actcol);
|
||||
if(ma && ma->id.lib==0) {
|
||||
mtex= ma->mtex[ ma->texact ];
|
||||
if(mtex->tex && mtex->tex->id.us>1) {
|
||||
if(okee("Single user")) {
|
||||
mtex->tex->id.us--;
|
||||
mtex->tex= copy_texture(mtex->tex);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(G.buts->texfrom==1) { /* from world */
|
||||
wrld= G.scene->world;
|
||||
if(wrld->id.lib==0) {
|
||||
mtex= wrld->mtex[ wrld->texact ];
|
||||
if(mtex->tex && mtex->tex->id.us>1) {
|
||||
if(okee("Single user")) {
|
||||
mtex->tex->id.us--;
|
||||
mtex->tex= copy_texture(mtex->tex);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(G.buts->texfrom==2) { /* from lamp */
|
||||
if(ob==0 || ob->type!=OB_LAMP) return;
|
||||
la= ob->data;
|
||||
if(la->id.lib==0) {
|
||||
mtex= la->mtex[ la->texact ];
|
||||
if(mtex->tex && mtex->tex->id.us>1) {
|
||||
if(okee("Single user")) {
|
||||
mtex->tex->id.us--;
|
||||
mtex->tex= copy_texture(mtex->tex);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case B_TEXLOCAL:
|
||||
if(G.buts->texfrom==0) { /* from mat */
|
||||
if(ob==0) return;
|
||||
ma= give_current_material(ob, ob->actcol);
|
||||
if(ma && ma->id.lib==0) {
|
||||
mtex= ma->mtex[ ma->texact ];
|
||||
if(mtex->tex && mtex->tex->id.lib) {
|
||||
if(okee("Make local")) {
|
||||
make_local_texture(mtex->tex);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(G.buts->texfrom==1) { /* from world */
|
||||
wrld= G.scene->world;
|
||||
if(wrld->id.lib==0) {
|
||||
mtex= wrld->mtex[ wrld->texact ];
|
||||
if(mtex->tex && mtex->tex->id.lib) {
|
||||
if(okee("Make local")) {
|
||||
make_local_texture(mtex->tex);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(G.buts->texfrom==2) { /* from lamp */
|
||||
if(ob==0 || ob->type!=OB_LAMP) return;
|
||||
la= ob->data;
|
||||
if(la->id.lib==0) {
|
||||
mtex= la->mtex[ la->texact ];
|
||||
if(mtex->tex && mtex->tex->id.lib) {
|
||||
if(okee("Make local")) {
|
||||
make_local_texture(mtex->tex);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case B_IPOALONE:
|
||||
ipo= get_ipo_to_edit(&idfrom);
|
||||
|
||||
if(idfrom && idfrom->lib==0) {
|
||||
if(ipo->id.us>1) {
|
||||
if(okee("Single user")) {
|
||||
if(ipo->blocktype==ID_OB) ((Object *)idfrom)->ipo= copy_ipo(ipo);
|
||||
else if(ipo->blocktype==ID_MA) ((Material *)idfrom)->ipo= copy_ipo(ipo);
|
||||
else if(ipo->blocktype==ID_SEQ) ((Sequence *)idfrom)->ipo= copy_ipo(ipo);
|
||||
else if(ipo->blocktype==ID_CU) ((Curve *)idfrom)->ipo= copy_ipo(ipo);
|
||||
else if(ipo->blocktype==ID_KE) ((Key *)idfrom)->ipo= copy_ipo(ipo);
|
||||
else if(ipo->blocktype==ID_LA) ((Lamp *)idfrom)->ipo= copy_ipo(ipo);
|
||||
else if(ipo->blocktype==ID_WO) ((World *)idfrom)->ipo= copy_ipo(ipo);
|
||||
else if(ipo->blocktype==ID_CA) ((Camera *)idfrom)->ipo= copy_ipo(ipo);
|
||||
else if(ipo->blocktype==ID_SO) ((bSound *)idfrom)->ipo= copy_ipo(ipo);
|
||||
else if(ipo->blocktype==ID_AC) get_hilighted_action_channel((bAction *)idfrom)->ipo= copy_ipo(ipo);
|
||||
else if(ipo->blocktype==IPO_CO) ((Object *)idfrom)->activecon->ipo= copy_ipo(ipo);
|
||||
else error("Warn ton!");
|
||||
|
||||
ipo->id.us--;
|
||||
allqueue(REDRAWIPO, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case B_IPOLOCAL:
|
||||
ipo= get_ipo_to_edit(&idfrom);
|
||||
|
||||
if(idfrom && idfrom->lib==0) {
|
||||
if(ipo->id.lib) {
|
||||
if(okee("Make local")) {
|
||||
make_local_ipo(ipo);
|
||||
allqueue(REDRAWIPO, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case B_OBALONE:
|
||||
if(G.scene->id.lib==0) {
|
||||
if(ob->id.us>1) {
|
||||
if(okee("Single user")) {
|
||||
base= FIRSTBASE;
|
||||
while(base) {
|
||||
if(base->object==ob) {
|
||||
base->object= copy_object(ob);
|
||||
ob->id.us--;
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
break;
|
||||
}
|
||||
base= base->next;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case B_OBLOCAL:
|
||||
if(G.scene->id.lib==0) {
|
||||
if(ob->id.lib) {
|
||||
if(okee("Make local")) {
|
||||
make_local_object(ob);
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case B_MESHALONE:
|
||||
if(ob && ob->id.lib==0) {
|
||||
|
||||
me= ob->data;
|
||||
|
||||
if(me && me->id.us>1) {
|
||||
if(okee("Single user")) {
|
||||
Mesh *men= copy_mesh(me);
|
||||
men->id.us= 0;
|
||||
|
||||
set_mesh(ob, men);
|
||||
|
||||
if(ob==G.obedit) allqueue(REDRAWVIEW3D, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
allqueue(REDRAWBUTSALL, 0);
|
||||
allqueue(REDRAWOOPS, 0);
|
||||
case B_OBALONE:
|
||||
if(G.scene->id.lib==0) {
|
||||
if(ob->id.us>1) {
|
||||
if(okee("Single user")) {
|
||||
base= FIRSTBASE;
|
||||
while(base) {
|
||||
if(base->object==ob) {
|
||||
base->object= copy_object(ob);
|
||||
ob->id.us--;
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
break;
|
||||
}
|
||||
base= base->next;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case B_OBLOCAL:
|
||||
if(G.scene->id.lib==0) {
|
||||
if(ob->id.lib) {
|
||||
if(okee("Make local")) {
|
||||
make_local_object(ob);
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case B_MESHALONE:
|
||||
if(ob && ob->id.lib==0) {
|
||||
|
||||
me= ob->data;
|
||||
|
||||
if(me && me->id.us>1) {
|
||||
if(okee("Single user")) {
|
||||
Mesh *men= copy_mesh(me);
|
||||
men->id.us= 0;
|
||||
|
||||
set_mesh(ob, men);
|
||||
|
||||
if(ob==G.obedit) allqueue(REDRAWVIEW3D, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
allqueue(REDRAWBUTSALL, 0);
|
||||
allqueue(REDRAWOOPS, 0);
|
||||
}
|
||||
|
||||
/* ******************** GENERAL ********************** */
|
||||
@@ -1975,20 +1976,20 @@ void do_global_buttons2(short event)
|
||||
void do_headerbuttons(short event)
|
||||
{
|
||||
|
||||
if(event<=50) do_global_buttons2(event);
|
||||
else if(event<=100) do_global_buttons(event);
|
||||
else if(event<200) do_view3d_buttons(event);
|
||||
else if(event<250) do_ipo_buttons(event);
|
||||
else if(event<300) do_oops_buttons(event);
|
||||
else if(event<350) do_info_buttons(event);
|
||||
else if(event<400) do_image_buttons(event);
|
||||
else if(event<450) do_buts_buttons(event);
|
||||
else if(event<500) do_imasel_buttons(event);
|
||||
else if(event<550) do_text_buttons(event);
|
||||
else if(event<600) do_file_buttons(event);
|
||||
else if(event<650) do_seq_buttons(event);
|
||||
else if(event<700) do_sound_buttons(event);
|
||||
else if(event<800) do_action_buttons(event);
|
||||
else if(event<900) do_nla_buttons(event);
|
||||
if(event<=50) do_global_buttons2(event);
|
||||
else if(event<=100) do_global_buttons(event);
|
||||
else if(event<200) do_view3d_buttons(event);
|
||||
else if(event<250) do_ipo_buttons(event);
|
||||
else if(event<300) do_oops_buttons(event);
|
||||
else if(event<350) do_info_buttons(event);
|
||||
else if(event<400) do_image_buttons(event);
|
||||
else if(event<450) do_buts_buttons(event);
|
||||
else if(event<500) do_imasel_buttons(event);
|
||||
else if(event<550) do_text_buttons(event);
|
||||
else if(event<600) do_file_buttons(event);
|
||||
else if(event<650) do_seq_buttons(event);
|
||||
else if(event<700) do_sound_buttons(event);
|
||||
else if(event<800) do_action_buttons(event);
|
||||
else if(event<900) do_nla_buttons(event);
|
||||
}
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software Foundation,
|
||||
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
|
||||
* All rights reserved.
|
||||
@@ -193,7 +193,7 @@ static void check_packAll(void);
|
||||
static void unique_bone_name(Bone *bone, bArmature *arm);
|
||||
static int bonename_exists(Bone *orig, char *name, ListBase *list);
|
||||
|
||||
static void test_idbutton_cb(void *namev, void *arg2_unused)
|
||||
static void test_idbutton_cb(void *namev, void *arg2_unused)
|
||||
{
|
||||
char *name= namev;
|
||||
test_idbutton(name+2);
|
||||
@@ -206,19 +206,19 @@ static void test_idbutton_cb(void *namev, void *arg2_unused)
|
||||
#include "SYS_System.h"
|
||||
|
||||
static int std_libbuttons(uiBlock *block,
|
||||
int xco, int pin, short *pinpoin,
|
||||
int browse, ID *id, ID *parid,
|
||||
short *menupoin, int users,
|
||||
int lib, int del, int autobut, int keepbut);
|
||||
int xco, int pin, short *pinpoin,
|
||||
int browse, ID *id, ID *parid,
|
||||
short *menupoin, int users,
|
||||
int lib, int del, int autobut, int keepbut);
|
||||
|
||||
|
||||
extern char versionstr[]; /* from blender.c */
|
||||
/* extern void add_text_fs(char *file); *//* from text.c, BIF_text.h*/
|
||||
/* extern void add_text_fs(char *file); *//* from text.c, BIF_text.h*/
|
||||
|
||||
/* WATCH IT: always give all headerbuttons for same window the same name
|
||||
* event B_REDR is a standard redraw
|
||||
*
|
||||
*/
|
||||
* event B_REDR is a standard redraw
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
/* View3d->modeselect
|
||||
@@ -241,7 +241,7 @@ extern char versionstr[]; /* from blender.c */
|
||||
|
||||
static int viewmovetemp=0;
|
||||
|
||||
/* extern void info_buttons(); in BSE_headerbuttons.c */
|
||||
/* extern void info_buttons(); in BSE_headerbuttons.c */
|
||||
|
||||
extern char videosc_dir[]; /* exotic.c */
|
||||
|
||||
@@ -561,7 +561,7 @@ static void show_splash(void)
|
||||
extern char * build_type;
|
||||
|
||||
string = &buffer[0];
|
||||
sprintf(string,"Built on %s %s Version %s %s", build_date, build_time, build_platform, build_type);
|
||||
sprintf(string,"Built on %s %s Version %s %s", build_date, build_time, build_platform, build_type);
|
||||
#endif
|
||||
|
||||
splash((void *)datatoc_splash_jpg, datatoc_splash_jpg_size, string);
|
||||
@@ -790,7 +790,7 @@ void do_global_buttons(unsigned short event)
|
||||
idtest= idtest->next;
|
||||
}
|
||||
if(idtest==0) { /* new mat */
|
||||
if(id) idtest= (ID *)copy_material((Material *)id);
|
||||
if(id) idtest= (ID *)copy_material((Material *)id);
|
||||
else {
|
||||
idtest= (ID *)add_material("Material");
|
||||
}
|
||||
@@ -912,7 +912,7 @@ void do_global_buttons(unsigned short event)
|
||||
idtest= idtest->next;
|
||||
}
|
||||
if(idtest==0) { /* new tex */
|
||||
if(id) idtest= (ID *)copy_texture((Tex *)id);
|
||||
if(id) idtest= (ID *)copy_texture((Tex *)id);
|
||||
else idtest= (ID *)add_texture("Tex");
|
||||
idtest->us--;
|
||||
}
|
||||
@@ -1252,7 +1252,7 @@ void do_global_buttons(unsigned short event)
|
||||
idtest= idtest->next;
|
||||
}
|
||||
if(idtest==0) { /* new tex */
|
||||
if(id) idtest= (ID *)copy_texture((Tex *)id);
|
||||
if(id) idtest= (ID *)copy_texture((Tex *)id);
|
||||
else idtest= (ID *)add_texture("Tex");
|
||||
idtest->us--;
|
||||
}
|
||||
@@ -1347,7 +1347,7 @@ void do_global_buttons(unsigned short event)
|
||||
idtest= idtest->next;
|
||||
}
|
||||
if(idtest==0) { /* new tex */
|
||||
if(id) idtest= (ID *)copy_texture((Tex *)id);
|
||||
if(id) idtest= (ID *)copy_texture((Tex *)id);
|
||||
else idtest= (ID *)add_texture("Tex");
|
||||
idtest->us--;
|
||||
}
|
||||
@@ -1413,7 +1413,7 @@ void do_global_buttons(unsigned short event)
|
||||
SYS_WriteCommandLineInt(SYS_GetSystem(), "noaudio", (U.gameflags & USERDEF_DISABLE_SOUND));
|
||||
break;
|
||||
case B_SHOWSPLASH:
|
||||
show_splash();
|
||||
show_splash();
|
||||
break;
|
||||
case B_MIPMAPCHANGED:
|
||||
set_mipmap(!(U.gameflags & USERDEF_DISABLE_SOUND));
|
||||
@@ -1422,7 +1422,7 @@ void do_global_buttons(unsigned short event)
|
||||
case B_NEWSPACE:
|
||||
newspace(curarea, curarea->butspacetype);
|
||||
break;
|
||||
case B_LOADTEMP: /* is button from space.c */
|
||||
case B_LOADTEMP: /* is button from space.c */
|
||||
BIF_read_autosavefile();
|
||||
break;
|
||||
|
||||
@@ -1430,11 +1430,11 @@ void do_global_buttons(unsigned short event)
|
||||
allqueue(REDRAWINFO, 0);
|
||||
break;
|
||||
|
||||
case B_DRAWINFO: /* is button from space.c *info* */
|
||||
case B_DRAWINFO: /* is button from space.c *info* */
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
break;
|
||||
|
||||
case B_FLIPINFOMENU: /* is button from space.c *info* */
|
||||
case B_FLIPINFOMENU: /* is button from space.c *info* */
|
||||
scrarea_queue_headredraw(curarea);
|
||||
break;
|
||||
|
||||
@@ -1450,7 +1450,7 @@ void do_global_buttons(unsigned short event)
|
||||
|
||||
/* Fileselect windows for user preferences file paths */
|
||||
|
||||
case B_FONTDIRFILESEL: /* is button from space.c *info* */
|
||||
case B_FONTDIRFILESEL: /* is button from space.c *info* */
|
||||
if(curarea->spacetype==SPACE_INFO) {
|
||||
sa= closest_bigger_area();
|
||||
areawinset(sa->win);
|
||||
@@ -1459,7 +1459,7 @@ void do_global_buttons(unsigned short event)
|
||||
activate_fileselect(FILE_SPECIAL, "SELECT FONT PATH", U.fontdir, filesel_u_fontdir);
|
||||
break;
|
||||
|
||||
case B_TEXTUDIRFILESEL: /* is button from space.c *info* */
|
||||
case B_TEXTUDIRFILESEL: /* is button from space.c *info* */
|
||||
if(curarea->spacetype==SPACE_INFO) {
|
||||
sa= closest_bigger_area();
|
||||
areawinset(sa->win);
|
||||
@@ -1468,7 +1468,7 @@ void do_global_buttons(unsigned short event)
|
||||
activate_fileselect(FILE_SPECIAL, "SELECT TEXTURE PATH", U.textudir, filesel_u_textudir);
|
||||
break;
|
||||
|
||||
case B_PLUGTEXDIRFILESEL: /* is button form space.c *info* */
|
||||
case B_PLUGTEXDIRFILESEL: /* is button form space.c *info* */
|
||||
if(curarea->spacetype==SPACE_INFO) {
|
||||
sa= closest_bigger_area();
|
||||
areawinset(sa->win);
|
||||
@@ -1477,7 +1477,7 @@ void do_global_buttons(unsigned short event)
|
||||
activate_fileselect(FILE_SPECIAL, "SELECT TEX PLUGIN PATH", U.plugtexdir, filesel_u_plugtexdir);
|
||||
break;
|
||||
|
||||
case B_PLUGSEQDIRFILESEL: /* is button from space.c *info* */
|
||||
case B_PLUGSEQDIRFILESEL: /* is button from space.c *info* */
|
||||
if(curarea->spacetype==SPACE_INFO) {
|
||||
sa= closest_bigger_area();
|
||||
areawinset(sa->win);
|
||||
@@ -1486,7 +1486,7 @@ void do_global_buttons(unsigned short event)
|
||||
activate_fileselect(FILE_SPECIAL, "SELECT SEQ PLUGIN PATH", U.plugseqdir, filesel_u_plugseqdir);
|
||||
break;
|
||||
|
||||
case B_RENDERDIRFILESEL: /* is button from space.c *info* */
|
||||
case B_RENDERDIRFILESEL: /* is button from space.c *info* */
|
||||
if(curarea->spacetype==SPACE_INFO) {
|
||||
sa= closest_bigger_area();
|
||||
areawinset(sa->win);
|
||||
@@ -1495,7 +1495,7 @@ void do_global_buttons(unsigned short event)
|
||||
activate_fileselect(FILE_SPECIAL, "SELECT RENDER PATH", U.renderdir, filesel_u_renderdir);
|
||||
break;
|
||||
|
||||
case B_PYTHONDIRFILESEL: /* is button from space.c *info* */
|
||||
case B_PYTHONDIRFILESEL: /* is button from space.c *info* */
|
||||
if(curarea->spacetype==SPACE_INFO) {
|
||||
sa= closest_bigger_area();
|
||||
areawinset(sa->win);
|
||||
@@ -1504,7 +1504,7 @@ void do_global_buttons(unsigned short event)
|
||||
activate_fileselect(FILE_SPECIAL, "SELECT SCRIPT PATH", U.pythondir, filesel_u_pythondir);
|
||||
break;
|
||||
|
||||
case B_SOUNDDIRFILESEL: /* is button from space.c *info* */
|
||||
case B_SOUNDDIRFILESEL: /* is button from space.c *info* */
|
||||
if(curarea->spacetype==SPACE_INFO) {
|
||||
sa= closest_bigger_area();
|
||||
areawinset(sa->win);
|
||||
@@ -1513,7 +1513,7 @@ void do_global_buttons(unsigned short event)
|
||||
activate_fileselect(FILE_SPECIAL, "SELECT SOUND PATH", U.sounddir, filesel_u_sounddir);
|
||||
break;
|
||||
|
||||
case B_TEMPDIRFILESEL: /* is button from space.c *info* */
|
||||
case B_TEMPDIRFILESEL: /* is button from space.c *info* */
|
||||
if(curarea->spacetype==SPACE_INFO) {
|
||||
sa= closest_bigger_area();
|
||||
areawinset(sa->win);
|
||||
@@ -1526,7 +1526,7 @@ void do_global_buttons(unsigned short event)
|
||||
|
||||
|
||||
#ifdef INTERNATIONAL
|
||||
case B_LOADUIFONT: /* is button from space.c *info* */
|
||||
case B_LOADUIFONT: /* is button from space.c *info* */
|
||||
if(curarea->spacetype==SPACE_INFO) {
|
||||
sa= closest_bigger_area();
|
||||
areawinset(sa->win);
|
||||
@@ -1535,21 +1535,21 @@ void do_global_buttons(unsigned short event)
|
||||
activate_fileselect(FILE_SPECIAL, "LOAD UI FONT", buf, set_interface_font);
|
||||
break;
|
||||
|
||||
case B_SETLANGUAGE: /* is button from space.c *info* */
|
||||
case B_SETLANGUAGE: /* is button from space.c *info* */
|
||||
lang_setlanguage();
|
||||
allqueue(REDRAWALL, 0);
|
||||
break;
|
||||
|
||||
case B_SETFONTSIZE: /* is button from space.c *info* */
|
||||
case B_SETFONTSIZE: /* is button from space.c *info* */
|
||||
FTF_SetSize(U.fontsize);
|
||||
allqueue(REDRAWALL, 0);
|
||||
break;
|
||||
|
||||
case B_SETTRANSBUTS: /* is button from space.c *info* */
|
||||
case B_SETTRANSBUTS: /* is button from space.c *info* */
|
||||
allqueue(REDRAWALL, 0);
|
||||
break;
|
||||
|
||||
case B_DOLANGUIFONT: /* is button from space.c *info* */
|
||||
case B_DOLANGUIFONT: /* is button from space.c *info* */
|
||||
if(U.transopts & TR_ALL)
|
||||
start_interface_font();
|
||||
else
|
||||
@@ -2113,7 +2113,7 @@ Scene *copy_scene(Scene *sce, int level)
|
||||
G.scene= scen;
|
||||
single_object_users(0);
|
||||
|
||||
/* camera */
|
||||
/* camera */
|
||||
ID_NEW(G.scene->camera);
|
||||
|
||||
/* level 2 */
|
||||
@@ -2296,7 +2296,7 @@ void do_info_buttons(unsigned short event)
|
||||
}
|
||||
|
||||
/* strubi shamelessly abused the status line as a progress bar...
|
||||
feel free to kill him after release */
|
||||
feel free to kill him after release */
|
||||
|
||||
static int g_progress_bar = 0;
|
||||
static char *g_progress_info = 0;
|
||||
@@ -2377,7 +2377,7 @@ static void check_packAll()
|
||||
break;
|
||||
}
|
||||
ima= ima->id.next;
|
||||
}
|
||||
}
|
||||
|
||||
if (ima == 0 || okee("Some images are painted on. These changes will be lost. Continue ?")) {
|
||||
packAll();
|
||||
@@ -2491,7 +2491,7 @@ static uiBlock *info_file_optionsmenu(void *arg_unused)
|
||||
|
||||
block= uiNewBlock(&curarea->uiblocks, "runtime_options", UI_EMBOSSP, UI_HELV, G.curscreen->mainwin);
|
||||
uiBlockSetButmFunc(block, do_info_file_optionsmenu, NULL);
|
||||
uiBlockSetXOfs(block,-40); // offset to parent button
|
||||
uiBlockSetXOfs(block,-40); // offset to parent button
|
||||
uiBlockSetCol(block, MENUCOL);
|
||||
|
||||
/* flags are case-values */
|
||||
@@ -2530,7 +2530,7 @@ static uiBlock *info_runtime_optionsmenu(void *arg_unused)
|
||||
uiBlockSetEmboss(block, UI_EMBOSSW);
|
||||
|
||||
uiDefBut(block, LABEL, 0, "Size options:", xco, yco-=20, 114, 19, 0, 0.0, 0.0, 0, 0, "");
|
||||
uiDefButS(block, NUM, 0, "X:", xco+19, yco-=20, 95, 19, &G.scene->r.xplay, 10.0, 2000.0, 0, 0, "Displays current X screen/window resolution. Click to change.");
|
||||
uiDefButS(block, NUM, 0, "X:", xco+19, yco-=20, 95, 19, &G.scene->r.xplay, 10.0, 2000.0, 0, 0, "Displays current X screen/window resolution. Click to change.");
|
||||
uiDefButS(block, NUM, 0, "Y:", xco+19, yco-=20, 95, 19, &G.scene->r.yplay, 10.0, 2000.0, 0, 0, "Displays current Y screen/window resolution. Click to change.");
|
||||
|
||||
uiDefBut(block, SEPR, 0, "", xco, yco-=4, 114, 4, NULL, 0.0, 0.0, 0, 0, "");
|
||||
@@ -2545,10 +2545,10 @@ static uiBlock *info_runtime_optionsmenu(void *arg_unused)
|
||||
/* stereo settings */
|
||||
/* can't use any definition from the game engine here so hardcode it. Change it here when it changes there!
|
||||
* RAS_IRasterizer has definitions:
|
||||
* RAS_STEREO_NOSTEREO 1
|
||||
* RAS_STEREO_NOSTEREO 1
|
||||
* RAS_STEREO_QUADBUFFERED 2
|
||||
* RAS_STEREO_ABOVEBELOW 3
|
||||
* RAS_STEREO_INTERLACED 4 future
|
||||
* RAS_STEREO_ABOVEBELOW 3
|
||||
* RAS_STEREO_INTERLACED 4 future
|
||||
*/
|
||||
uiDefBut(block, LABEL, 0, "Stereo options", xco, yco-=20, 114, 19, 0, 0.0, 0.0, 0, 0, "");
|
||||
uiDefButS(block, ROW, 0, "no stereo", xco+19, yco-=20, 95, 19, &(G.scene->r.stereomode), 6.0, 1.0, 0, 0, "Disables stereo");
|
||||
@@ -2573,7 +2573,7 @@ static void do_info_file_importmenu(void *arg, int event)
|
||||
|
||||
/* these are no defines, easier this way, the codes are in the function below */
|
||||
switch(event) {
|
||||
|
||||
|
||||
case 0:
|
||||
break;
|
||||
}
|
||||
@@ -2609,7 +2609,7 @@ static void do_info_file_exportmenu(void *arg, int event)
|
||||
|
||||
/* these are no defines, easier this way, the codes are in the function below */
|
||||
switch(event) {
|
||||
|
||||
|
||||
case 0:
|
||||
write_vrml_fs();
|
||||
break;
|
||||
@@ -2836,7 +2836,7 @@ static void do_info_add_meshmenu(void *arg, int event)
|
||||
|
||||
static uiBlock *info_add_meshmenu(void *arg_unused)
|
||||
{
|
||||
/* static short tog=0; */
|
||||
/* static short tog=0; */
|
||||
uiBlock *block;
|
||||
short yco= 0;
|
||||
|
||||
@@ -2852,7 +2852,7 @@ static uiBlock *info_add_meshmenu(void *arg_unused)
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Cylinder|", 0, yco-=20, 160, 19, NULL, 0.0, 0.0, 1, 5, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Tube|", 0, yco-=20, 160, 19, NULL, 0.0, 0.0, 1, 6, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Cone|", 0, yco-=20, 160, 19, NULL, 0.0, 0.0, 1, 7, "");
|
||||
uiDefIconTextBut(block, SEPR, 0, ICON_BLANK1, "", 0, yco-=6, 160, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
uiDefIconTextBut(block, SEPR, 0, ICON_BLANK1, "", 0, yco-=6, 160, 6, NULL, 0.0, 0.0, 0, 0, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Grid|", 0, yco-=20, 160, 19, NULL, 0.0, 0.0, 1, 8, "");
|
||||
|
||||
uiBlockSetDirection(block, UI_RIGHT);
|
||||
@@ -2893,7 +2893,7 @@ static void do_info_add_curvemenu(void *arg, int event)
|
||||
|
||||
static uiBlock *info_add_curvemenu(void *arg_unused)
|
||||
{
|
||||
/* static short tog=0; */
|
||||
/* static short tog=0; */
|
||||
uiBlock *block;
|
||||
short yco= 0;
|
||||
|
||||
@@ -2950,7 +2950,7 @@ static void do_info_add_surfacemenu(void *arg, int event)
|
||||
|
||||
static uiBlock *info_add_surfacemenu(void *arg_unused)
|
||||
{
|
||||
/* static short tog=0; */
|
||||
/* static short tog=0; */
|
||||
uiBlock *block;
|
||||
short yco= 0;
|
||||
|
||||
@@ -3003,7 +3003,7 @@ static void do_info_add_metamenu(void *arg, int event)
|
||||
|
||||
static uiBlock *info_add_metamenu(void *arg_unused)
|
||||
{
|
||||
/* static short tog=0; */
|
||||
/* static short tog=0; */
|
||||
uiBlock *block;
|
||||
short xco= 0;
|
||||
|
||||
@@ -3073,7 +3073,7 @@ static void do_info_addmenu(void *arg, int event)
|
||||
|
||||
static uiBlock *info_addmenu(void *arg_unused)
|
||||
{
|
||||
/* static short tog=0; */
|
||||
/* static short tog=0; */
|
||||
uiBlock *block;
|
||||
short yco= 0;
|
||||
|
||||
@@ -3120,7 +3120,7 @@ static void do_info_gamemenu(void *arg, int event)
|
||||
|
||||
static uiBlock *info_gamemenu(void *arg_unused)
|
||||
{
|
||||
/* static short tog=0; */
|
||||
/* static short tog=0; */
|
||||
uiBlock *block;
|
||||
short yco= 0;
|
||||
short menuwidth=120;
|
||||
@@ -3137,7 +3137,7 @@ static uiBlock *info_gamemenu(void *arg_unused)
|
||||
if(G.fileflags & (1 << G_FILE_ENABLE_ALL_FRAMES_BIT)) {
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Enable All Frames", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, G_FILE_ENABLE_ALL_FRAMES_BIT, "");
|
||||
} else {
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Enable All Frames", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, G_FILE_ENABLE_ALL_FRAMES_BIT, "");
|
||||
uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Enable All Frames", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, G_FILE_ENABLE_ALL_FRAMES_BIT, "");
|
||||
}
|
||||
|
||||
if(G.fileflags & (1 << G_FILE_SHOW_FRAMERATE_BIT)) {
|
||||
@@ -3187,23 +3187,23 @@ static void do_info_timelinemenu(void *arg, int event)
|
||||
/* Show and select Keyframes */
|
||||
if (!ob) error("Select an object before showing and selecting its keyframes");
|
||||
else select_select_keys();
|
||||
break;
|
||||
case 3:
|
||||
break;
|
||||
case 3:
|
||||
/* select next keyframe */
|
||||
if (!ob) error("Select an object before selecting its next keyframe");
|
||||
else nextkey_obipo(1);
|
||||
break;
|
||||
case 4:
|
||||
break;
|
||||
case 4:
|
||||
/* select previous keyframe */
|
||||
if (!ob) error("Select an object before selecting its previous keyframe");
|
||||
else nextkey_obipo(-1);
|
||||
break;
|
||||
case 5:
|
||||
case 5:
|
||||
/* next keyframe */
|
||||
if (!ob) error("Select an object before going to its next keyframe");
|
||||
else movekey_obipo(1);
|
||||
break;
|
||||
case 6:
|
||||
break;
|
||||
case 6:
|
||||
/* previous keyframe */
|
||||
if (!ob) error("Select an object before going to its previous keyframe");
|
||||
else movekey_obipo(-1);
|
||||
@@ -3213,7 +3213,7 @@ static void do_info_timelinemenu(void *arg, int event)
|
||||
CFRA++;
|
||||
update_for_newframe();
|
||||
break;
|
||||
case 8:
|
||||
case 8:
|
||||
/* previous frame */
|
||||
CFRA--;
|
||||
if(CFRA<1) CFRA=1;
|
||||
@@ -3246,7 +3246,7 @@ static void do_info_timelinemenu(void *arg, int event)
|
||||
|
||||
static uiBlock *info_timelinemenu(void *arg_unused)
|
||||
{
|
||||
/* static short tog=0; */
|
||||
/* static short tog=0; */
|
||||
uiBlock *block;
|
||||
short yco= 0;
|
||||
short menuwidth=120;
|
||||
@@ -3316,13 +3316,13 @@ static void do_info_rendermenu(void *arg, int event)
|
||||
if(select_area(SPACE_VIEW3D)) {
|
||||
BIF_do_ogl_render(curarea->spacedata.first, 0 );
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
break;
|
||||
case 3:
|
||||
if(select_area(SPACE_VIEW3D)) {
|
||||
BIF_do_ogl_render(curarea->spacedata.first, 1 );
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
break;
|
||||
case 4:
|
||||
BIF_toggle_render_display();
|
||||
break;
|
||||
case 5:
|
||||
@@ -3359,7 +3359,7 @@ static void do_info_rendermenu(void *arg, int event)
|
||||
|
||||
break;
|
||||
|
||||
case 7:
|
||||
case 7:
|
||||
extern_set_butspace(F10KEY);
|
||||
break;
|
||||
}
|
||||
@@ -3368,7 +3368,7 @@ static void do_info_rendermenu(void *arg, int event)
|
||||
|
||||
static uiBlock *info_rendermenu(void *arg_unused)
|
||||
{
|
||||
/* static short tog=0; */
|
||||
/* static short tog=0; */
|
||||
uiBlock *block;
|
||||
short yco= 0;
|
||||
short menuwidth=120;
|
||||
@@ -3410,10 +3410,10 @@ static void do_info_help_websitesmenu(void *arg, int event)
|
||||
{
|
||||
/* these are no defines, easier this way, the codes are in the function below */
|
||||
switch(event) {
|
||||
case 0: /* */
|
||||
case 0: /* */
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
}
|
||||
|
||||
@@ -3475,7 +3475,7 @@ static void do_info_helpmenu(void *arg, int event)
|
||||
|
||||
static uiBlock *info_helpmenu(void *arg_unused)
|
||||
{
|
||||
/* static short tog=0; */
|
||||
/* static short tog=0; */
|
||||
uiBlock *block;
|
||||
short yco= 0;
|
||||
short menuwidth=120;
|
||||
@@ -3528,12 +3528,12 @@ static void info_text(int x, int y)
|
||||
|
||||
|
||||
if(G.obedit) {
|
||||
sprintf(infostr,"Ve:%d-%d Fa:%d-%d Mem:%.2fM ",
|
||||
sprintf(infostr,"Ve:%d-%d Fa:%d-%d Mem:%.2fM ",
|
||||
G.totvertsel, G.totvert, G.totfacesel, G.totface,
|
||||
(mem_in_use>>10)/1024.0);
|
||||
}
|
||||
else {
|
||||
sprintf(infostr,"Ve:%d Fa:%d Ob:%d-%d La:%d Mem:%.2fM ",
|
||||
sprintf(infostr,"Ve:%d Fa:%d Ob:%d-%d La:%d Mem:%.2fM ",
|
||||
G.totvert, G.totface, G.totobj, G.totobjsel, G.totlamp, (mem_in_use>>10)/1024.0);
|
||||
}
|
||||
ob= OBACT;
|
||||
@@ -3541,7 +3541,7 @@ static void info_text(int x, int y)
|
||||
strcat(infostr, ob->id.name+2);
|
||||
}
|
||||
|
||||
if (g_progress_bar) {
|
||||
if (g_progress_bar) {
|
||||
hsize = 4 + (138.0 * g_done);
|
||||
fac1 = 0.5 * g_done; // do some rainbow colours on progress
|
||||
fac2 = 1.0;
|
||||
@@ -3563,7 +3563,7 @@ static void info_text(int x, int y)
|
||||
swatch_color= hsv_to_cpack(fac1, fac2, fac3);
|
||||
|
||||
cpack( swatch_color );
|
||||
glRecti(x-24, y-4, x-24+hsize, y+13);
|
||||
glRecti(x-24, y-4, x-24+hsize, y+13);
|
||||
|
||||
glColor3ub(0, 0, 0);
|
||||
|
||||
@@ -3571,7 +3571,7 @@ static void info_text(int x, int y)
|
||||
|
||||
BIF_DrawString(G.font, headerstr, (U.transopts & TR_MENUS), 0);
|
||||
|
||||
glRasterPos2i(x+120, y);
|
||||
glRasterPos2i(x+120, y);
|
||||
|
||||
BIF_DrawString(G.font, infostr, (U.transopts & TR_MENUS), 0);
|
||||
}
|
||||
@@ -3600,11 +3600,11 @@ void info_buttons(void)
|
||||
if(U.uiflag & FLIPINFOMENU) {
|
||||
uiDefIconButS(block, TOG|BIT|6, B_FLIPINFOMENU, ICON_DISCLOSURE_TRI_RIGHT,
|
||||
xco,2,XIC,YIC-2,
|
||||
&(U.uiflag), 0, 0, 0, 0, "Enables display of pulldown menus");/* dir */
|
||||
&(U.uiflag), 0, 0, 0, 0, "Enables display of pulldown menus");/* dir */
|
||||
} else {
|
||||
uiDefIconButS(block, TOG|BIT|6, B_FLIPINFOMENU, ICON_DISCLOSURE_TRI_DOWN,
|
||||
xco,2,XIC,YIC-2,
|
||||
&(U.uiflag), 0, 0, 0, 0, "Hides pulldown menus");/* dir */
|
||||
&(U.uiflag), 0, 0, 0, 0, "Hides pulldown menus");/* dir */
|
||||
}
|
||||
xco+=XIC;
|
||||
|
||||
@@ -3690,11 +3690,11 @@ void info_buttons(void)
|
||||
if(U.uiflag & FLIPFULLSCREEN) {
|
||||
uiDefIconBut(block, BUT, B_FLIPFULLSCREEN, ICON_WINDOW_WINDOW,
|
||||
(short)(curarea->winx-(XIC*2)-2), 0,XIC,YIC,
|
||||
0, 0, 0, 0, 0, "Toggles Blender to fullscreen mode");/* dir */
|
||||
0, 0, 0, 0, 0, "Toggles Blender to fullscreen mode");/* dir */
|
||||
} else {
|
||||
uiDefIconBut(block, BUT, B_FLIPFULLSCREEN, ICON_WINDOW_FULLSCREEN,
|
||||
(short)(curarea->winx-(XIC*2)-2), 0,XIC,YIC,
|
||||
0, 0, 0, 0, 0, "Toggles Blender to fullscreen mode");/* dir */
|
||||
0, 0, 0, 0, 0, "Toggles Blender to fullscreen mode");/* dir */
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -3798,7 +3798,7 @@ void do_layer_buttons(short event)
|
||||
}
|
||||
if(G.qual & LR_SHIFTKEY) {
|
||||
if(G.vd->lay & (1<<event)) G.vd->lay -= (1<<event);
|
||||
else G.vd->lay += (1<<event);
|
||||
else G.vd->lay += (1<<event);
|
||||
}
|
||||
do_view3d_buttons(event+B_LAY);
|
||||
}
|
||||
@@ -3839,7 +3839,7 @@ static void do_view3d_view_cameracontrolsmenu(void *arg, int event)
|
||||
|
||||
static uiBlock *view3d_view_cameracontrolsmenu(void *arg_unused)
|
||||
{
|
||||
/* static short tog=0; */
|
||||
/* static short tog=0; */
|
||||
uiBlock *block;
|
||||
short yco= 0, menuwidth=120;
|
||||
|
||||
@@ -3925,7 +3925,7 @@ static void do_view3d_viewmenu(void *arg, int event)
|
||||
|
||||
static uiBlock *view3d_viewmenu(void *arg_unused)
|
||||
{
|
||||
/* static short tog=0; */
|
||||
/* static short tog=0; */
|
||||
uiBlock *block;
|
||||
short yco= 0, menuwidth=120;
|
||||
|
||||
@@ -4385,7 +4385,7 @@ static uiBlock *view3d_select_faceselmenu(void *arg_unused)
|
||||
static void do_view3d_edit_object_transformmenu(void *arg, int event)
|
||||
{
|
||||
switch(event) {
|
||||
case 0: /* clear origin */
|
||||
case 0: /* clear origin */
|
||||
clear_object('o');
|
||||
break;
|
||||
case 1: /* clear size */
|
||||
@@ -4440,7 +4440,7 @@ static void do_view3d_edit_object_parentmenu(void *arg, int event)
|
||||
case 1: /* make parent */
|
||||
make_parent();
|
||||
break;
|
||||
}
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
}
|
||||
|
||||
@@ -4470,7 +4470,7 @@ static void do_view3d_edit_object_trackmenu(void *arg, int event)
|
||||
case 1: /* make track */
|
||||
make_track();
|
||||
break;
|
||||
}
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
}
|
||||
|
||||
@@ -4502,7 +4502,7 @@ static void do_view3d_edit_objectmenu(void *arg, int event)
|
||||
|
||||
switch(event) {
|
||||
|
||||
case 0: /* transform properties*/
|
||||
case 0: /* transform properties*/
|
||||
blenderqread(NKEY, 1);
|
||||
break;
|
||||
case 1: /* delete */
|
||||
@@ -4625,7 +4625,7 @@ static void do_view3d_edit_propfalloffmenu(void *arg, int event)
|
||||
case 1: /* proportional edit - smooth*/
|
||||
prop_mode = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
}
|
||||
|
||||
@@ -4654,7 +4654,7 @@ static void do_view3d_edit_mesh_verticesmenu(void *arg, int event)
|
||||
extern float doublimit;
|
||||
|
||||
switch(event) {
|
||||
|
||||
|
||||
case 0: /* make vertex parent */
|
||||
make_parent();
|
||||
break;
|
||||
@@ -4711,7 +4711,7 @@ static void do_view3d_edit_mesh_edgesmenu(void *arg, int event)
|
||||
short randfac;
|
||||
|
||||
switch(event) {
|
||||
|
||||
|
||||
case 0: /* subdivide smooth */
|
||||
subdivideflag(1, 0.0, editbutflag | B_SMOOTH);
|
||||
break;
|
||||
@@ -4774,7 +4774,7 @@ static void do_view3d_edit_mesh_facesmenu(void *arg, int event)
|
||||
case 4: /* Flip triangle edges */
|
||||
edge_flip();
|
||||
break;
|
||||
}
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
}
|
||||
|
||||
@@ -4813,7 +4813,7 @@ static void do_view3d_edit_mesh_normalsmenu(void *arg, int event)
|
||||
case 2: /* recalculate outside */
|
||||
righthandfaces(1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
}
|
||||
|
||||
@@ -4841,7 +4841,7 @@ static uiBlock *view3d_edit_mesh_normalsmenu(void *arg_unused)
|
||||
static void do_view3d_edit_meshmenu(void *arg, int event)
|
||||
{
|
||||
switch(event) {
|
||||
|
||||
|
||||
case 0: /* Undo Editing */
|
||||
remake_editMesh();
|
||||
break;
|
||||
@@ -4996,7 +4996,7 @@ static void do_view3d_edit_curve_controlpointsmenu(void *arg, int event)
|
||||
case 5: /* make vertex parent */
|
||||
make_parent();
|
||||
break;
|
||||
}
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
}
|
||||
|
||||
@@ -5038,7 +5038,7 @@ static void do_view3d_edit_curve_segmentsmenu(void *arg, int event)
|
||||
case 1: /* switch direction */
|
||||
switchdirectionNurb2();
|
||||
break;
|
||||
}
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
}
|
||||
|
||||
@@ -5300,7 +5300,7 @@ static void do_view3d_edit_text_charsmenu(void *arg, int event)
|
||||
case 16: /* spanish exclamation mark */
|
||||
do_textedit(0,0,161);
|
||||
break;
|
||||
}
|
||||
}
|
||||
allqueue(REDRAWVIEW3D, 0);
|
||||
}
|
||||
|
||||
@@ -5349,7 +5349,7 @@ static uiBlock *view3d_edit_text_charsmenu(void *arg_unused)
|
||||
static void do_view3d_edit_textmenu(void *arg, int event)
|
||||
{
|
||||
switch(event) {
|
||||
|
||||
|
||||
case 0: /* Undo Editing */
|
||||
remake_editText();
|
||||
break;
|
||||
@@ -5401,7 +5401,7 @@ static uiBlock *view3d_edit_textmenu(void *arg_unused)
|
||||
static void do_view3d_edit_latticemenu(void *arg, int event)
|
||||
{
|
||||
switch(event) {
|
||||
|
||||
|
||||
case 0: /* Undo Editing */
|
||||
remake_editLatt();
|
||||
break;
|
||||
@@ -5561,7 +5561,7 @@ static uiBlock *view3d_edit_armaturemenu(void *arg_unused)
|
||||
static void do_view3d_pose_armature_transformmenu(void *arg, int event)
|
||||
{
|
||||
switch(event) {
|
||||
case 0: /* clear origin */
|
||||
case 0: /* clear origin */
|
||||
clear_object('o');
|
||||
break;
|
||||
case 1: /* clear size */
|
||||
@@ -5700,7 +5700,7 @@ static void do_view3d_facesel_propertiesmenu(void *arg, int event)
|
||||
set_lasttface();
|
||||
|
||||
switch(event) {
|
||||
case 0: /* textured */
|
||||
case 0: /* textured */
|
||||
lasttface->mode ^= TF_TEX;
|
||||
break;
|
||||
case 1: /* tiled*/
|
||||
@@ -5817,7 +5817,7 @@ static uiBlock *view3d_facesel_propertiesmenu(void *arg_unused)
|
||||
|
||||
static void do_view3d_faceselmenu(void *arg, int event)
|
||||
{
|
||||
/* code copied from buttons.c :(
|
||||
/* code copied from buttons.c :(
|
||||
would be nice if it was split up into functions */
|
||||
Mesh *me;
|
||||
Object *ob;
|
||||
@@ -6193,10 +6193,10 @@ void do_view3d_buttons(short event)
|
||||
if (curarea->spacetype==SPACE_VIEW3D) {
|
||||
BIF_do_ogl_render(curarea->spacedata.first, G.qual!=0 );
|
||||
}
|
||||
break;
|
||||
break;
|
||||
case B_STARTGAME:
|
||||
if (select_area(SPACE_VIEW3D)) {
|
||||
start_game();
|
||||
start_game();
|
||||
}
|
||||
break;
|
||||
case B_VIEWZOOM:
|
||||
@@ -6819,14 +6819,14 @@ void ipo_buttons(void)
|
||||
if(ob && give_current_material(ob, ob->actcol)) {
|
||||
uiDefIconButS(block, ROW, B_IPOMAIN, ICON_MATERIAL, xco+=XIC,0,XIC,YIC, &G.sipo->blocktype, 1.0, (float)ID_MA, 0, 0, "Displays Material Ipos");
|
||||
if(G.sipo->blocktype==ID_MA) {
|
||||
uiDefButS(block, NUM, B_IPOMAIN, "", xco+=XIC,0,XIC-4,YIC, &G.sipo->channel, 0.0, 7.0, 0, 0, "Displays Channel Number of the active Material texture. Click to change.");
|
||||
uiDefButS(block, NUM, B_IPOMAIN, "", xco+=XIC,0,XIC-4,YIC, &G.sipo->channel, 0.0, 7.0, 0, 0, "Displays Channel Number of the active Material texture. Click to change.");
|
||||
xco-= 4;
|
||||
}
|
||||
}
|
||||
if(G.scene->world) {
|
||||
uiDefIconButS(block, ROW, B_IPOMAIN, ICON_WORLD, xco+=XIC,0,XIC,YIC, &G.sipo->blocktype, 1.0, (float)ID_WO, 0, 0, "Display World Ipos");
|
||||
if(G.sipo->blocktype==ID_WO) {
|
||||
uiDefButS(block, NUM, B_IPOMAIN, "", xco+=XIC,0,XIC-4,YIC, &G.sipo->channel, 0.0, 7.0, 0, 0, "Displays Channel Number of the active World texture. Click to change.");
|
||||
uiDefButS(block, NUM, B_IPOMAIN, "", xco+=XIC,0,XIC-4,YIC, &G.sipo->channel, 0.0, 7.0, 0, 0, "Displays Channel Number of the active World texture. Click to change.");
|
||||
xco-= 4;
|
||||
}
|
||||
}
|
||||
@@ -6840,7 +6840,7 @@ void ipo_buttons(void)
|
||||
if(ob && ob->type==OB_LAMP) {
|
||||
uiDefIconButS(block, ROW, B_IPOMAIN, ICON_LAMP, xco+=XIC,0,XIC,YIC, &G.sipo->blocktype, 1.0, (float)ID_LA, 0, 0, "Display Lamp Ipos");
|
||||
if(G.sipo->blocktype==ID_LA) {
|
||||
uiDefButS(block, NUM, B_IPOMAIN, "", xco+=XIC,0,XIC-4,YIC, &G.sipo->channel, 0.0, 7.0, 0, 0, "Displays Channel Number of the active Lamp texture. Click to change.");
|
||||
uiDefButS(block, NUM, B_IPOMAIN, "", xco+=XIC,0,XIC-4,YIC, &G.sipo->channel, 0.0, 7.0, 0, 0, "Displays Channel Number of the active Lamp texture. Click to change.");
|
||||
xco-= 4;
|
||||
}
|
||||
}
|
||||
@@ -6886,8 +6886,8 @@ void ipo_buttons(void)
|
||||
/* EXTRAP */
|
||||
uiDefIconBut(block, BUT, B_IPOCONT, ICON_CONSTANT, xco+=XIC,0,XIC,YIC, 0, 0, 0, 0, 0, "Sets the extend mode to constant");
|
||||
uiDefIconBut(block, BUT, B_IPOEXTRAP, ICON_LINEAR, xco+=XIC,0,XIC,YIC, 0, 0, 0, 0, 0, "Sets the extend mode to extrapolation");
|
||||
uiDefIconBut(block, BUT, B_IPOCYCLIC, ICON_CYCLIC, xco+=XIC,0,XIC,YIC, 0, 0, 0, 0, 0, "Sets the extend mode to cyclic");
|
||||
uiDefIconBut(block, BUT, B_IPOCYCLICX, ICON_CYCLICLINEAR, xco+=XIC,0,XIC,YIC, 0, 0, 0, 0, 0, "Sets the extend mode to cyclic extrapolation");
|
||||
uiDefIconBut(block, BUT, B_IPOCYCLIC, ICON_CYCLIC, xco+=XIC,0,XIC,YIC, 0, 0, 0, 0, 0, "Sets the extend mode to cyclic");
|
||||
uiDefIconBut(block, BUT, B_IPOCYCLICX, ICON_CYCLICLINEAR, xco+=XIC,0,XIC,YIC, 0, 0, 0, 0, 0, "Sets the extend mode to cyclic extrapolation");
|
||||
xco+= XIC/2;
|
||||
|
||||
uiClearButLock();
|
||||
@@ -7072,7 +7072,7 @@ void buttons_active_id(ID **id, ID **idfrom)
|
||||
*id= (ID *)ob;
|
||||
}
|
||||
}
|
||||
else if(G.buts->mainb==CONTEXT_TYPES || G.buts->mainb==CONTEXT_EDITING) {
|
||||
else if(G.buts->mainb==CONTEXT_TYPES || G.buts->mainb==CONTEXT_EDITING) {
|
||||
if(ob && ob->data) {
|
||||
*id= ob->data;
|
||||
}
|
||||
@@ -7097,7 +7097,7 @@ void buttons_active_id(ID **id, ID **idfrom)
|
||||
} else {
|
||||
*id = G.main->sound.first;
|
||||
}
|
||||
// printf("id: %d\n\n", *id);
|
||||
// printf("id: %d\n\n", *id);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -7398,7 +7398,7 @@ void buts_buttons(void)
|
||||
}
|
||||
|
||||
xco= std_libbuttons(block, xco, 0, NULL, browse, id, idfrom, &(G.buts->menunr), alone, local, 0, 0, B_KEEPDATA);
|
||||
|
||||
|
||||
xco+= XIC;
|
||||
}
|
||||
if(ob) {
|
||||
@@ -7506,7 +7506,7 @@ void file_buttons(void)
|
||||
uiDefIconButS(block, ROW, B_SORTFILELIST, ICON_SORTSIZE, xco+=XIC,0,XIC,YIC, &sfile->sort, 1.0, 2.0, 0, 0, "Sorts files by size");
|
||||
|
||||
cpack(0x0);
|
||||
glRasterPos2i(xco+=XIC+10, 5);
|
||||
glRasterPos2i(xco+=XIC+10, 5);
|
||||
|
||||
BIF_DrawString(uiBlockGetCurFont(block), sfile->title, (U.transopts & TR_BUTTONS), 0);
|
||||
xco+= BIF_GetStringWidth(G.font, sfile->title, (U.transopts & TR_BUTTONS));
|
||||
@@ -7526,11 +7526,11 @@ void file_buttons(void)
|
||||
|
||||
filesel_statistics(sfile, &totfile, &selfile, &totlen, &sellen);
|
||||
|
||||
sprintf(naam, "Free: %.3f Mb Files: (%d) %d (%.3f) %.3f Mb",
|
||||
sprintf(naam, "Free: %.3f Mb Files: (%d) %d (%.3f) %.3f Mb",
|
||||
df, selfile,totfile, sellen, totlen);
|
||||
|
||||
cpack(0x0);
|
||||
glRasterPos2i(xco, 5);
|
||||
glRasterPos2i(xco, 5);
|
||||
|
||||
BIF_DrawString(uiBlockGetCurFont(block), naam, 0, 0);
|
||||
}
|
||||
@@ -7628,7 +7628,7 @@ void oops_buttons(void)
|
||||
else strcpy(naam, oops->id->name);
|
||||
|
||||
cpack(0x0);
|
||||
glRasterPos2i(xco+=XIC+10, 5);
|
||||
glRasterPos2i(xco+=XIC+10, 5);
|
||||
BMF_DrawString(uiBlockGetCurFont(block), naam);
|
||||
|
||||
}
|
||||
@@ -7807,7 +7807,7 @@ void text_buttons(void)
|
||||
|
||||
|
||||
|
||||
/* ******************** TEXT ********************** */
|
||||
/* ******************** TEXT ********************** */
|
||||
/* ******************** SOUND ********************** */
|
||||
|
||||
void load_space_sound(char *str) /* called from fileselect */
|
||||
@@ -8476,14 +8476,14 @@ void imasel_buttons(void)
|
||||
xco+=XIC;
|
||||
if (simasel->title){
|
||||
xco+=25;
|
||||
glRasterPos2i(xco, 4);
|
||||
glRasterPos2i(xco, 4);
|
||||
BMF_DrawString(G.font, simasel->title);
|
||||
xco+=BMF_GetStringWidth(G.fonts, simasel->title);
|
||||
xco+=25;
|
||||
}
|
||||
uiDefIconBut(block, BUT, B_IMASELREMOVEBIP, ICON_BPIBFOLDER_X, xco+=XIC,0,XIC,YIC, 0, 0, 0, 0, 0, "");/* remove */
|
||||
|
||||
uiDefIconButS(block, TOG|BIT|0, B_REDR, ICON_BPIBFOLDERGREY, xco+=XIC,0,XIC,YIC, &simasel->mode, 0, 0, 0, 0, "Toggles display of directory information");/* dir */
|
||||
uiDefIconButS(block, TOG|BIT|0, B_REDR, ICON_BPIBFOLDERGREY, xco+=XIC,0,XIC,YIC, &simasel->mode, 0, 0, 0, 0, "Toggles display of directory information");/* dir */
|
||||
uiDefIconButS(block, TOG|BIT|1, B_REDR, ICON_INFO, xco+=XIC,0,XIC,YIC, &simasel->mode, 0, 0, 0, 0, "Toggles display of selected image information");/* info */
|
||||
uiDefIconButS(block, TOG|BIT|2, B_REDR, ICON_IMAGE_COL, xco+=XIC,0,XIC,YIC, &simasel->mode, 0, 0, 0, 0, "");/* image */
|
||||
uiDefIconButS(block, TOG|BIT|3, B_REDR, ICON_MAGNIFY, xco+=XIC,0,XIC,YIC, &simasel->mode, 0, 0, 0, 0, "Toggles magnified view of thumbnail of images under mouse pointer");/* magnify */
|
||||
|
||||
Reference in New Issue
Block a user