/*****************************************************************************\ * PROGRAM NAME: xruler132 * * DESCRIPTION: Display a moveable ruler * * AUTHOR: dps * * DATE WRITTEN: 06/01/95 * \******************************************************************************/ DEF VAR lpos AS INTEGER INITIAL 1 NO-UNDO. DEF VAR lsize AS INTEGER INITIAL 1 NO-UNDO. DEF VAR pos AS INTEGER INITIAL 1 NO-UNDO. DEF VAR rule1 AS CHAR FORMAT "x(132)" NO-UNDO INITIAL " 1 2 3 4 5 6 7 8 9 0 1 2 3". DEF VAR rule2 AS CHAR FORMAT "x(132)" NO-UNDO INITIAL "123456789012345678901234567890123456789012345678901234567890123456789 012345678901234567890123456789012345678901234567890123456789012". TERMINAL = "ibm132". REPEAT: IF LASTKEY = KEYCODE("cursor-up") THEN DO: IF pos > 1 THEN pos = pos - 1. END. ELSE IF LASTKEY = KEYCODE("cursor-down") THEN DO: IF pos < 20 THEN pos = pos + 1. END. ELSE IF KEYFUNCTION(LASTKEY) = "home" THEN DO: pos = 1. END. ELSE IF KEYFUNCTION(LASTKEY) = "end" THEN DO: pos = 20. END. ELSE IF KEYFUNCTION(LASTKEY) = "cursor-right" THEN DO: IF lpos < 131 - lsize THEN lpos = lpos + 1. END. ELSE IF KEYFUNCTION(LASTKEY) = "cursor-left" THEN DO: IF lpos > 1 THEN lpos = lpos - 1. END. ELSE IF KEYFUNCTION(LASTKEY) = "+" OR KEYFUNCTION(LASTKEY) = "=" THEN DO: IF lsize < 130 THEN lsize = lsize + 1. IF lsize + lpos > 130 THEN BELL. END. ELSE IF KEYFUNCTION(LASTKEY) = "-" OR KEYFUNCTION(LASTKEY) = "_" THEN DO: IF lsize > 1 THEN lsize = lsize - 1. END. ELSE IF KEYFUNCTION(LASTKEY) = "end-error" THEN LEAVE. HIDE FRAME xruler. DISPLAY rule1 rule2 WITH FRAME xruler ROW pos COLUMN 1 NO-BOX NO-LABELS OVERLAY WIDTH 132. PUT SCREEN ROW pos COLUMN lpos FILL("X",lsize). STATUS DEFAULT "ROW: " + STRING(pos,"99") + " COL: " + STRING(lpos,"999") + " SIZE: " + STRING(lsize,"99") + " ". PAUSE 0. READKEY. END. /* repeat */ READKEY PAUSE 0. HIDE FRAME xruler. STATUS DEFAULT. TERMINAL = "ibm3151". /* end of module */