// Copyright © 1993-1994 Apple Computer, Inc. All rights reserved. // application constants constant kAppMaxWidth := 240 ; constant kAppMaxHeight := 336 ; // slot for the keyboard in the root view constant kMyKeyboardSymbol := '|myAlphaKeyboard:PIEDTS|; // grab the pictures for the keys ResFile := "pictures" ; r := OpenResFileX(ResFile) ; kbdReturnBitmap := GetPictAsBits("KeyboardReturn", nil); kbdTabBitmap := GetPictAsBits("KeyboardTab", nil); kbdLeftBitmap := GetPictAsBits("KeyboardLeftArrow", nil); kbdRightBitmap := GetPictAsBits("KeyboardRightArrow", nil); // some constants for key values constant kOneKey := 18 ; constant kQKey := 12 ; constant kQNormal := $q ; constant kQShifted := $Q ; constant kQOption := $\u0153 ; constant kQOptionShift := $\u0152 ; constant kOneOption := $\A1 ; constant kOneOptionShift := $\u2044 ; constant kDeleteKey := 51 ; constant kTabKey := 48 ; constant kReturnKey := 36 ; constant kShiftKey := 56 ; constant kCapsLockKey := 57 ; constant kOptionKey := 58 ; constant kSpaceKey := 49 ; constant kLeftArrowKey := 0x7B ; constant kRightArrowKey := 0x7C ; // the keyboard row definitions row0 := [ keyVUnit, keyVUnit, nil, 50, keyHHalf + keyVUnit + keyFramed + keyAutoHilite + keyRoundingUnit*3, nil, 18, keyHUnit + keyVUnit + keyFramed + keyAutoHilite + keyRoundingUnit*3, nil, 19, keyHUnit + keyVUnit + keyFramed + keyAutoHilite + keyRoundingUnit*3, nil, 20, keyHUnit + keyVUnit + keyFramed + keyAutoHilite + keyRoundingUnit*3, nil, 21, keyHUnit + keyVUnit + keyFramed + keyAutoHilite + keyRoundingUnit*3, nil, 23, keyHUnit + keyVUnit + keyFramed + keyAutoHilite + keyRoundingUnit*3, nil, 22, keyHUnit + keyVUnit + keyFramed + keyAutoHilite + keyRoundingUnit*3, nil, 26, keyHUnit + keyVUnit + keyFramed + keyAutoHilite + keyRoundingUnit*3, nil, 28, keyHUnit + keyVUnit + keyFramed + keyAutoHilite + keyRoundingUnit*3, nil, 25, keyHUnit + keyVUnit + keyFramed + keyAutoHilite + keyRoundingUnit*3, nil, 29, keyHUnit + keyVUnit + keyFramed + keyAutoHilite + keyRoundingUnit*3, nil, 27, keyHUnit + keyVUnit + keyFramed + keyAutoHilite + keyRoundingUnit*3, nil, 24, keyHUnit + keyVUnit + keyFramed + keyAutoHilite + keyRoundingUnit*3, "del", kDeleteKey, keyHUnit + keyHHalf + keyVUnit + keyFramed + keyAutoHilite + keyRoundingUnit*3 ]; row1 := [ keyVUnit, keyVUnit, kbdTabBitmap, kTabKey, keyHUnit + keyVUnit + keyFramed + keyAutoHilite + keyRoundingUnit*3, nil, 12, keyHUnit + keyVUnit + keyFramed + keyAutoHilite + keyRoundingUnit*3, nil, 13, keyHUnit + keyVUnit + keyFramed + keyAutoHilite + keyRoundingUnit*3, nil, 14, keyHUnit + keyVUnit + keyFramed + keyAutoHilite + keyRoundingUnit*3, nil, 15, keyHUnit + keyVUnit + keyFramed + keyAutoHilite + keyRoundingUnit*3, nil, 17, keyHUnit + keyVUnit + keyFramed + keyAutoHilite + keyRoundingUnit*3, nil, 16, keyHUnit + keyVUnit + keyFramed + keyAutoHilite + keyRoundingUnit*3, nil, 32, keyHUnit + keyVUnit + keyFramed + keyAutoHilite + keyRoundingUnit*3, nil, 34, keyHUnit + keyVUnit + keyFramed + keyAutoHilite + keyRoundingUnit*3, nil, 31, keyHUnit + keyVUnit + keyFramed + keyAutoHilite + keyRoundingUnit*3, nil, 35, keyHUnit + keyVUnit + keyFramed + keyAutoHilite + keyRoundingUnit*3, nil, 33, keyHUnit + keyVUnit + keyFramed + keyAutoHilite + keyRoundingUnit*3, nil, 30, keyHUnit + keyVUnit + keyFramed + keyAutoHilite + keyRoundingUnit*3, nil, 42, keyHUnit + keyVUnit + keyFramed + keyAutoHilite + keyRoundingUnit*3 ]; row2 := [ keyVUnit, keyVUnit, "caps", kCapsLockKey, keyHUnit + keyHHalf + keyVUnit + keyFramed + keyRoundingUnit*3, nil, 0, keyHUnit + keyVUnit + keyFramed + keyAutoHilite + keyRoundingUnit*3, nil, 1, keyHUnit + keyVUnit + keyFramed + keyAutoHilite + keyRoundingUnit*3, nil, 2, keyHUnit + keyVUnit + keyFramed + keyAutoHilite + keyRoundingUnit*3, nil, 3, keyHUnit + keyVUnit + keyFramed + keyAutoHilite + keyRoundingUnit*3, nil, 5, keyHUnit + keyVUnit + keyFramed + keyAutoHilite + keyRoundingUnit*3, nil, 4, keyHUnit + keyVUnit + keyFramed + keyAutoHilite + keyRoundingUnit*3, nil, 38, keyHUnit + keyVUnit + keyFramed + keyAutoHilite + keyRoundingUnit*3, nil, 40, keyHUnit + keyVUnit + keyFramed + keyAutoHilite + keyRoundingUnit*3, nil, 37, keyHUnit + keyVUnit + keyFramed + keyAutoHilite + keyRoundingUnit*3, nil, 41, keyHUnit + keyVUnit + keyFramed + keyAutoHilite + keyRoundingUnit*3, nil, 39, keyHUnit + keyVUnit + keyFramed + keyAutoHilite + keyRoundingUnit*3, kbdReturnBitmap, kReturnKey, keyHUnit + keyHHalf + keyVUnit + keyAutoHilite + keyFramed + keyRoundingUnit*3 ]; row3 := [ keyVUnit, keyVUnit, "shift", kShiftKey, 2*keyHUnit + keyVUnit + keyFramed + keyRoundingUnit*3, nil, 6, keyHUnit + keyVUnit + keyFramed + keyAutoHilite + keyRoundingUnit*3, nil, 7, keyHUnit + keyVUnit + keyFramed + keyAutoHilite + keyRoundingUnit*3, nil, 8, keyHUnit + keyVUnit + keyFramed + keyAutoHilite + keyRoundingUnit*3, nil, 9, keyHUnit + keyVUnit + keyFramed + keyAutoHilite + keyRoundingUnit*3, nil, 11, keyHUnit + keyVUnit + keyFramed + keyAutoHilite + keyRoundingUnit*3, nil, 45, keyHUnit + keyVUnit + keyFramed + keyAutoHilite + keyRoundingUnit*3, nil, 46, keyHUnit + keyVUnit + keyFramed + keyAutoHilite + keyRoundingUnit*3, nil, 43, keyHUnit + keyVUnit + keyFramed + keyAutoHilite + keyRoundingUnit*3, nil, 47, keyHUnit + keyVUnit + keyFramed + keyAutoHilite + keyRoundingUnit*3, nil, 44, keyHUnit + keyVUnit + keyFramed + keyAutoHilite + keyRoundingUnit*3, "shift", kShiftKey, 2*keyHUnit + keyVUnit + keyFramed + keyRoundingUnit*3 ]; row4 := [ keyVUnit, keyVUnit, nil, nil, 1*keyHUnit + keyHHalf + keyHQuarter + keyVUnit + keySpacer, "option", kOptionKey, 2*keyHUnit + keyHHalf + keyVUnit + keyFramed + keyRoundingUnit*3, nil, kSpaceKey, 6*keyHUnit + keyHQuarter + keyVUnit + keyFramed + keyAutoHilite + keyRoundingUnit*3, kbdLeftBitmap, kLeftArrowKey, keyHUnit + keyVUnit + keyFramed + keyAutoHilite + keyRoundingUnit*3, kbdRightBitmap, kRightArrowKey, keyHUnit + keyVUnit + keyFramed + keyAutoHilite + keyRoundingUnit*3, ]; // ---- End Project Data ---- // ---- File main.t ---- // Before Script for "myBase" // Copyright 1993-1994 Apple Computer, Inc. All rights reserved. myBase := {title: "Simple QWERTY Keyboard", viewBounds: {left: 0, top: 2, right: 236, bottom: 270}, viewSetupFormScript: func() begin a := GetAppParams(); self.viewBounds := RelBounds(a.appAreaLeft, a.appAreaTop, MIN(a.appAreaWidth, kAppMaxWidth), MIN(a.appAreaHeight, kAppMaxHeight)) ; end, viewSetupDoneScript: func() begin GetRoot().(EnsureInternal(kMyKeyboardSymbol)) := BuildContext(pt_myASCIIkb) ; end, viewQuitScript: func() begin if getroot().(kMyKeyboardSymbol) exists and getview(getroot().(kMyKeyboardSymbol)) then getroot().(kMyKeyboardSymbol):Close(); RemoveSlot(GetRoot(), kMyKeyboardSymbol) ; end, _proto: protoApp, debug: "myBase" }; _view000 := /* child of myBase */ {viewFlags: 7681, viewFormat: 12625, viewlinespacing: 20, viewFont: 18434, viewBounds: {top: 30, left: 5, right: -5, bottom: 121}, viewSetupFormScript: func() begin setkeyview(self, 0); end, viewJustify: 48, viewclass: 81 }; _view001 := /* child of myBase */ {text: "Open QWERTY Keyboard", buttonClickScript: func() begin getroot().(kMyKeyboardSymbol):Toggle(); end, viewBounds: {left: 0, top: 186, right: 168, bottom: 206}, viewJustify: 8388630, _proto: protoTextButton }; // ---- Beginning of non-used User Protos ---- // ---- File myASCIIKb ---- // Before Script for "kb" // Copyright 1993-1994 Apple Computer, Inc. All rights reserved. kb := {viewBounds: {top: 211, left: 0, right: 226, bottom: 295}, _proto: protoKeyboard, debug: "kb" }; thePad := /* child of kb */ {keyDefinitions: [ row0, row1, row2, row3, row4 ], viewJustify: 128, capsDownP: // returns true if the caps lock key is down func() begin if :optionDownP() then (KeyIn(kOneKey, nil) = kOneOption) and (KeyIn(kQKey, nil) = kQOptionShift) ; else (KeyIn(kOneKey, nil) = $1) and (KeyIn(kQKey, nil) = $Q) ; end, optionDownP: // returns true of the option key is down func() begin local key := KeyIn(kOneKey, nil) ; (key = kOneOption) or (key = kOneOptionShift) ; end, shiftDownP: // returns true if the shift key is down func() begin if :optionDownP() then (KeyIn(kOneKey, nil) = kOneOptionShift) else (KeyIn(kOneKey, nil) = $!); end, keyPressScript: func(key) begin local shiftDown := :shiftDownP() ; local capsDown := :capsDownP() ; local optionDown := :optionDownP() ; local keyChar := $\00 ; local keyView := GetView('viewFrontKey) ; if key = kShiftKey then begin KeyIn(kShiftKey, (not shiftDown)) ; if capsDown then KeyIn(kCapsLockKey, nil) ; :Dirty(); end else if key = kCapsLockKey then begin KeyIn(kCapsLockKey, true) ; if shiftDown then KeyIn(kShiftKey, nil) ; :Dirty(); end else if key = kOptionKey then begin KeyIn(kOptionKey, (not optionDown)); :Dirty() ; end else begin keyChar := KeyIn(key, true) ; KeyIn(key, nil) ; if shiftDown then begin KeyIn(kShiftKey, nil) ; :Dirty() ; end ; if optionDown then begin KeyIn(kOptionKey, nil) ; :Dirty() ; end ; end ; print(keyChar) ; if keyView then PostKeyString(keyView, "" & keyChar) ; end, _proto: protoKeypad, debug: "thePad" }; _view002 := /* child of kb */ {_proto: protoClosebox}; // After Script for "kb" thisView := kb; //Set the saveBounds to the viewBounds since this is probably what you want thisView.saveBounds := Clone(thisView.viewBounds); // ---- End of non-used User Protos ---- // ---- Beginning of section for non used Layout files ---- // End of output