home *** CD-ROM | disk | FTP | other *** search
/ The CDPD Public Domain Collection for CDTV 3 / CDPDIII.bin / pd / commodities / yak / englishdocs / yak.doc < prev    next >
Text File  |  1993-04-22  |  30KB  |  820 lines

  1. short: great multi-purpose commodity
  2.  
  3. Yak 1.4a  (c) 1992, 1993, Martin W. Scott. All Rights Reserved.
  4. [Needs KickStart 2.04 or above]
  5.  
  6. Yak stands for "Yet Another Kommodity" (never was any good at speling),
  7. and is a mouse/window manipulation program along the same lines as DMouse,
  8. MightyMouse etc.
  9.  
  10. Why write another one? None of the others (and I've looked at almost all of
  11. them) were quite right for me. Yak has the following features:
  12.  
  13.     - AutoPoint (sunmouse) that only activates when mouse stops
  14.           can also specify which screens to include/exclude.
  15.       (Compatible with popup-menu type programs)
  16.  
  17.     - AutoPop windows (bring them to front) when they're
  18.           auto-activated; 
  19.  
  20.     - KeyActivate windows (when key pressed);
  21.  
  22.     - Activate windows when menu button pressed;
  23.  
  24.     - Click windows to front or back;
  25.       may also specify which screens/windows to include/exclude.
  26.  
  27.     - Cycle screens with mouse;
  28.  
  29.     - Mouse and Screen blanking (hotkey blanking too);
  30.  
  31.     - Close/Zip/Shrink/Enlarge windows with programmable hotkeys;
  32.  
  33.     - Cycle screens and windows from keyboard;
  34.  
  35.     - Activate Workbench by hotkey (to get at menus when WB obscured);
  36.  
  37.     - Center frontmost screen by pressing a hotkey;
  38.  
  39.     - Pop up a palette on front screen (requires reqtools.library);
  40.  
  41.     - Insert date in custom format (requires locale.library in WB2.1);
  42.  
  43.     - KeyClick with adjustable volume;
  44.  
  45.     - PopCommand key for starting a command (like PopCLI);
  46.  
  47.     - Wildstar option (like StarBurst) lets you use '*' as wildcard.
  48.  
  49.     - Optional on-screen AppIcon to bring up preferences window.
  50.  
  51.     - Nice gadtools settings window;
  52.  
  53. Look familiar? It's a combination of the AutoPoint, ClickToFront, Blanker
  54. and IHelp standard commodities (on the Extras disk) with a hint of
  55. KCommodity and DMouse thrown in. And it's quite small, about 12K. It uses
  56. about 18K when running. If you use just two of the standard commodities,
  57. you'll save memory by using Yak.
  58.  
  59.  
  60. What Yak doesn't do
  61. -------------------
  62. Yak only has a plain screen-blanker. Since the introduction of OS 2.0,
  63. there has been a profusion of fancy screen blankers, such as Spliner (which
  64. I use), ASwarm (various incarnations), FracBlank and more. I think most
  65. people have their own favourite fancy blanker, so I didn't include one in
  66. Yak.
  67.  
  68. There is no mouse-acceleration. The system default one (settable via the
  69. Input preferences) is more than adequate as far as I am concerned. If I get
  70. enough requests, I'll add faster acceleration (so far, hardly any received).
  71.  
  72.  
  73. How to use Yak
  74. --------------
  75. Yak is designed to be run from the sys:WBStartup drawer, but may be 'run'
  76. from the Shell. All Yak settings are stored in a prefs-file, "S:Yak.prefs".
  77. When you first use Yak, configure it the way you like, then save that
  78. configuration for later invocations.
  79.  
  80. The .prefs file format is designed to be upward compatible, so future
  81. versions of Yak should be able to load older .prefs files. This didn't
  82. quite hold true in the transition from v1.2 to v1.3, but that should be a
  83. one-off.
  84.  
  85. The only tooltypes that Yak takes are the standard Workbench ones (such as
  86. DONOTWAIT), the standard Commodities ones (such as CX_POPUP) and the
  87. AppIcon ones. Those tooltypes are:
  88.  
  89. ToolType    Category    Description            Default (1)
  90. ---------------------------------------------------------------------------
  91. CX_POPKEY    HOTKEY        Key to show settings window    RCommand Help
  92. CX_PRIORITY    INTEGER        Priority of this commodity    0
  93. CX_POPUP    BOOLEAN        Show settings window on startup    NO
  94.  
  95. NOICON        BOOLEAN        If TRUE, no AppIcon is made    FALSE
  96. ICONNAME    STRING        Name of AppIcon            "Yak!"
  97. ICONXPOS    INTEGER        x-coordinate of AppIcon        floating
  98. ICONYPOS    INTEGER        y-coordinate of AppIcon        floating
  99.  
  100. You should also have the tooltype "DONOTWAIT" set if you want to start Yak
  101. from your SYS:WBStartup drawer.
  102.  
  103. The AppIcon facility is optional (specify NOICON=TRUE if you don't want
  104. it). If NOICON=FALSE (or there is no NOICON tooltype) Yak puts an AppIcon
  105. onto the Workbench screen, and when it is double-clicked, the Settings
  106. Window is opened. The icon imagery is obtained from the icon Yak was
  107. started from, which allows you to customise the AppIcon to your
  108. colours/resolution simply by changing Yak's icon. 
  109.  
  110. The CX_PRIORITY may be useful in enabling Yak and other commodities to work
  111. better together. See, for example, notes on the RMB Activate toggle below.
  112.  
  113.  
  114. The Settings Window
  115. -------------------
  116. Once Yak is started, you may bring up its settings window by the following
  117. means:
  118.  
  119.     Pressing RCommand Help (i.e. the Right Amiga key and the Help key).
  120.         This key-sequence is configurable;
  121.  
  122.     Double-clicking Yak's AppIcon (if this feature is set);
  123.  
  124.     Start Yak again (from Workbench tool icon);
  125.  
  126.     Via the Commodities Exchange (on the Extras disk).
  127.  
  128. A fairly large window with a small menu and many gadgets will appear,
  129. grouped under headings. From top-to-bottom, left-to-right, they are:
  130.  
  131.     Yak Hotkeys
  132.     ===========
  133.     Here is where you edit the hotkeys for specific actions. Those
  134.         actions are:
  135.     
  136.     Show this window    bring up the settings window
  137.                 Default: RCommand Help
  138.  
  139.     Close window        close currently active window (c.a.w.)
  140.                 Default: Control esc
  141.  
  142.     Zip window        zip c.a.w. (like clicking on zip gadget)
  143.                 Default: Control z
  144.  
  145.     Shrink window        make c.a.w. as small as possible
  146.                 Default: LCommand [
  147.  
  148.     Enlarge window        make c.a.w. as large as possible
  149.                 Default: default: LCommand ]
  150.  
  151.     Activate WBench        activate (a) Workbench window
  152.                 Default: LCommand w 
  153.  
  154.     Palette            bring up palette on front screen
  155.                 NB: You MUST close the palette before the
  156.                                 screen is closed, otherwise a system crash
  157.                                 may result. Also, while any palettes are
  158.                                 open, Yak cannot be exited.
  159.                                 Default: LCommand p
  160.  
  161.     PopCommand        execute PopCommand (see below)
  162.                 Default: LCommand esc
  163.  
  164.     Insert date        write date into c.a.w.
  165.                 Default: LCommand d
  166.  
  167.     Cycle windows        bring rearmost window to front
  168.                 Default: LCommand k
  169.  
  170.     Cycle screens        bring rearmost screen to the front
  171.                 Default: LCommand n
  172.  
  173.     Center screen        center horizontally the front screen
  174.                 Default: LCommand c
  175.  
  176.     Screen to back        push front screen to back.
  177.                 same as Intuition's LCommand m, but also
  178.                                 activates window under mouse on new front
  179.                                 screen.
  180.                 Default: LCommand m
  181.  
  182.     Blank display        immediately blank the display (like screen
  183.                                 blanker); screen-blanking need not be
  184.                                 enabled for this to work.
  185.                 Default: LCommand del
  186.  
  187.     To change an action's hotkey, click over the action, then edit the
  188.         string gadget below as desired. If you want to remove a hotkey (if
  189.         you don't need a particular action) click in the string gadget and
  190.         press RightAmiga-X to clear it, then press Return. (Make sure the
  191.         string really is empty (i.e. not composed of spaces) otherwise
  192.         strange keys will be mapped due to a bug in commodities.library --
  193.         see history (v1.2) for details.)
  194.  
  195.     The Activate WBench hotkey gives access to the Workbench menus when
  196.         the Workbench is obscured by an application-window (e.g. an editor
  197.         or shell). It brings the Workbench screen to front if necessary.
  198.     
  199.     PopCommand
  200.     ==========
  201.     This string gadget holds the command that will be executed when the
  202.         PopCommand hotkey is pressed. Note that it is not run
  203.     asynchronously; some aspects of Yak will be disabled until the
  204.         command is finished (but commands like NewShell return
  205.         immediately). 
  206.  
  207.     DateFormat
  208.     ==========
  209.     This string specifies what string is to be inserted into the event
  210.         chain on pressing the Date insertion hotkey. Any valid locale-style
  211.         string is valid (see below for full details).
  212.  
  213.     AutoScreens
  214.     ===========
  215.     The AmigaDos pattern (see below) here specifies on which screens
  216.         the AutoFront/PopToFront features are ACTIVE.
  217.  
  218.     ClickScreens
  219.     ============
  220.     The AmigaDos pattern (see below) here specifies on which screens
  221.         the ClickToFront/Back features are ACTIVE.
  222.  
  223.     PopWindows
  224.     ==========
  225.     The AmigaDos pattern (see below) here specifies on which windows
  226.         the AutoPopToFront feature is active.
  227.  
  228.     ClickWindows
  229.     ============
  230.     The AmigaDos pattern (see below) here specifies which windows may
  231.         be clicked-to-front. Most commonly, this will be set to exclude the
  232.         Workbench window. Note that this does not filter click-to-back
  233.         operations.
  234.  
  235.     ScreenBlank
  236.     ===========
  237.     If no user input (mouse or keyboard) occurs over this period (of
  238.         seconds), the screen will blank. Set it to 0 to disable screen
  239.         blanking altogether. The blanking is performed by opening a 2-color
  240.         screen with the same displaymode as the frontmost screen.
  241.  
  242.     MouseBlankTime
  243.     ==============
  244.     If mouse isn't moved in the period specified, the mouse will blank.
  245.     This is only operational if the Mouse Blanking toggle (see below)
  246.         is on, otherwise it is ignored.
  247.  
  248.     Method
  249.     ======
  250.     Refers to mouse-blanking.  `None' disables mouse-blanking
  251.         altogether, `Sprites' means blank mouse by disabling (all) sprites
  252.         (like in version 1.2), and `Copper' means blank mouse by modifying
  253.         copper list.  This second option only disables sprite 0 (the
  254.         mouse-pointer), so terminal programs using a sprite for the cursor
  255.         work okay, but the method is a bit less robust (the mouse
  256.         occasionally comes back on).
  257.  
  258.     ClickVol
  259.     ========
  260.     Controls the volume of the KeyClick. A volume of zero means 'no
  261.         click' (yes, that's obvious, but when set to zero, the audio device
  262.         won't be opened at all).
  263.  
  264.  
  265.     Toggles
  266.     =======
  267.     Here are various toggles for miscellaneous features.
  268.     
  269.     AutoPoint    Activate window under mouse. This behaves almost
  270.                 exactly like Commodore's AutoPoint commodity, in
  271.                 that it only activates a window when the mouse
  272.             stops. AutoPoint is compatible with popup-menu type
  273.                         programs.
  274.  
  275.             Note: can specifiy pattern that screen title must
  276.                         match before this function operates.
  277.  
  278.     AutoPopToFront  Only operative when AutoPoint is set, this tells Yak
  279.                         to bring windows to the front as well as activating
  280.                         them. The exception is when the window under the
  281.                         mouse has a requester showing.
  282.  
  283.             Note that both the Auto-functions only take place
  284.                         when NO qualifier (mouse or keyboard) is pressed.
  285.                         Not only does this avoid conflict with other
  286.                         programs, it provides a way of preventing
  287.                         activation/popping when it's not desired.
  288.  
  289.             Note: can specifiy pattern that window title must
  290.                         match before this function operates.
  291.  
  292.     RMB Activate    When selected, the window under the mouse will be
  293.                         activated when the right mouse button is pressed,
  294.                         regardless of the status of AutoPoint. This is
  295.                         useful in getting the menu you want without either
  296.                         waiting for AutoPoint to activate the window or
  297.                         clicking into the window to make it active.
  298.  
  299.             For instance, when using the screen depth gadgets,
  300.                         the new front screen is not activated, but with
  301.                         this toggle set, clicking the RMB will get the
  302.                         correct menus.
  303.             
  304.             Note 1: If there is no window under the mouse, the
  305.                         first window on the screen will be activated.
  306.             
  307.             Note 2: To work properly with popupmenu-type
  308.                         programs, Yak's CX_PRIORITY may need to be higher
  309.             than the popupmenu program's CX_PRIORITY.
  310.  
  311.     Key Activate    Activates window under mouse when key is pressed.
  312.                         You should only need one of AutoPoint or
  313.             KeyActivate.
  314.  
  315.     Click To Front    Bring a window to the front of others by
  316.                         double-clicking over it.
  317.  
  318.     Click To Back    Move a window to the back of others by
  319.                         pressing and holding the left mousebutton, then
  320.                         clicking the right mousebutton.
  321.  
  322.             Note: can specifiy pattern that screen title must
  323.                         match before click functions operate.
  324.             Note2: as with Auto- features, clicking to front
  325.                         and back is disabled whilst a keyboard qualifier is
  326.                         pressed.
  327.             
  328.     Screen To Back    Using the same mouse sequence as Click To Back,
  329.                         move a screen to the back of others if:
  330.             
  331.             either    the window under the mouse is a backdrop
  332.                             window (like the main Workbench window)
  333.             or    there is only one window on the screen.
  334.  
  335.     Screen Activate When checked, Yak will activate screens that it
  336.                         shuffles by hotkeys (i.e. Screen Cycle hotkey and
  337.                         LCommand m hotkey). This is a toggle because
  338.                         conflicts arise with some programs. This is similar
  339.                         (but not identical) to Steve Tibbet's WindX. By
  340.                         activating screens I mean that it activates the
  341.                         window under the mouse-pointer of the new front
  342.                         screen.
  343.  
  344.     Wild star     When on, enables the use of * as an AmigaDos
  345.                         pattern-matching character (like MSDOS and UNIX *).
  346.                         (This is what the StarBurst program does.)
  347.  
  348.     Hide
  349.     ====
  350.     Close the settings window, leaving Yak running.
  351.     (The window's close gadget has the same effect).
  352.  
  353.     Quit
  354.     ====
  355.     Terminate Yak.
  356.  
  357. The menus are:
  358.  
  359.     Load  (shortcut: L)
  360.     ====
  361.     Load previously saved prefs-file. This basically restores your
  362.     default options.
  363.  
  364.     Save  (shortcut: S)
  365.     ====
  366.     Save the current settings to the prefs-file. These settings will
  367.         then be used in future invocations of Yak.
  368.  
  369.     Hide  (shortcut: H)
  370.     ====
  371.     Close settings window.
  372.  
  373.     Quit  (shortcut: Q)
  374.     ====
  375.     Terminate Yak.
  376.  
  377. You may also control Yak using the Commodities Exchange program on the
  378. Workbench disk. Consult your user-guide for details on this.
  379.  
  380.  
  381. Date formats
  382. ------------
  383. For the date-insertion feature, you must use a locale-style date format
  384. string (and so will need AmigaDos 2.1). The available formatting options
  385. under locale.library are as follows:-
  386.  
  387.     %a - abbreviated weekday name
  388.     %A - weekday name
  389.     %b - abbreviated month name
  390.     %B - month name
  391.     %c - same as "%a %b %d %H:%M:%S %Y"
  392.     %C - same as "%a %b %e %T %Z %Y"
  393.     %d - day number with leading 0s
  394.     %D - same as "%m/%d/%y"
  395.     %e - day number with leading spaces
  396.     %h - abbreviated month name
  397.     %H - hour using 24-hour style with leading 0s
  398.     %I - hour using 12-hour style with leading 0s
  399.     %j - julian date
  400.     %m - month number with leading 0s
  401.     %M - the number of minutes with leading 0s
  402.     %n - insert a linefeed
  403.     %p - AM or PM strings
  404.     %q - hour using 24-hour style
  405.     %Q - hour using 12-hour style
  406.     %r - same as "%I:%M:%S %p"
  407.     %R - same as "%H:%M"
  408.     %S - number of seconds with leadings 0s
  409.     %t - insert a tab character
  410.     %T - same as "%H:%M:%S"
  411.     %U - week number, taking Sunday as first day of week
  412.     %w - weekday number
  413.     %W - week number, taking Monday as first day of week
  414.     %x - same as "%m/%d/%y"
  415.     %X - same as "%H:%M:%S"
  416.     %y - year using two digits with leading 0s
  417.     %Y - year using four digits with leading 0s
  418.  
  419. That list is pretty exhaustive, and should handle most needs; you can
  420. insert your own text freely in the format string. Some examples:
  421.  
  422.     "The time is %X"    gives (e.g.)    "The time is 20:44:16"
  423.     "Have a nice %A!"    gives (e.g.)    "Have a nice Monday!"
  424.  
  425. If you need more details, consult the AutoDocs on locale.library if you
  426. have them.
  427.  
  428.  
  429. AmigaDos Patterns
  430. -----------------
  431. AmigaDos patterns are used to include/exclude a list of named
  432. screens/windows for a particular feature. Currently, there are three
  433. such features: AutoActivate/Pop, ClickToFront/Back (specified on screens),
  434. and AutoPopToFront (specified on windows). These pattern specifications aid
  435. in compatibillity with other programs you may use.
  436.  
  437. The pattern matching is case-sensitive. "Amiga" is not the same as "AMIGA".
  438. The standard AmigaDos patterns available are:-
  439.  
  440.     ?    Matches a single character.
  441.     #    Matches the following expression 0 or more times.
  442.     (ab|cd) Matches any one of the items seperated by '|'.
  443.     ~    Negates the following expression.  It matches all strings
  444.         that do not match the expression (aka ~(foo) matches all
  445.         strings that are not exactly "foo"
  446.     [abc]    Character class: matches any of the characters in the class.
  447.     a-z    Character range (only within character classes).
  448.     %    Matches 0 characters always (useful in "(foo|bar|%)").
  449.     *    Synonym for "#?", not available by default.  Available if
  450.         Wildstar option is set.
  451.  
  452. If you're not used to patterns, you may find all of that quite daunting.
  453. Consult your system manual for further details. There are two basic things
  454. you'll want: either a finite list of names that the feature should be
  455. enabled on, or a finite list for which it should be disabled. To ENABLE a
  456. feature on all objects (be they screens or windows, as appropriate) use the
  457. "#?" pattern (matches everything). To enable a feature on N objects named
  458. "name1" to "nameN", use
  459.  
  460.     (name1|name2| ... |nameN)
  461.  
  462. and to DISABLE the feature for these names, prepend a tilde ~, viz.
  463.  
  464.     ~(name1|name2| ... |nameN)
  465.  
  466. An example: I don't want AutoPopToFront popping the Workbench window or any
  467. Protext (WP from Arnor) window, so exclude them with the pattern
  468.  
  469.     ~(Workbench|#?Arnor#?)
  470.  
  471. Note that the second 'name' is actually a pattern, which matches any title
  472. with the text "Arnor" in it.
  473.  
  474. Another: I don't want AutoActivation on Directory Opus's screen. It doesn't
  475. show its title in the program so I have to use ARTM or Xoper to find the
  476. screen's name, and find that it's "DOPUS.1". Figuring that the "1" would
  477. bump to "2" if I ran two copies, I decide to exclude all DOpus screens using
  478.  
  479.     ~(DOPUS#?)
  480.  
  481. NB-1: Specifying the Workbench screen in a pattern is a bit tricky, as it's
  482. title keeps changing, depending on what window is active. For most
  483. purposes, a pattern such as #?Workbench#? will match, but some applications
  484. set the Workbench title to a descriptive string of their application.
  485.  
  486. NB-2: Screens or windows with titles that are unset (i.e. are NULL) always
  487. pass the patterns.
  488.  
  489.  
  490. Ending Yak
  491. ----------
  492. Yak can be terminated in the following ways:
  493.  
  494.     From the settings window, select Quit (gadget or menu);
  495.     
  496.     From the Commodities Exchange, select Kill (Remove under WB2.1);
  497.     
  498.     By sending the Yak process a ^C signal.
  499.  
  500.  
  501. Problems
  502. --------
  503. There are a few problems that I am currently aware of. Firstly, a shell
  504. created by the PopCommand hotkey doesn't have the stack or current
  505. directory as set at boot-time (in the Startup-Sequence). It DOES retain
  506. your path, though. Your Shell-Startup file should set the CD and the stack
  507. you need. 
  508.  
  509. The Close window hotkey doesn't work for shell windows. This is because
  510. they handle intuition events differently from other windows.
  511.  
  512. If you're not happy with Yak's mouse-blanking, you could try the Commodore
  513. MouseBlank commodity (WB3.0), which should blank the mouse on all displays
  514. correctly.
  515.  
  516. NOTE FOR AMOS USERS: I hate AMOS (that's enough of my opinion), partly
  517. because it is so system unfriendly. It completely steals the input stream,
  518. so that mouse blankers (in programs like Yak) kick-in, thinking there's
  519. been no input, and the mouse isn't restored, because there's no mousemoves
  520. to unblank it. Because Yak uses a rather bad blanking method, problems can
  521. occur (mouse vanishes and won't come back). Two solutions:
  522.  
  523.     1) Use 'Copper' blanking.
  524.     2) Set MouseBlankTime to zero. You'll still have key blank, but no
  525.        timed blank.
  526.  
  527. Then the AMOS problem of the pointer disappearing should be solved.
  528.  
  529.  
  530. Compiling
  531. ---------
  532. Yak has been written to compile under SAS/C, and as from v1.4a, using SAS/C
  533. version 6.2.  The code passes cleanly with ANSI checking, so users of other
  534. ANSI-compliant compilers should have little problem recompiling - the only
  535. places changes may be needed are in SAS-specific keywords (like __saveds).
  536.  
  537. Yak uses overlays, but this can be compiled out by removing the definition
  538. USE_OVERLAYS in SCOPTIONS.
  539.  
  540. GTB 2.0b was used to generate the user-interface.  The generated code
  541. (popup.c, popup.h) needs only minimal modification, specifically to use
  542. NewLookMenus under WB3.0 and above; these (two) changes are indicated by
  543. comments with the word 'ADDED' in them, if you want to play around with the
  544. interface.
  545.  
  546.  
  547. Distribution
  548. ------------
  549. Yak is freely redistributable, copyrighted software. The source is included,
  550. and you are permitted to modify it for personal use, but any modifications
  551. made must NOT be distributed. If you have made changes you think others
  552. would like, send them to me and I'll include them in future versions.
  553.  
  554. Although Yak is freeware, DONATIONS WOULD BE GLADLY ACCEPTED, either money
  555. or stuff you've written yourself.
  556.  
  557.  
  558. Credits
  559. -------
  560. Yak is written entirely in C, and compiled with SAS/C 6.2.  Thanks to Reza
  561. Elghazi for help in the transition to 6.2.
  562.  
  563. The Settings window gadgetry was created using the excellent (apart from
  564. the v2.0 glitch:) GadToolsBox v2.0b, from Jaba Development.
  565.  
  566. Yak makes use of reqtools.library, which is Copyright Nico François.
  567. Thanks must also go to Mike Meyer et.  al.  for Mg3, Steve Koren for SKsh,
  568. Matt Dillon for DMouse (which answered many of my how-to questions), and
  569. Kai Iske for KCommodity, which is where the KeyClick sound was 'borrowed'.
  570. Yak also uses WB2CLI, a very useful little link-module by Mike Sinz.
  571.  
  572. The HotKey documentation is taken from the ToolManager distribution, by
  573. kind permission of Stefan Becker.
  574.  
  575. Thanks to Stefan Sticht for his public domain MouseBlanker commodity - this
  576. is where I pinched the 'Copper' mouse-blanking method.
  577.  
  578. And a big thank-you to all those people who wrote to me about Yak with
  579. suggestions and bug reports, and especially to Gaël Marziou who drew the
  580. nice Yak icons and translated the documentation into French -- thanks Gaël!
  581.  
  582.  
  583. History (* = new feature)
  584. -------------------------
  585.  v1.4a    * Added RMB Activate toggle - window under mouse is activated when
  586.       right mouse button pressed.
  587.  
  588.     * New improved mouse-blanking: Method 'Sprites' is same as before,
  589.           but method 'Copper' has been completely rewritten; it still only
  590.           blanks sprite 0, but is now compatible with LacePointer.
  591.  
  592.     - Completely removed AutoThresh code due to compatibility problems,
  593.       but RMB Activate takes over the main usefulness of AutoThresh
  594.       anyway (i.e. getting the correct menus up).
  595.  
  596.     - Now compiled with SAS/C 6.2 (see Compiling above). 
  597.  
  598.  
  599.  v1.4  [* AutoActivate now has threshold setting. This should have been in
  600.           ages ago, but I only just realised how easy it was to add.
  601.  
  602.       REMOVED DUE TO CONFLICTS WITH POPUPMENU
  603.        ]
  604.     - Range-checking now performed on number-gadgets.
  605.  
  606.     - NewLookMenus for WB 3.0.
  607.  
  608.  v1.3f    * Settings window now font-sensitive (uses screen font).
  609.  
  610.     * ScreenToBack by mouse-clicks now activates first window on front
  611.           screen when no window is under mouse (this helps programs like
  612.           MagicMenu).
  613.  
  614.     * Screen blanking now opens screen with same displaymode as front
  615.           one.
  616.  
  617.     - Further mouse-blanking bug removed.
  618.  
  619.     - Conflicts between window-cycle hotkey and key activation
  620.           resolved, although they don't really go well together.
  621.  
  622.     - Window-cycle (via hotkey) now also cycles Workbench windows; when
  623.           initially written, Yak emulated IHelp's (CBM OS2.0) function of
  624.           cycling application windows only, but I get so many reports from
  625.           people saying that this function doesn't work, I figured folks
  626.           really want to cycle ALL windows.
  627.  
  628.     - More enforcer-hits removed (oh I wish I had an 030 etc., then I
  629.           could fix these all by myself, instead of relying on others
  630.           informing me).
  631.  
  632.  
  633.  v1.3e    - Version string added.
  634.  
  635.     - Now a choice of mouse-blanking method (so quit the flames...).
  636.  
  637.  v1.3d    - Fixed bug in KeyActivate routine (was losing first keystroke).
  638.  
  639.  v1.3c    - Fixed small enforcer hit which may have caused Window cycle to
  640.       fail. 
  641.  
  642.  
  643.  v1.3b    * New ClickWindows pattern, allows you to specify which windows may
  644.           be clicked-to-front (n.b. has no effect on click-to-back).
  645.  
  646.     * Mouse-blank timeout may now be specified.
  647.  
  648.     - [Click volume now specified via integer gadget].
  649.  
  650.  
  651.  v1.3a    - Now all Intuition calls are outside the input-handler to avoid
  652.       possible deadlocks (thanks to Eddy Carroll for reporting this).
  653.  
  654.     * New hotkey: Screen to back. Previously, this was hardcoded to
  655.           LCommand m, but can now be changed.
  656.  
  657.     * New hotkey: Blank display. Instant screen-blank.
  658.  
  659.     * Can now click screens to back in the titlebar (previously not
  660.           permitted due to system conflicts).
  661.  
  662.     * Palette runs asynchronously now, and you can have as many open as
  663.           you like. They MUST be closed before their parent screen closes,
  664.           and before Yak is terminated.
  665.  
  666.     - Now a disk-insertion halts screen-blanking.
  667.  
  668.     - Centering of screens via hotkey adjusted by 1 pixel, to be
  669.           consistent with Display, AutoCentre etc. (i.e. I was wrong...)
  670.  
  671.     - If started from Workbench (the usual way) Yak now sets it's
  672.           current directory to SYS:; this is then inherited by shells
  673.           created with PopCommand.
  674.  
  675.     - Some more mouse-blanking problems fixed. Also, screen-blanking
  676.           mouse-flicker fixed - hardly anyone uses Yak's blanker, so it
  677.           went unnoticed.
  678.  
  679.     - Fixed small bug in channel allocation priority.
  680.  
  681.     - Bug fixed in hotkey cancellation (by clearing string gadget).
  682.           Previously used to cancel a hotkey only for current session, and
  683.           still continue to show old key definition. How do I miss these
  684.           things?
  685.  
  686.  
  687.  v1.3    * Executable is now overlayed. Now uses less memory than earlier
  688.           versions, even with new features!
  689.  
  690.     * Can now specify which screens AutoActivate and ClickToFront/Back
  691.           operate on, by means of a standard AmigaDos pattern.
  692.  
  693.     * Date insertion uses locale.library-style format specification.
  694.       (Unfortunately, date insertion feature now requires WB 2.1).
  695.  
  696.     * AutoPopToFront feature added.
  697.  
  698.     * Improved mouse-blanking: now Yak only blanks sprite 0, so
  699.           programs that use other sprites are unaffected.
  700.  
  701.     * PopCommand now retains paths (but not directory/stack in
  702.           startup-sequence).
  703.  
  704.     - Auto-activation and key-activation now works more sensibly.
  705.  
  706.     - Somehow managed to remove volume check for clicking. Now a volume
  707.           of zero means that no click will be attempted.
  708.  
  709.     - Date insertion now inserts key-up events to aid compatability
  710.           with other programs.
  711.  
  712.     - Window cycling (via hotkey) now works on all screens (previously
  713.           just on WB, but I didn't mention it in the docs).
  714.  
  715.      NB    - Contention code in v1.2c was rather severe in cases, and
  716.           unnecessary if I changed the way Yak AutoActivated. Now Yak only
  717.           AutoActivates (and AutoPops) when no qualifier or mouse-button is
  718.           pressed. Contention-checking code has therefore been removed.
  719.       Should be no problems with well-behaved programs.
  720.  
  721.      NB    - Settings file changed; now uses S:Yak.prefs instead of
  722.           S:Yak.config; this is because format of that file changed. A
  723.           'Convert' program is supplied to create a 1.3 file from existing
  724.           1.2 file.
  725.  
  726.     - [Changed prefs window layout; looks nicer now (I think).]
  727.  
  728.  
  729.  v1.2c    - Inclusion of HotKey documentation (adapted from Stefan Becker's
  730.           ToolManager documentation).
  731.  
  732.     - Enforcer hit removed. (But there may be more).
  733.  
  734.     - Improved contention-checking; now Yak's AutoActivate works with
  735.           Dragit V2, for instance.
  736.  
  737.  
  738.  v1.2b    - maximum length of hotkey definitions increased from 29 to 49
  739.           characters to allow (almost) all possible definitions.
  740.  
  741.  
  742.  v1.2a    - small bug crept into v1.2; wasn't removing old hotkey when
  743.           changing existing definition.
  744.  
  745.  
  746.  v1.2    * mouse-pointer unblanks when Left-Amiga key is pressed, so
  747.           keyboard mouse-move is usable.
  748.  
  749.     * activates screens (i.e. windows on screens) when they're
  750.           shuffled, similar to WindX.
  751.  
  752.     * now optionally puts an AppIcon on the Workbench screen; when this
  753.           is double-clicked, the preferences window pops up.
  754.  
  755.     - entering a blank string as a hotkey (to delete it) would create a
  756.       hotkey attached to the ' key. I consider this to be a bug in
  757.           commodities.library. Now a blank string WILL remove the hotkey.
  758.  
  759.     - bad bug in auto-activate (key or mouse) fixed. Previously, Yak
  760.           would sometimes choose the wrong window (on the wrong screen) if
  761.           more than one screen was visible.
  762.  
  763.     - now changes active window even when current one has a request(er)
  764.           pending (but if active window has an active string-gadget, it
  765.           won't be de-activated). This seems more useful (to me, anyway).
  766.  
  767.     - changed 'Screen Cycle' toggle to 'Screen To Back' to avoid
  768.           confusion with 'Screen Cycle' hotkey (yes, silly of me...)
  769.  
  770.  
  771.  v1.1    * now uses config-file (s:Yak.config) rather than 10 million
  772.           tooltypes. Only the standard commodity tooltypes are now
  773.           recognised.
  774.  
  775.     * added window and screen cycling via keyboard (same as IHelp).
  776.  
  777.     * added screen-center hotkey.
  778.  
  779.     * added wildstar toggle.
  780.  
  781.     - [slightly changed settings window layout, added menu]
  782.  
  783.     - fixed bug in click-to-back feature (conflicted with PowerSnap);
  784.           it now only operates if no qualifiers are pressed.
  785.  
  786.     - fixed bug in mouse-blanking where mouse pointer used to reappear
  787.           periodically.
  788.  
  789.     - hotkeys now produce keyclick if it's on.
  790.  
  791.  
  792.  v1.0    - initial release.
  793.  
  794.  
  795. Contact
  796. -------
  797. I can be reached with comments, suggestions, bug reports, praise, money etc.
  798. at the following addresses:
  799.  
  800. BEFORE END OF JULY 1993:
  801.  
  802.     Martin W. Scott,
  803.     23 Drum Brae North,
  804.     Edinburgh  EH4 8AT
  805.     United Kingdom
  806.  
  807. AFTER END OF JULY 1993:
  808.  
  809.     Martin W. Scott, c/o
  810.     557 Great Western Road,
  811.     Ground flat right,
  812.     Aberdeen  AB1 7PA
  813.     United Kingdom
  814.  
  815. OR BY EMAIL UNTIL END OF JULY 1993: mws@castle.ed.ac.uk
  816.  
  817. Cheers,
  818.  
  819.     Martin.
  820.