home *** CD-ROM | disk | FTP | other *** search
/ Amiga Elysian Archive / AmigaElysianArchive.iso / commod / huntwi30.lha / huntwindows.doc < prev    next >
Text File  |  1993-05-17  |  12KB  |  322 lines

  1.  
  2.              Huntwindows V3.0 by Jörg Bublath
  3.              ================================
  4.  
  5. Some options may have changed to earlier version - 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. CX_PRIORITY/K,CX_POPKEY/K,HADJ/K,VADJ/K,SCREEN/K,WINDOW/K,ACTIONKEY/K
  50. ACTION/K,DELAY/K:
  51.  
  52. or the same options as worbench tooltypes (if no default values are mentioned,
  53. 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 always
  57.   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. CX_PRIORITY=<signed integer> (Default 0)
  98.   Set the commodity priority. This is the only function which can't be changed
  99.   from the GUI. It will naturally be saved anyway. To edit it you have to
  100.   use the workbench to directly change the tooltype.
  101.  
  102. CX_POPKEY=<standard key description> (Default: control alt h)
  103.   Sets the Popup-hotkey for the GUI. By pressing this key-combination, the
  104.   GUI will pop open.
  105.  
  106. HADJ=<a>: (only the first letter of the string is significant, Default "l" )
  107.   Horizontal Adjustment:
  108.   l : Left - means that IF scrolling is necessary, huntwindows will try to get
  109.          the window adjusted to the left edge of the screen
  110.   r : Same as above with the right edge
  111.   c : Same as above but centering in the screen
  112.   Everything else will switch the adjustment off
  113.  
  114. VADJ=<a>: (only the first letter of the string is significant, Default "t" )
  115.   Horizontal Adjustment:
  116.   t : Top - means that IF scrolling is necessary, huntwindows will try to get
  117.         the window adjusted to the top edge of the screen
  118.   b : Same as above with the buttom edge
  119.   c : Same as above but centering in the screen
  120.   Everything else will switch the adjustment off
  121.  
  122. SCREEN=<pattern>   (Default no pattern)
  123.   All actions will only take place if the DefaultTitle of the actual screen
  124.   matches to the given pattern. If no pattern is given, all screens match.
  125.   If you only want to exclude some screens, simply negate the pattern.
  126.   For example: SCREEN=~(myscreen#?)
  127.   The patternmatching is case insensitive.
  128.  
  129. WINDOW=<pattern>   (Default no pattern)
  130.   Same as screen, but checks the Title of the window that is going to be
  131.   processed.
  132.  
  133. ACTIONKEY=<standard key description> (Default: control help)
  134.   Pressing the hotkey defined here, Huntwindows will perform an action without
  135.   a activation or screenchange taken place. Very helpful if you scrolled around
  136.   and want to find back to your active window.
  137.  
  138. ACTION=<a> (only the first letter of the string is significant, Default "n" )
  139.   n : necessary - Huntwindows will do actions as ever it finds it necessary
  140.           (which is windowactivation and screenchange for now)
  141.   h : hotkey    - Huntwindows will only do actions when the ACTIONKEY is
  142.           pressed.
  143.   a : always    - Will also do adjustment when the window is already completely
  144.           visible. This will only perform an action if VADJ or HADJ is
  145.           set different to 'off'.
  146.  
  147. DELAY=<integer> (Default: 0)
  148.   This will make Huntwindows wait given 1/50th of a second after the last
  149.   activation or screenchange before doing anything to prevent hopping around
  150.   with autopoint or other fast changes that do not need to cause an action.
  151.  
  152. From CLI you will have to start the program in the background via
  153.  
  154.        run <nil: >nil: huntwindows [options]
  155.  
  156. or whatever you like. If you want to quit Huntwindows simply break the
  157. task or quit it with the "Exchange" Commodity Program or from the GUI.
  158.  
  159. From Workbench adjust the tooltypes and simply start by double-clicking.
  160.  
  161.  
  162. THE GRAPHICAL USER INTERFACE:
  163.  
  164. By defining CX_POPUP, by starting Huntwindows a second time or by using
  165. "Show Interface" from the "Exchange" Commodity Program or by simply
  166. pressing the popup hotkey a GUI comes up.
  167.  
  168. All options and tooltypes can be changed here. So you can play around to
  169. find out your configuration. If you already have placed Huntwindows in your
  170. wbstartup-drawer you may simply click "Save" to add all your options as
  171. tooltypes to the icon. When starting from CLI, the "Save"-gadget will be
  172. disabled. All options matching the default-value will not be entered when
  173. saving.
  174. The tooltype "DONOTWAIT", which is necessary when placing Huntwindows into
  175. wbstartup is automaticly added on saving as is CX_PRIORITY if not default.
  176.  
  177. When changing the pattern from the GUI, a check will be done when you press
  178. return. If there is an error in the pattern, a requester comes up and tells
  179. you so. If you do not re-edit the pattern until it is ok, it will match nothing,
  180. which is equal to disabling Huntwindows.
  181.  
  182.  
  183. THANX TO:
  184.  
  185. -Michael Suelmann for help with the workbench/gadtools
  186. -Markus 'ill' Illenseer for ideas and Aswarm (where I looked up how to do
  187.  commodities)
  188. -Georg 'Gucky' Hessmann and Matthias 'Tron' Scheler for the idea with the
  189.  REMWIN option.
  190. -Bernhard 'ZZA' Möllemann for testing and help.
  191. -Stefan Sticht for help.
  192. -Olaf 'MagicOlf' Peters for finding V37-bugs.
  193. -Franz Schwarz for finding bugs and suggestions.
  194. -Dale D. Snell for the nice icon.
  195.  
  196. TECHNICAL:
  197.  
  198. For reaching this Huntwindows installs a Vertical-Blank interrupt-server,
  199. which tests if the ActiveWindow and the FirstScreen recorded by intuition
  200. differs from the last interrupt and then signals the main-task to move the
  201. display.
  202. Don't mind it taking away too much CPU time - if you have a look at the
  203. source at label 'Interrupt3' you will find that it doesn't do anyhing that
  204. is worth arguing about.
  205.  
  206.  
  207. HISTORY:
  208.  
  209. Version 1.0:
  210. Worked with patching vectors, which didn't solve the problem of getting
  211. every active window completly.
  212.  
  213. Version 1.1:
  214. Now uses VBI for catching active windows.
  215.  
  216. Version 1.2:
  217. Added some new options and removed some bugs.
  218.  
  219. Version 1.3:
  220. WBONLY and WFRONT option added. WFRONT will not make WindowToFront() on
  221. Backdrop and WBENCHWINDOW windows because it causes problems.
  222. Workbenchsupport added.
  223.  
  224. Version 1.4:
  225. Crash when entering wrong arguments removed
  226. Added DEFPUB option
  227.  
  228. Version 2.0:
  229. Enforcer Hits (old debugging stuff) removed.
  230. Added Commodity support.
  231. Added GUI.
  232.  
  233. Version 2.1:
  234. Removed small bugs.
  235. Added REMWIN feature.
  236.  
  237. Version 2.2:
  238. Removed bug in argument-order at CLI-call.
  239. Added MOVEMOUSE feature.
  240.  
  241. Version 2.3:
  242. Added SCREEN and WINDOW option.
  243. Redesigned GUI.
  244.  
  245. Version 2.4:
  246. Now tooltypes can be saved to icon.
  247. Added "Save", "About" and "GUI Popup" Gadgets to GUI.
  248. Removed crash at closedown and some minor bugs.
  249.  
  250. Version 2.5:
  251. Added CX_PRIORITY tooltype.
  252. Removed small bug which caused REMWIN not to work in 2.4.
  253.  
  254. Version 2.6:
  255. Added CX_POPKEY tooltype. GUI can now be opened with a Hotkey.
  256. Added Key-Support for Quit,Save,About and Hide - which are easy to implement
  257.         (I don't think its worth the work and space to do it for all)
  258. Hotkey can be edited and saved from GUI.
  259. Again removed errors in CLI-call.
  260.  
  261. Version 2.7:
  262. CheckBox Gadgets now work under V37, too.
  263. MOVEMOUSE debugged, now works under V37 correctly, too.
  264. Huntwindows now only moves windows if the button is released, or after it is
  265.         released which avoids a lot of problems (thanx to Stefan Sticht)
  266. Due to the point above Huntwindows does no longer restricts Workbench drawers
  267.         from WindowToFront
  268. The DISP_CLIP is now determined better (thanx to Bernhard Möllemann)
  269. Removed Bug which caused Huntwindows to crash when quit after save.
  270.  
  271. Version 3.0: (2.8 and 2.9 where not released)
  272. Now really use VideoControl to get DISP_CLIP
  273. Screens won't be pulled down anymore
  274. Doing a lot of LockIBase() and checks for valid pointers to prevent any
  275.         Enforcer-Hit produced by NIL or invalid pointers (like when closing
  276.         the Workbench)
  277. Adjustments now also work for oversized windows.... (In fact I rewrote the
  278.         complete move section to be smaller and better)
  279. Improved MOVEMOUSE again, which didn't work correctly on Non-Interlace and
  280.         A2024 Screens (and probably graphics cards - can anyone test this?)
  281. There is a better icon for Huntwindows now
  282. Action Hotkey added, which makes it possible to force Huntwindows to act
  283.         without a window being activated
  284. ALWAYS now changed to ACTION and can have the additional state of 'hotkey'
  285.         which means that Huntwindows will only act on Hotkey
  286. DELAY option added, to wait some time before acting.
  287. Redesigned GUI a bit.
  288. Removed small bug which caused pressed Hotkeys to be passed on to whatever
  289.         window was active.
  290. RESTRICT option added to choose which screens are to DefPub.
  291. Improved the Interrupt to watch if the window's position or size changed also
  292.         (instead of only waiting for a new active window)
  293. Stringgadgets will now be checked when hiding or saving
  294.  
  295.  
  296. TODO:
  297.  Waiting for any further suggestions from you!
  298.  
  299. BUGS:
  300.  none - I hope.
  301.  
  302. FINAL REMARKS:
  303.  
  304. This tool is very nice to be used together with Windowshuffle by
  305. Stefan Sticht, for hopping through the windows and actually seeing them,
  306. when having a BIG workbench.
  307. Huntwindows could do a lot of more interesting things - if I could think
  308. about anything, so if you have ideas please contact me!
  309.  
  310. For problems and ideas, reach me at:
  311.  
  312. EMAIL: bublath@forwiss.uni-passau.de
  313.  
  314. IRC  : Skull (to be found on #amigager - the german amiga channel)
  315.  
  316. SMAIL: Jörg Bublath
  317.        Holzheimerstr. 4/E07
  318.        8390 Passau
  319.        Germany
  320.        Phone: Germany-0851-59947
  321.  
  322.