Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- rebol [
- title: "Memory Trainer"
- version: 0.0.1
- date: 20-Dec-2011
- ]
- parameters: attempt [load %mnemotrain.cfg]
- unless attempt [not empty? parameters] [
- parameters: [
- on-interval 0.5 ; s
- off-interval 1.0 ; s
- font-name "Times New Roman"
- font-size 36 ; pt
- font-color "white"
- bkg-color "black"
- chunk-len 3
- ]
- ]
- ;words: parse (form copy system/ports/input) none
- words: parse (read clipboard://) none
- cyclically-pick-chunk: has [r] [
- r: form copy/part words parameters/chunk-len
- words: skip words parameters/chunk-len
- if tail? words [
- words: head words
- ]
- return r
- ]
- decimal-field-handler: [
- old-engage: :engage
- engage: func [face action event] [
- old-engage face action event
- if action = 'key [
- new-val: attempt [to decimal! face/text]
- if new-val [
- par-name: face/user-data
- parameters/:par-name: new-val
- ]
- probe parameters
- ]
- ]
- ]
- integer-field-handler: [
- old-engage: :engage
- engage: func [face action event] [
- old-engage face action event
- if action = 'key [
- new-val: attempt [to integer! face/text]
- if new-val [
- par-name: face/user-data
- parameters/:par-name: new-val
- ]
- probe parameters
- ]
- ]
- ]
- string-field-handler: [
- old-engage: :engage
- engage: func [face action event] [
- old-engage face action event
- if action = 'key [
- par-name: face/user-data
- parameters/:par-name: face/user-data
- probe parameters
- ]
- ]
- ]
- v: view/new layout [
- sample-text: text 400x200 center middle font [
- color: parameters/font-color
- size: parameters/font-size
- name: parameters/font-name
- ]
- input-field: field sample-text/size/x colors [240.240.240 240.240.240] feel [
- old-engage: :engage
- engage: func [face action event] [
- old-engage face action event
- if action = 'key [
- if event/key = #"^M"[ ; Enter key code
- focus input-field
- either ((length? input-field/text) <> 0) and
- (input-field/text <> sample-text/text) [
- alert "Error!"
- focus input-field
- ]
- [
- sample-text/text: cyclically-pick-chunk
- show sample-text
- wait parameters/on-interval
- hide sample-text
- ]
- ]
- ]
- ]
- ]
- ;button "Options" [
- ; option-panel/size: 0x0
- ; show v
- ;]
- option-panel: panel [
- across
- text "On" field 50
- form parameters/on-interval user-data 'on-interval feel decimal-field-handler
- text "Off" field 50
- form parameters/off-interval user-data 'off-interval feel decimal-field-handler
- text "Length" field 25
- form parameters/chunk-len user-data 'chunk-len feel integer-field-handler
- return
- text "Font" field 150
- form parameters/font-name user-data 'font-name feel string-field-handler
- text "Size" field 25
- form parameters/font-size user-data 'font-size feel integer-field-handler
- ]
- ]
- focus input-field
- do-events
- save %mnemotrain.cfg parameters
Advertisement
Add Comment
Please, Sign In to add comment