home *** CD-ROM | disk | FTP | other *** search
RISC OS BBC BASIC V Source | 1997-03-21 | 5.1 KB | 273 lines |
- >Internal.Input
- 1997 Matthew Godbolt
- This file deals with character input into the text box.
- 02 Mar 1997 - JF : Changed to use new DLList v1.01
- 05 Mar 1997 - MG : Key bindings added v1.02
- 09 Mar 1997 - JF : Changed to use new DLList (again) v1.03
- 22 Mar 1997 - MG : More bugfixes, now works! v1.04
- String$,CurPos,prevString$
- StringList,ListPtr
- Keys
- Display$
- Input_Initialise
- String$=""
- prevString$=""
- CurPos=0
- StringList=
- newDLList
- Keys=
- newList
- ListPtr=0
- /Class_BoundKey =
- RegisterClass("BoundKey")
- AddField(Class_BoundKey,"key")
- AddField(Class_BoundKey,"functionlist")
- InputChanged
- SetInputText(String$)
- SetCursorPos(CurPos)
- RedrawInputBox
- InputDelete
- CurPos>0
- #6 String$ =
- String$,CurPos-1) +
- String$,CurPos+1)
- CurPos-=1
- InputChanged
- InputInsert(char)
- *<String$ =
- String$,CurPos) +
- char +
- String$,CurPos+1)
- CurPos+=1
- InputChanged
- InputInsertStr(char$)
- 0;String$ =
- String$,CurPos) + char$ +
- String$,CurPos+1)
- CurPos+=
- char$
- InputChanged
- CursorMove(n)
- len =
- (String$)
- CurPos+=n
- CurPos<0
- CurPos=0
- CurPos > len
- CurPos = len
- SetCursorPos(CurPos)
- RedrawInputBox
- CharEntered(display$,char)
- HandledByBinding
- Display$=display$
- E.HandledByBinding=
- ProcessKeyBinding(char)
- HandledByBinding=0
- char < 32
- char = 127
- char
- 8,127
- InputDelete
- 2,22,31
- L>
- Control codes - avoid inserting unnessary duplicates
- CurPos>0
- N)
- String$,CurPos,1))=char)
-
- InputDelete
-
-
- InputInsert(char)
-
- S
-
- InputInsert(char)
- U
- 7,15
- InputInsert(char)
- ListPtr=0
- Z-
- StringList.Add(
- newString(String$))
- [
- \]
- (ListPtr.data.data$<>String$)
- String$<>""
- StringList.Add(
- newString(String$))
- ]
- UserLine(String$)
- ListPtr=0
- String$=""
- prevString$=""
- CurPos=0
- InputChanged
- CurPos = 0
- String$ = ""
- InputChanged
- ProcessKey(char)
- char < 256
- InputInsert(char)
- char
- &18C
-
- CursorMove(-1)
- &18D
-
- CursorMove(1)
- &18E
-
- ListPtr
- ListPtr=ListPtr.prev
-
- ListPtr
- x% String$=ListPtr.data.data$
-
- String$=prevString$
-
-
- CurPos=
- (String$)
-
- InputChanged
- &18F
-
- ListPtr=0
- ListPtr=StringList
-
- /
- ListPtr.next
- ListPtr=ListPtr.next
-
-
- ListPtr
- 4
- ListPtr=StringList
- prevString$=String$
- $ String$=ListPtr.data.data$
- CurPos=
- (String$)
-
- InputChanged
-
- &1AC
-
- CursorMove(-512)
- &1AD
-
- CursorMove(512)
-
-
- ProcessKey(char)
- BindKey(key$,command$)
- key,binding,com$,space
- key$,1)
- key$,2,1)="
- ) key =
- keyNumberFromName(
- key$,3))
- key >= &100
- key+=&30
- key= (key
- 31) + &200
- ) key =
- keyNumberFromName(
- key$,2))
- key >= &100
- key+=&20
- key=key
- ( key =
- keyNumberFromName(
- key$,2))
- key >= &100
- key+=&10
- $ key =
- keyNumberFromName(key$)
- "binding =
- new(Class_BoundKey)
- binding.key = key
- !binding.functionlist=
- newList
- command$<>""
- space =
- command$," :: ")
- space = 0
- space =
- (command$)+1
- $ com$=
- Strip(
- command$,space-1))
- ( command$=
- Strip(
- command$,space+4))
- binding.functionlist.AddAtEnd(
- newString(com$))
- Keys.Add(binding)
- keyNumberFromName(name$)
- Capitalise(name$)
- "RETURN"
- key = 13
- "DELETE"
- key = 127
- "BACKSPACE"
- key = 8
- "UP"
- key = &18f
- "DOWN"
- key = &18e
- "F1"
- key = &181
- key =
- (name$)
- BoundKey_Compare(value)
- retval
- @.key = value
- retval = 1
- =retval
- ProcessKeyBinding(key)
- binding
- binding =
- Keys.Find(key)
- binding
- binding.data.functionlist.Iterate("runBinding")
- runBinding(function)
- fun,fun$,parm,function$,parm$
- parm=
- newList
- function$=function.data$
- fun =
- function$,"(")
- fun
- fun$=
- function$,fun-1)
- ( function$=
- Strip(
- function$,fun+1))
- function$<>")"
- function$<>""
- fun =
- function$,",")
- fun = 0
- fun =
- function$,")")
- fun = 0
- fun =
- (function$)+1
- parm$=
- function$,fun-1)
- ) function$=
- Strip(
- function$,fun+1))
- parm$,1)
- """"
- ,
- parm.AddAtEnd(
- newString(
- (parm$)))
-
- parm.AddAtEnd(
- (parm$))
- (fun$)(parm)
- (function$)
-