home *** CD-ROM | disk | FTP | other *** search
/ Frozen Fish 2: PC / frozenfish_august_1995.bin / bbs / d09xx / d0947.lha / ScreenSelect / Docs / ScreenSelect.doc next >
Text File  |  1993-12-20  |  22KB  |  601 lines

  1. ScreenSelect
  2. ************
  3.  
  4.    Version: 2.1 , Release date: 03-Oct-93
  5.  
  6.    Copyright (C) 1992,1993 Markus Aalto (1)
  7.  
  8.    ---------- Footnotes ----------
  9.  
  10.    (1)  This program is freeware. You may freely distribute it as long
  11. as you don't charge more than nominal fee for copying it (max 3 US$)
  12. and no deletions is made to the original package. You may also include
  13. it to freely distributable disks such as Fred Fish collection.
  14.  
  15.    This program is distributed without warranty of any kind. So I take
  16. no responsibility about this program, its documentation, functionality
  17. or damages it may cause.
  18.  
  19. Introduction
  20. ************
  21.  
  22.    In version 2 of Amiga operating system was introduced a concept of
  23. Public Screens. These screens can be shared by application programs
  24. just like Workbench screen has been in previous OS versions. Although
  25. they bring a great addition to Amiga they also introduce a problem to
  26. users which have Workbench, several Public and propably a few custom
  27. screens open at the same time. And the problem is - "How to get that xxx
  28. screen to front quickly without traversing through 5 other screens with
  29. left-amiga m?". Well, ScreenSelect is answer to that question
  30. because it opens a small window to the active screen after hotkey
  31. selection where you can select the new frontmost screen with just a
  32. click of the mouse. Also you can make hotkey bindings to any screens
  33. (not just Public ones as in older versions) and for example get
  34. Workbench screen frontmost with only one key press. And the only
  35. requirement is that you have Kickstart 2.04 (V37) or greater.
  36.  
  37. Installation
  38. ************
  39.  
  40.    I have provided a script for Commodore's Installer program so if
  41. you have it then you should propably use it. Otherwise you can do
  42. following actions.
  43.  
  44.    * Move ScreenSelect to WBStartup directory.
  45.  
  46.    * Move ScreenSelectPrefs to Prefs directory.
  47.  
  48.    * Move one of the doc files anywhere you normally store document
  49.      files.
  50.  
  51. ToolTypes and CLI usage
  52. ***********************
  53.  
  54.        ScreenSelect recognizes normal commodity tooltypes and one of
  55. its own.
  56.  
  57. CX_POPUP
  58.      This switch enables ScreenSelect to open its window when it's
  59.      started.  Default is no popup.
  60.  
  61. CX_PRIORITY=xxx
  62.      This is ScreenSelect's priority as commodity.  Here xxx is
  63.      decimal number. Default is 0.
  64.  
  65. CX_POPKEY=HOTKEY
  66.      Default is shift esc. For example you could use CX_POPKEY=alt
  67.      shift del to change hotkey. If you specify popkey here you
  68.      override the settings you have made with ScreenSelectPrefs
  69.      program.
  70.  
  71. PREFSPROGRAM=PATH
  72.      This is the path where preferences program is to be found. This
  73.      name must include the name of the preferences program. Default
  74.      PATH is SYS:Prefs/ScreenSelectPrefs. see Preferences.
  75.  
  76. Main Window
  77. ***********
  78.  
  79.    You can see the main selection window for ScreenSelect by pressing
  80. the user configurable hotkey. This brings you a small window with few
  81. buttons and a listview with names of open screens. Public screens all
  82. have identifiable names but there are programs which use custom screens
  83. and doesn't specify any name for it. Screens like that are shown as
  84. (Nameless Screen).
  85.  
  86. Quit
  87.      By pressing button (or Q) you can remove ScreenSelect and any
  88.      patches it has installed.
  89.  
  90. About
  91.      This gives you a small info about this program and its author
  92.      (that's me :^).
  93.  
  94. Prefs
  95.      This one opens the separate preferences program you can use to
  96.      modify ScreenSelect's behaviour. All changes come active
  97.      instantly after you have exited preferences program with pressing
  98.      either Save or Use buttons.
  99.  
  100. Update
  101.      This one updates the listview and default pubscreen texts to
  102.      reflect current system state.  This is only usefull if you haven't
  103.      installed Auto Update patches.  You can install the patches with
  104.      ScreenSelectPrefs program.  see Preferences.
  105.  
  106. Listview gadget
  107.      Click any of the names to get that screen to front. Single click
  108.      just activates the name which you can then activate with
  109.      Activate gadget.  Double click makes an instant activation.
  110.      You can also use cursor keys to move up and down in listview.
  111.      Activation can be made from keyboard with a or return keys.
  112.  
  113. Default PubScreen
  114.      This one shows the name of the default pubscreen. If you have
  115.      installed the Change Default PubScreen hotkey you can use it to
  116.      select active public screen as your default public screen.
  117.  
  118. Activate
  119.      Activates the current listview selection and closes the window.
  120.  
  121. Cancel
  122.      Closes the window and returns back to the screen where hotkey
  123.      selection was made.
  124.  
  125. General Info
  126. ************
  127.  
  128.    There are few special options you can change with preferences
  129. program.  Here are brief explanations about them. see Preferences
  130.  
  131. Screen Types
  132.      Currently ScreenSelect can show only Public screens or all
  133.      screens.
  134.  
  135. AutoUpdate Patches
  136.      This patches 4 Intuition functions to achieve automatic update in
  137.      listview and in Default PubScreen textgadget. Patched functions
  138.      are: OpenScreen, OpenScreenTagList, CloseScreen and
  139.      SetDefaultPubScreen.
  140.  
  141. Window Position Modes
  142.      You can control the position of ScreenSelect's main window with
  143.      three possible options: FixedRelative and SmartPointer.
  144.  
  145.          Fixed mode forces window to always open to some predefined
  146.      coordinates.
  147.  
  148.          Relative always tries to position the window so that pointer
  149.      is over the Activate gadget.
  150.  
  151.          SmartPointer first tries to position the window so that
  152.      pointer is over the last selected screen name. If this isn't
  153.      possible it then forces pointer to move there.
  154.  
  155. Window Autoactivation
  156.      You can set few options to control ScreenSelect's behaviour with
  157.      window activation.
  158.  
  159.      If you have Window AutoActivation mode ON, it tries to activate
  160.      window from screen you are changing to. It doesn't work most of
  161.      the times because it just examines the windows and tries to be
  162.      smart when deciding which window to activate.
  163.  
  164.      If also InputHandler is ON, then ScreenSelect 'hears' all the
  165.      changes with window actications. This helps you only with changes
  166.      through ScreenSelect. If you change screen with left-amiga
  167.      m ScreenSelect has no way of knowing that you have switched to
  168.      new screen except if you have added LoadView patch.
  169.  
  170.      If LoadView patch is active then ScreenSelect can hear all the
  171.      screen changes and can always change new active window. As this
  172.      one says it installs a patch to LoadView function in
  173.      graphics.library. It's a very time critical place and while I
  174.      haven't confronted any problems, it might be a source of problem
  175.      for users with heavy animation needs. If you encounter any
  176.      problems with animations you should first try to take this off
  177.      before starting to look problems elsewhere.
  178.  
  179.      So lets go all modes through one more time.  Window
  180.      AutoActivation activates autoactivation mode. InputHandler
  181.      option enables ScreenSelect to remember all changes with screens
  182.      active windows and LoadView Patch enables to hear all the
  183.      frontmost screen changes. For best possible operation I suggest
  184.      you to select them all.
  185.  
  186. Preferences
  187. ***********
  188.  
  189. Main Prefs
  190. ==========
  191.  
  192.    After you have started ScreenSelectPrefs you get a window very
  193. similar to the system preferences program. All the actions from menus
  194. and SaveUse and Cancel buttons are exactly the same as in
  195. system programs so they are not explained here. Please consult your
  196. AmigaDOS manual for more info.
  197.  
  198.    However there are two buttons labeled as Options and Hotkeys.  These
  199. are the buttons you should press to get one of the real preferences
  200. change windows.
  201.  
  202. Options
  203. =======
  204.  
  205.    In this window are all the options settings.
  206.  
  207. Screen Types
  208.      Selects one of the operation modes. In Public Only mode
  209.      ScreenSelect uses only Public screens. In All mode all
  210.      screens are used.
  211.  
  212. Add AutoUpdate Patches
  213.      Toggles the state of AutoUpdate patches.
  214.  
  215. Window Position
  216.      Changes window position mode. Possible modes are Fixed,
  217.      Relative and SmartPointer. In Fixed mode you can set the
  218.      coordinate values to Left and top numeric gadgets.
  219.  
  220. Window AutoActive Options
  221.      You can select which level of AutoActivation you want. If you
  222.      specify all three of them you get complete automatic window
  223.      activation in your system. If Window AutoActivation is OFF then
  224.      you can't select either Add InputHandler or Add LoadView
  225.      Patch.
  226.  
  227. OK
  228.      This ones confirms all the changes and returns back to Preferences
  229.      main window. Note that these changes are not used yet. You have to
  230.      make global confirm with Save or Use buttons.
  231.  
  232. Cancel
  233.      This one cancels all the changes.
  234.  
  235. Hotkeys
  236. =======
  237.  
  238.    In this window are all the hotkey settings.
  239.  
  240. PopUp Key
  241.      Used as hotkey for ScreenSelect. You can override this setting
  242.      with CX_POPKEY tooltype.
  243.  
  244. Use Default PubScreen Key
  245.      Use the CheckBox gadget to toggle whether you want to use Default
  246.      PubScreen key. If you do then write the hotkey to string gadget in
  247.      right.
  248.  
  249. Add
  250.      Used to add new Screen Quickkey.
  251.  
  252. Delete
  253.      Used to delete selected Screen QuickKey.
  254.  
  255. Screen QuickKeys
  256.      List of screens you have set a Screen QuickKey for. Names can
  257.      contain AmigaDOS patterns. For example TERM? can mean TERM1 or
  258.      possibly TERM2. All standard AmigaDOS patterns are accepted.
  259.      This is great help when trying to make a QuickKey for some old
  260.      programs using custom screens.
  261.  
  262. QuickKey
  263.      Hotkey for selected Screen QuickKey.
  264.  
  265. OK
  266.      Confirm changes.
  267.  
  268. Cancel
  269.      Cancel changes.
  270.  
  271. StickySelect
  272. ************
  273.  
  274.    I have had several requests to enchange the interface to do some
  275. operations differently. Because some of these have been contradictory
  276. or in my opinion not something I like to add to ScreenSelect I have
  277. made it possible for external programs to use ScreenSelect's
  278. selection mechanism. Now everybody can write a replacement for
  279. ScreenSelect's interface.
  280.  
  281.    The first program to utilize this possiblity is StickySelect which
  282. opens a small window to any public screen with a list of selectable
  283. names - just like the one in ScreenSelect's interface. However this
  284. window doesn't go away when you make a selection. Instead it just sits
  285. there and wait's for new selection. You can open as many as you like to
  286. different public screens as long as ScreenSelect is started before
  287. StickySelect. Here are the parameters.
  288.  
  289. PUBSCREEN=<>
  290.      Name of the Public screen you want StickySelect to open.
  291.  
  292. LEFT=<>
  293.      Window left edge position.
  294.  
  295. TOP=<>
  296.      Window top edge position.
  297.  
  298. WIDTH=<>
  299.      Window width.
  300.  
  301. HEIGHT=<>
  302.      Window height.
  303.  
  304.    If you would like to implement your own interface to communicate with
  305. ScreenSelect you can contact me to obtain programming info and C
  306. source for StickySelect. see Contact address.
  307.  
  308. Misc
  309. ****
  310.  
  311.    This is a common procedure ScreenSelect makes when it hears about
  312. hotkey selection.
  313.  
  314.          if hotkey pressed then
  315.              if active screen is public screen then
  316.                  lock it and open ScreenSelect window into it.
  317.              else
  318.                  lock default public screen and open window to it.
  319.  
  320.    So this means that ScreenSelect window isn't opened to foreign
  321. applications screen. It's only opened to public screens. This may annoy
  322. some users but I made this decision to make ScreenSelect more system
  323. friendly. Remember that if you select new frontmost screen then there
  324. really isn't much harm done. And even if you just press Cancel gadget
  325. you get always back to your old frontmost screen.
  326.  
  327.        ScreenSelect also tries to make sure that all screen pointers
  328. passed back to OS, are always valid. This is easy with public screens
  329. but requires little more work with normal screens. I hope I got it
  330. right!
  331.  
  332. History
  333. *******
  334.  
  335. Version 1.0
  336. ===========
  337.  
  338.    First release 07-Sep-1992.
  339.  
  340. Version 1.1
  341. ===========
  342.  
  343.    This version was not released. Compilation date was 14-Sep-1992.
  344.  
  345.    * Changed Workbench tooltypes CX_POPUP and ALLSCREENS to
  346.      simple switches. They are normally OFF, but if you specify one of
  347.      them then that option comes ON.
  348.  
  349.    * Added SMARTPOINTER option. When this one is active
  350.      ScreenSelect always tries to position mouse pointer over
  351.      previous screen selection.  This makes it very easy to bounch
  352.      between two screens.
  353.  
  354.      [ Suggested by Sfefan Boberg ]
  355.  
  356.    * Added QUICKKEYS. Now you can bind own hotkey to every public
  357.      screen. This should be used only with public screens. Although it
  358.      might work with all screens I don't support it.
  359.  
  360.      [ Suggested by Stefan Boberg ]
  361.  
  362.    * Now if ScreenSelect's window is active (open) when hotkey is
  363.      pressed then that window's screen is brought to front.
  364.  
  365.    * Added menus to ScreenSelect's window. Now most of the features
  366.      are selectable with Menu command keys.
  367.  
  368.    * Added About window to show some information.
  369.  
  370.    * Now previous screen's name is shown in listview gadgets selection
  371.      area automatically. This makes screen bounching very easy as
  372.      SMARTPOINTER option does.
  373.  
  374.    * Now Activate and Cancel gadgets have keyboard shortcuts.
  375.  
  376.      [ Keyboard shortcuts were suggested by David Corn ]
  377.  
  378. Version 1.1a
  379. ============
  380.  
  381.    Compilation date was 23-Sep-1992.
  382.  
  383.    * Fixed a bug which happened when SMARTPOINTER option was ON and
  384.      screen font was too big to be used in ScreenSelect's window and
  385.      we had to use topaz80. This caused pointer to be moved to wrong
  386.      position.
  387.  
  388. Version 1.1b
  389. ============
  390.  
  391.    Compilation date was 13-Oct-1992.
  392.  
  393.    * Just changed a initial window height from 94 pixels to 96. Now
  394.      normal topaz80 font shouldn't cause window resizing when only
  395.      Workbench (or screen names of similar lenght) is in a list.
  396.  
  397. Version 1.2
  398. ===========
  399.  
  400.    Compilation date was 07-Dec-1992.
  401.  
  402.    * Previously ScreenSelect exited when it couldn't find screens.
  403.      This made it impossible to put it in Startup-Sequence or
  404.      User-Startup file before Workbench screen is opened.
  405.  
  406.      [ Reported by Andreas M. Kirchwitz ]
  407.  
  408.    * From now on, version number format should be Amiga Style Guide
  409.      compliant.
  410.  
  411.    * Added AUTOACTIVATE option.
  412.  
  413.    * Added SCREENKEY option which allows easy default public screen
  414.      selection with hotkey.
  415.  
  416.    * Added Default PubScreen text gadget.
  417.  
  418.    * First version compiled with SAS/C V6.1. Size reduced almost 2k
  419.      compared to V1.1b.
  420.  
  421. Version 1.3
  422. ===========
  423.  
  424.    Compilation date was 27-Jan-1993. Not a public release.
  425.  
  426.    * Now listview is opened as wide as widest screen name. This works
  427.      correctly with proportional fonts too.
  428.  
  429. Version 1.4
  430. ===========
  431.  
  432.    Compilation date was 02-Feb-1993. Not released.
  433.  
  434.    * Now gadget sizes are calculated before window is opened. So now
  435.      ScreenSelect window opens to the correct size initially.
  436.  
  437.    * Added LEFT and TOP tooltypes and CLI-parameters.
  438.  
  439.    * Now if SMARTPOINTER option is ON then ScreenSelect tries to
  440.      position window according to the mouse pointer. And only if it
  441.      fails to properly do so it moves mouse pointer to the correct
  442.      position.
  443.  
  444.    * Now ScreenSelect installs a input-handler to watch for
  445.      WINDOWACTIVE messages, and we can properly activate right window
  446.      when new screen is brought to front by ScreenSelect.
  447.  
  448. Version 2.0
  449. ===========
  450.  
  451.    Compilation date was 08-Aug-1993. Major update.
  452.  
  453.    * Whole interface code rewritten.
  454.  
  455.    * Moved settings to separate preferences program.
  456.  
  457.    * Added support for AmigaDOS patterns in QuickKey screen names.
  458.  
  459.    * Added Relative Window Position mode.
  460.  
  461.    * Moved all the patches to main program. Now patches are removable.
  462.  
  463.    * Added LoadView patch.
  464.  
  465.    * Added support for StickySelect.
  466.  
  467.    * Possibly forgotten something, but changes were too big to describe
  468.      them fully in here.
  469.  
  470. Version 2.1
  471. ===========
  472.  
  473.    Compilation date was 03-Oct-1993. Mainly bugfixes.
  474.  
  475.    * Fixed an enforcer hit in AutoActivation checking code.
  476.  
  477.    * Screens with empty Title names (not NULL, but filled with spaces)
  478.      made ScreenSelect to crash. Yes, I know, this sounds unbelievable!
  479.  
  480.    * If popup hotkey is pressed when ScreenSelect window is already open
  481.      then ScreenSelect window is activated.
  482.  
  483.    * If LoadView patch was installed and hotkey was pressed in
  484.      non-public screen, then ScreenSelect window didn't stay active
  485.      after it was opened.
  486.  
  487.    * Added keyboard support for ScreenSelect's listview gadget. Return
  488.      activates selection and cursor keys are used to change selection.
  489.  
  490.    * If QuickKey is pressed while ScreenSelect window is open, then
  491.      screen name binded to that QuickKey is selected in listview.
  492.  
  493.    * If AutoUpdate patches are not active internal Screen list is
  494.      updated everytime QuickKey is pressed. This fixes problems with
  495.      QuickKeys and screens opened after last ScreenSelect activation.
  496.  
  497.    * Now ScreenSelect window is closed before we select new frontmost
  498.      screen. This fixes a problem introduced by 4th fix (LoadView patch
  499.      fix) in this release.
  500.  
  501.    * Fixed a bug with SMARTPOINTER option, which happened with similar
  502.      screen names which contain characters out of range of ordinary
  503.      alphabets.  This bug was introduced because of AmigaDOS pattern
  504.      matching routine not handling characters as '(C)' and didn't
  505.      happen before version 2.0 of ScreenSelect.
  506.  
  507.    * Added changes to internal string handling. Now it will be very easy
  508.      to add localization support.
  509.  
  510. Contents of ScreenSelect distribution
  511. *************************************
  512.  
  513.    Here are listed all files and directories in current version 2.1
  514. distribution. These files should always be present when
  515. ScreenSelect is distributed.
  516.  
  517.      ScreenSelect (dir)
  518.           Docs (dir)
  519.                ScreenSelect.doc
  520.                
  521.                ScreenSelect.doc.info
  522.                
  523.                ScreenSelect.dvi
  524.                
  525.                ScreenSelect.dvi.info
  526.                
  527.                ScreenSelect.guide
  528.                
  529.                ScreenSelect.guide.info
  530.           StickySelect (dir)
  531.                StickySelect
  532.                
  533.                StickySelect.info
  534.           
  535.           Docs.info
  536.           
  537.           StickySelect.info
  538.           
  539.           ScreenSelect
  540.           
  541.           ScreenSelect.info
  542.           
  543.           ScreenSelectPrefs
  544.           
  545.           ScreenSelectPrefs.info
  546.           
  547.           Read_Me
  548.           
  549.           Read_Me.info
  550.           
  551.           Install.info
  552.           
  553.           ScreenSelect.Install
  554.      
  555.      ScreenSelect.info
  556.  
  557. Contact address
  558. ***************
  559.  
  560.    If you really think that this program is great and you use it
  561. extensively then you can make me very happy by sending me something for
  562. a return.  If you are for example a author of some software package
  563. (Commercial, Shareware, Giftware or anything) you could send me a free
  564. program as an exchange of this program. If you don't feel like it, it
  565. doesn't really matter. It would just make me more enthusiastic as I
  566. continue to implement new versions. Then again if you feel like sending
  567. a donation in US$, Deutch Marks or Finnish Marks I even might have
  568. afford to join Commodore's official developer program someday and you
  569. might get Localisation, Online-help support etc... implemented to
  570. ScreenSelect much faster that otherwise. Anyway, thank you for
  571. using this program!
  572.  
  573.    For suggestions, bug reports etc... You can reach me at
  574.  
  575.    * Internet
  576.  
  577.           s37732v@vipunen.hut.fi
  578.  
  579.    * SnailMail
  580.  
  581.           Markus Aalto, Muurahaisentie 11a, 01490 VANTAA, FINLAND
  582.  
  583. Future
  584. ******
  585.  
  586.    I have noticed that several people asked me to implement a window
  587. selector to ScreenSelect. This is propably coming in next major
  588. release along with AmigaGuide online-help and localization.
  589.  
  590.    But if you need window selector now I suggest you take a look at
  591. Yass (Yet Another Screen Selector) from Albert Schweizer. It
  592. supports window selection as well as screen selection, but
  593. unfortunately it lacks the QuickKeys and automatic window activation.
  594.  
  595.    If you are willing to do the locale translation for future versions
  596. of ScreenSelect please contact me with EMail. There aren't many
  597. strings to translate. see Contact address. You are also welcome to
  598. translate the documentation for current and future versions. Again
  599. contact me with EMail to obtain the TeXinfo file.
  600.  
  601.