home *** CD-ROM | disk | FTP | other *** search
/ Amiga Elysian Archive / AmigaElysianArchive.iso / commod / screense.lha / ScreenSelect / Docs / ScreenSelect.doc next >
Text File  |  1992-12-27  |  14KB  |  422 lines

  1.  
  2. ScreenSelect
  3. *************
  4.  
  5.    Version: 1.2 , Release date: 07.12.1992
  6.  
  7.    Copyright (C) 1992 Markus Aalto (1)
  8.  
  9.    ---------- Footnotes ----------
  10.  
  11.    (1)  This program is freeware. You may freely distribute it as long
  12. as you don't charge more than nominal fee for copying it (max 3 US$)
  13. and no deletions is made to the original package. You may also include
  14. it to PD disks such as Fred Fish collection.
  15.  
  16.    This program is distributed without warranty of any kind. So I take
  17. no responsibility about this program, its documentation, functionality
  18. or damages it may cause. The risk is entirely yours.
  19.  
  20.  
  21. Introduction
  22. *************
  23.  
  24.    `ScreenSelect' was programmed for users which commonly have two or
  25. more screens open at the same time. It shows a list of screen names in
  26. a listview gadget, so that user can then do a double click selection to
  27. get new screen to front. It is mainly designed to be used with public
  28. screens but it also works with normal screens if wanted so. Only
  29. requirement is `KS2.04' (V37) or greater. It is implemented as a
  30. commodity and it also sports a font-independent interface. In addition
  31. `ScreenSelect' allows quick change of default public screen and easy
  32. binding of hotkey to any public screen.
  33.  
  34.  
  35. Installation
  36. *************
  37.  
  38.    `Workbench' users could just put `ScreenSelect' to `WBStartup'
  39. directory. `DONOTWAIT'-tooltype is already set in `ScreenSelect's' icon,
  40. so you can install it simply by moving its icon.
  41.  
  42.    `CLI' users may want to start `ScreenSelect' from `S:User-Startup',
  43. so you first have to make minor modifications to `User-Startup'-file and
  44. then copy `ScreenSelect' somewhere along the path (for example to
  45. `C'-directory).
  46.  
  47.    I have also provided a program called `SS_AutoUpdate' ( see
  48. AutoUpdate ) which you can also drop to the `WBStartup' directory or
  49. start it from `User-Startup'. This file patches few system functions to
  50. enable automatic update of listview gadget and `Default PubScreen' text
  51. field.
  52.  
  53.  
  54. Tooltypes and CLI options
  55. **************************
  56.  
  57.    `ScreenSelect' has normal commodity tooltypes and few other of its
  58. own.
  59.  
  60.  
  61. Workbench Tooltypes
  62. ====================
  63.  
  64. `CX_POPUP'
  65.      This switch enables `ScreenSelect' to open its window when it's
  66.      started.
  67.  
  68. `CX_PRIORITY=xxx'
  69.      Where XXX is decimal number. Default is 0.
  70.  
  71. `CX_POPKEY=HOTKEY'
  72.      Default is `shift esc'. For example you could use `CX_POPKEY=alt
  73.      shift del' to change hotkey.
  74.  
  75. `ALLSCREENS'
  76.      This switch makes `ScreenSelect' to list all screens. Normally only
  77.      public screens are shown.
  78.  
  79. `SMARTPOINTER'
  80.      This switch makes ScreenSelect to automatically put mousepointer
  81.      over the previous selection in listview gadget.
  82.  
  83. `QUICKKEYS=SCREENNAME_1=Hotkey_1|SCREENNAME_2=Hotkey_2|...'
  84.      With `QUICKKEYS' you can bind a hotkey to public screen. Note that
  85.      screen name must be exact copy of the public screen name.
  86.  
  87. `AUTOACTIVATE'
  88.      This switch enables a feature which tries to activate screen
  89.      (actually it activates a window) automatically. AutoActivation
  90.      procedure tries to be smart when desiding which window to
  91.      activate. And it can only work if there isn't many windows open,
  92.      so many times it does nothing. Here are checkings it makes.
  93.  
  94.        1. Check if there is only one window open. And if this is the
  95.           case then activate it.
  96.  
  97.        2. Check if there are two windows open. If one is BACKDROP
  98.           window then activate the other one. Otherwise do nothing.
  99.  
  100.        3. If there are more windows open, do nothing.
  101.  
  102. `SCREENKEY=HOTKEY'
  103.      If you set this one then `ScreenSelect' installs a hotkey, which
  104.      you can use to set active screen as new default public screen.
  105.      This makes use of public screens as replacement for `Workbench'
  106.      screen very fast and easy.
  107.  
  108.  
  109. CLI options
  110. ============
  111.  
  112. `CX_POPUP'
  113.      This is a switch. See Workbench Tooltypes.
  114.  
  115. `CX_PRIORITY=xxx'
  116.      Same as `Workbench' option.
  117.  
  118. `CX_POPKEY="HOTKEY"'
  119.      Same as `Workbench' option, but remember to put '"' marks around
  120.      `HOTKEY' name.
  121.  
  122. `ALLSCREENS'
  123.      This is a switch.
  124.  
  125. `SMARTPOINTER'
  126.      This is a switch.
  127.  
  128. `QUICKKEYS="SCREENNAME_1=Hotkey_1|SCREENNAME_2=Hotkey_2|..."'
  129.      Same as `Workbench' option, but here you should put '"' marks
  130.      around whole string.
  131.  
  132. `AUTOACTIVATE'
  133.      This is a switch.
  134.  
  135. `SCREENKEY="HOTKEY"'
  136.      Same as `Workbench' option, but put '"' marks around HOTKEY string.
  137.  
  138.  
  139. Small example
  140. ==============
  141.  
  142.    Here is a small example of the tooltypes for `Workbench' users.
  143.  
  144.  
  145.      DONOTWAIT
  146.      ALLSCREENS
  147.      CX_POPKEY=numericpad (
  148.      QUICKKEYS=Workbench=numericpad 1|MEMACS_01=numericpad 2
  149.      SCREENKEY=lcommand p
  150.  
  151.    These options enable `ALLSCREENS' option. Hotkey is bind to '(' key
  152. in numpad keys. 'Workbench' screen is bind to '1' key in numpad keys.
  153. 'MEMACS_01' screen is bind to '2' key in numpad keys. Public screen
  154. selection key is set to `left AMIGA p'.
  155.  
  156.  
  157. Use
  158. ****
  159.  
  160.    When you start `ScreenSelect' it normally disappears to background.
  161. You can activate it by making hotkey selection (default `shift esc').
  162. When activated `ScreenSelect' opens a window with names of currently
  163. open screens. By double-clicking one of the names in listview-gadget
  164. you can quickly deactivate `ScreenSelect' and let it switch your
  165. selected screen to frontmost. However it won't normally activate it for
  166. you . It tries to do activation if AUTOACTIVATE option is ON, but it
  167. still may fail. So you usually have to click in one of the windows in
  168. that screen. If you have selected one of the names in listview-gadget
  169. but not double-clicked, then by pressing `Activate' gadget,
  170. `ScreenSelect' makes screen switching operation. By pressing `Cancel'
  171. or `WINDOWCLOSE' gadget you get back to the screen you were before you
  172. activated `ScreenSelect' with hotkey.
  173.  
  174.    You can quit `ScreenSelect' either with `Quit' gadget, `Quit' menu
  175. item or `Commodity Exchange' program's `Kill' gadget.
  176.  
  177.    Below the `Quit' gadget there is also a `Update' gadget which scans
  178. through screens in your system and updates listview. You can also toggle
  179. `ALLSCREENS'-flag by pressing cycle gadget you can found below
  180. `Update'-gadget. There should be reading `Public Screens' or `All
  181. Screens'. Listview gadget updates can also be automatic. For more info,
  182. please See AutoUpdate.
  183.  
  184.    Below the listview is a text gadget containing default public
  185. screen's name. The update of this field is automatic if `AutoUpdate'
  186. patches have been installed. Otherwise this field may not always be
  187. correct.
  188.  
  189.    There is also a menu attached to `ScreenSelect's' window. All
  190. selections have own keyboard shortcuts. Note that although `Activate'
  191. and `Cancel' gadgets don't have respective menu items, you still have
  192. keyboard shortcuts. By pressing `A' from the keyboard you select
  193. `Activate' gadget and with `C' you can select `Cancel' gadget.
  194.  
  195.    New `SMARTPOINTER' option makes bounching between two screens very
  196. fast and easy. It moves system mousepointer to the place of previous
  197. screen's name in a listview-gadget. You can simply double-click to get
  198. back to the previous screen. For example if you have three screens in
  199. you system. One is `Workbench', one is your editor's screen and one is
  200. your communication program. First you would be in `Workbench' screen
  201. and activating `ScreenSelect'. Select editor screen and activate it.
  202. Then activate `ScreenSelect' again and now mousepointer is placed over
  203. `Workbench' name. Now if you double-click you get back to `Workbench'.
  204. Do same procedure again and now pointer is placed over your editor
  205. screen's name.
  206.  
  207.    Even if `SMARTPOINTER' option isn't ON you still can have almost as
  208. easy way to bounch between two screens. When you activate `ScreenSelect'
  209. window, previous screen name is automatically in a selection field of
  210. listview-gadget. Now if you press `A' or click `Activate' gadget you
  211. can get back to previous screen. Easy!
  212.  
  213.    Now that there are lots of programs supporting hotkeys and public
  214. screens there is a great demand for easy selection of system's default
  215. public screen. For example if you are using an editor and want to open
  216. a new program to editor's screen so that you can continue editing, you
  217. can set new default public screen with hotkey (Check SCREENKEY
  218. tooltype) and after that all programs supporting default public screen
  219. open their windows to editor screen.
  220.  
  221.  
  222. AutoUpdate
  223. ***********
  224.  
  225.    `AutoUpdate' (Real name is `SS_AutoUpdate' which stands for
  226. `ScreenSelect AutoUpdate') installs a small patch to Intuition
  227. Library's `OpenScreen', `OpenScreenTagList', `CloseScreen' and
  228. `SetDefaultPubScreen' functions. These patches allow `ScreenSelect' to
  229. automatically update listview gadget when new screens are opened or old
  230. ones are closed. This also enables automatic update in `Default
  231. PubScreen' field. However you don't have to install these patches to be
  232. able to use `ScreenSelect'. They are completely optional.
  233.  
  234.    Patches are installed by running `SS_AutoAdjust' (1) program from
  235. `Workbench' or `CLI'. After you have made installation, you can't
  236. remove them. All four patches take about 100 bytes of free ram.
  237.  
  238.    ---------- Footnotes ----------
  239.  
  240.    (1)  Users who don't trust patches made by another programmer, I
  241. have included the source code for `SS_AutoAdjust'. You can compile it
  242. yourself if you like.
  243.  
  244.  
  245. Misc
  246. *****
  247.  
  248.    This is a common procedure `ScreenSelect' makes when it hears about
  249. hotkey selection.
  250.  
  251.          if hotkey pressed then
  252.              if active screen is public screen then
  253.                  lock it and open `ScreenSelect' window into it.
  254.              else
  255.                  lock default public screen and open window to it.
  256.  
  257.    So this means that `ScreenSelect' window isn't opened to foreign
  258. applications screen. It's only opened to public screens. This may annoy
  259. some users but I made this decision to make `ScreenSelect' more system
  260. friendly. Remember that if you select new frontmost screen then there
  261. really isn't much harm done. And even if you just press `Cancel'-gadget
  262. you get always back to your old frontmost screen.
  263.  
  264.    `ScreenSelect' also tries to make sure that all screen pointers
  265. passed back to OS, are always valid. This is easy with public screens
  266. but requires little more work with normal screens. I hope I got it
  267. right!
  268.  
  269.    Also there are programs which don't give name for a new screen.
  270. Screens like that are shown in listview as `( Nameless screen )'. I hope
  271. that programmers would always specify a name for a screen, but I guess
  272. that sometimes it just isn't possible.
  273.  
  274.  
  275. History
  276. ********
  277.  
  278. Version 1.0
  279. ===========
  280.  
  281.    First release 07-Sep-1992.
  282.  
  283. Version 1.1
  284. ===========
  285.  
  286.    This version was not released. Compilation date was 14-Sep-1992.
  287.  
  288.    * Changed `Workbench' tooltypes `CX_POPUP' and `ALLSCREENS' to
  289.      simple switches. They are normally OFF, but if you specify one of
  290.      them then that option comes ON.
  291.  
  292.    * Added `SMARTPOINTER' option. When this one is active `ScreenSelect'
  293.      always tries to position mouse pointer over previous screen
  294.      selection. This makes it very easy to bounch between two screens.
  295.  
  296.      [ Suggested by Sfefan Boberg ]
  297.  
  298.    * Added `QUICKKEYS'. Now you can bind own hotkey to every public
  299.      screen. This should be used only with public screens. Although it
  300.      might work with all screens I don't support it.
  301.  
  302.      [ Suggested by Stefan Boberg ]
  303.  
  304.    * Now if `ScreenSelect's' window is active (open) when hotkey is
  305.      pressed then that window's screen is brought to front.
  306.  
  307.    * Added menus to `ScreenSelect's' window. Now most of the features
  308.      are selectable with Menu command keys.
  309.  
  310.    * Added `About' window to show some information.
  311.  
  312.    * Now previous screen's name is shown in listview gadgets selection
  313.      area automatically. This makes screen bounching very easy as
  314.      `SMARTPOINTER' option does.
  315.  
  316.    * Now `Activate' and `Cancel' gadgets have keyboard shortcuts.
  317.  
  318.      [ Keyboard shortcuts were suggested by David Corn ]
  319.  
  320. Version 1.1a
  321. ============
  322.  
  323.    Compilation date was 23-Sep-1992.
  324.  
  325.    * Fixed a bug which happened when `SMARTPOINTER' option was ON and
  326.      screen font was too big to be used in `ScreenSelect's' window and
  327.      we had to use topaz80. This caused pointer to be moved to wrong
  328.      position.
  329.  
  330. Version 1.1b
  331. ============
  332.  
  333.    Compilation date was 13-Oct-1992.
  334.  
  335.    * Just changed a initial window height from 94 pixels to 96. Now
  336.      normal topaz80 font shouldn't cause window resizing when only
  337.      Workbench (or screen names of similar lenght) is in a list.
  338.  
  339. Version 1.2
  340. ===========
  341.  
  342.    Compilation date was 07-Dec-1992.
  343.  
  344.    * Previously `ScreenSelect' exited when it couldn't find screens.
  345.      This made it impossible to put it in `Startup-Sequence' or
  346.      `User-Startup' file before `Workbench' screen is opened.
  347.  
  348.      [ Reported by Andreas M. Kirchwitz ]
  349.  
  350.    * From now on, version number format should be Amiga Style Guide
  351.      compliant.
  352.  
  353.    * Added `AUTOACTIVATE' option.
  354.  
  355.    * Added `SCREENKEY' option which allows easy default public screen
  356.      selection with hotkey.
  357.  
  358.    * Added `Default PubScreen' text gadget.
  359.  
  360.    * First version compiled with SAS/C V6.1. Size reduced almost 2k
  361.      compared to V1.1b.
  362.  
  363.  
  364. Contents of ScreenSelect distribution
  365. **************************************
  366.  
  367.    Here are listed all files and directories in current version
  368. 1.2 distribution. These files should always be present when
  369. `ScreenSelect' is distributed.
  370.  
  371.      ScreenSelect (dir)
  372.           AutoUpdate (dir)
  373.                SS_AutoUpdate
  374.                
  375.                SS_AutoUpdate.info
  376.                
  377.                SS_AutoUpdate.asm
  378.                
  379.                SS_AutoUpdate.asm.info
  380.           
  381.           Docs (dir)
  382.                ScreenSelect.doc
  383.                
  384.                ScreenSelect.doc.info
  385.                
  386.                ScreenSelect.dvi
  387.                
  388.                ScreenSelect.dvi.info
  389.                
  390.                ScreenSelect.guide
  391.                
  392.                ScreenSelect.guide.info
  393.           
  394.           AutoUpdate.info
  395.           
  396.           Docs.info
  397.           
  398.           ScreenSelect
  399.           
  400.           ScreenSelect.info
  401.           
  402.           IMPORTANT
  403.           
  404.           IMPORTANT.info
  405.      
  406.      ScreenSelect.info
  407.  
  408.  
  409. Contact address
  410. ****************
  411.  
  412.    For suggestions, bug reports etc... You can reach me at
  413.  
  414.    * Internet
  415.  
  416.           s37732v@vipunen.hut.fi
  417.  
  418.    * SnailMail
  419.  
  420.           Markus Aalto, Muurahaisentie 11a, 01490 VANTAA, FINLAND
  421.  
  422.