% $Header: /cvsroot/html2ps/postscript/box.select.ps,v 1.1 2005/12/18 07:21:37 Konstantin Exp $ /box-select-button-triangle-padding 1.5 def /box-select-create { box-container-create % => Box dup box-select-setup-methods dup /box-select add-type } def /box-select-reflow { % => Context Parent This % append to parent line box dup 2 index box-container-append-line % Determine coordinates of upper-left _margin_ corner 1 index 1 index box-generic-guess-corner % Determine the box width 2 index 1 index /get-max-width call-method 1 index put-full-width 2 index 1 index box-container-reflow-content 2 index context-pop-collapsed-margin 0 3 index context-push-collapsed-margin % => Context Parent This dup get-content 0 get get-baseline 1 index get-extra-top add 1 index put-baseline % => Context Parent This dup get-baseline 1 index put-default-baseline % 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-select-setup-methods { % => Box dup /Methods get dup /reflow {box-select-reflow} put dup /show {box-select-show} put pop pop } def /box-select-show { % => Viewport Box 2 copy box-container-show dup get-height 1 index get-padding-top add 1 index get-padding-bottom add % => Viewport Box ButtonHeight % Show arrow button box 0.93 0.93 0.93 setrgbcolor 1 index get-right-padding 1 index sub % => Viewport Box ButtonHeight X 2 index get-bottom-padding % => Viewport Box ButtonHeight X Y 2 index dup % => Viewport Box ButtonHeight X Y W H rectfill % => Viewport Box ButtonHeight % Show box boundary 0 0 0 setrgbcolor 1 index get-right-padding 1 index sub % => Viewport Box ButtonHeight X 2 index get-bottom-padding % => Viewport Box ButtonHeight X Y 2 index dup % => Viewport Box ButtonHeight X Y W H rectstroke % => Viewport Box ButtonHeight % Show arrow 0 0 0 setrgbcolor 1 index get-right-padding box-select-button-triangle-padding sub 2 index get-top-padding box-select-button-triangle-padding sub moveto 1 index get-right-padding 1 index sub box-select-button-triangle-padding add 2 index get-top-padding box-select-button-triangle-padding sub lineto 1 index get-right-padding 1 index 2 div sub 2 index get-bottom-padding box-select-button-triangle-padding add lineto closepath fill pop pop pop } def