Files
luos/thirdparty/html2ps_pdf/postscript/box.radiobutton.ps
Paula Quispe 9eb7d6cac2 HOR-2689
2017-08-03 17:00:30 -04:00

97 lines
2.2 KiB
PostScript

/radiobutton-size 15 px def
/box-radiobutton-create {
box-generic-create
dup box-radiobutton-setup-methods
dup /checked false put
radiobutton-size 1 index put-default-baseline
radiobutton-size 1 index put-height
radiobutton-size 1 index put-width
dup /box-radionbutton add-type
} def
/box-radiobutton-get-min-width { % => Context This
dup get-full-width
exch pop
exch pop
} def
/box-radiobutton-get-max-width { % => Context This
dup get-full-width
exch pop
exch pop
} def
/box-radiobutton-put-checked { % => Value Box
exch /checked exch put
} def
/box-radiobutton-reflow { % => Context Parent This
% Set default baseline
dup get-default-baseline
1 index put-baseline
% Append to parent line box
dup 2 index box-container-append-line
% Deterine coordinates of upper-left _margin_ corner
2 copy
box-generic-guess-corner % => Context Parent This
% Offset parent current X coordinate
1 index get-current-x
1 index get-full-width add
2 index put-current-x
% Extend parent height
dup get-bottom-margin
2 index box-generic-extend-height
pop pop pop
} def
/box-radiobutton-setup-methods {
dup /Methods get
dup /get-min-width {box-radiobutton-get-min-width} put
dup /get-max-width {box-radiobutton-get-max-width} put
dup /reflow {box-radiobutton-reflow} put
dup /show {box-radiobutton-show} put
pop pop
} def
/box-radiobutton-show { % => Viewport This
% Get check center
dup get-left
1 index get-right add 2 div
1 index get-top
2 index get-bottom add 2 div % => Viewport This X Y
% Calculate checkbox size
2 index /get-width call-method
3 div % => Viewport This X Y Size
2 index exch
2 index exch % => Viewport This X Y X Y Size
0 360
% Draw checkbox
newpath
0.25 setlinewidth
arc stroke % => Viewport This X Y
% Draw checkmark if needed
2 index /checked get {
2 index /get-width call-method
6 div % => Viewport This X Y CheckSize
0 360
newpath
arc fill % => Viewport This
} { pop pop } ifelse
pop pop
} def