Spaces:
Sleeping
Sleeping
| /hilight-color-alpha 0.6 def | |
| /border-create { | |
| << | |
| /left << | |
| /width 2 px | |
| /color 0 0 0 0 color-create | |
| /style /none | |
| >> | |
| /right << | |
| /width 2 px | |
| /color 0 0 0 0 color-create | |
| /style /none | |
| >> | |
| /top << | |
| /width 2 px | |
| /color 0 0 0 0 color-create | |
| /style /none | |
| >> | |
| /bottom << | |
| /width 2 px | |
| /color 0 0 0 0 color-create | |
| /style /none | |
| >> | |
| >> | |
| } def | |
| /border-show { % => Box Viewport Border | |
| exch pop % => Box Border | |
| % LEFT | |
| dup /left get /width get 0 gt | |
| 1 index /left get /style get /none ne | |
| and | |
| { | |
| dup /left get /style get | |
| true | |
| 2 index /left get /color get | |
| 3 index /left get /width get | |
| 5 index get-left-border | |
| 6 index get-bottom-border | |
| 7 index get-left-border | |
| 8 index get-top-border | |
| 9 index get-left-border 9 index /left get /width get add | |
| 10 index get-top-border 10 index /top get /width get sub | |
| 11 index get-left-border 11 index /left get /width get add | |
| 12 index get-bottom-border 12 index /bottom get /width get add | |
| edge-show | |
| } if | |
| % RIGHT | |
| dup /right get /width get 0 gt | |
| 1 index /right get /style get /none ne | |
| and | |
| { | |
| dup /right get /style get | |
| false | |
| 2 index /right get /color get | |
| 3 index /right get /width get | |
| 5 index get-right-border | |
| 6 index get-bottom-border | |
| 7 index get-right-border | |
| 8 index get-top-border | |
| 9 index get-right-border 9 index /right get /width get sub | |
| 10 index get-top-border 10 index /top get /width get sub | |
| 11 index get-right-border 11 index /right get /width get sub | |
| 12 index get-bottom-border 12 index /bottom get /width get add | |
| edge-show | |
| } if | |
| % TOP | |
| dup /top get /width get 0 gt | |
| 1 index /top get /style get /none ne | |
| and | |
| { | |
| dup /top get /style get | |
| true | |
| 2 index /top get /color get | |
| 3 index /top get /width get | |
| 5 index get-left-border | |
| 6 index get-top-border | |
| 7 index get-right-border | |
| 8 index get-top-border | |
| 9 index get-right-border 9 index /right get /width get sub | |
| 10 index get-top-border 10 index /top get /width get sub | |
| 11 index get-left-border 11 index /left get /width get add | |
| 12 index get-top-border 12 index /top get /width get sub | |
| edge-show | |
| } if | |
| % BOTTOM | |
| dup /bottom get /width get 0 gt | |
| 1 index /bottom get /style get /none ne | |
| and | |
| { | |
| dup /bottom get /style get | |
| false | |
| 2 index /bottom get /color get | |
| 3 index /bottom get /width get | |
| 5 index get-left-border | |
| 6 index get-bottom-border | |
| 7 index get-right-border | |
| 8 index get-bottom-border | |
| 9 index get-right-border 9 index /right get /width get sub | |
| 10 index get-bottom-border 10 index /bottom get /width get add | |
| 11 index get-left-border 11 index /left get /width get add | |
| 12 index get-bottom-border 12 index /bottom get /width get add | |
| edge-show | |
| } if | |
| pop pop | |
| } def | |
| /edge-get-width { % => Edge | |
| dup /style get /none eq { | |
| pop 0 | |
| } { | |
| /width get | |
| } ifelse | |
| } def | |
| /edge-show { | |
| % If this border have 'transparent' color value, we just will not draw it | |
| 9 index color-is-transparent { | |
| pop pop pop | |
| pop | |
| pop pop pop pop pop pop pop pop | |
| } { | |
| edge-show-in | |
| } ifelse | |
| } def | |
| /edge-show-in { % => Style HI Color Width X1 Y1 X2 Y2 X3 Y3 X4 Y4 | |
| newpath | |
| 11 index /dashed eq { | |
| 9 index color-apply | |
| 8 index 4 mul 1 array astore 0 setdash | |
| 8 index setlinewidth | |
| 7 index 2 index add 2 div | |
| 7 index 2 index add 2 div | |
| moveto | |
| 5 index 4 index add 2 div | |
| 5 index 4 index add 2 div | |
| lineto | |
| stroke | |
| [] 0 setdash | |
| } if | |
| 11 index /dotted eq { | |
| 9 index color-apply | |
| 8 index 1 array astore 0 setdash | |
| 8 index setlinewidth | |
| 7 index 2 index add 2 div | |
| 7 index 2 index add 2 div | |
| moveto | |
| 5 index 4 index add 2 div | |
| 5 index 4 index add 2 div | |
| lineto | |
| stroke | |
| [] 0 setdash | |
| } if | |
| 11 index /solid eq { | |
| 9 index color-apply | |
| 7 index 7 index moveto | |
| 5 index 5 index lineto | |
| 3 index 3 index lineto | |
| 1 index 1 index lineto | |
| closepath | |
| fill | |
| } if | |
| 11 index /double eq { | |
| 9 index color-apply | |
| 1 px setlinewidth | |
| 7 index 7 index moveto | |
| 5 index 5 index lineto | |
| stroke | |
| 3 index 3 index moveto | |
| 1 index 1 index lineto | |
| stroke | |
| } if | |
| 11 index /inset eq { | |
| 10 index { | |
| 9 index color-apply | |
| } { | |
| 9 index | |
| [1.0 1.0 1.0 1.0] hilight-color-alpha color-blend | |
| color-apply | |
| } ifelse | |
| 7 index 7 index moveto | |
| 5 index 5 index lineto | |
| 3 index 3 index lineto | |
| 1 index 1 index lineto | |
| closepath | |
| fill | |
| } if | |
| 11 index /outset eq { | |
| 10 index not { | |
| 9 index color-apply | |
| } { | |
| 9 index | |
| [1.0 1.0 1.0 1.0] hilight-color-alpha color-blend | |
| color-apply | |
| } ifelse | |
| 7 index 7 index moveto | |
| 5 index 5 index lineto | |
| 3 index 3 index lineto | |
| 1 index 1 index lineto | |
| closepath | |
| fill | |
| } if | |
| 11 index /groove eq { | |
| 9 index | |
| [1.0 1.0 1.0 1.0] hilight-color-alpha color-blend | |
| color-apply | |
| 7 index 7 index moveto | |
| 5 index 5 index lineto | |
| 3 index 3 index lineto | |
| 1 index 1 index lineto | |
| closepath | |
| fill | |
| 9 index aload pop | |
| setrgbcolor | |
| 1 px setlinewidth | |
| 10 index { | |
| 7 index 7 index moveto | |
| 5 index 5 index lineto | |
| stroke | |
| } { | |
| 3 index 3 index moveto | |
| 1 index 1 index lineto | |
| stroke | |
| } ifelse | |
| } if | |
| 11 index /ridge eq { | |
| 9 index aload pop | |
| setrgbcolor | |
| 7 index 7 index moveto | |
| 5 index 5 index lineto | |
| 3 index 3 index lineto | |
| 1 index 1 index lineto | |
| closepath | |
| fill | |
| 9 index aload pop | |
| [1.0 1.0 1.0 1.0] hilight-color-alpha color-blend | |
| color-apply | |
| 1 px setlinewidth | |
| 10 index { | |
| 7 index 7 index moveto | |
| 5 index 5 index lineto | |
| stroke | |
| } { | |
| 3 index 3 index moveto | |
| 1 index 1 index lineto | |
| stroke | |
| } ifelse | |
| } if | |
| pop pop pop pop pop | |
| pop pop pop pop pop | |
| pop pop | |
| } def | |