(FILECREATED "21-Sep-85 08:03:04" {ERIS}<LISPCORE>LIBRARY>KEYBOARDEDITOR.;3 43333
changes to: (VARS KEYBOARDEDITORCOMS)
(FNS EDITCONFIGURATION)
previous date: "20-Sep-85 11:33:40" {ERIS}<LISPCORE>LIBRARY>KEYBOARDEDITOR.;2)
(* Copyright (c) 1985 by Xerox Corporation. All rights reserved.)
(PRETTYCOMPRINT KEYBOARDEDITORCOMS)
(RPAQQ KEYBOARDEDITORCOMS ((FILES VIRTUALKEYBOARDS)
(COMS (* Editor for Configurations -- the description of the physical key layout, which keys
are assignable, etc.)
(FNS EDITCONFIGURATION VKBD.CONF.CHANGE-KEY-VALUE VKBD.CONF.DISPLAY-FIELD-VALUE
VKBD.CONF.DISPLAY-INFO-KEYBOARD VKBD.CONF.DISPLAY-KEY-INFO
VKBD.CONF.EDIT-DEFAULT-ASSIGNMENTS VKBD.CONF.ICONFN VKBD.CONF.PARSE-CONFIGURATION)
(BITMAPS VKBD.CONF.ICON))
(FNS EDITKEYBOARD VKBD.EDIT.ADD-SUBITEM-TO-BACKGROUND-MENU VKBD.EDIT.CREATE-COMMAND-MENU
VKBD.EDIT.CREATE-NON-CHAR-ASSIGMENTS-MENU VKBD.EDIT-KEYBOARD-COMMAND
VKBD.EDIT.ASSIGN-CHARACTER VKBD.EDIT.ASSIGN-NON-CHARACTER
VKBD.EDIT.CREATE-CHARACTER-SETS-MENU VKBD.EDIT.CREATE-CHARACTERS-MENU
VKBD.EDIT.CREATE-DISPLAY VKBD.EDIT.DEFINE-COMMAND VKBD.EDIT.DO-MENU-COMMAND
VKBD.EDIT.ICONFN VKBD.EDIT.INVERT-IF-LOCKED VKBD.EDIT.KEYBOARD-REPAINTFN
VKBD.EDIT.LARGE-WINDOW-REPAINTFN VKBD.EDIT.MAKE-CURRENT-KEY VKBD.EDIT.QUIT-COMMAND
VKBD.EDIT.STOP-COMMAND VKBD.EDIT.SWITCH-CHAR-SET-COMMAND VKBD.EDIT.SWITCH-CHARACTER-SET
VKBD.EDIT.ROTATED-NUMBER)
(INITVARS (VKBD.EDIT.ALLOW-NON-CHAR-ASSIGNMENTS T)
(VKBD.EDIT.MAX-NUMBER-OF-CASHED-MENUS 15)
(VKBD.EDITOR-WINDOW-HEIGHT 450)
(VKBD.EDITOR-WINDOW-WIDTH 512)
(VKBD.EDIT.DISPLAY-CHAR-SETS-NAMES T))
(VARS VKBD.EDIT.BACKGROUND-MENU-SUBITEMS (VKBD.EDIT.CASH-MENUES NIL)
VKBD.EDIT.CHAR-SET-NAMES VKBD.EDIT.MENU-ITEMS VKBD.EDIT.NON-CHAR-ASSIGNMENTS)
(BITMAPS VKBD.EDIT.ICON VKBD.EDIT.MASK)
(GLOBALVARS VKBD.EDIT.ALLOW-NON-CHAR-ASSIGNMENTS VKBD.EDIT.BACKGROUND-MENU-SUBITEMS
VKBD.EDIT.MAX-NUMBER-OF-CASHED-MENUS VKBD.EDITOR-WINDOW-HEIGHT
VKBD.EDITOR-WINDOW-WIDTH VKBD.EDIT.DISPLAY-CHAR-SETS-NAMES VKBD.EDIT.CASH-MENUES
VKBD.EDIT.CHAR-SET-NAMES VKBD.EDIT.MENU-ITEMS VKBD.EDIT.NON-CHAR-ASSIGNMENTS
VKBD.CONF.ICON VKBD.EDIT.ICON VKBD.EDIT.MASK)
(P (VKBD.EDIT.ADD-SUBITEM-TO-BACKGROUND-MENU (LIST "Edit" [QUOTE (ADD.PROCESS
(QUOTE (
VKBD.EDIT-KEYBOARD-COMMAND T]
"Calls the keyboard editor. Will prompt for name for the new keyboard, and will use the default keyboard as the initial keyboard"
VKBD.EDIT.BACKGROUND-MENU-SUBITEMS)
"Keyboard"))))
(FILESLOAD VIRTUALKEYBOARDS)
(* Editor for Configurations -- the description of the physical key layout, which keys are
assignable, etc.)
(DEFINEQ
(EDITCONFIGURATION
[LAMBDA (CONFIGNAME) (* jds "21-Sep-85 08:00")
(VKBD.CONF.DISPLAY-INFO-KEYBOARD CONFIGNAME])
(VKBD.CONF.CHANGE-KEY-VALUE
[LAMBDA (ITEM MENU MOUSEKEY) (* sm "14-Aug-85 18:05")
(PROG (MAINW CONF WINDOW PROMPTW KEY)
(SETQ WINDOW (WFROMMENU MENU))
[SETQ PROMPTW (CAR (WINDOWPROP WINDOW (QUOTE PROMPTWINDOW]
(SETQ MAINW (MAINWINDOW WINDOW T))
(SETQ CONF (VKBD.GET-CONFIGURATION MAINW))
(SETQ KEY (WINDOWPROP MAINW (QUOTE VKBD.CONF.CURRENT-KEY)))
(SELECTQ (CADR ITEM)
(KEYID (PROG (NEW)
(SETQ NEW (CAR (TTYINEDIT (LIST KEY)
PROMPTW NIL "Enter new ID :")))
(DSUBST NEW KEY CONF)
(WINDOWPROP MAINW (QUOTE VKBD.CONF.CURRENT-KEY)
NEW)
(SETQ KEY NEW)))
(REGIONS (PROG (CURRENT-REGIONS NEW-REGIONS)
(SETQ CURRENT-REGIONS (FASSOC KEY (fetch (KEYBOARDCONFIGURATION
KEYREGIONS)
of CONF)))
(SETQ NEW-REGIONS (CAR (TTYINEDIT (LIST (CDR CURRENT-REGIONS))
PROMPTW NIL
"Enter new region(s) :")))
(RPLACD CURRENT-REGIONS NEW-REGIONS)))
[DEFAULT (PROG (CURRENT-DEFAULT ASSIGNMENTS NEW)
(SETQ ASSIGNMENTS (fetch (KEYBOARDCONFIGURATION DEFAULTASSIGNMENT)
of CONF))
(SETQ CURRENT-DEFAULT (FASSOC KEY ASSIGNMENTS))
(SETQ ASSIGNMENTS (REMOVE CURRENT-DEFAULT ASSIGNMENTS))
(SETQ NEW (CAR (TTYINEDIT (LIST (CDR CURRENT-DEFAULT))
PROMPTW NIL "Enter new default(s):")))
(replace (KEYBOARDCONFIGURATION DEFAULTASSIGNMENT) of CONF
with (CONS (CONS KEY NEW)
ASSIGNMENTS))
(WINDOWPROP MAINW (QUOTE VKBD.KEYBOARD)
(VKBD.CREATE-DEFAULT-KEYBOARD CONF]
(NAMES (PROG (CURRENT NEW MAPPING)
(SETQ CURRENT (VKBD.KEY-ID-TO-KEY-NAMES KEY CONF))
(SETQ MAPPING (fetch (KEYBOARDCONFIGURATION KEYNAMESMAPPING)
of CONF))
(for N in CURRENT do (SETQ MAPPING (REMOVE (LIST N KEY)
MAPPING)))
(SETQ NEW (CAR (TTYINEDIT (LIST CURRENT)
PROMPTW NIL "Enter new NAME(s) :")))
(for N in (MKLIST NEW) do (pushnew MAPPING (LIST N KEY)))
(replace (KEYBOARDCONFIGURATION KEYNAMESMAPPING) of CONF
with MAPPING)))
[LABEL (PROG (OLD-LABEL LABELS NEW)
(SETQ LABELS (fetch (KEYBOARDCONFIGURATION KEYLABELS) of CONF))
(SETQ OLD-LABEL (FASSOC KEY LABELS))
(if OLD-LABEL
then (SETQ LABELS (REMOVE OLD-LABEL LABELS))
(SETQ OLD-LABEL (CADR OLD-LABEL)))
(SETQ NEW (CAR (TTYINEDIT (LIST OLD-LABEL)
PROMPTW NIL "Enter new LABEL :")))
(replace (KEYBOARDCONFIGURATION KEYLABELS) of CONF
with (if NEW
then (CONS (LIST KEY NEW)
LABELS)
else LABELS]
[ASSIGNABLE (PROG (ASS-KEYS)
(SETQ ASS-KEYS (fetch (KEYBOARDCONFIGURATION ASSIGNABLEKEYS)
of CONF))
(if (FMEMB KEY ASS-KEYS)
then (DREMOVE KEY ASS-KEYS)
else (replace (KEYBOARDCONFIGURATION ASSIGNABLEKEYS)
of CONF with (CONS KEY ASS-KEYS]
(PROGN (PROMPTPRINT "ILLEGAL FIELD VALUE IN <VKBD.CONF.CHANGE-KEY-VALUE>")
(RETURN NIL)))
(CLEARW PROMPTW)
(VKBD.CONF.DISPLAY-FIELD-VALUE KEY (CADR ITEM)
CONF WINDOW MENU])
(VKBD.CONF.DISPLAY-FIELD-VALUE
[LAMBDA (KEY FIELD CONF WINDOW MENU) (* sm "14-Aug-85 17:30")
(PROG (X Y)
[for ITEM in (fetch ITEMS of MENU) when (EQ (CADR ITEM)
FIELD)
do (SETQ Y (fetch BOTTOM of (MENUITEMREGION ITEM MENU]
(SETQ X (IPLUS (fetch MENUREGIONLEFT of MENU)
(fetch IMAGEWIDTH of MENU)
5))
(DSPFILL (CREATEREGION X Y (IDIFFERENCE (fetch WIDTH of (WINDOWPROP WINDOW (QUOTE REGION)))
Y)
(fetch ITEMHEIGHT of MENU))
(DSPTEXTURE NIL WINDOW)
(QUOTE REPLACE)
WINDOW)
(MOVETO X Y WINDOW)
(PRIN1 (SELECTQ FIELD
(KEYID KEY)
(REGIONS (VKBD.GET-KEY-REGIONS KEY CONF))
[DEFAULT (CDR (VKBD.FETCH-KEY-ASSIGNMENT KEY (MAINWINDOW WINDOW]
(NAMES (VKBD.KEY-ID-TO-KEY-NAMES KEY CONF))
[LABEL (CADR (FASSOC KEY (fetch (KEYBOARDCONFIGURATION KEYLABELS)
of CONF]
(ASSIGNABLE (if (FMEMB KEY (fetch (KEYBOARDCONFIGURATION ASSIGNABLEKEYS)
of CONF))
then T
else NIL))
(PROMPTPRINT "ILLEGAL FIELD VALUE FOR DISPLAY CONFIGURATION FIELD VALUE!"))
WINDOW])
(VKBD.CONF.DISPLAY-INFO-KEYBOARD
[LAMBDA (CONFIGURATION) (* sm "16-Aug-85 10:59")
(PROG (WINDOW ATT-WINDOW MENU)
(SETQ CONFIGURATION (VKBD.GET-CONFIGURATION CONFIGURATION))
(SETQ WINDOW (VKBD.CREATE-KEYBOARD-DISPLAY (VKBD.CREATE-DEFAULT-KEYBOARD CONFIGURATION)
NIL
(QUOTE VKBD.CONF.DISPLAY-KEY-INFO)))
(SETQ MENU (create MENU
ITEMS ←(QUOTE (("Key ID" KEYID)
("Key regions" REGIONS)
("Default assignment" DEFAULT)
("Key names" NAMES)
("Key Label" LABEL)
("Assignable? " ASSIGNABLE)))
MENUBORDERSIZE ← 0
MENUOUTLINESIZE ← 0
MENUFONT ← BOLDFONT
WHENSELECTEDFN ←(QUOTE VKBD.CONF.CHANGE-KEY-VALUE)))
(SETQ ATT-WINDOW (CREATEW (CREATEREGION 0 0 (fetch WIDTH of (WINDOWPROP WINDOW
(QUOTE REGION)))
(IPLUS 10 (fetch IMAGEHEIGHT of MENU)))
NIL NIL T))
(ATTACHWINDOW ATT-WINDOW WINDOW (QUOTE TOP)
(QUOTE JUSTIFY))
(OPENW ATT-WINDOW)
(ADDMENU MENU ATT-WINDOW (create POSITION
XCOORD ← 0
YCOORD ← 0))
(GETPROMPTWINDOW ATT-WINDOW 2 BOLDFONT)
(WINDOWPROP WINDOW (QUOTE ICONFN)
(QUOTE VKBD.CONF.ICONFN])
(VKBD.CONF.DISPLAY-KEY-INFO
[LAMBDA (KEY WINDOW MOUSEKEY) (* sm "14-Aug-85 15:38")
(PROG (CONFIGURATION OLD-KEY ATT-WINDOW)
(if (SETQ OLD-KEY (WINDOWPROP WINDOW (QUOTE VKBD.CONF.CURRENT-KEY)))
then (VKBD.ERASE-FRAME OLD-KEY WINDOW 2))
(WINDOWPROP WINDOW (QUOTE VKBD.CONF.CURRENT-KEY)
KEY)
(VKBD.FRAME-KEY KEY WINDOW BLACKSHADE 2)
(SETQ CONFIGURATION (VKBD.GET-CONFIGURATION WINDOW))
(SETQ ATT-WINDOW (CAR (ATTACHEDWINDOWS WINDOW)))
(for F in (QUOTE (KEYID REGIONS DEFAULT NAMES LABEL ASSIGNABLE))
do (VKBD.CONF.DISPLAY-FIELD-VALUE KEY F CONFIGURATION ATT-WINDOW
(CAR (WINDOWPROP ATT-WINDOW (QUOTE MENU])
(VKBD.CONF.EDIT-DEFAULT-ASSIGNMENTS
[LAMBDA (CONFIGURATION) (* sm "15-Aug-85 10:25")
(PROG (DUMMY-CONFIGURATION DUMMY-KEYBOARD)
(SETQ CONFIGURATION (VKBD.GET-CONFIGURATION CONFIGURATION))
(SETQ DUMMY-CONFIGURATION (COPY CONFIGURATION))
(replace (KEYBOARDCONFIGURATION ASSIGNABLEKEYS) of DUMMY-CONFIGURATION
with (fetch (KEYBOARDCONFIGURATION KEYSIDLIST) of DUMMY-CONFIGURATION))
(replace (KEYBOARDCONFIGURATION KEYLABELS) of DUMMY-CONFIGURATION with NIL)
(SETQ DUMMY-KEYBOARD (create VIRTUALKEYBOARD
KEYBOARDNAME ← "DEFAULT ASIGNMENTS"
KEYASSIGNMENTS ←(fetch (KEYBOARDCONFIGURATION
DEFAULTASSIGNMENT)
of CONFIGURATION)
KEYBOARDCONFIGURATION ← DUMMY-CONFIGURATION))
(EDITKEYBOARD DUMMY-KEYBOARD)
(replace (KEYBOARDCONFIGURATION DEFAULTASSIGNMENT) of CONFIGURATION
with (fetch (VIRTUALKEYBOARD KEYASSIGNMENTS) of DUMMY-KEYBOARD])
(VKBD.CONF.ICONFN
[LAMBDA (WINDOW ICON) (* sm "15-Aug-85 11:02")
[COND
((NULL ICON)
(SETQ ICON (TITLEDICONW (create TITLEDICON
ICON ← VKBD.CONF.ICON
MASK ← VKBD.EDIT.MASK
TITLEREG ←(CREATEREGION 5 15 80 75))
(CONCAT "EDIT CONFIGURATION: " (fetch (KEYBOARDCONFIGURATION
CONFIGURATIONNAME)
of (VKBD.GET-CONFIGURATION WINDOW)))
(FONTCREATE (QUOTE GACHA)
8]
ICON])
(VKBD.CONF.PARSE-CONFIGURATION
[LAMBDA (CONFIGURATION) (* sm " 5-Aug-85 17:05")
(PROG (ERROR-FLAG REGS IDS)
(SETQ CONFIGURATION (VKBD.GET-CONFIGURATION CONFIGURATION))
(if (NULL CONFIGURATION)
then (PRINTOUT T T CONFIGURATION " NOT A CONFIGURATION. ")
(RETURN NIL))
(SETQ IDS (fetch (KEYBOARDCONFIGURATION KEYSIDLIST) of CONFIGURATION))
(SETQ REGS (fetch (KEYBOARDCONFIGURATION KEYREGIONS) of CONFIGURATION))
(if (NULL IDS)
then (PRINTOUT T T "Null Id list. ")
(RETURN NIL))
(if (LESSP (LENGTH REGS)
(LENGTH IDS))
then (PRINTOUT T T "KEYS WITHOUT REGIONS : ")
(for K in IDS when (NOT (FASSOC K REGS)) do (PRINTOUT T " " K))
(SETQ ERROR-FLAG T))
(for R in REGS do (for R1 in (CDR R) when (NOT (REGIONP R1))
DO (SETQ ERROR-FLAG T)
(PRINTOUT T T "KEY : " (CAR R)
" -- " R1 " NOT A REGION")))
(for KEY in (fetch (KEYBOARDCONFIGURATION ASSIGNABLEKEYS) of CONFIGURATION)
when (NOT (FMEMB KEY IDS))
do (SETQ ERROR-FLAG T)
(PRINTOUT T T "KEY :" KEY " IS IN THE ASSIGNABLE KEYS BUT NOT IN KEY IDS"))
(for ASS in (fetch (KEYBOARDCONFIGURATION DEFAULTASSIGNMENT) of CONFIGURATION)
when (NOT (FMEMB (CAR ASS)
IDS))
do (SETQ ERROR-FLAG T)
(PRINTOUT T T "KEY : " (CAR ASS)
" HAS ASSIGNMENT BUT IS NOT IN ID LIST"))
(for ID in IDS when (NOT (FASSOC ID (fetch (KEYBOARDCONFIGURATION DEFAULTASSIGNMENT)
of CONFIGURATION)))
do (SETQ ERROR-FLAG T)
(PRINTOUT T T "KEY :" ID " DOES NOT HAVE ASSIGNMENT."))
(RETURN (NOT ERROR-FLAG])
)
(RPAQ VKBD.CONF.ICON (READBITMAP))
(93 93
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"NGOOOOOOOOOOOOOOOOOOOOCH"
"NGOOOOOOOOOOOOOOOOOOOOCH"
"NGOOOOOOOOOOOOOOOOOOOOCH"
"NG@HECI@HDCI@HDNALHD@GCH"
"NG@HECI@HDCI@HDNALHD@GCH"
"NG@HECO@HDCM@OONALHDNGCH"
"NG@HDCO@HDCM@OONAOHGOOCH"
"NGOOOOOOOOOOOOOOOOOOOOCH"
"NG@BA@NDBAALDNA@IOBGOOCH"
"NGGBA@NDBAALDNA@HGBG@GCH"
"NGGCOOOLBAOOONAOOOOOFGCH"
"NG@COOOLBAOOONAOOOOO@GCH"
"NGOOOOOOOOOOOOOOOOOOHGCH"
"NG@CHDCI@ILBCHHNBALHIGCH"
"NG@CHDCI@ILBCHHNBALHIGCH"
"NGOOHDCOOOLBCHINBALHIGCH"
"NGOOHDCOOOLBGHINBALHHGCH"
"NGOOOOOOOOOOOOOOOOOOOOCH"
"NG@@@HDGA@HDGAALDCM@@GCH"
"NG@@@HDGA@HDGAALDCI@@GCH"
"NG@@@HDGA@HDGAALDCI@@GCH"
"NG@@@HDGA@HDGAALDCI@@GCH"
"NGOOOOOOOOOOOOOOOOOOOOCH"
"NGOOOOOOOOOOOOOOOOOOOOCH"
"NGOOOOOOOOOOOOOOOOOOOOCH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH")
(DEFINEQ
(EDITKEYBOARD
[LAMBDA (KEYBOARD SOURCE-KEYBOARD CONFIGURATION-NAME) (* sm " 1-Aug-85 17:55")
(PROG (VKBD.EDIT-WINDOW CURRENT-EVENT KEYBOARD-TO-EDIT COMPLETE-KEYBOARD)
(COND
((NULL KEYBOARD)
(RETURN NIL)))
(if (ATOM KEYBOARD)
then (SETQ KEYBOARD-TO-EDIT (FASSOC KEYBOARD VKBD.KNOWN-KEYBOARDS))
(if (NULL KEYBOARD-TO-EDIT)
then [if (AND (NULL SOURCE-KEYBOARD)
CONFIGURATION-NAME)
then (SETQ KEYBOARD-TO-EDIT (VKBD.CREATE-DEFAULT-KEYBOARD
CONFIGURATION-NAME))
else [SETQ KEYBOARD-TO-EDIT (COPY (if (AND SOURCE-KEYBOARD
(ATOM SOURCE-KEYBOARD))
then (FASSOC SOURCE-KEYBOARD
VKBD.KNOWN-KEYBOARDS]
(if (NULL KEYBOARD-TO-EDIT)
then (SETQ KEYBOARD-TO-EDIT (COPY (FASSOC (QUOTE DEFAULT)
VKBD.KNOWN-KEYBOARDS]
(replace KEYBOARDNAME of KEYBOARD-TO-EDIT with KEYBOARD))
else (SETQ KEYBOARD-TO-EDIT KEYBOARD))
(SETQ VKBD.EDIT-WINDOW (VKBD.EDIT.CREATE-DISPLAY KEYBOARD-TO-EDIT))
(WINDOWPROP VKBD.EDIT-WINDOW (QUOTE VKBD.KEYBOARD)
(COPY KEYBOARD-TO-EDIT))
(WINDOWPROP VKBD.EDIT-WINDOW (QUOTE VKBD.ORIGINAL-KEYBOARD)
KEYBOARD-TO-EDIT)
(WINDOWPROP VKBD.EDIT-WINDOW (QUOTE VKBD.EDITOR-RETURN-EVENT)
(SETQ CURRENT-EVENT (CREATE.EVENT "VKBD.EDIT")))
(AWAIT.EVENT CURRENT-EVENT)
(CLOSEW VKBD.EDIT-WINDOW)
(RETURN (WINDOWPROP VKBD.EDIT-WINDOW (QUOTE VKBD.KEYBOARD])
(VKBD.EDIT.ADD-SUBITEM-TO-BACKGROUND-MENU
[LAMBDA (SUBITEM MAINITEMLABEL) (* sm "15-Aug-85 14:14")
(PROG (MAINITEM OLD)
(SETQ MAINITEM (SASSOC MAINITEMLABEL BackgroundMenuCommands))
[if MAINITEM
then (if (AND (CDDDR MAINITEM)
(EQ (CAR (CADDDR MAINITEM))
(QUOTE SUBITEMS)))
then (if (SETQ OLD (SASSOC (CAR SUBITEM)
(CADDDR MAINITEM)))
then (RPLACD OLD (CDR SUBITEM))
else (NCONC1 (CADDDR MAINITEM)
SUBITEM))
else (RPLACD (CDDR MAINITEM)
(LIST (LIST (QUOTE SUBITEMS)
SUBITEM]
(SETQ BackgroundMenu NIL])
(VKBD.EDIT.CREATE-COMMAND-MENU
[LAMBDA NIL (* sm " 1-Aug-85 17:22")
(create MENU
ITEMS ← VKBD.EDIT.MENU-ITEMS
MENUFONT ←(FONTCREATE (QUOTE HELVETICA)
12
(QUOTE BOLD))
CENTERFLG ← T
MENUROWS ← 1
WHENSELECTEDFN ←(QUOTE VKBD.EDIT.DO-MENU-COMMAND])
(VKBD.EDIT.CREATE-NON-CHAR-ASSIGMENTS-MENU
[LAMBDA NIL (* sm "13-Aug-85 11:09")
(create MENU
ITEMS ← VKBD.EDIT.NON-CHAR-ASSIGNMENTS
MENUFONT ←(FONTCREATE (QUOTE GACHA)
8)
MENUROWS ←(ADD1 (IQUOTIENT (SUB1 (LENGTH VKBD.EDIT.NON-CHAR-ASSIGNMENTS))
4))
CENTERFLG ← T
WHENSELECTEDFN ←(QUOTE VKBD.EDIT.ASSIGN-CHARACTER])
(VKBD.EDIT-KEYBOARD-COMMAND
[LAMBDA (NEW-KEYBOARD? ASK-FOR-INITIAL?) (* sm "14-Aug-85 15:11")
(PROG (NEW-NAME KEYBOARD INITIAL-KEYBOARD)
(if (NOT NEW-KEYBOARD?)
then (SETQ KEYBOARD (VKBD.POP-UP-KEYBOARDS-MENU
"Select the keyboard that you want to edit"))
(if KEYBOARD
then (if (EQ KEYBOARD (QUOTE DEFAULT))
then (PROMPTPRINT "Can not edit the default keyboard.")
else (EDITKEYBOARD KEYBOARD)))
else [SETQ NEW-NAME (MKATOM (PROMPTFORWORD "Enter name for new keyboard :" NIL NIL
PROMPTWINDOW NIL (QUOTE TTY]
(if NEW-NAME
then (if ASK-FOR-INITIAL?
then (SETQ INITIAL-KEYBOARD (VKBD.POP-UP-KEYBOARDS-MENU
"Select the keyboard to be used as initial keyboard for the editing"))
(if INITIAL-KEYBOARD
then (EDITKEYBOARD NEW-NAME INITIAL-KEYBOARD))
else (EDITKEYBOARD NEW-NAME (QUOTE DEFAULT])
(VKBD.EDIT.ASSIGN-CHARACTER
[LAMBDA (ITEM MENU MOUSE-KEY) (* sm "15-Aug-85 10:02")
(PROG (WINDOW KEY SHIFTED CURRENT-KEY-INFO KEY-ASSIGNMENT KEYBOARD)
(SETQ WINDOW (MAINWINDOW (WFROMMENU MENU)
T))
(SETQ KEYBOARD (WINDOWPROP WINDOW (QUOTE VKBD.KEYBOARD)))
(SETQ CURRENT-KEY-INFO (WINDOWPROP WINDOW (QUOTE VKBD.CURRENT-KEY)))
(if CURRENT-KEY-INFO
then (SETQ KEY (CAR CURRENT-KEY-INFO))
(SETQ SHIFTED (CADR CURRENT-KEY-INFO))
(SETQ KEY-ASSIGNMENT (VKBD.FETCH-KEY-ASSIGNMENT KEY WINDOW))
[if (AND VKBD.EDIT.ALLOW-NON-CHAR-ASSIGNMENTS (MEMBER ITEM
VKBD.EDIT.NON-CHAR-ASSIGNMENTS))
then (VKBD.EDIT.ASSIGN-NON-CHARACTER KEY-ASSIGNMENT ITEM)
else (if (NULL KEY-ASSIGNMENT)
then (replace (VIRTUALKEYBOARD KEYASSIGNMENTS) of KEYBOARD
with (CONS (LIST KEY (LIST (CADR ITEM)
(CADR ITEM)
(QUOTE NOLOCKSHIFT)))
(fetch (VIRTUALKEYBOARD KEYASSIGNMENTS)
of KEYBOARD)))
else (RPLACD (CDR KEY-ASSIGNMENT)
NIL)
(if (OR (NULL (CDR KEY-ASSIGNMENT))
(ATOM (CADR KEY-ASSIGNMENT)))
then [RPLACD KEY-ASSIGNMENT (LIST (LIST (CADR ITEM)
(CADR ITEM)
(QUOTE NOLOCKSHIFT]
else (if SHIFTED
then (RPLACA (CDADR KEY-ASSIGNMENT)
(CADR ITEM))
else (RPLACA (CADR KEY-ASSIGNMENT)
(CADR ITEM]
(VKBD.DISPLAY-KEY KEY WINDOW)
else (FLASHWINDOW PROMPTWINDOW)
(PRINTOUT PROMPTWINDOW T
"There is no current selected key. Character was not assigned."])
(VKBD.EDIT.ASSIGN-NON-CHARACTER
[LAMBDA (KEY-ASSIGNMENT NEW-ASSIGNMENT) (* sm "13-Aug-85 10:16")
(RPLACD KEY-ASSIGNMENT (SELECTQ NEW-ASSIGNMENT
(SHIFT (QUOTE (1SHIFTDOWN . 1SHIFTUP)))
(CTRL (QUOTE (CTRLDOWN . CTRLUP)))
(META (QUOTE (METADOWN . METAUP)))
(LOCK (QUOTE (LOCKDOWN . LOCKUP)))
(LOCKDOWN (QUOTE (LOCKDOWN)))
(LOCKUP (QUOTE (LOCKUP)))
(EVENT (QUOTE (EVENT . EVENT)))
NIL])
(VKBD.EDIT.CREATE-CHARACTER-SETS-MENU
[LAMBDA NIL (* sm "15-Aug-85 12:13")
(if VKBD.EDIT.DISPLAY-CHAR-SETS-NAMES
then [create MENU
ITEMS ← VKBD.EDIT.CHAR-SET-NAMES
MENUFONT ← BIGFONT
ITEMWIDTH ←(ITIMES 29 16)
ITEMHEIGHT ←(ADD1 (IQUOTIENT (ITIMES 25 16)
(LENGTH VKBD.EDIT.CHAR-SET-NAMES]
else (create MENU
ITEMS ←(for I from 1 to 256 bind ROTATED-I
collect (PROGN (SETQ ROTATED-I (SUB1 (VKBD.EDIT.ROTATED-NUMBER I 16 16)))
(LIST (OCTALSTRING ROTATED-I)
ROTATED-I)))
MENUCOLUMNS ← 16
CENTERFLG ← T
ITEMHEIGHT ← 25
ITEMWIDTH ← 29])
(VKBD.EDIT.CREATE-CHARACTERS-MENU
[LAMBDA (CHAR-SET-NUMBER FONT) (* sm "15-Aug-85 12:15")
(PROG (EXISTING-MENU-INFO NEW-MENU)
[SETQ EXISTING-MENU-INFO (for CHARSET-FONT-MENU in VKBD.EDIT.CASH-MENUES
thereis (AND (EQP (CAR CHARSET-FONT-MENU)
CHAR-SET-NUMBER)
(EQ (CADR CHARSET-FONT-MENU)
FONT]
(if EXISTING-MENU-INFO
then (RETURN (CADDR EXISTING-MENU-INFO)))
(PRINTOUT PROMPTWINDOW T "Wait. Bitmaps for character set " (OCTALSTRING CHAR-SET-NUMBER)
" are being retrieved. ")
(SETQ NEW-MENU (create MENU
ITEMS ←(for I from 0 to 255 bind CODE bind ROTATED-I
collect (PROGN (SETQ ROTATED-I (SUB1 (
VKBD.EDIT.ROTATED-NUMBER (ADD1 I)
16 16)))
(LIST (GETCHARBITMAP (SETQ CODE
(VKBD.PARSE-CHAR-CODE
(LIST
CHAR-SET-NUMBER
ROTATED-I)))
FONT)
CODE)))
MENUCOLUMNS ← 16
CENTERFLG ← T
ITEMHEIGHT ← 25
ITEMWIDTH ← 29
WHENSELECTEDFN ←(QUOTE VKBD.EDIT.ASSIGN-CHARACTER)))
(PROMPTPRINT "... Done. ")
(push VKBD.EDIT.CASH-MENUES (LIST CHAR-SET-NUMBER FONT NEW-MENU))
(if (GREATERP (LENGTH VKBD.EDIT.CASH-MENUES)
VKBD.EDIT.MAX-NUMBER-OF-CASHED-MENUS)
then (RPLACD (LAST VKBD.EDIT.CASH-MENUES)
NIL))
(RETURN NEW-MENU])
(VKBD.EDIT.CREATE-DISPLAY
[LAMBDA (KEYBOARD) (* sm "13-Aug-85 12:37")
(PROG (WINDOW LARGE-WINDOW BM WPOS REGION-WIDTH REGION-HEIGHT NON-CHAR-WINDOW COMMAND-MENU
NON-CHAR-MENU)
(SETQ BM (VKBD.CREATE-KEYBOARD-BITMAP (fetch (VIRTUALKEYBOARD KEYBOARDCONFIGURATION)
of KEYBOARD)))
(if VKBD.EDIT.ALLOW-NON-CHAR-ASSIGNMENTS
then (SETQ NON-CHAR-MENU (VKBD.EDIT.CREATE-NON-CHAR-ASSIGMENTS-MENU)))
(SETQ COMMAND-MENU (VKBD.EDIT.CREATE-COMMAND-MENU))
[SETQ REGION-WIDTH (MAX VKBD.EDITOR-WINDOW-WIDTH (IPLUS 8 (BITMAPWIDTH BM]
(SETQ REGION-HEIGHT (MIN SCREENHEIGHT (IPLUS (fetch IMAGEHEIGHT of COMMAND-MENU)
(if VKBD.EDIT.ALLOW-NON-CHAR-ASSIGNMENTS
then (fetch IMAGEHEIGHT of NON-CHAR-MENU)
else 0)
(BITMAPHEIGHT BM)
VKBD.EDITOR-WINDOW-HEIGHT 20)))
(SETQ WPOS (GETBOXPOSITION REGION-WIDTH REGION-HEIGHT NIL NIL NIL
"Specify region for Keyboard Editor window"))
(SETQ WINDOW (VKBD.CREATE-KEYBOARD-DISPLAY KEYBOARD WPOS (QUOTE VKBD.EDIT.MAKE-CURRENT-KEY)
BM))
(WINDOWPROP WINDOW (QUOTE REPAINTFN)
(QUOTE VKBD.EDIT.KEYBOARD-REPAINTFN))
(WINDOWPROP WINDOW (QUOTE ICONFN)
(QUOTE VKBD.EDIT.ICONFN))
(SETQ LARGE-WINDOW (CREATEW (CREATEREGION 0 0 VKBD.EDITOR-WINDOW-WIDTH
VKBD.EDITOR-WINDOW-HEIGHT)
(CONCAT "Edit of Keyboard : " (fetch (VIRTUALKEYBOARD
KEYBOARDNAME)
of KEYBOARD))
NIL T))
(WINDOWPROP LARGE-WINDOW (QUOTE CLOSEFN)
(QUOTE VKBD.EDIT.STOP-COMMAND))
(ATTACHWINDOW LARGE-WINDOW WINDOW (QUOTE TOP)
(QUOTE CENTER))
(if VKBD.EDIT.ALLOW-NON-CHAR-ASSIGNMENTS
then (ATTACHMENU NON-CHAR-MENU LARGE-WINDOW (QUOTE TOP)
(QUOTE JUSTIFY)))
(OPENW LARGE-WINDOW)
(WINDOWPROP LARGE-WINDOW (QUOTE RESHAPEFN)
(QUOTE DON'T))
(ATTACHMENU COMMAND-MENU LARGE-WINDOW (QUOTE TOP)
(QUOTE JUSTIFY))
(WINDOWPROP WINDOW (QUOTE VKBD.CHAR-SET-MENU)
(VKBD.EDIT.CREATE-CHARACTER-SETS-MENU))
(VKBD.EDIT.LARGE-WINDOW-REPAINTFN LARGE-WINDOW)
(VKBD.EDIT.SWITCH-CHARACTER-SET 0 LARGE-WINDOW)
(WINDOWADDPROP LARGE-WINDOW (QUOTE REPAINTFN)
(QUOTE VKBD.EDIT.LARGE-WINDOW-REPAINTFN))
(RETURN WINDOW])
(VKBD.EDIT.DEFINE-COMMAND
[LAMBDA (WINDOW) (* sm " 5-Aug-85 09:26")
(DEFINEKEYBOARD (WINDOWPROP WINDOW (QUOTE VKBD.KEYBOARD)))
(PRINTOUT PROMPTWINDOW "Keyboard " (fetch (VIRTUALKEYBOARD KEYBOARDNAME)
of (WINDOWPROP WINDOW (QUOTE VKBD.KEYBOARD)))
" was added to the set of known keyboards."])
(VKBD.EDIT.DO-MENU-COMMAND
[LAMBDA (ITEM MENU KEY) (* sm " 1-Aug-85 17:34")
(APPLY* (CADR ITEM)
(MAINWINDOW (WFROMMENU MENU)
T])
(VKBD.EDIT.ICONFN
[LAMBDA (WINDOW ICON) (* sm "15-Aug-85 11:10")
[COND
((NULL ICON)
(SETQ ICON (TITLEDICONW (create TITLEDICON
ICON ← VKBD.EDIT.ICON
MASK ← VKBD.EDIT.MASK
TITLEREG ←(CREATEREGION 5 25 80 65))
[CONCAT "EDIT KEYBOARD: " (fetch (VIRTUALKEYBOARD KEYBOARDNAME)
of (WINDOWPROP WINDOW (QUOTE
VKBD.KEYBOARD]
(FONTCREATE (QUOTE GACHA)
8]
ICON])
(VKBD.EDIT.INVERT-IF-LOCKED
[LAMBDA (KEY WINDOW) (* sm "13-Aug-85 10:01")
(PROG (KEY-ASSIGNMENT)
(SETQ KEY-ASSIGNMENT (VKBD.FETCH-KEY-ASSIGNMENT KEY WINDOW))
(if (AND (VKBD.CHAR-ASSIGNMENTP KEY-ASSIGNMENT)
(EQ (VKBD.LOCK/NOLOCK KEY-ASSIGNMENT)
(QUOTE LOCKSHIFT)))
then (VKBD.INVERT-LOCK-KEYS WINDOW])
(VKBD.EDIT.KEYBOARD-REPAINTFN
[LAMBDA (W) (* sm " 5-Aug-85 16:12")
(PROG (CURRENT-KEY)
(VKBD.KEYBOARD-WINDOW-REPAINTFN W)
(if (SETQ CURRENT-KEY (WINDOWPROP W (QUOTE VKBD.CURRENT-KEY)))
then (VKBD.FRAME-KEY (CAR CURRENT-KEY)
W BLACKSHADE 2)
(if (CADR CURRENT-KEY)
then (VKBD.INVERT-SHIFT-KEYS W))
(VKBD.EDIT.INVERT-IF-LOCKED (CAR CURRENT-KEY)
W])
(VKBD.EDIT.LARGE-WINDOW-REPAINTFN
[LAMBDA (W) (* sm "13-Aug-85 12:43")
(for I from 0 to 20 as Y from 390 by -25
do (MOVETO 10 Y W)
(PRIN1 (OCTALSTRING I)
W))
(for I from 0 by 16 to 255 as X from 40 by 29
do (MOVETO X 420 W)
(PRIN1 (OCTALSTRING I)
W])
(VKBD.EDIT.MAKE-CURRENT-KEY
[LAMBDA (KEY WINDOW MOUSEKEY) (* sm " 7-Aug-85 17:51")
(PROG (CURRENT-KEY SHIFTED CURRENT-KEY-ASSIGNMENT CURRENT-KEY-INFO LOCKED)
(SETQ SHIFTED (WINDOWPROP WINDOW (QUOTE VKBD.SHIFT-DOWN)))
(SETQ CURRENT-KEY-INFO (WINDOWPROP WINDOW (QUOTE VKBD.CURRENT-KEY)))
(if (VKBD.LOCK-KEYP KEY WINDOW)
then (if (CADR CURRENT-KEY-INFO)
then (SETQ CURRENT-KEY-ASSIGNMENT (VKBD.FETCH-KEY-ASSIGNMENT (CAR
CURRENT-KEY-INFO)
WINDOW))
(SETQ LOCKED (EQ (VKBD.LOCK/NOLOCK CURRENT-KEY-ASSIGNMENT)
(QUOTE LOCKSHIFT)))
(RPLACA (CDDADR CURRENT-KEY-ASSIGNMENT)
(if LOCKED
then (QUOTE NOLOCKSHIFT)
else (QUOTE LOCKSHIFT)))
(VKBD.INVERT-LOCK-KEYS WINDOW))
elseif (VKBD.ASSIGNABLE-KEYP KEY WINDOW)
then (if CURRENT-KEY-INFO
then (VKBD.ERASE-FRAME (CAR CURRENT-KEY-INFO)
WINDOW 2)
(if (CADR CURRENT-KEY-INFO)
then (VKBD.INVERT-SHIFT-KEYS WINDOW)
(VKBD.EDIT.INVERT-IF-LOCKED (CAR CURRENT-KEY-INFO)
WINDOW)))
(VKBD.FRAME-KEY KEY WINDOW BLACKSHADE 2)
(if SHIFTED
then (VKBD.INVERT-SHIFT-KEYS WINDOW)
(VKBD.EDIT.INVERT-IF-LOCKED KEY WINDOW))
(WINDOWPROP WINDOW (QUOTE VKBD.CURRENT-KEY)
(LIST KEY SHIFTED])
(VKBD.EDIT.QUIT-COMMAND
[LAMBDA (WINDOW) (* sm " 2-Aug-85 15:12")
[REPLACE KEYASSIGNMENTS OF (WINDOWPROP WINDOW (QUOTE VKBD.ORIGINAL-KEYBOARD))
WITH (FETCH KEYASSIGNMENTS OF (WINDOWPROP WINDOW (QUOTE VKBD.KEYBOARD]
(NOTIFY.EVENT (WINDOWPROP WINDOW (QUOTE VKBD.EDITOR-RETURN-EVENT])
(VKBD.EDIT.STOP-COMMAND
[LAMBDA (WINDOW) (* sm " 2-Aug-85 13:04")
(NOTIFY.EVENT (WINDOWPROP (MAINWINDOW WINDOW T)
(QUOTE VKBD.EDITOR-RETURN-EVENT])
(VKBD.EDIT.SWITCH-CHAR-SET-COMMAND
[LAMBDA (MAIN-WINDOW) (* sm " 5-Aug-85 09:28")
(PROG (LARGE-WINDOW NEW-NUMBER)
(SETQ LARGE-WINDOW (CAR (ATTACHEDWINDOWS MAIN-WINDOW)))
[SETQ NEW-NUMBER (MENU (WINDOWPROP MAIN-WINDOW (QUOTE VKBD.CHAR-SET-MENU))
(create POSITION
XCOORD ←[IPLUS 34 (fetch (REGION LEFT)
of (WINDOWPROP LARGE-WINDOW
(QUOTE REGION]
YCOORD ←(IPLUS 9 (fetch (REGION BOTTOM)
of (WINDOWPROP LARGE-WINDOW
(QUOTE REGION]
(if NEW-NUMBER
then (VKBD.EDIT.SWITCH-CHARACTER-SET NEW-NUMBER LARGE-WINDOW])
(VKBD.EDIT.SWITCH-CHARACTER-SET
[LAMBDA (SET-NUMBER WINDOW) (* sm " 6-Aug-85 14:08")
(PROG (MENU OLDCURSOR FONT)
(if (WINDOWPROP WINDOW (QUOTE MENU))
then (DELETEMENU (CAR (WINDOWPROP WINDOW (QUOTE MENU)))
NIL WINDOW))
(WINDOWPROP WINDOW (QUOTE TITLE)
(CONCAT "Character set " (OCTALSTRING SET-NUMBER)))
[SETQ FONT (FONTCREATE (fetch (KEYBOARDCONFIGURATION KEYBOARDDISPLAYFONT)
of (VKBD.GET-CONFIGURATION (MAINWINDOW WINDOW]
(ADDMENU (VKBD.EDIT.CREATE-CHARACTERS-MENU SET-NUMBER FONT)
WINDOW
(create POSITION
XCOORD ← 30
YCOORD ← 5])
(VKBD.EDIT.ROTATED-NUMBER
[LAMBDA (NUM ROW-NUM COL-NUM) (* edited: " 3-Jun-85 12:47")
(IPLUS (ITIMES (IMOD (SUB1 NUM)
COL-NUM)
ROW-NUM)
(ADD1 (IQUOTIENT (SUB1 NUM)
COL-NUM])
)
(RPAQ? VKBD.EDIT.ALLOW-NON-CHAR-ASSIGNMENTS T)
(RPAQ? VKBD.EDIT.MAX-NUMBER-OF-CASHED-MENUS 15)
(RPAQ? VKBD.EDITOR-WINDOW-HEIGHT 450)
(RPAQ? VKBD.EDITOR-WINDOW-WIDTH 512)
(RPAQ? VKBD.EDIT.DISPLAY-CHAR-SETS-NAMES T)
(RPAQQ VKBD.EDIT.BACKGROUND-MENU-SUBITEMS (SUBITEMS ("New Keyboard, default initial"
[QUOTE (ADD.PROCESS (QUOTE (
VKBD.EDIT-KEYBOARD-COMMAND T]
"Calls the keyboard editor. Will prompt for name for the new keyboard, and will use the default keyboard as the initial keyboard"
)
("New keyboard, other initial"
[QUOTE (ADD.PROCESS (QUOTE (
VKBD.EDIT-KEYBOARD-COMMAND T T]
"Calls the keyboard editor. Will prompt for name for the new keyboard, and will pop up a menu of the current known keyboards. The selected one will be used as the initial keyboard"
)
("Existing keyboard"
[QUOTE (ADD.PROCESS (QUOTE (
VKBD.EDIT-KEYBOARD-COMMAND]
"Will let you select a keyboard from list of the known keyboards, and will calls the keyboard editor on the selected keyboard."
)))
(RPAQQ VKBD.EDIT.CASH-MENUES NIL)
(RPAQQ VKBD.EDIT.CHAR-SET-NAMES (("ASCII/ISO/CCITT Roman Alphabet and Punctuation" 0)
("JIS Symbols 1 - Punctuation and Symbols not in Char set 0" 33)
("JIS Symbols 2 - Punctuation and Symbols not in Char set 0" 34)
("Extended Latin" 35)
("JIS Hiragana" 36)
("JIS Katakana" 37)
("Greek" 38)
("Cyrillic" 39)
("Symbols 3 - Miscellaneous Japanese Symbols" 116)
("General and Technical Symbols 2" 238)
("General and Technical Symbols 1" 239)
("Ligatures, Graphical Entities, and Field Format Symbols" 240)
("Accented Characters" 241)))
(RPAQQ VKBD.EDIT.MENU-ITEMS (("CharSet" VKBD.EDIT.SWITCH-CHAR-SET-COMMAND
"Pops up a menu of all possible character set number. Selecting one will switch the displayed character set."
)
("Stop" VKBD.EDIT.STOP-COMMAND
"Exit from the keyboard editor. Returns the new keyboard, but does not modify the original one.")
("Quit" VKBD.EDIT.QUIT-COMMAND
"Exit from the keyboard editor. Modifies the roriginal keyboard and returns it .")
("Define" VKBD.EDIT.DEFINE-COMMAND
"Adds the edited keyboard in its current state to the set of known keyboards.")))
(RPAQQ VKBD.EDIT.NON-CHAR-ASSIGNMENTS (SHIFT CTRL META LOCK LOCKDOWN LOCKUP EVENT))
(RPAQ VKBD.EDIT.ICON (READBITMAP))
(93 93
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@F@@@@@@@@@@@@@@@@@@CH"
"N@@A@@@@@@@@@@@@@@@@@@CH"
"N@@F@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@AOOOOOOOO@@@@CH"
"N@@@@@@@@A@@@@@@@A@@@@CH"
"N@@B@@@@@A@@@@@@@A@@@@CH"
"N@@BAOOOOOOOON@@@A@@@@CH"
"N@@BA@@@@A@@@B@@OOO@@@CH"
"N@@BA@@@@A@@@B@@HAA@@@CH"
"N@@OI@@@@GL@@OHALAA@@@CH"
"N@@GA@@@@CH@@G@ALAA@@@CH"
"N@@BA@@@@A@@@B@@HAA@@@CH"
"NGOOOOOOOOOOOOOOOOOOOOCH"
"NGOOOOOOOOOOOOOOOOOOOOCH"
"NG@HEBA@HDBA@HDBAAHD@GCH"
"NG@HEBA@HDBA@HDBAAHD@GCH"
"NG@HEBA@HDBA@HDBAAHDNGCH"
"NG@HDBA@HDBA@HDBAAHD@GCH"
"NGOOOOOOOOOOOOOOOOOOOOCH"
"NG@BA@HDBA@HDBA@HEBA@GCH"
"NGGBA@HDBA@HDBA@HEBA@GCH"
"NGGBA@HDBA@HDBA@HDBAFGCH"
"NG@BA@HDBA@HDBA@HDBA@GCH"
"NGOOOOOOOOOOOOOOOOOOHGCH"
"NG@AHDBA@HDBA@HDBA@HIGCH"
"NG@AHDBA@HDBA@HDBA@HIGCH"
"NG@AHDBA@HDBA@HDBA@HIGCH"
"NG@AHDBA@HDBA@HDBA@HHGCH"
"NGOOOOOOOOOOOOOOOOOOOOCH"
"NG@@@HDBA@HDBA@HDBA@@GCH"
"NG@@@HDBA@HDBA@HDBA@@GCH"
"NG@@@HDBA@HDBA@HDBA@@GCH"
"NG@@@HDBA@HDBA@HDBA@@GCH"
"NGOOOOOOOOOOOOOOOOOOOOCH"
"NGOOOOOOOOOOOOOOOOOOOOCH"
"NGOOOOOOOOOOOOOOOOOOOOCH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"N@@@@@@@@@@@@@@@@@@@@@CH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH")
(RPAQ VKBD.EDIT.MASK (READBITMAP))
(93 93
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH"
"OOOOOOOOOOOOOOOOOOOOOOOH")
(DECLARE: DOEVAL@COMPILE DONTCOPY
(GLOBALVARS VKBD.EDIT.ALLOW-NON-CHAR-ASSIGNMENTS VKBD.EDIT.BACKGROUND-MENU-SUBITEMS
VKBD.EDIT.MAX-NUMBER-OF-CASHED-MENUS VKBD.EDITOR-WINDOW-HEIGHT VKBD.EDITOR-WINDOW-WIDTH
VKBD.EDIT.DISPLAY-CHAR-SETS-NAMES VKBD.EDIT.CASH-MENUES VKBD.EDIT.CHAR-SET-NAMES
VKBD.EDIT.MENU-ITEMS VKBD.EDIT.NON-CHAR-ASSIGNMENTS VKBD.CONF.ICON VKBD.EDIT.ICON
VKBD.EDIT.MASK)
)
(VKBD.EDIT.ADD-SUBITEM-TO-BACKGROUND-MENU (LIST "Edit" [QUOTE (ADD.PROCESS (QUOTE (
VKBD.EDIT-KEYBOARD-COMMAND T]
"Calls the keyboard editor. Will prompt for name for the new keyboard, and will use the default keyboard as the initial keyboard"
VKBD.EDIT.BACKGROUND-MENU-SUBITEMS)
"Keyboard")
(PUTPROPS KEYBOARDEDITOR COPYRIGHT ("Xerox Corporation" 1985))
(DECLARE: DONTCOPY
(FILEMAP (NIL (2774 13983 (EDITCONFIGURATION 2784 . 2951) (VKBD.CONF.CHANGE-KEY-VALUE 2953 . 6766) (
VKBD.CONF.DISPLAY-FIELD-VALUE 6768 . 8109) (VKBD.CONF.DISPLAY-INFO-KEYBOARD 8111 . 9529) (
VKBD.CONF.DISPLAY-KEY-INFO 9531 . 10362) (VKBD.CONF.EDIT-DEFAULT-ASSIGNMENTS 10364 . 11467) (
VKBD.CONF.ICONFN 11469 . 11992) (VKBD.CONF.PARSE-CONFIGURATION 11994 . 13981)) (16539 34961 (
EDITKEYBOARD 16549 . 18290) (VKBD.EDIT.ADD-SUBITEM-TO-BACKGROUND-MENU 18292 . 19067) (
VKBD.EDIT.CREATE-COMMAND-MENU 19069 . 19431) (VKBD.EDIT.CREATE-NON-CHAR-ASSIGMENTS-MENU 19433 . 19882)
(VKBD.EDIT-KEYBOARD-COMMAND 19884 . 20957) (VKBD.EDIT.ASSIGN-CHARACTER 20959 . 22852) (
VKBD.EDIT.ASSIGN-NON-CHARACTER 22854 . 23369) (VKBD.EDIT.CREATE-CHARACTER-SETS-MENU 23371 . 24137) (
VKBD.EDIT.CREATE-CHARACTERS-MENU 24139 . 25726) (VKBD.EDIT.CREATE-DISPLAY 25728 . 28456) (
VKBD.EDIT.DEFINE-COMMAND 28458 . 28851) (VKBD.EDIT.DO-MENU-COMMAND 28853 . 29054) (VKBD.EDIT.ICONFN
29056 . 29580) (VKBD.EDIT.INVERT-IF-LOCKED 29582 . 30019) (VKBD.EDIT.KEYBOARD-REPAINTFN 30021 . 30552)
(VKBD.EDIT.LARGE-WINDOW-REPAINTFN 30554 . 30979) (VKBD.EDIT.MAKE-CURRENT-KEY 30981 . 32547) (
VKBD.EDIT.QUIT-COMMAND 32549 . 32945) (VKBD.EDIT.STOP-COMMAND 32947 . 33175) (
VKBD.EDIT.SWITCH-CHAR-SET-COMMAND 33177 . 33926) (VKBD.EDIT.SWITCH-CHARACTER-SET 33928 . 34693) (
VKBD.EDIT.ROTATED-NUMBER 34695 . 34959)))))
STOP