Draw icons in the layer button to show used layers as well as layer of active object, this is a feature from apricot but used button color instead which was confusing.

This commit is contained in:
Campbell Barton 2008-09-07 16:37:55 +00:00
parent 91c8eea325
commit d0b3ce3c48
6 changed files with 2166 additions and 2144 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 KiB

After

Width:  |  Height:  |  Size: 67 KiB

@ -266,8 +266,8 @@ typedef enum {
ICON_WINDOW_WINDOW,
ICON_PANEL_CLOSE,
ICON_PHYSICS,
ICON_BLANK36,
ICON_BLANK37,
ICON_LAYER_USED,
ICON_LAYER_ACTIVE,
ICON_BLANK38,
ICON_BLENDER,

@ -86,7 +86,8 @@ typedef struct View3D {
float winmat1[4][4]; // persp(1) storage, for swap matrices
float viewmat1[4][4];
float viewquat[4], dist, zfac, pad0; /* zfac is initgrabz() result */
float viewquat[4], dist, zfac; /* zfac is initgrabz() result */
int lay_used; /* used while drawing */
short persp;
short view;

File diff suppressed because it is too large Load Diff

@ -3023,9 +3023,12 @@ void drawview3dspace(ScrArea *sa, void *spacedata)
for(SETLOOPER(G.scene->set, base))
object_handle_update(base->object); // bke_object.h
}
for(base= G.scene->base.first; base; base= base->next)
v3d->lay_used = 0;
for(base= G.scene->base.first; base; base= base->next) {
object_handle_update(base->object); // bke_object.h
v3d->lay_used |= base->lay;
}
/* shadow buffers, before we setup matrices */
if(draw_glsl_material(NULL, v3d->drawtype))

@ -5567,6 +5567,16 @@ static void view3d_header_pulldowns(uiBlock *block, short *xcoord)
*xcoord= xco;
}
static int view3d_layer_icon(int but_lay, int ob_lay, int used_lay)
{
if (but_lay & ob_lay)
return ICON_LAYER_ACTIVE;
else if (but_lay & used_lay)
return ICON_LAYER_USED;
else
return ICON_BLANK1;
}
void view3d_buttons(void)
{
uiBlock *block;
@ -5733,19 +5743,22 @@ void view3d_buttons(void)
/* LAYERS */
if(G.obedit==NULL && G.vd->localview==0) {
int ob_lay = ob ? ob->lay : 0;
uiBlockBeginAlign(block);
for(a=0; a<5; a++)
uiDefButBitI(block, TOG, 1<<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 (Num, Shift Num)");
for(a=0; a<5; a++)
uiDefButBitI(block, TOG, 1<<(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 (Alt Num, Alt Shift Num)");
for(a=0; a<5; a++) {
uiDefIconButBitI(block, TOG, 1<<a, B_LAY+a, view3d_layer_icon(1<<a, ob_lay, G.vd->lay_used), (short)(xco+a*(XIC/2)), (short)(YIC/2),(short)(XIC/2),(short)(YIC/2), &(G.vd->lay), 0, 0, 0, 0, "Toggles Layer visibility (Alt Num, Alt Shift Num)");
}
for(a=0; a<5; a++) {
uiDefIconButBitI(block, TOG, 1<<(a+10), B_LAY+10+a, view3d_layer_icon(1<<(a+10), ob_lay, G.vd->lay_used), (short)(xco+a*(XIC/2)), 0, XIC/2, (YIC)/2, &(G.vd->lay), 0, 0, 0, 0, "Toggles Layer visibility (Alt Num, Alt Shift Num)");
}
xco+= 5;
uiBlockBeginAlign(block);
for(a=5; a<10; a++)
uiDefButBitI(block, TOG, 1<<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 (Num, Shift Num)");
for(a=5; a<10; a++)
uiDefButBitI(block, TOG, 1<<(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 (Alt Num, Alt Shift Num)");
for(a=5; a<10; a++) {
uiDefIconButBitI(block, TOG, 1<<a, B_LAY+a, view3d_layer_icon(1<<a, ob_lay, G.vd->lay_used), (short)(xco+a*(XIC/2)), (short)(YIC/2),(short)(XIC/2),(short)(YIC/2), &(G.vd->lay), 0, 0, 0, 0, "Toggles Layer visibility (Alt Num, Alt Shift Num)");
}
for(a=5; a<10; a++) {
uiDefIconButBitI(block, TOG, 1<<(a+10), B_LAY+10+a, view3d_layer_icon(1<<(a+10), ob_lay, G.vd->lay_used), (short)(xco+a*(XIC/2)), 0, XIC/2, (YIC)/2, &(G.vd->lay), 0, 0, 0, 0, "Toggles Layer visibility (Alt Num, Alt Shift Num)");
}
uiBlockEndAlign(block);
xco+= (a-2)*(XIC/2)+3;