home *** CD-ROM | disk | FTP | other *** search
/ Frozen Fish 2: PC / frozenfish_august_1995.bin / bbs / d09xx / d0981.lha / HuntWindows / Huntwindows.doc < prev    next >
Text File  |  1994-04-04  |  10KB  |  255 lines

  1.  
  2.              Huntwindows V3.3 by J÷rg Bublath
  3.              ================================
  4.  
  5. Some options may have changed to earlier versions - please check this out!
  6.  
  7.  
  8. COPYRIGHT:
  9.  
  10. Huntwindows is freely distributable.
  11. Huntwindows is free to be spread on public-domain and shareware disks
  12. especially on Fred Fish's AmigaLibDisks, as long as they are sold for a
  13. reasonable charge that is less than US $6 or DM 8.- .
  14. For use in commercial products the permission of the author is required.
  15. Huntwindows may be copied and distributed via electronic networks such
  16. as the Internet, also it may be moved on anonymous ftp-servers,
  17. mail-boxes or BBS's.
  18. The Copyright is still by the Author.
  19. You may use the source for your own non-commercial purposes, but you are
  20. not allowed to spread a changed version under the same name. If you think
  21. you have made a useful change contact me, so I may include it.
  22.  
  23.  
  24. REQUIREMENTS:
  25.  
  26. Kickstart 2.04 (V37) or higher
  27.  
  28. PREFACE:
  29.  
  30. Coming with 2.0 you can make screens bigger than the visual size of your
  31. monitor. After I tried to catch windows like requesters etc. on my
  32. double-sized workbench, I got enough and wrote this little tool.
  33. It hangs itself into the VBI to find out which window in being
  34. activated and moves the screen to show the window in full view.
  35. Huntwindows also checks the actual window to be moved to a different
  36. location or change size and will adjust the screen to match the changed
  37. window.
  38. Additionally there are some other related features like remembering
  39. and activating one window for each screen or bring the window or screen
  40. being activated to front.
  41. For full user-comfort, coming with version 2.0, Huntwindows is now a
  42. commodity and can placed into your WBStartup Drawer and has a Graphical
  43. User Interface.
  44.  
  45. USAGE:
  46.  
  47. Template:
  48. MOVE/S,SFRONT/S,WFRONT/S,DEFPUB/S,REMWIN/S,MOVEMOUSE/S,CX_POPUP/S,RESTRICT/S,
  49. WBWIN/S,CX_PRIORITY/K,CX_POPKEY/K,HADJ/K,VADJ/K,SCREEN/K,WINDOW/K,
  50. ACTIONKEY/K,ACTION/K,DELAY/K,LWINDOW/K,NWINDOW/K,SMOOTH/K:
  51.  
  52. or the same options as worbench tooltypes (if no default values are
  53. mentioned, then giving the tooltype turn on, leaving it away turns it off)
  54.  
  55. MOVE:
  56.   Enable ScreenMove() whenever a window is actived - this option should
  57.   always be given, because it's the main purpose of the program.
  58.  
  59. SFRONT:
  60.   Enable the ScreenToFront() whenever a window is activated
  61.  
  62. WFRONT:
  63.   Do an additional WindowToFront() for windows being activated.
  64.  
  65. DEFPUB:
  66.   If the Intuition FirstScreen is a PublicScreen it will automaticly set as
  67.   DefaultPubScreen, so all windows opening on the default will use the
  68.   FirstScreen.
  69.  
  70. REMWIN:
  71.   Remember the ActiveWindow for every screen. When switching through the
  72.   screens Huntwindows will activate the last window that was active when it
  73.   was the FirstScreen. A maximum of 64 different screens will be remembered
  74.   - that should be enough, right?
  75.   This option was based on TWA by Matthias Scheler.
  76.  
  77. MOVEMOUSE:
  78.   When you try to click on a close-gadget (or any other) of a window that is
  79.   not completely visible, Huntwindows will move the window to show it
  80.   completely before you have time to release the button and activate it. When
  81.   this option is set Huntwindows will move the mouse with the screen, so it
  82.   still is at the same position as before, and the window will really close
  83.   (or whatever).
  84.   This movement will only take place if the mouse was on a position that was
  85.   already visible before scrolling - otherwise no mouse move will occur.
  86.  
  87. CX_POPUP:
  88.   Show the Graphical User Interface on startup.
  89.   The Interface will be automaticly shown, if Huntwindows is already running.
  90.  
  91. RESTRICT:
  92.   Often the only thing you want to exclude by the ScreenPattern is that
  93.   Screens are set to Default PubScreen. If the RESTRICT option is giving, the
  94.   ScreenPattern only turn off the Set Default PubScreen switch on that
  95.   particular screen and leaves everything else working.
  96.  
  97. WBWIN:
  98.   Workbench drawers cannot be excluded by a pattern easily because they
  99.   have very variable names. When this option is set no actions will be
  100.   performed on Workbench drawers.
  101.  
  102. CX_PRIORITY=<signed integer> (Default 0)
  103.   Set the commodity priority. This is the only function which can't be
  104.   changed from the GUI. It will naturally be saved anyway. To edit it you
  105.   have to use the workbench to directly change the tooltype.
  106.  
  107. CX_POPKEY=<standard key description> (Default: control alt h)
  108.   Sets the Popup-hotkey for the GUI. By pressing this key-combination, the
  109.   GUI will pop open.
  110.  
  111. HADJ=<a>: (only the first letter of the string is significant, Default "l" )
  112.   Horizontal Adjustment:
  113.   l : Left - means that IF scrolling is necessary, huntwindows will try to
  114.          get the window adjusted to the left edge of the screen
  115.   r : Same as above with the right edge
  116.   c : Same as above but centering in the screen
  117.   Everything else will switch the adjustment off
  118.  
  119. VADJ=<a>: (only the first letter of the string is significant, Default "t" )
  120.   Horizontal Adjustment:
  121.   t : Top - means that IF scrolling is necessary, huntwindows will try to
  122.         get the window adjusted to the top edge of the screen
  123.   b : Same as above with the buttom edge
  124.   c : Same as above but centering in the screen
  125.   Everything else will switch the adjustment off
  126.  
  127. SCREEN=<pattern>   (Default no pattern)
  128.   All actions will only take place if the DefaultTitle of the actual screen
  129.   matches to the given pattern. If no pattern is given, all screens match.
  130.   If you only want to exclude some screens, simply negate the pattern.
  131.   For example: SCREEN=~(myscreen#?)
  132.   The patternmatching is case insensitive.
  133.  
  134. WINDOW=<pattern>   (Default no pattern)
  135.   Same as screen, but checks the Title of the window that is going to be
  136.   processed.
  137.  
  138. ACTIONKEY=<standard key description> (Default: control help)
  139.   Pressing the hotkey defined here, Huntwindows will perform an action
  140.   without a activation or screenchange taken place. Very helpful if you
  141.   scrolled around and want to find back to your active window.
  142.  
  143. ACTION=<a> (only the first letter of the string is significant, Default "n")
  144.   n : necessary - Huntwindows will do actions as ever it finds it necessary
  145.           (which is windowactivation and screenchange for now)
  146.   h : hotkey    - Huntwindows will only do actions when the ACTIONKEY is
  147.           pressed.
  148.   a : always    - Will also do adjustment when the window is already
  149.           completely visible. This will only perform an action if
  150.           VADJ or HADJ is set different to 'off'.
  151.  
  152. DELAY=<integer> (Default: 0)
  153.   This will make Huntwindows wait given 1/50th of a second after the last
  154.   activation or screenchange before doing anything to prevent hopping around
  155.   with autopoint or other fast changes that do not need to cause an action.
  156.  
  157. LWINDOW=<standard key description> (Default: lcommand left)
  158.   Huntwindows will remember the window that was previously activated and
  159.   re-activate it on pressing the specified hotkey. If this window is
  160.   no longer opened or patterned out nothing will happen. Pressing the
  161.   hotkey again and again will jump between the active and the previously
  162.   window.
  163.  
  164. NWINDOW=<standard key description> (Default: lcommand right)
  165.   This hotkey jumps to the next window chained to the active window.
  166.   Pressing the hotkey again and again will cycle through all windows on the
  167.   screen. I don't think a previous window key is necessary (too many
  168.   hotkeys already).
  169.  
  170. SMOOTH=<integer> (Default: 0)
  171.   This value states how much Pixels per VBlank (ca. each 1/50 second) the
  172.   screen should be moved. Best looking values are around 30-60. Putting it
  173.   to the default zero turns smooth-scrolling off. Well, the smooth-scrolling
  174.   isn't that smooth - its just there to give you an idea which direction
  175.   your screen is moving.
  176.  
  177. From CLI you will have to start the program in the background via
  178.  
  179.        run <nil: >nil: huntwindows [options]
  180.  
  181. or whatever you like. If you want to quit Huntwindows simply break the
  182. task or quit it with the "Exchange" Commodity Program or from the GUI.
  183.  
  184. From Workbench adjust the tooltypes and simply start by double-clicking.
  185.  
  186.  
  187. THE GRAPHICAL USER INTERFACE:
  188.  
  189. By defining CX_POPUP, by starting Huntwindows a second time or by using
  190. "Show Interface" from the "Exchange" Commodity Program or by simply
  191. pressing the popup hotkey a GUI comes up.
  192.  
  193. All options and tooltypes can be changed here. So you can play around to
  194. find out your configuration. If you already have placed Huntwindows in your
  195. wbstartup-drawer you may simply click "Save" to add all your options as
  196. tooltypes to the icon. When starting from CLI, the "Save"-gadget will be
  197. disabled. All options matching the default-value will not be entered when
  198. saving.
  199. The tooltype "DONOTWAIT", which is necessary when placing Huntwindows into
  200. wbstartup is automaticly added on saving as is CX_PRIORITY if not default.
  201.  
  202. When changing the pattern from the GUI, a check will be done when you press
  203. return. If there is an error in the pattern, a requester comes up and tells
  204. you so. If you do not re-edit the pattern until it is ok, it will match
  205. nothing, which is equal to disabling Huntwindows.
  206.  
  207.  
  208. THANX TO:
  209.  
  210. -Michael Suelmann for help with the workbench/gadtools
  211. -Markus 'ill' Illenseer for ideas and Aswarm (where I looked up how to do
  212.  commodities)
  213. -Georg 'Gucky' Hessmann and Matthias 'Tron' Scheler for the idea with the
  214.  REMWIN option.
  215. -Bernhard 'ZZA' M÷llemann for testing and help.
  216. -Stefan Sticht for help.
  217. -Olaf 'MagicOlf' Peters for finding V37-bugs.
  218. -Franz Schwarz for finding bugs and suggestions.
  219. -Dale D. Snell for the nice icon.
  220. -Mario "Magick" Kemper for finding bugs.
  221.  
  222. TECHNICAL:
  223.  
  224. For reaching this Huntwindows installs a Vertical-Blank interrupt-server,
  225. which tests if the ActiveWindow and the FirstScreen recorded by intuition
  226. differs from the last interrupt and then signals the main-task to move the
  227. display.
  228. Don't mind it taking away too much CPU time - if you have a look at the
  229. source at label 'Interrupt3' you will find that it doesn't do anyhing that
  230. is worth arguing about.
  231. Partly this also could be done from an inputevent-handler which records the
  232. intui-messages, but this doesn't solve the Firstscreen-problem and would
  233. require major changes of the code.
  234.  
  235. TODO:
  236.  Waiting for any further suggestions from you!
  237.  
  238. BUGS:
  239.  none - I hope.
  240.  
  241.  
  242. For problems and ideas, reach me at:
  243.  
  244. EMAIL: bublath@forwiss.uni-passau.de
  245.  
  246. IRC  : Skull (to be found on #amigager - the german amiga channel)
  247.  
  248. SMAIL: J÷rg Bublath
  249.        Holzheimerstr. 4/E07
  250.        94032 Passau
  251.        Germany
  252.        Phone: Germany-0851-59947
  253.  
  254.  
  255.