DIRECTORY Buttons USING [ButtonProc], EditToolBuilder USING [BuildButton, Layout, ToNext], Rope USING [ROPE], EditToolPrivate USING [DoList, Info]; EditToolExtra2Impl: CEDAR PROGRAM IMPORTS EditToolPrivate, EditToolBuilder EXPORTS EditToolPrivate = { OPEN EditToolPrivate, EditToolBuilder; ---------------------------- BuildOne: PROC [info: Layout, name: Rope.ROPE, proc: Buttons.ButtonProc, clientData: REF ANY ¬ NIL] = { [] ¬ BuildButton[info: info, name: name, proc: proc, gapAfter: FALSE, clientData: clientData] }; BuildExtraOverflow: PUBLIC PROC [info: Info] = { { OPEN info; BuildOne[layout, "BackSpace", BackSpace]; BuildOne[layout, "BackWord", BackWord]; BuildOne[layout, "DeleteNextChar", DeleteNextChar]; BuildOne[layout, "DeleteNextWord", DeleteNextWord]; ToNext[layout,TRUE]; BuildOne[layout, "Add( )", ParenBrackets]; BuildOne[layout, "Add< >", AngleBrackets]; BuildOne[layout, "Add{ }", CurlyBrackets]; BuildOne[layout, "Add[ ]", SquareBrackets]; ToNext[layout,TRUE]; BuildOne[layout, "Add\" \"", DoubleQuoteBrackets]; BuildOne[layout, "Add\' \'", SingleQuoteBrackets]; BuildOne[layout, "Add- -", DashBrackets]; BuildOne[layout, "Add ", PlaceholderBrackets]; ToNext[layout,TRUE]; BuildOne[layout, "AllCaps", AllCaps]; BuildOne[layout, "AllLower", AllLower]; BuildOne[layout, "InitialCaps", InitialCaps]; BuildOne[layout, "FirstCap", FirstCap]; ToNext[layout,TRUE]; BuildOne[layout, "MakeOctalCharacter", MakeOctalCharacter]; BuildOne[layout, "MakeControlCharacter", MakeControlCharacter]; ToNext[layout,TRUE]; BuildOne[layout, "UnMakeOctalCharacter", UnMakeOctalCharacter]; BuildOne[layout, "UnMakeControlCharacter", UnMakeControlCharacter]; ToNext[layout,TRUE]; BuildOne[layout, "Break", Break]; BuildOne[layout, "Join", Join]; BuildOne[layout, "Nest", Nest]; BuildOne[layout, "UnNest", UnNest]; ToNext[layout,TRUE]; BuildOne[layout, "CommentNode", SetComment]; BuildOne[layout, "NotCommentNode", SetNotComment]; BuildOne[layout, "ExpandAbbreviation", ExpandAbbrev]; BuildOne[layout, "MesaFormatting", SetMesaLooks]; ToNext[layout,TRUE]; BuildOne[layout, "Command 0", Command0]; BuildOne[layout, " 1", Command1]; BuildOne[layout, " 2", Command2]; BuildOne[layout, " 3", Command3]; BuildOne[layout, " 4", Command4]; BuildOne[layout, " 5", Command5]; BuildOne[layout, " 6", Command6]; BuildOne[layout, " 7", Command7]; BuildOne[layout, " 8", Command8]; BuildOne[layout, " 9", Command9] }}; BuildRealExtraOverflow: PUBLIC PROC [info: Info] = { { OPEN info; BuildOne[layout, "BackSpace", BackSpace]; BuildOne[layout, "BackWord", BackWord]; BuildOne[layout, "DeleteNextChar", DeleteNextChar]; BuildOne[layout, "DeleteNextWord", DeleteNextWord]; ToNext[layout,TRUE]; BuildOne[layout, "ParenBrackets", ParenBrackets]; BuildOne[layout, "AngleBrackets", AngleBrackets]; BuildOne[layout, "CurlyBrackets", CurlyBrackets]; BuildOne[layout, "SquareBrackets", SquareBrackets]; ToNext[layout,TRUE]; BuildOne[layout, "DoubleQuoteBrackets", DoubleQuoteBrackets]; BuildOne[layout, "SingleQuoteBrackets", SingleQuoteBrackets]; BuildOne[layout, "DashBrackets", DashBrackets]; ToNext[layout,TRUE]; BuildOne[layout, "PlaceholderBrackets", PlaceholderBrackets]; BuildOne[layout, "AllCaps", AllCaps]; BuildOne[layout, "AllLower", AllLower]; BuildOne[layout, "InitialCaps", InitialCaps]; BuildOne[layout, "FirstCap", FirstCap]; ToNext[layout,TRUE]; BuildOne[layout, "MakeOctalCharacter", MakeOctalCharacter]; BuildOne[layout, "MakeControlCharacter", MakeControlCharacter]; ToNext[layout,TRUE]; BuildOne[layout, "UnMakeOctalCharacter", UnMakeOctalCharacter]; BuildOne[layout, "UnMakeControlCharacter", UnMakeControlCharacter]; ToNext[layout,TRUE]; BuildOne[layout, "Break", Break]; BuildOne[layout, "Join", Join]; BuildOne[layout, "Nest", Nest]; BuildOne[layout, "UnNest", UnNest]; ToNext[layout,TRUE]; BuildOne[layout, "SetComment", SetComment]; BuildOne[layout, "SetNotComment", SetNotComment]; BuildOne[layout, "ExpandAbbrev", ExpandAbbrev]; BuildOne[layout, "SetMesaLooks", SetMesaLooks]; ToNext[layout,TRUE]; BuildOne[layout, "Command0", Command0]; BuildOne[layout, "Command1", Command1]; BuildOne[layout, "Command2", Command2]; BuildOne[layout, "Command3", Command3]; BuildOne[layout, "Command4", Command4]; ToNext[layout,TRUE]; BuildOne[layout, "Command5", Command5]; BuildOne[layout, "Command6", Command6]; BuildOne[layout, "Command7", Command7]; BuildOne[layout, "Command8", Command8]; BuildOne[layout, "Command9", Command9] }}; int: PROC [i: INT] RETURNS [REF] = { RETURN [NEW[INT ¬ i]] }; backspace: LIST OF REF ANY = LIST[int[1],$BackSpace]; BackSpace: Buttons.ButtonProc = {DoList[backspace]}; backword: LIST OF REF ANY = LIST[int[1],$BackWord]; BackWord: Buttons.ButtonProc = {DoList[backword]}; deletenextchar: LIST OF REF ANY = LIST[int[1],$DeleteNextChar]; DeleteNextChar: Buttons.ButtonProc = {DoList[deletenextchar]}; deletenextword: LIST OF REF ANY = LIST[int[1],$DeleteNextWord]; DeleteNextWord: Buttons.ButtonProc = {DoList[deletenextword]}; parenbrackets: LIST OF REF ANY = LIST[$ParenBrackets]; ParenBrackets: Buttons.ButtonProc = {DoList[parenbrackets]}; dashbrackets: LIST OF REF ANY = LIST[$DashBrackets]; DashBrackets: Buttons.ButtonProc = {DoList[dashbrackets]}; anglebrackets: LIST OF REF ANY = LIST[$AngleBrackets]; AngleBrackets: Buttons.ButtonProc = {DoList[anglebrackets]}; doublequotebrackets: LIST OF REF ANY = LIST[$DoubleQuoteBrackets]; DoubleQuoteBrackets: Buttons.ButtonProc = {DoList[doublequotebrackets]}; singlequotebrackets: LIST OF REF ANY = LIST[$SingleQuoteBrackets]; SingleQuoteBrackets: Buttons.ButtonProc = {DoList[singlequotebrackets]}; curlybrackets: LIST OF REF ANY = LIST[$CurlyBrackets]; CurlyBrackets: Buttons.ButtonProc = {DoList[curlybrackets]}; squarebrackets: LIST OF REF ANY = LIST[$SquareBrackets]; SquareBrackets: Buttons.ButtonProc = {DoList[squarebrackets]}; placeholderbrackets: LIST OF REF ANY = LIST[$PlaceholderBrackets]; PlaceholderBrackets: Buttons.ButtonProc = {DoList[placeholderbrackets]}; allcaps: LIST OF REF ANY = LIST[$AllCaps]; AllCaps: Buttons.ButtonProc = {DoList[allcaps]}; alllower: LIST OF REF ANY = LIST[$AllLower]; AllLower: Buttons.ButtonProc = {DoList[alllower]}; initialcaps: LIST OF REF ANY = LIST[$InitialCaps]; InitialCaps: Buttons.ButtonProc = {DoList[initialcaps]}; firstcap: LIST OF REF ANY = LIST[$FirstCap]; FirstCap: Buttons.ButtonProc = {DoList[firstcap]}; makeoctalcharacter: LIST OF REF ANY = LIST[$MakeOctalCharacter]; MakeOctalCharacter: Buttons.ButtonProc = {DoList[makeoctalcharacter]}; makecontrolcharacter: LIST OF REF ANY = LIST[$MakeControlCharacter]; MakeControlCharacter: Buttons.ButtonProc = {DoList[makecontrolcharacter]}; unmakeoctalcharacter: LIST OF REF ANY = LIST[$UnMakeOctalCharacter]; UnMakeOctalCharacter: Buttons.ButtonProc = {DoList[unmakeoctalcharacter]}; unmakecontrolcharacter: LIST OF REF ANY = LIST[$UnMakeControlCharacter]; UnMakeControlCharacter: Buttons.ButtonProc = {DoList[unmakecontrolcharacter]}; expandabbrev: LIST OF REF ANY = LIST[$ExpandAbbrev]; ExpandAbbrev: Buttons.ButtonProc = {DoList[expandabbrev]}; setmesalooks: LIST OF REF ANY = LIST[$SetMesaLooks]; SetMesaLooks: Buttons.ButtonProc = {DoList[setmesalooks]}; setcomment: LIST OF REF ANY = LIST[$SetComment]; SetComment: Buttons.ButtonProc = {DoList[setcomment]}; setnotcomment: LIST OF REF ANY = LIST[$SetNotComment]; SetNotComment: Buttons.ButtonProc = {DoList[setnotcomment]}; break: LIST OF REF ANY = LIST[$Break]; Break: Buttons.ButtonProc = {DoList[break]}; join: LIST OF REF ANY = LIST[$Join]; Join: Buttons.ButtonProc = {DoList[join]}; nest: LIST OF REF ANY = LIST[$Nest]; Nest: Buttons.ButtonProc = {DoList[nest]}; unnest: LIST OF REF ANY = LIST[$UnNest]; UnNest: Buttons.ButtonProc = {DoList[unnest]}; command0: LIST OF REF ANY = LIST[$Command0]; Command0: Buttons.ButtonProc = {DoList[command0]}; command1: LIST OF REF ANY = LIST[$Command1]; Command1: Buttons.ButtonProc = {DoList[command1]}; command2: LIST OF REF ANY = LIST[$Command2]; Command2: Buttons.ButtonProc = {DoList[command2]}; command3: LIST OF REF ANY = LIST[$Command3]; Command3: Buttons.ButtonProc = {DoList[command3]}; command4: LIST OF REF ANY = LIST[$Command4]; Command4: Buttons.ButtonProc = {DoList[command4]}; command5: LIST OF REF ANY = LIST[$Command5]; Command5: Buttons.ButtonProc = {DoList[command5]}; command6: LIST OF REF ANY = LIST[$Command6]; Command6: Buttons.ButtonProc = {DoList[command6]}; command7: LIST OF REF ANY = LIST[$Command7]; Command7: Buttons.ButtonProc = {DoList[command7]}; command8: LIST OF REF ANY = LIST[$Command8]; Command8: Buttons.ButtonProc = {DoList[command8]}; command9: LIST OF REF ANY = LIST[$Command9]; Command9: Buttons.ButtonProc = {DoList[command9]}; }. ..  EditToolExtra2Impl.mesa Copyright Σ 1985, 1986, 1991 by Xerox Corporation. All rights reserved. Doug Wyatt on January 13, 1984 2:46 pm Russ Atkinson (RRA) June 18, 1985 4:54:54 pm PDT Alison Lee September 8, 1986 9:28:04 pm PDT Swinehart, November 14, 1986 9:59:35 am PST Κγ•NewlineDelimiter –(cedarcode) style™codešœ™Kšœ Οeœ=™HKšœ&™&K™0K™+K™+—K˜šΟk ˜ Kšœžœ˜Kšœžœ˜4Kšœžœžœ˜Kšœžœ˜%—headšœž ˜!Kšžœ!˜(Kšžœ˜K˜Kšœžœ"˜(K˜—KšΟc˜š Οnœžœžœ(žœžœžœ˜gKšœ?žœ˜`K˜—š œžœžœ˜1Kšœžœ˜ ˜K˜)K˜'K˜3K˜3Kšœžœ˜Kšœ*˜*K˜*K˜*K˜+Kšœžœ˜K˜2K˜2K˜)K˜0Kšœžœ˜Kšœ%˜%K˜'K˜-K˜'Kšœžœ˜Kšœ;˜;Kšœ?˜?Kšœžœ˜Kšœ?˜?KšœC˜CKšœžœ˜K˜!K˜K˜K˜#Kšœžœ˜Kšœ,˜,Kšœ2˜2K˜5K˜1Kšœžœ˜Kšœ(˜(Kšœ!˜!Kšœ!˜!Kšœ!˜!Kšœ!˜!Kšœ!˜!Kšœ!˜!Kšœ!˜!Kšœ!˜!Kšœ$˜$——K˜Kš œžœžœ˜5šœžœ˜ Kšœ)˜)K˜'K˜3Kšœ3˜3Kšœžœ˜Kšœ1˜1Kšœ1˜1Kšœ1˜1Kšœ3˜3Kšœžœ˜Kšœ=˜=Kšœ=˜=Kšœ/˜/Kšœžœ˜Kšœ=˜=Kšœ%˜%Kšœ'˜'Kšœ-˜-Kšœ'˜'Kšœžœ˜Kšœ;˜;Kšœ?˜?Kšœžœ˜Kšœ?˜?KšœC˜CKšœžœ˜Kšœ!˜!Kšœ˜Kšœ˜Kšœ#˜#Kšœžœ˜Kšœ+˜+Kšœ1˜1Kšœ/˜/Kšœ/˜/Kšœžœ˜Kšœ'˜'Kšœ'˜'Kšœ'˜'Kšœ'˜'Kšœ'˜'Kšœžœ˜Kšœ'˜'Kšœ'˜'Kšœ'˜'Kšœ'˜'Kšœ*˜*—K˜Kšœžœžœžœžœžœžœžœ ˜=K˜Kš œ žœžœžœžœžœ˜5K˜4K˜Kš œ žœžœžœžœžœ˜3K˜2K˜Kš œžœžœžœžœžœ˜?K˜>K˜Kš œžœžœžœžœžœ˜?K˜>K˜Kš œžœžœžœžœžœ˜6K˜K˜Kš œžœžœžœžœžœ˜BK˜HK˜Kš œ žœžœžœžœžœ ˜*K˜0K˜Kš œ žœžœžœžœžœ ˜,K˜2K˜Kš œ žœžœžœžœžœ˜2K˜8K˜Kš œ žœžœžœžœžœ ˜,K˜2K˜Kš œžœžœžœžœžœ˜@K˜FK˜Kš œžœžœžœžœžœ˜DK˜JK˜Kš œžœžœžœžœžœ˜DK˜JK˜Kš œžœžœžœžœžœ˜HK˜NK˜Kš œžœžœžœžœžœ˜4K˜:K˜Kš œžœžœžœžœžœ˜4K˜:K˜Kš œ žœžœžœžœžœ˜0K˜6K˜Kš œžœžœžœžœžœ˜6K˜