Fossil SCM
Rig the timeline graph so that CSS of the form: "#canvas{color:#000;}" will set the color of the graph lines and boxes.
Commit
e412f97999fb69fe1cdcd81f0f9aa72ea0cb4b95
Parent
80bf17c0d018926…
1 file changed
+18
-15
+18
-15
| --- src/timeline.c | ||
| +++ src/timeline.c | ||
| @@ -649,10 +649,13 @@ | ||
| 649 | 649 | cgi_printf("],h:\"%s\"}%s", pRow->zUuid, pRow->pNext ? ",\n" : "];\n"); |
| 650 | 650 | } |
| 651 | 651 | cgi_printf("var nrail = %d\n", pGraph->mxRail+1); |
| 652 | 652 | graph_free(pGraph); |
| 653 | 653 | @ var canvasDiv = gebi("canvas"); |
| 654 | + @ var canvasStyle = window.getComputedStyle(canvasDiv); | |
| 655 | + @ var lineColor = canvasStyle.getPropertyValue('color') || 'black'; | |
| 656 | + @ var boxColor = lineColor; | |
| 654 | 657 | @ function drawBox(color,x0,y0,x1,y1){ |
| 655 | 658 | @ var n = document.createElement("div"); |
| 656 | 659 | @ if( x0>x1 ){ var t=x0; x0=x1; x1=t; } |
| 657 | 660 | @ if( y0>y1 ){ var t=y0; y0=y1; y1=t; } |
| 658 | 661 | @ var w = x1-x0+1; |
| @@ -689,38 +692,38 @@ | ||
| 689 | 692 | @ }while( obj = obj.offsetParent ); |
| 690 | 693 | @ } |
| 691 | 694 | @ return left; |
| 692 | 695 | @ } |
| 693 | 696 | @ function drawUpArrow(x,y0,y1){ |
| 694 | - @ drawBox("black",x,y0,x+1,y1); | |
| 697 | + @ drawBox(lineColor,x,y0,x+1,y1); | |
| 695 | 698 | @ if( y0+10>=y1 ){ |
| 696 | - @ drawBox("black",x-1,y0+1,x+2,y0+2); | |
| 697 | - @ drawBox("black",x-2,y0+3,x+3,y0+4); | |
| 699 | + @ drawBox(lineColor,x-1,y0+1,x+2,y0+2); | |
| 700 | + @ drawBox(lineColor,x-2,y0+3,x+3,y0+4); | |
| 698 | 701 | @ }else{ |
| 699 | - @ drawBox("black",x-1,y0+2,x+2,y0+4); | |
| 700 | - @ drawBox("black",x-2,y0+5,x+3,y0+7); | |
| 702 | + @ drawBox(lineColor,x-1,y0+2,x+2,y0+4); | |
| 703 | + @ drawBox(lineColor,x-2,y0+5,x+3,y0+7); | |
| 701 | 704 | @ } |
| 702 | 705 | @ } |
| 703 | 706 | @ function drawThinArrow(y,xFrom,xTo){ |
| 704 | 707 | @ if( xFrom<xTo ){ |
| 705 | - @ drawBox("black",xFrom,y,xTo,y); | |
| 706 | - @ drawBox("black",xTo-3,y-1,xTo-2,y+1); | |
| 707 | - @ drawBox("black",xTo-4,y-2,xTo-4,y+2); | |
| 708 | + @ drawBox(lineColor,xFrom,y,xTo,y); | |
| 709 | + @ drawBox(lineColor,xTo-3,y-1,xTo-2,y+1); | |
| 710 | + @ drawBox(lineColor,xTo-4,y-2,xTo-4,y+2); | |
| 708 | 711 | @ }else{ |
| 709 | - @ drawBox("black",xTo,y,xFrom,y); | |
| 710 | - @ drawBox("black",xTo+2,y-1,xTo+3,y+1); | |
| 711 | - @ drawBox("black",xTo+4,y-2,xTo+4,y+2); | |
| 712 | + @ drawBox(lineColor,xTo,y,xFrom,y); | |
| 713 | + @ drawBox(lineColor,xTo+2,y-1,xTo+3,y+1); | |
| 714 | + @ drawBox(lineColor,xTo+4,y-2,xTo+4,y+2); | |
| 712 | 715 | @ } |
| 713 | 716 | @ } |
| 714 | 717 | @ function drawThinLine(x0,y0,x1,y1){ |
| 715 | - @ drawBox("black",x0,y0,x1,y1); | |
| 718 | + @ drawBox(lineColor,x0,y0,x1,y1); | |
| 716 | 719 | @ } |
| 717 | 720 | @ function drawNode(p, left, btm){ |
| 718 | - @ drawBox("black",p.x-5,p.y-5,p.x+6,p.y+6); | |
| 721 | + @ drawBox(boxColor,p.x-5,p.y-5,p.x+6,p.y+6); | |
| 719 | 722 | @ drawBox(p.bg,p.x-4,p.y-4,p.x+5,p.y+5); |
| 720 | 723 | @ if( p.u>0 ) drawUpArrow(p.x, rowinfo[p.u-1].y+6, p.y-5); |
| 721 | - @ if( p.f&1 ) drawBox("black",p.x-1,p.y-1,p.x+2,p.y+2); | |
| 724 | + @ if( p.f&1 ) drawBox(boxColor,p.x-1,p.y-1,p.x+2,p.y+2); | |
| 722 | 725 | if( !omitDescenders ){ |
| 723 | 726 | @ if( p.u==0 ) drawUpArrow(p.x, 0, p.y-5); |
| 724 | 727 | @ if( p.d ) drawUpArrow(p.x, p.y+6, btm); |
| 725 | 728 | } |
| 726 | 729 | @ if( p.mo>0 ){ |
| @@ -740,11 +743,11 @@ | ||
| 740 | 743 | @ for(var i=0; i<n; i+=2){ |
| 741 | 744 | @ var x1 = p.au[i]*railPitch + left; |
| 742 | 745 | @ var x0 = x1>p.x ? p.x+7 : p.x-6; |
| 743 | 746 | @ var u = rowinfo[p.au[i+1]-1]; |
| 744 | 747 | @ if(u.id<p.id){ |
| 745 | - @ drawBox("black",x0,p.y,x1,p.y+1); | |
| 748 | + @ drawBox(lineColor,x0,p.y,x1,p.y+1); | |
| 746 | 749 | @ drawUpArrow(x1, u.y+6, p.y); |
| 747 | 750 | @ }else{ |
| 748 | 751 | @ drawBox("#600000",x0,p.y,x1,p.y+1); |
| 749 | 752 | @ drawBox("#600000",x1-1,p.y,x1,u.y+1); |
| 750 | 753 | @ drawBox("#600000",x1,u.y,u.x-6,u.y+1); |
| 751 | 754 |
| --- src/timeline.c | |
| +++ src/timeline.c | |
| @@ -649,10 +649,13 @@ | |
| 649 | cgi_printf("],h:\"%s\"}%s", pRow->zUuid, pRow->pNext ? ",\n" : "];\n"); |
| 650 | } |
| 651 | cgi_printf("var nrail = %d\n", pGraph->mxRail+1); |
| 652 | graph_free(pGraph); |
| 653 | @ var canvasDiv = gebi("canvas"); |
| 654 | @ function drawBox(color,x0,y0,x1,y1){ |
| 655 | @ var n = document.createElement("div"); |
| 656 | @ if( x0>x1 ){ var t=x0; x0=x1; x1=t; } |
| 657 | @ if( y0>y1 ){ var t=y0; y0=y1; y1=t; } |
| 658 | @ var w = x1-x0+1; |
| @@ -689,38 +692,38 @@ | |
| 689 | @ }while( obj = obj.offsetParent ); |
| 690 | @ } |
| 691 | @ return left; |
| 692 | @ } |
| 693 | @ function drawUpArrow(x,y0,y1){ |
| 694 | @ drawBox("black",x,y0,x+1,y1); |
| 695 | @ if( y0+10>=y1 ){ |
| 696 | @ drawBox("black",x-1,y0+1,x+2,y0+2); |
| 697 | @ drawBox("black",x-2,y0+3,x+3,y0+4); |
| 698 | @ }else{ |
| 699 | @ drawBox("black",x-1,y0+2,x+2,y0+4); |
| 700 | @ drawBox("black",x-2,y0+5,x+3,y0+7); |
| 701 | @ } |
| 702 | @ } |
| 703 | @ function drawThinArrow(y,xFrom,xTo){ |
| 704 | @ if( xFrom<xTo ){ |
| 705 | @ drawBox("black",xFrom,y,xTo,y); |
| 706 | @ drawBox("black",xTo-3,y-1,xTo-2,y+1); |
| 707 | @ drawBox("black",xTo-4,y-2,xTo-4,y+2); |
| 708 | @ }else{ |
| 709 | @ drawBox("black",xTo,y,xFrom,y); |
| 710 | @ drawBox("black",xTo+2,y-1,xTo+3,y+1); |
| 711 | @ drawBox("black",xTo+4,y-2,xTo+4,y+2); |
| 712 | @ } |
| 713 | @ } |
| 714 | @ function drawThinLine(x0,y0,x1,y1){ |
| 715 | @ drawBox("black",x0,y0,x1,y1); |
| 716 | @ } |
| 717 | @ function drawNode(p, left, btm){ |
| 718 | @ drawBox("black",p.x-5,p.y-5,p.x+6,p.y+6); |
| 719 | @ drawBox(p.bg,p.x-4,p.y-4,p.x+5,p.y+5); |
| 720 | @ if( p.u>0 ) drawUpArrow(p.x, rowinfo[p.u-1].y+6, p.y-5); |
| 721 | @ if( p.f&1 ) drawBox("black",p.x-1,p.y-1,p.x+2,p.y+2); |
| 722 | if( !omitDescenders ){ |
| 723 | @ if( p.u==0 ) drawUpArrow(p.x, 0, p.y-5); |
| 724 | @ if( p.d ) drawUpArrow(p.x, p.y+6, btm); |
| 725 | } |
| 726 | @ if( p.mo>0 ){ |
| @@ -740,11 +743,11 @@ | |
| 740 | @ for(var i=0; i<n; i+=2){ |
| 741 | @ var x1 = p.au[i]*railPitch + left; |
| 742 | @ var x0 = x1>p.x ? p.x+7 : p.x-6; |
| 743 | @ var u = rowinfo[p.au[i+1]-1]; |
| 744 | @ if(u.id<p.id){ |
| 745 | @ drawBox("black",x0,p.y,x1,p.y+1); |
| 746 | @ drawUpArrow(x1, u.y+6, p.y); |
| 747 | @ }else{ |
| 748 | @ drawBox("#600000",x0,p.y,x1,p.y+1); |
| 749 | @ drawBox("#600000",x1-1,p.y,x1,u.y+1); |
| 750 | @ drawBox("#600000",x1,u.y,u.x-6,u.y+1); |
| 751 |
| --- src/timeline.c | |
| +++ src/timeline.c | |
| @@ -649,10 +649,13 @@ | |
| 649 | cgi_printf("],h:\"%s\"}%s", pRow->zUuid, pRow->pNext ? ",\n" : "];\n"); |
| 650 | } |
| 651 | cgi_printf("var nrail = %d\n", pGraph->mxRail+1); |
| 652 | graph_free(pGraph); |
| 653 | @ var canvasDiv = gebi("canvas"); |
| 654 | @ var canvasStyle = window.getComputedStyle(canvasDiv); |
| 655 | @ var lineColor = canvasStyle.getPropertyValue('color') || 'black'; |
| 656 | @ var boxColor = lineColor; |
| 657 | @ function drawBox(color,x0,y0,x1,y1){ |
| 658 | @ var n = document.createElement("div"); |
| 659 | @ if( x0>x1 ){ var t=x0; x0=x1; x1=t; } |
| 660 | @ if( y0>y1 ){ var t=y0; y0=y1; y1=t; } |
| 661 | @ var w = x1-x0+1; |
| @@ -689,38 +692,38 @@ | |
| 692 | @ }while( obj = obj.offsetParent ); |
| 693 | @ } |
| 694 | @ return left; |
| 695 | @ } |
| 696 | @ function drawUpArrow(x,y0,y1){ |
| 697 | @ drawBox(lineColor,x,y0,x+1,y1); |
| 698 | @ if( y0+10>=y1 ){ |
| 699 | @ drawBox(lineColor,x-1,y0+1,x+2,y0+2); |
| 700 | @ drawBox(lineColor,x-2,y0+3,x+3,y0+4); |
| 701 | @ }else{ |
| 702 | @ drawBox(lineColor,x-1,y0+2,x+2,y0+4); |
| 703 | @ drawBox(lineColor,x-2,y0+5,x+3,y0+7); |
| 704 | @ } |
| 705 | @ } |
| 706 | @ function drawThinArrow(y,xFrom,xTo){ |
| 707 | @ if( xFrom<xTo ){ |
| 708 | @ drawBox(lineColor,xFrom,y,xTo,y); |
| 709 | @ drawBox(lineColor,xTo-3,y-1,xTo-2,y+1); |
| 710 | @ drawBox(lineColor,xTo-4,y-2,xTo-4,y+2); |
| 711 | @ }else{ |
| 712 | @ drawBox(lineColor,xTo,y,xFrom,y); |
| 713 | @ drawBox(lineColor,xTo+2,y-1,xTo+3,y+1); |
| 714 | @ drawBox(lineColor,xTo+4,y-2,xTo+4,y+2); |
| 715 | @ } |
| 716 | @ } |
| 717 | @ function drawThinLine(x0,y0,x1,y1){ |
| 718 | @ drawBox(lineColor,x0,y0,x1,y1); |
| 719 | @ } |
| 720 | @ function drawNode(p, left, btm){ |
| 721 | @ drawBox(boxColor,p.x-5,p.y-5,p.x+6,p.y+6); |
| 722 | @ drawBox(p.bg,p.x-4,p.y-4,p.x+5,p.y+5); |
| 723 | @ if( p.u>0 ) drawUpArrow(p.x, rowinfo[p.u-1].y+6, p.y-5); |
| 724 | @ if( p.f&1 ) drawBox(boxColor,p.x-1,p.y-1,p.x+2,p.y+2); |
| 725 | if( !omitDescenders ){ |
| 726 | @ if( p.u==0 ) drawUpArrow(p.x, 0, p.y-5); |
| 727 | @ if( p.d ) drawUpArrow(p.x, p.y+6, btm); |
| 728 | } |
| 729 | @ if( p.mo>0 ){ |
| @@ -740,11 +743,11 @@ | |
| 743 | @ for(var i=0; i<n; i+=2){ |
| 744 | @ var x1 = p.au[i]*railPitch + left; |
| 745 | @ var x0 = x1>p.x ? p.x+7 : p.x-6; |
| 746 | @ var u = rowinfo[p.au[i+1]-1]; |
| 747 | @ if(u.id<p.id){ |
| 748 | @ drawBox(lineColor,x0,p.y,x1,p.y+1); |
| 749 | @ drawUpArrow(x1, u.y+6, p.y); |
| 750 | @ }else{ |
| 751 | @ drawBox("#600000",x0,p.y,x1,p.y+1); |
| 752 | @ drawBox("#600000",x1-1,p.y,x1,u.y+1); |
| 753 | @ drawBox("#600000",x1,u.y,u.x-6,u.y+1); |
| 754 |