forked from bartvdbraak/blender
* Fixed a little problem when using both F* keys and header buttons
to change buttons tabs wouldn't switch quite right.
This commit is contained in:
parent
0dc288371f
commit
095eb2400a
@ -119,7 +119,7 @@ typedef struct SpaceButs {
|
||||
|
||||
short texnr;
|
||||
char texfrom, showgroup;
|
||||
|
||||
|
||||
short rectx, recty; /* preview render */
|
||||
unsigned int *rect;
|
||||
short cury, modeltype;
|
||||
@ -127,7 +127,8 @@ typedef struct SpaceButs {
|
||||
short scriptblock;
|
||||
short scaflag;
|
||||
short re_align, pad1;
|
||||
int pad2;
|
||||
|
||||
int oldkeypress; /* for keeping track of the sub tab key cycling */
|
||||
|
||||
char texact, tab[7]; /* storing tabs for each context */
|
||||
|
||||
|
@ -132,6 +132,12 @@ void do_buts_buttons(short event)
|
||||
break;
|
||||
case B_BUTSPREVIEW:
|
||||
BIF_preview_changed(G.buts);
|
||||
G.buts->oldkeypress = 0;
|
||||
scrarea_queue_headredraw(curarea);
|
||||
scrarea_queue_winredraw(curarea);
|
||||
break;
|
||||
case B_CONTEXT_SWITCH:
|
||||
G.buts->oldkeypress = 0;
|
||||
scrarea_queue_headredraw(curarea);
|
||||
scrarea_queue_winredraw(curarea);
|
||||
break;
|
||||
@ -599,12 +605,12 @@ void buts_buttons(void)
|
||||
// xco+=XIC;
|
||||
|
||||
uiBlockBeginAlign(block);
|
||||
uiDefIconButS(block, ROW, B_REDR, ICON_GAME, xco, 0, XIC, YIC, &(G.buts->mainb), 0.0, (float)CONTEXT_LOGIC, 0, 0, "Logic (F4) ");
|
||||
uiDefIconButS(block, ROW, B_REDR, ICON_SCRIPT, xco+=XIC, 0, XIC, YIC, &(G.buts->mainb), 0.0, (float)CONTEXT_SCRIPT, 0, 0, "Script ");
|
||||
uiDefIconButS(block, ROW, B_REDR, ICON_MATERIAL_DEHLT,xco+=XIC, 0, XIC, YIC, &(G.buts->mainb), 0.0, (float)CONTEXT_SHADING, 0, 0, "Shading (F5) ");
|
||||
uiDefIconButS(block, ROW, B_REDR, ICON_OBJECT, xco+=XIC, 0, XIC, YIC, &(G.buts->mainb), 0.0, (float)CONTEXT_OBJECT, 0, 0, "Object (F7) ");
|
||||
uiDefIconButS(block, ROW, B_REDR, ICON_EDIT, xco+=XIC, 0, XIC, YIC, &(G.buts->mainb), 0.0, (float)CONTEXT_EDITING, 0, 0, "Editing (F9) ");
|
||||
uiDefIconButS(block, ROW, B_REDR, ICON_SCENE_DEHLT, xco+=XIC, 0, XIC, YIC, &(G.buts->mainb), 0.0, (float)CONTEXT_SCENE, 0, 0, "Scene (F10) ");
|
||||
uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, ICON_GAME, xco, 0, XIC, YIC, &(G.buts->mainb), 0.0, (float)CONTEXT_LOGIC, 0, 0, "Logic (F4) ");
|
||||
uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, ICON_SCRIPT, xco+=XIC, 0, XIC, YIC, &(G.buts->mainb), 0.0, (float)CONTEXT_SCRIPT, 0, 0, "Script ");
|
||||
uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, ICON_MATERIAL_DEHLT,xco+=XIC, 0, XIC, YIC, &(G.buts->mainb), 0.0, (float)CONTEXT_SHADING, 0, 0, "Shading (F5) ");
|
||||
uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, ICON_OBJECT, xco+=XIC, 0, XIC, YIC, &(G.buts->mainb), 0.0, (float)CONTEXT_OBJECT, 0, 0, "Object (F7) ");
|
||||
uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, ICON_EDIT, xco+=XIC, 0, XIC, YIC, &(G.buts->mainb), 0.0, (float)CONTEXT_EDITING, 0, 0, "Editing (F9) ");
|
||||
uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, ICON_SCENE_DEHLT, xco+=XIC, 0, XIC, YIC, &(G.buts->mainb), 0.0, (float)CONTEXT_SCENE, 0, 0, "Scene (F10) ");
|
||||
|
||||
xco+= XIC;
|
||||
|
||||
@ -613,15 +619,15 @@ void buts_buttons(void)
|
||||
switch(G.buts->mainb) {
|
||||
case CONTEXT_SCENE:
|
||||
uiBlockBeginAlign(block);
|
||||
uiDefIconButC(block, ROW, B_REDR, ICON_SCENE, xco+=XIC, t_base, XIC, YIC, &(G.buts->tab[CONTEXT_SCENE]), 1.0, (float)TAB_SCENE_RENDER, 0, 0, "Render buttons ");
|
||||
uiDefIconButC(block, ROW, B_REDR, ICON_ANIM, xco+=XIC, t_base, XIC, YIC, &(G.buts->tab[CONTEXT_SCENE]), 1.0, (float)TAB_SCENE_ANIM, 0, 0, "Anim/playback buttons");
|
||||
uiDefIconButC(block, ROW, B_REDR, ICON_SOUND, xco+=XIC, t_base, XIC, YIC, &(G.buts->tab[CONTEXT_SCENE]), 1.0, (float)TAB_SCENE_SOUND, 0, 0, "Sound block buttons");
|
||||
uiDefIconButC(block, ROW, B_CONTEXT_SWITCH, ICON_SCENE, xco+=XIC, t_base, XIC, YIC, &(G.buts->tab[CONTEXT_SCENE]), 1.0, (float)TAB_SCENE_RENDER, 0, 0, "Render buttons ");
|
||||
uiDefIconButC(block, ROW, B_CONTEXT_SWITCH, ICON_ANIM, xco+=XIC, t_base, XIC, YIC, &(G.buts->tab[CONTEXT_SCENE]), 1.0, (float)TAB_SCENE_ANIM, 0, 0, "Anim/playback buttons");
|
||||
uiDefIconButC(block, ROW, B_CONTEXT_SWITCH, ICON_SOUND, xco+=XIC, t_base, XIC, YIC, &(G.buts->tab[CONTEXT_SCENE]), 1.0, (float)TAB_SCENE_SOUND, 0, 0, "Sound block buttons");
|
||||
|
||||
break;
|
||||
case CONTEXT_OBJECT:
|
||||
uiBlockBeginAlign(block);
|
||||
uiDefIconButC(block, ROW, B_REDR, ICON_OBJECT, xco+=XIC, t_base, XIC, YIC, &(G.buts->tab[CONTEXT_OBJECT]), 1.0, (float)TAB_OBJECT_OBJECT, 0, 0, "Object buttons ");
|
||||
uiDefIconButC(block, ROW, B_REDR, ICON_EFFECTS, xco+=XIC, t_base, XIC, YIC, &(G.buts->tab[CONTEXT_OBJECT]), 1.0, (float)TAB_OBJECT_PHYSICS, 0, 0, "Physics buttons");
|
||||
uiDefIconButC(block, ROW, B_CONTEXT_SWITCH, ICON_OBJECT, xco+=XIC, t_base, XIC, YIC, &(G.buts->tab[CONTEXT_OBJECT]), 1.0, (float)TAB_OBJECT_OBJECT, 0, 0, "Object buttons ");
|
||||
uiDefIconButC(block, ROW, B_CONTEXT_SWITCH, ICON_EFFECTS, xco+=XIC, t_base, XIC, YIC, &(G.buts->tab[CONTEXT_OBJECT]), 1.0, (float)TAB_OBJECT_PHYSICS, 0, 0, "Physics buttons");
|
||||
|
||||
break;
|
||||
case CONTEXT_SHADING:
|
||||
@ -629,7 +635,7 @@ void buts_buttons(void)
|
||||
uiDefIconButC(block, ROW, B_BUTSPREVIEW, ICON_LAMP, xco+=XIC, t_base, XIC, YIC, &(G.buts->tab[CONTEXT_SHADING]), 1.0, (float)TAB_SHADING_LAMP, 0, 0, "Lamp buttons");
|
||||
uiDefIconButC(block, ROW, B_BUTSPREVIEW, ICON_MATERIAL, xco+=XIC, t_base, XIC, YIC, &(G.buts->tab[CONTEXT_SHADING]), 1.0, (float)TAB_SHADING_MAT, 0, 0, "Material buttons");
|
||||
uiDefIconButC(block, ROW, B_BUTSPREVIEW, ICON_TEXTURE, xco+=XIC, t_base, XIC, YIC, &(G.buts->tab[CONTEXT_SHADING]), 1.0, (float)TAB_SHADING_TEX, 0, 0, "Texture buttons(F6)");
|
||||
uiDefIconButC(block, ROW, B_REDR, ICON_RADIO,xco+=XIC, t_base, XIC, YIC, &(G.buts->tab[CONTEXT_SHADING]), 1.0, (float)TAB_SHADING_RAD, 0, 0, "Radiosity buttons");
|
||||
uiDefIconButC(block, ROW, B_CONTEXT_SWITCH, ICON_RADIO,xco+=XIC, t_base, XIC, YIC, &(G.buts->tab[CONTEXT_SHADING]), 1.0, (float)TAB_SHADING_RAD, 0, 0, "Radiosity buttons");
|
||||
uiDefIconButC(block, ROW, B_BUTSPREVIEW, ICON_WORLD, xco+=XIC, t_base, XIC, YIC, &(G.buts->tab[CONTEXT_SHADING]), 1.0, (float)TAB_SHADING_WORLD, 0, 0, "World buttons");
|
||||
|
||||
break;
|
||||
|
@ -167,9 +167,6 @@ void free_soundspace(SpaceSound *ssound);
|
||||
|
||||
/* *************************************** */
|
||||
|
||||
int oldkeypress; /* temporary var for checking to cycle between context tabs in extern_set_butspace() */
|
||||
|
||||
|
||||
/* don't know yet how the handlers will evolve, for simplicity
|
||||
i choose for an array with eventcodes, this saves in a file!
|
||||
*/
|
||||
@ -3320,7 +3317,7 @@ void extern_set_butspace(int fkey)
|
||||
}
|
||||
|
||||
/* if it's already in shading context, cycle between tabs with the same key */
|
||||
if (oldkeypress == F5KEY) {
|
||||
if (sbuts->oldkeypress == F5KEY) {
|
||||
|
||||
if (sbuts->tab[CONTEXT_SHADING]==TAB_SHADING_LAMP)
|
||||
sbuts->tab[CONTEXT_SHADING]=TAB_SHADING_MAT;
|
||||
@ -3334,10 +3331,13 @@ void extern_set_butspace(int fkey)
|
||||
else if (sbuts->tab[CONTEXT_SHADING]==TAB_SHADING_WORLD)
|
||||
sbuts->tab[CONTEXT_SHADING]=TAB_SHADING_LAMP;
|
||||
}
|
||||
else if (oldkeypress == F6KEY) {
|
||||
else if (sbuts->oldkeypress == F6KEY) {
|
||||
sbuts->tab[CONTEXT_SHADING]=TAB_SHADING_MAT;
|
||||
}
|
||||
else sbuts->mainb= CONTEXT_SHADING;
|
||||
else {
|
||||
sbuts->mainb= CONTEXT_SHADING;
|
||||
sbuts->tab[CONTEXT_SHADING]= TAB_SHADING_MAT;
|
||||
}
|
||||
|
||||
}
|
||||
else if(fkey==F6KEY) {
|
||||
@ -3346,7 +3346,7 @@ void extern_set_butspace(int fkey)
|
||||
}
|
||||
else if(fkey==F7KEY) {
|
||||
/* if it's already in object context, cycle between tabs with the same key */
|
||||
if (oldkeypress == F7KEY) {
|
||||
if (sbuts->oldkeypress == F7KEY) {
|
||||
|
||||
if (sbuts->tab[CONTEXT_OBJECT]==TAB_OBJECT_OBJECT)
|
||||
sbuts->tab[CONTEXT_OBJECT]=TAB_OBJECT_PHYSICS;
|
||||
@ -3363,7 +3363,7 @@ void extern_set_butspace(int fkey)
|
||||
else if(fkey==F9KEY) sbuts->mainb= CONTEXT_EDITING;
|
||||
else if(fkey==F10KEY) {
|
||||
/* if it's already in scene context, cycle between tabs with the same key */
|
||||
if (oldkeypress == F10KEY) {
|
||||
if (sbuts->oldkeypress == F10KEY) {
|
||||
|
||||
if (sbuts->tab[CONTEXT_SCENE]==TAB_SCENE_RENDER)
|
||||
sbuts->tab[CONTEXT_SCENE]=TAB_SCENE_ANIM;
|
||||
@ -3375,7 +3375,7 @@ void extern_set_butspace(int fkey)
|
||||
else sbuts->mainb= CONTEXT_SCENE;
|
||||
}
|
||||
|
||||
oldkeypress = fkey;
|
||||
sbuts->oldkeypress = fkey;
|
||||
|
||||
scrarea_queue_headredraw(sa);
|
||||
scrarea_queue_winredraw(sa);
|
||||
|
Loading…
Reference in New Issue
Block a user