COMMENT @---------------------------------------------------------------------- Copyright (c) GeoWorks 1992 -- All Rights Reserved PROJECT: PC GEOS MODULE: User Interface FILE: KbdAccelerators DESCRIPTION: Keyboard Accelerators used, by object $Id: KbdAccelerators.doc,v 1.2.15.1 97/03/29 03:38:01 canavese Exp $ ------------------------------------------------------------------------------@ ============================================================================== Guidelines for choosing Application kbd accelerators ============================================================================== 1) Avoid conflicting with key combinations which are used in PC/GEOS to create special characters: Ctrl+Alt+ - GEOS: special characters Shift+Ctrl+Alt+ - GEOS: special characters 2) Avoid conflicting with global SPUI kbd assignments, for any SPUI you hope to be able to run under. See KbdAccelerators.doc for detailed info, but in general these are such things as: Alt+ - mnemonic navigation Any ESC, BACKSPACE, INS, DEL, TAB, arrow keys, ENTER, F1, F3, Ctrl F4-F12, Alt F4-F12, etc. 3) Avoid conflicting w/accelorators used in any of the controllers included in your application. See Libarary/User/KbdAccelerators.doc for a list. It would also be a good idea to avoid accelerators used in controllers you might use in a future version of the product. 4) Adopt de-facto standards if possible. 5) The following combos are a good place to start (simpler shortcuts aren't discouraged, but must be researched a little more thoroughly, to avoid the problems mentioned above): Shift+Ctrl+ Shift+Ctrl+ Ctrl+ - watch out for controllers you use! ============================================================================== Guidelines for choosing Controller kbd accelerators ============================================================================== 1) Avoid conflicting with key combinations which are used in PC/GEOS to create special characters: Ctrl+Alt+ - GEOS: special characters Shift+Ctrl+Alt+ - GEOS: special characters 2) Avoid conflicting with global SPUI kbd assignments, for any SPUI you hope to be able to run under. See KbdAccelerators.doc for detailed info, but in general these are such things as: Alt+ - mnemonic navigation Any ESC, BACKSPACE, INS, DEL, TAB, arrow keys, ENTER, F1, F3, Ctrl F4-F12, Alt F4-F12, etc. 3) Avoid conflicting w/defacto standards. These would be things such as: Ctrl P (except for printing) Ctrl Z, X, C & V (except for cut/copy/paste) Reasoning: a) Developers will less likely have to turn off accelerators for a given controller if the shortcuts match what their app traditionally uses. 4) Adopt de-facto standards where possible. Reasoning: a) Makes it easier on everyone. b) Makes it easier for developers to move apps to this enviroment, while retaining consistency across platforms. 5) Avoid conflicting w/accelerators used in other controllers, particularly with controllers likely to appear in the same application. Reasoning: a) More controllers can then be included in the same app without having to defeat the accelerators in any given controller group. ============================================================================== In-house Recommendations: ============================================================================== B4 2.0 ships: * Create HINT_NO_KBD_ACCELERATORS, to allow defeating of std kbd accelerators for controller. Reasoning: a) Allows apps to decide what areas of app are most frequently used, & assign accelerators, even if broad functionality is offered. May be necessary as more & more controllers are written (we'll likely run out of non-conflicting assignments) b) Features retain standard accelerators assignments, which can be eliminated, but not changed on a per-app basis. c) should be relatively easy to do :) B4 retail ships: * If desired: Change GenEditControl to use Ctrl Z, X, C, V, yet still recognize the old shorcuts, on Motif, & change as well for CUA if possible. ============================================================================== NEAT UNIX STUFF ============================================================================== To print out all accelerators: find . -name \*.ui -print | xargs egrep -n kbdAccelerator |& tee acc ============================================================================== NOTES ============================================================================== * The "Mac" listings below are provided for the purposes of comparisons only. Were a Mac UI to be written, the "alt" key would likely fill in for the "command" key, as the Mac does not support kbd navigation, & thus this key would be free. This would, in general, also allow standard Mac shortcuts to be used without conflict. The Mac shortuts do have a funny way of ending up being standards in the PC world, years later, as "control" shortcuts, however, & so are provided here for your perusal. ============================================================================== "ui" library ============================================================================== In general motif cua mac ========== ===== === === Help F1 F1 command '?' Exit (application) F3 command 'q' Exit to Welcome (GEOS) F2 N/A Abort current operation command '.' Next (application) alt ESCAPE alt ESCAPE Previous (application) alt shift ESCAPE alt shift ESCAPE Bring up Task List/Express control ESCAPE control ESCAPE GenPrimaryClass, windowed GenInteractionClasses =============================================== motif, cua, win WS (?) =============== == Navigate to menu bar F10 F10 Bring up window menu shift ESCAPE alt MINUS Open Window shift ESCAPE Close alt F4 alt F4 Restore alt F5 alt F5 Next alt F6 alt F6 Move alt F7 alt F7 Size alt F8 alt F8 Minimize/Hide alt F9 alt F9 Maximize alt F10 alt F10 GenDisplayGroupClass/GenDisplayClass ==================================== motif, cua, win =============== Close control F4 Overlapping (Restore) control F5 Next control F6 Move control F7 Size control F8 Minimize control F9 Full-Sized (Maximize) control F10 Tile shift F4 GenEditControlClass cua, win, motif win, motif mac =================== =============== ========== === Undo alt BACKSPACE control 'z' command 'z' Cut shift DEL control 'x' command 'x' Copy control INS control 'c' command 'c' Paste shift INS control 'v' command 'v' Delete DEL DEL GenViewControlClass cua, motif =================== ========== Redraw F5 Switch to other split View F6 GenDocumentControl/GenDocumentGroup/GenDocument =============================================== mac === New * command 'n' Open command 'o' Close command 'w' Save control 's' command 's' * In PC/GEOS, command 'n' is used for the most common "New" operation in the app, i.e "New Event" for planner, "New Record" for GeoDex, etc. In help window cua ============== === General Help F2 Keys Help F9 Help Index F11 Tutorial Help shift F2 Using Help shift F10 ============================================================================== "Spool" library ============================================================================== PrintControl mac ------------ --- Print control 'p' command 'p' ============================================================================== "text" library ============================================================================== JustificationControlClass ------------------------- Justify Left control 'l' Justify Center control 'e' Justify Right control 'r' Justify Full control 'j' TextStyleControlClass mac --------------------- --- Plain Text shift control 'z' shift command 'z' Bold control 'b' command 'b' Italic control 'i' command 'i' Underline control 'u' command 'u' PointSizeControlClass --------------------- Smaller control '9' Larger control '0' SearchReplaceControlClass mac ========================= === Find and Replace control 'f' command 'f' ============================================================================== "spell" library ============================================================================== SpellControlClass ================= Check Spelling F7 ThesControlClass ================ ============================================================================== "spreadsheet" Library ============================================================================== SSRecalcControlClass mac ==================== === Calculate Now control '=' command = SSColumnWidthControlClass ========================= Narrower control '1' Wider control '2' SSFillControlClass ================== Fill Right shift control 'r' Fill Down shift control 'd' ============================================================================== By convention.... ============================================================================== Games ===== Start New Game control 's' conflicts w/Save! -> Ctrl + N Abort Current Game control 'a' Pause Game control 'p' conflicts w/Print! Continue Game control 'c' conflicts w/Copy! Edit cua mac ==== === === Duplicate command 'd' Redo shift alt BACKSPACE Select All control '/' command 'a' Deselect All control '\' Misc GEOS cua, motif, win mac ==== ==== =============== === New (event, record etc.) control 'n' Goto control 'g' command 'g' Rulers command 'r' Modify command 'm'