? .git ? user-config.py ? tools/Blender.pyc ? tools/__init__.pyc ? tools/bcolors.pyc ? tools/btools.pyc Index: source/blender/include/BIF_interface.h =================================================================== RCS file: /cvsroot/bf-blender/blender/source/blender/include/BIF_interface.h,v retrieving revision 1.42 diff -u -r1.42 BIF_interface.h --- source/blender/include/BIF_interface.h 7 Dec 2006 14:17:36 -0000 1.42 +++ source/blender/include/BIF_interface.h 1 Mar 2007 15:04:49 -0000 @@ -283,6 +283,8 @@ void uiButSetFlag (uiBut *but, int flag); void uiButClearFlag (uiBut *but, int flag); +void uiButSetColor ( uiBut *but, int color ); + void uiBlockSetButmFunc (uiBlock *block, void (*butmfunc)(void *arg, int but_a2), void *arg); void uiBlockSetFunc (uiBlock *block, void (*func)(void *arg1, void *arg2), void *arg1, void *arg2); Index: source/blender/include/BIF_resources.h =================================================================== RCS file: /cvsroot/bf-blender/blender/source/blender/include/BIF_resources.h,v retrieving revision 1.64 diff -u -r1.64 BIF_resources.h --- source/blender/include/BIF_resources.h 7 Jan 2007 19:32:58 -0000 1.64 +++ source/blender/include/BIF_resources.h 1 Mar 2007 15:04:49 -0000 @@ -495,6 +495,9 @@ TH_FACE_DOT, TH_FACEDOT_SIZE, + TH_LAYER_NE, + TH_LAYER_NEA, /* non-empty and with the active object. */ + TH_SYNTAX_B, TH_SYNTAX_V, TH_SYNTAX_C, Index: source/blender/makesdna/DNA_userdef_types.h =================================================================== RCS file: /cvsroot/bf-blender/blender/source/blender/makesdna/DNA_userdef_types.h,v retrieving revision 1.64 diff -u -r1.64 DNA_userdef_types.h --- source/blender/makesdna/DNA_userdef_types.h 3 Jan 2007 05:50:16 -0000 1.64 +++ source/blender/makesdna/DNA_userdef_types.h 1 Mar 2007 15:04:50 -0000 @@ -96,6 +96,9 @@ char vertex_size, facedot_size; char bpad[2]; + char layer_color_ne[4]; + char layer_color_nea[4]; + char syntaxl[4], syntaxn[4], syntaxb[4]; // syntax for textwindow and nodes char syntaxv[4], syntaxc[4]; Index: source/blender/src/header_view3d.c =================================================================== RCS file: /cvsroot/bf-blender/blender/source/blender/src/header_view3d.c,v retrieving revision 1.225 diff -u -r1.225 header_view3d.c --- source/blender/src/header_view3d.c 22 Feb 2007 11:58:07 -0000 1.225 +++ source/blender/src/header_view3d.c 1 Mar 2007 15:04:58 -0000 @@ -151,8 +151,37 @@ #define TEST_EDITMESH if(G.obedit==0) return; \ if( (G.vd->lay & G.obedit->lay)==0 ) return; +/* Layer state definitions. */ +#define LAYER_WITHOUT_OBJECT 0 +#define LAYER_WITH_OBJECT 1 +#define LAYER_WITH_OBJECT_ACT 2 + + static int viewmovetemp = 0; +int check_object_in_layer ( int obj ) +{ + Object *p; + int found; + + found = LAYER_WITHOUT_OBJECT; + p = G.main->object.first; + + while (p) { + if ((1<lay) { + if (p == OBACT) { + found = LAYER_WITH_OBJECT_ACT; + break; + } + else if (found == LAYER_WITHOUT_OBJECT) + found = LAYER_WITH_OBJECT; + } + p = p->id.next; + } + + return (found); +} + void do_layer_buttons(short event) { static int oldlay= 1; @@ -4984,10 +5013,11 @@ void view3d_buttons(void) { uiBlock *block; + uiBut *but; Object *ob= OBACT; - int a; + int a, val; short xco = 0; - + block= uiNewBlock(&curarea->uiblocks, "header view3d", UI_EMBOSS, UI_HELV, curarea->headwin); if(area_is_active_area(curarea)) uiBlockSetCol(block, TH_HEADER); @@ -5114,18 +5144,46 @@ /* LAYERS */ if(G.obedit==NULL && G.vd->localview==0) { uiBlockBeginAlign(block); - for(a=0; a<5; a++) - uiDefButBitI(block, TOG, 1<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++) { + but = uiDefButBitI(block, TOG, 1<lay), 0, 0, 0, 0, "Toggles Layer visibility (Num, Shift Num)"); + val = check_object_in_layer (a); + if (val == LAYER_WITH_OBJECT) + uiButSetColor (but, TH_LAYER_NE); + else if (val == LAYER_WITH_OBJECT_ACT) + uiButSetColor (but, TH_LAYER_NEA); + } + + for(a=0; a<5; a++) { + but = 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)"); + val = check_object_in_layer (a+10); + if (val == LAYER_WITH_OBJECT) + uiButSetColor (but, TH_LAYER_NE); + else if (val == LAYER_WITH_OBJECT_ACT) + uiButSetColor (but, TH_LAYER_NEA); + } + xco+= 5; uiBlockBeginAlign(block); - for(a=5; a<10; a++) - uiDefButBitI(block, TOG, 1<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++) { + but = uiDefButBitI(block, TOG, 1<lay), 0, 0, 0, 0, "Toggles Layer visibility (Num, Shift Num)"); + val = check_object_in_layer (a); + if (val == LAYER_WITH_OBJECT) + uiButSetColor (but, TH_LAYER_NE); + else if (val == LAYER_WITH_OBJECT_ACT) + uiButSetColor (but, TH_LAYER_NEA); + } + for(a=5; a<10; a++) { + but = 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)"); + val = check_object_in_layer (a+10); + if (val == LAYER_WITH_OBJECT) + uiButSetColor (but, TH_LAYER_NE); + else if (val == LAYER_WITH_OBJECT_ACT) + uiButSetColor (but, TH_LAYER_NEA); + } + uiBlockEndAlign(block); xco+= (a-2)*(XIC/2)+3; Index: source/blender/src/interface.c =================================================================== RCS file: /cvsroot/bf-blender/blender/source/blender/src/interface.c,v retrieving revision 1.258 diff -u -r1.258 interface.c --- source/blender/src/interface.c 24 Jan 2007 20:51:33 -0000 1.258 +++ source/blender/src/interface.c 1 Mar 2007 15:05:04 -0000 @@ -6225,6 +6225,11 @@ but->flag&= ~flag; } +void uiButSetColor ( uiBut *but, int color ) +{ + but->themecol= color; +} + int uiButGetRetVal(uiBut *but) { return but->retval; Index: source/blender/src/resources.c =================================================================== RCS file: /cvsroot/bf-blender/blender/source/blender/src/resources.c,v retrieving revision 1.65 diff -u -r1.65 resources.c --- source/blender/src/resources.c 3 Jan 2007 05:50:17 -0000 1.65 +++ source/blender/src/resources.c 1 Mar 2007 15:05:05 -0000 @@ -262,6 +262,10 @@ cp= ts->face_dot; break; case TH_FACEDOT_SIZE: cp= &ts->facedot_size; break; + case TH_LAYER_NE: + cp= ts->layer_color_ne; break; + case TH_LAYER_NEA: + cp= ts->layer_color_nea; break; case TH_NORMAL: cp= ts->normal; break; case TH_BONE_SOLID: @@ -397,7 +401,10 @@ SETCOL(btheme->tv3d.normal, 0x22, 0xDD, 0xDD, 255); SETCOL(btheme->tv3d.face_dot, 255, 138, 48, 255); btheme->tv3d.facedot_size= 4; - + + SETCOL(btheme->tv3d.layer_color_ne, 65, 105, 225, 255); + SETCOL(btheme->tv3d.layer_color_nea, 255, 0, 0, 255); + SETCOL(btheme->tv3d.bone_solid, 200, 200, 200, 255); SETCOL(btheme->tv3d.bone_pose, 80, 200, 255, 80); // alpha 80 is not meant editable, used for wire+action draw @@ -589,6 +596,8 @@ str += sprintf(str, "Face Selected (transp) %%x%d|", TH_FACE_SELECT); str += sprintf(str, "Face Dot Selected %%x%d|", TH_FACE_DOT); str += sprintf(str, "Face Dot Size %%x%d|", TH_FACEDOT_SIZE); + str += sprintf(str, "Color of Not Empty Layer %%x%d|", TH_LAYER_NE); + str += sprintf(str, "Color of Not Empty Layer with Active Object %%x%d|", TH_LAYER_NEA); str += sprintf(str, "Normal %%x%d|", TH_NORMAL); str += sprintf(str, "Bone Solid %%x%d|", TH_BONE_SOLID); str += sprintf(str, "Bone Pose %%x%d", TH_BONE_POSE); Index: source/blender/src/usiblender.c =================================================================== RCS file: /cvsroot/bf-blender/blender/source/blender/src/usiblender.c,v retrieving revision 1.140 diff -u -r1.140 usiblender.c --- source/blender/src/usiblender.c 19 Jan 2007 20:33:00 -0000 1.140 +++ source/blender/src/usiblender.c 1 Mar 2007 15:05:06 -0000 @@ -351,6 +351,13 @@ if(btheme->tipo.vertex_size == 0) { btheme->tipo.vertex_size= 3; } + /* Layer Not Empty Color */ + if (btheme->tv3d.layer_color_ne[3] == 0) { + SETCOL(btheme->tv3d.layer_color_ne, 65, 105, 225, 255); + } + if (btheme->tv3d.layer_color_nea[3] == 0) { + SETCOL(btheme->tv3d.layer_color_nea, 255, 0, 0, 255); + } } }