added IPO header pull-down menus.

This commit is contained in:
Simon Clitherow
2003-10-25 13:29:38 +00:00
parent 0c00846c65
commit 084cb3aadc
2 changed files with 492 additions and 58 deletions

View File

@@ -1475,7 +1475,7 @@ void set_editflag_editipo()
}
}
}
scrarea_queue_headredraw(curarea);
scrarea_queue_winredraw(curarea);
}

View File

@@ -54,6 +54,7 @@
#include "DNA_ID.h"
#include "DNA_curve_types.h"
#include "DNA_key_types.h"
#include "DNA_ipo_types.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
@@ -61,6 +62,7 @@
#include "DNA_space_types.h"
#include "BIF_interface.h"
#include "BIF_mainqueue.h"
#include "BIF_resources.h"
#include "BIF_screen.h"
#include "BIF_space.h"
@@ -82,6 +84,424 @@
#include "mydevice.h"
static int viewmovetemp = 0;
extern int totipo_edit, totipo_sel;
static void do_ipo_editmenu_keymenu(void *arg, int event)
{
Key *key;
KeyBlock *kb;
if(G.sipo->blocktype==ID_KE && totipo_edit==0 && totipo_sel==0) {
key= (Key *)G.sipo->from;
if(key==0) return;
kb= key->block.first;
while(kb) {
if(kb->flag & SELECT) {
kb->type= 0;
switch(event){
case 0:
printf("has it done anything?!\n");
kb->type= KEY_LINEAR;
break;
case 1:
kb->type= KEY_CARDINAL;
break;
case 2:
kb->type= KEY_BSPLINE;
break;
}
}
kb= kb->next;
}
}
}
static uiBlock *ipo_editmenu_keymenu(void *arg_unused)
{
uiBlock *block;
EditIpo *ei;
short yco= 0, menuwidth=120;
block= uiNewBlock(&curarea->uiblocks, "ipo_editmenu_keymenu", UI_EMBOSSP, UI_HELV, G.curscreen->mainwin);
uiBlockSetButmFunc(block, do_ipo_editmenu_keymenu, NULL);
ei = get_editipo();
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Linear", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 0, "");
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Cardinal", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 1, "");
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "BSpline", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 2, "");
uiBlockSetDirection(block, UI_RIGHT);
uiTextBoundsBlock(block, 60);
return block;
}
static void do_ipo_editmenu_handlemenu(void *arg, int event)
{
switch(event){
case 0:
sethandles_ipo(HD_AUTO);
break;
case 1:
case 2:
sethandles_ipo(HD_ALIGN);
break;
case 3:
sethandles_ipo(HD_VECT);
break;
}
}
static uiBlock *ipo_editmenu_handlemenu(void *arg_unused)
{
uiBlock *block;
short yco= 0, menuwidth=120;
block= uiNewBlock(&curarea->uiblocks, "ipo_editmenu_handlemenu", UI_EMBOSSP, UI_HELV, G.curscreen->mainwin);
uiBlockSetButmFunc(block, do_ipo_editmenu_handlemenu, NULL);
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Auto|Shift H", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 0, "");
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Aligned|H", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 1, "");
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Free|H", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 2, "");
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Vector|V", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 3, "");
uiBlockSetDirection(block, UI_RIGHT);
uiTextBoundsBlock(block, 60);
return block;
}
static void do_ipo_editmenu_intpolmenu(void *arg, int event)
{
EditIpo *ei;
int a;
get_status_editipo();
ei = G.sipo->editipo;
switch(event)
{
case 0:
for(a=0; a<G.sipo->totipo; a++, ei++) {
if ISPOIN3(ei, flag & IPO_VISIBLE, flag & IPO_SELECT, icu) {
ei->icu->ipo= IPO_CONST;
}
}
break;
case 1:
for(a=0; a<G.sipo->totipo; a++, ei++) {
if ISPOIN3(ei, flag & IPO_VISIBLE, flag & IPO_SELECT, icu) {
ei->icu->ipo= IPO_LIN;
}
}
break;
case 2:
for(a=0; a<G.sipo->totipo; a++, ei++) {
if ISPOIN3(ei, flag & IPO_VISIBLE, flag & IPO_SELECT, icu) {
ei->icu->ipo= IPO_BEZ;
}
}
break;
}
scrarea_queue_winredraw(curarea);
}
static uiBlock *ipo_editmenu_intpolmenu(void *arg_unused)
{
uiBlock *block;
short yco= 0, menuwidth=120;
block= uiNewBlock(&curarea->uiblocks, "ipo_editmenu_intpolmenu", UI_EMBOSSP, UI_HELV, G.curscreen->mainwin);
uiBlockSetButmFunc(block, do_ipo_editmenu_intpolmenu, NULL);
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Constant", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 0, "");
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Linear", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 1, "");
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Bezier", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 2, "");
uiBlockSetDirection(block, UI_RIGHT);
uiTextBoundsBlock(block, 60);
return block;
}
static void do_ipo_editmenu_extendmenu(void *arg, int event)
{
switch(event)
{
case 0:
do_ipo_buttons(B_IPOCONT);
break;
case 1:
do_ipo_buttons(B_IPOEXTRAP);
break;
case 2:
do_ipo_buttons(B_IPOCYCLIC);
break;
case 3:
do_ipo_buttons(B_IPOCYCLICX);
break;
}
}
static uiBlock *ipo_editmenu_extendmenu(void *arg_unused)
{
uiBlock *block;
short yco= 0, menuwidth=120;
block= uiNewBlock(&curarea->uiblocks, "ipo_editmenu_extendmenu", UI_EMBOSSP, UI_HELV, G.curscreen->mainwin);
uiBlockSetButmFunc(block, do_ipo_editmenu_extendmenu, NULL);
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Constant", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 0, "");
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Extrapolation", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 1, "");
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Cyclic", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 2, "");
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Cyclic Extrapolation", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 3, "");
uiBlockSetDirection(block, UI_RIGHT);
uiTextBoundsBlock(block, 60);
return block;
}
static void do_ipo_editmenu(void *arg, int event)
{
switch(event)
{
case 0:
del_ipo();
break;
case 1:
add_duplicate_editipo();
break;
case 2:
ipo_record();
break;
case 3:
mainqenter(IKEY, 1);
break;
}
}
static uiBlock *ipo_editmenu(void *arg_unused)
{
uiBlock *block;
EditIpo *ei;
short yco= 0, menuwidth=120;
get_status_editipo();
ei = G.sipo->editipo;
block= uiNewBlock(&curarea->uiblocks, "ipo_editmenu", UI_EMBOSSP, UI_HELV, curarea->headwin);
uiBlockSetButmFunc(block, do_ipo_editmenu, NULL);
if (!G.sipo->showkey){
uiDefIconTextBlockBut(block, ipo_editmenu_extendmenu, NULL, ICON_RIGHTARROW_THIN, "Extend Mode", 0, yco-=20, 120, 19, "");
uiDefIconTextBlockBut(block, ipo_editmenu_intpolmenu, NULL, ICON_RIGHTARROW_THIN, "Interpolation Mode", 0, yco-=20, 120, 20, "");
if(ei != NULL && (ei->flag & IPO_EDIT))
uiDefIconTextBlockBut(block, ipo_editmenu_handlemenu, NULL, ICON_RIGHTARROW_THIN, "Handle Type", 0, yco-=20, 120, 19, "");
if(G.sipo->blocktype==ID_KE && totipo_edit==0 && totipo_sel==0)
uiDefIconTextBlockBut(block, ipo_editmenu_keymenu, NULL, ICON_RIGHTARROW_THIN, "Key Type", 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, "Delete|X", 0, yco-=20, menuwidth, 19, 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, 0, 1, "");
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Record Mouse Movement|R", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 2, "");
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, 0, 3, "");
if(curarea->headertype==HEADERTOP) {
uiBlockSetDirection(block, UI_DOWN);
}
else {
uiBlockSetDirection(block, UI_TOP);
uiBlockFlipOrder(block);
}
uiTextBoundsBlock(block, 50);
return block;
}
static void do_ipo_viewmenu(void *arg, int event)
{
switch(event)
{
case 1:
do_ipo_buttons(B_IPOHOME);
break;
case 2:
ipo_toggle_showkey();
scrarea_queue_headredraw(curarea);
scrarea_queue_winredraw(curarea);
allqueue(REDRAWVIEW3D, 0);
break;
case 3:
move_to_frame();
break;
case 4:
mainqenter(PADPLUSKEY,1);
break;
case 5:
mainqenter(PADMINUS,1);
break;
}
}
static uiBlock *ipo_viewmenu(void *arg_unused)
{
uiBlock *block;
EditIpo *ei;
short yco= 0, menuwidth=120;
ei = get_editipo();
block= uiNewBlock(&curarea->uiblocks, "ipo_viewmenu", UI_EMBOSSP, UI_HELV, curarea->headwin);
uiBlockSetButmFunc(block, do_ipo_viewmenu, NULL);
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, "Zoom In|Numpad +", 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, "");
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Frame All|Home", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 1, "");
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
if (ei != NULL && (ei->flag & IPO_EDIT)) {
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Move Current Frame to Selected|C", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 3, "");
}
if (G.sipo->showkey) {
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_HLT, "Show Keys|K", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 2, "");
}
else
uiDefIconTextBut(block, BUTM, 1, ICON_CHECKBOX_DEHLT, "Show Keys|K", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 2, "");
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,20, "");
else uiDefIconTextBut(block, BUTM, B_FULL, ICON_BLANK1, "Tile Window|Ctrl DownArrow", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 20, "");
if(curarea->headertype==HEADERTOP) {
uiBlockSetDirection(block, UI_DOWN);
}
else {
uiBlockSetDirection(block, UI_TOP);
uiBlockFlipOrder(block);
}
uiTextBoundsBlock(block, 50);
return block;
}
static void do_ipo_selectmenu(void *arg, int event)
{
switch(event)
{
case 0:
borderselect_ipo();
break;
case 1:
swap_selectall_editipo();
break;
}
}
static uiBlock *ipo_selectmenu(void *arg_unused)
{
uiBlock *block;
short yco= 0, menuwidth=120;
block= uiNewBlock(&curarea->uiblocks, "ipo_selectmenu", UI_EMBOSSP, UI_HELV, curarea->headwin);
uiBlockSetButmFunc(block, do_ipo_selectmenu, NULL);
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Border Select|B", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 0, "");
uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Select/Deselect All|A", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 0, 1, "");
if(curarea->headertype==HEADERTOP) {
uiBlockSetDirection(block, UI_DOWN);
}
else {
uiBlockSetDirection(block, UI_TOP);
uiBlockFlipOrder(block);
}
uiTextBoundsBlock(block, 50);
return block;
}
static char *ipo_modeselect_pup(void)
{
static char string[1024];
char tmpstr[1024];
char formatstring[1024];
strcpy(string, "Display IPO type: %t");
strcat(formatstring, "|%s %%x%d");
if(OBACT) {
sprintf(tmpstr,formatstring,"Object",ID_OB);
strcat(string,tmpstr);
}
if(OBACT && give_current_material(OBACT, OBACT->actcol)) { // check for material
sprintf(tmpstr,formatstring,"Material",ID_MA);
strcat(string,tmpstr);
}
if(G.scene->world) {
sprintf(tmpstr,formatstring,"World",ID_WO);
strcat(string,tmpstr);
}
if(OBACT && OBACT->type==OB_CURVE) {
sprintf(tmpstr,formatstring,"Curve",ID_WO);
strcat(string,tmpstr);
}
if(OBACT && OBACT->type==OB_CAMERA) {
sprintf(tmpstr,formatstring,"Camera",ID_CA);
strcat(string,tmpstr);
}
if(OBACT && OBACT->type==OB_LAMP) {
sprintf(tmpstr,formatstring,"Lamp",ID_LA);
strcat(string,tmpstr);
}
if(OBACT){
if ELEM4(OBACT->type, OB_MESH, OB_CURVE, OB_SURF, OB_LATTICE) {
sprintf(tmpstr,formatstring,"Vertex",ID_KE);
strcat(string,tmpstr);
}
if (OBACT->action){
sprintf(tmpstr,formatstring,"Action",ID_AC);
strcat(string,tmpstr);
}
#ifdef __CON_IPO
sprintf(tmpstr,formatstring,"Constraint",IPO_CO);
strcat(string,tmpstr);
#endif
}
sprintf(tmpstr,formatstring,"Sequence",ID_SEQ);
strcat(string,tmpstr);
return (string);
}
void do_ipo_buttons(short event)
{
@@ -203,10 +623,12 @@ void do_ipo_buttons(short event)
void ipo_buttons(void)
{
Object *ob;
EditIpo *ei;
ID *id, *from;
uiBlock *block;
short xco;
short xco,xmax;
char naam[20];
int icon;
sprintf(naam, "header %d", curarea->headwin);
block= uiNewBlock(&curarea->uiblocks, naam, UI_EMBOSS, UI_HELV, curarea->headwin);
@@ -224,63 +646,82 @@ void ipo_buttons(void)
test_editipo(); /* test if current editipo is OK, make_editipo sets v2d->cur */
/* FULL WINDOW en HOME */
/* pull down menus */
uiBlockSetEmboss(block, UI_EMBOSSP);
if(curarea->full) uiDefIconBut(block, BUT,B_FULL, ICON_SPLITSCREEN, xco,0,XIC,YIC, 0, 0, 0, 0, 0, "Returns to multiple views window (CTRL+Up arrow)");
else uiDefIconBut(block, BUT,B_FULL, ICON_FULLSCREEN, xco,0,XIC,YIC, 0, 0, 0, 0, 0, "Makes current window full screen (CTRL+Down arrow)");
uiDefIconBut(block, BUT, B_IPOHOME, ICON_HOME, xco+=XIC,0,XIC,YIC, 0, 0, 0, 0, 0, "Zooms window to home view showing all items (HOMEKEY)");
uiDefIconButS(block, ICONTOG, B_IPOSHOWKEY, ICON_KEY_DEHLT, xco+=XIC,0,XIC,YIC, &G.sipo->showkey, 0, 0, 0, 0, "Toggles between Curve and Key display (KKEY)");
ei = get_editipo();
xmax= GetButStringLength("View");
uiDefBlockBut(block,ipo_viewmenu, NULL, "View", xco, 0, xmax, 20, "");
xco+=xmax;
xmax= GetButStringLength("Select");
uiDefBlockBut(block,ipo_selectmenu, NULL, "Select", xco, 0, xmax, 20, "");
xco+=xmax;
if (G.sipo->showkey) {
xmax= GetButStringLength("Key");
uiDefBlockBut(block,ipo_editmenu, NULL, "Key", xco, 0, xmax, 20, "");
}
else if(ei != NULL && (ei->flag & IPO_EDIT)) {
xmax= GetButStringLength("Point");
uiDefBlockBut(block,ipo_editmenu, NULL, "Point", xco, 0, xmax, 20, "");
}
else {
xmax= GetButStringLength("Curve");
uiDefBlockBut(block,ipo_editmenu, NULL, "Curve", xco, 0, xmax, 20, "");
}
xco+=xmax;
/* end of pull down menus */
uiBlockSetEmboss(block, UI_EMBOSSX);
/* mainmenu, only when data is there and no pin */
uiSetButLock(G.sipo->pin, "Can't change because of pinned data");
ob= OBACT;
xco+= XIC/2;
uiDefIconButS(block, ROW, B_IPOMAIN, ICON_OBJECT, xco+=XIC,0,XIC,YIC, &G.sipo->blocktype, 1.0, (float)ID_OB, 0, 0, "Displays Object Ipos");
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.");
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.");
xco-= 4;
}
}
if(ob && ob->type==OB_CURVE)
uiDefIconButS(block, ROW, B_IPOMAIN, ICON_ANIM, xco+=XIC,0,XIC,YIC, &G.sipo->blocktype, 1.0, (float)ID_CU, 0, 0, "Display Curve Ipos");
if(ob && ob->type==OB_CAMERA)
uiDefIconButS(block, ROW, B_IPOMAIN, ICON_CAMERA, xco+=XIC,0,XIC,YIC, &G.sipo->blocktype, 1.0, (float)ID_CA, 0, 0, "Display Camera Ipos");
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.");
xco-= 4;
}
}
if(ob) {
if ELEM4(ob->type, OB_MESH, OB_CURVE, OB_SURF, OB_LATTICE)
uiDefIconButS(block, ROW, B_IPOMAIN, ICON_EDIT, xco+=XIC,0,XIC,YIC, &G.sipo->blocktype, 1.0, (float)ID_KE, 0, 0, "Displays VertexKeys Ipos");
if (ob->action)
uiDefIconButS(block, ROW, B_IPOMAIN, ICON_ACTION, xco+=XIC,0,XIC,YIC, &G.sipo->blocktype, 1.0, (float)ID_AC, 0, 0, "Displays Action Ipos");
#ifdef __CON_IPO
uiDefIconButS(block, ROW, B_IPOMAIN, ICON_CONSTRAINT, xco+=XIC,0,XIC,YIC, &G.sipo->blocktype, 1.0, (float)IPO_CO, 0, 0, "Displays Constraint Ipos");
#endif
}
uiDefIconButS(block, ROW, B_IPOMAIN, ICON_SEQUENCE, xco+=XIC,0,XIC,YIC, &G.sipo->blocktype, 1.0, (float)ID_SEQ, 0, 0, "Displays Sequence Ipos");
xco+= 10;
// if(G.buts && G.buts->mainb == BUTS_SOUND && G.buts->lockpoin)
// uiDefIconButS(block, ROW, B_IPOMAIN, ICON_SOUND, xco+=XIC,0,XIC,YIC, &G.sipo->blocktype, 1.0, (float)ID_SO, 0, 0, "Displays Sound Ipos");
if (G.sipo->blocktype == ID_OB)
icon = ICON_OBJECT;
else if (G.sipo->blocktype == ID_MA)
icon = ICON_MATERIAL;
else if (G.sipo->blocktype == ID_WO)
icon = ICON_WORLD;
else if (G.sipo->blocktype == ID_CU)
icon = ICON_ANIM;
else if (G.sipo->blocktype == ID_CA)
icon = ICON_CAMERA;
else if (G.sipo->blocktype == ID_LA)
icon = ICON_LAMP;
else if (G.sipo->blocktype == ID_KE)
icon = ICON_EDIT;
else if (G.sipo->blocktype == ID_AC)
icon = ICON_ACTION;
else if (G.sipo->blocktype == IPO_CO)
icon = ICON_CONSTRAINT;
else if (G.sipo->blocktype == ID_SEQ)
icon = ICON_SEQUENCE;
uiDefIconTextButS(block, MENU, B_IPOMAIN, icon, ipo_modeselect_pup(), xco,0,120,20, &(G.sipo->blocktype), 0, 0, 0, 0, "Display IPO type");
xco += 110;
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.");
xco-= 4;
}
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.");
xco-= 4;
}
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.");
xco-= 4;
}
uiClearButLock();
@@ -305,13 +746,6 @@ void ipo_buttons(void)
}
xco+=XIC/2;
/* 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");
xco+= XIC/2;
uiClearButLock();
/* ZOOM en BORDER */
uiDefIconButI(block, TOG, B_VIEW2DZOOM, ICON_VIEWZOOM, xco+=XIC,0,XIC,YIC, &viewmovetemp, 0, 0, 0, 0, "Zooms view (CTRL+MiddleMouse)");