/box-input-text-create { % => box-inline-create dup box-input-text-setup-methods dup /box-input-text add-type } def /box-input-text-get-min-width { % => Context This 2 copy /get-max-width call-method exch pop exch pop } def /box-input-text-line-break-allowed { % => This pop false } def /box-input-text-reflow { % => Context Parent This % Check if we need a line break here 3 copy /maybe-line-break call-method pop % Append to parent line box dup 2 index box-container-append-line % Determine coordinates of upper-left corner 2 copy box-generic-guess-corner % => Context Parent This % Determine the box width 2 index 1 index /get-min-width call-method 1 index put-full-width % => Context Parent This 2 index 1 index box-container-reflow-content % vertical-align dup get-content 0 get get-default-baseline 1 index get-extra-top add dup 2 index put-baseline 1 index put-default-baseline % Offset parent curernt 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 1 index box-generic-extend-height pop pop pop } def /box-input-text-setup-methods { dup /Methods get dup /get-min-width { box-input-text-get-min-width } put dup /line-break-allowed { box-input-text-line-break-allowed } put dup /reflow { box-input-text-reflow } put dup /show { box-input-text-show } put pop pop } def /box-input-text-show { % => Viewport This box-container-show } def