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.

drh 2013-08-15 02:59 trunk
Commit e412f97999fb69fe1cdcd81f0f9aa72ea0cb4b95
1 file changed +18 -15
+18 -15
--- src/timeline.c
+++ src/timeline.c
@@ -649,10 +649,13 @@
649649
cgi_printf("],h:\"%s\"}%s", pRow->zUuid, pRow->pNext ? ",\n" : "];\n");
650650
}
651651
cgi_printf("var nrail = %d\n", pGraph->mxRail+1);
652652
graph_free(pGraph);
653653
@ var canvasDiv = gebi("canvas");
654
+ @ var canvasStyle = window.getComputedStyle(canvasDiv);
655
+ @ var lineColor = canvasStyle.getPropertyValue('color') || 'black';
656
+ @ var boxColor = lineColor;
654657
@ function drawBox(color,x0,y0,x1,y1){
655658
@ var n = document.createElement("div");
656659
@ if( x0>x1 ){ var t=x0; x0=x1; x1=t; }
657660
@ if( y0>y1 ){ var t=y0; y0=y1; y1=t; }
658661
@ var w = x1-x0+1;
@@ -689,38 +692,38 @@
689692
@ }while( obj = obj.offsetParent );
690693
@ }
691694
@ return left;
692695
@ }
693696
@ function drawUpArrow(x,y0,y1){
694
- @ drawBox("black",x,y0,x+1,y1);
697
+ @ drawBox(lineColor,x,y0,x+1,y1);
695698
@ 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);
698701
@ }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);
701704
@ }
702705
@ }
703706
@ function drawThinArrow(y,xFrom,xTo){
704707
@ 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);
708711
@ }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);
712715
@ }
713716
@ }
714717
@ function drawThinLine(x0,y0,x1,y1){
715
- @ drawBox("black",x0,y0,x1,y1);
718
+ @ drawBox(lineColor,x0,y0,x1,y1);
716719
@ }
717720
@ 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);
719722
@ drawBox(p.bg,p.x-4,p.y-4,p.x+5,p.y+5);
720723
@ 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);
722725
if( !omitDescenders ){
723726
@ if( p.u==0 ) drawUpArrow(p.x, 0, p.y-5);
724727
@ if( p.d ) drawUpArrow(p.x, p.y+6, btm);
725728
}
726729
@ if( p.mo>0 ){
@@ -740,11 +743,11 @@
740743
@ for(var i=0; i<n; i+=2){
741744
@ var x1 = p.au[i]*railPitch + left;
742745
@ var x0 = x1>p.x ? p.x+7 : p.x-6;
743746
@ var u = rowinfo[p.au[i+1]-1];
744747
@ 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);
746749
@ drawUpArrow(x1, u.y+6, p.y);
747750
@ }else{
748751
@ drawBox("#600000",x0,p.y,x1,p.y+1);
749752
@ drawBox("#600000",x1-1,p.y,x1,u.y+1);
750753
@ drawBox("#600000",x1,u.y,u.x-6,u.y+1);
751754
--- 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

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button