home *** CD-ROM | disk | FTP | other *** search
/ The CDPD Public Domain Collection for CDTV 3 / CDPDIII.bin / pd / commodities / huntwindows / huntwindows.doc < prev    next >
Text File  |  1993-04-26  |  10KB  |  268 lines

  1.  
  2.              Huntwindows V2.7 by Jörg Bublath
  3.              ================================
  4.  
  5. COPYRIGHT:
  6.  
  7. Huntwindows is freely distributable.
  8. Huntwindows is free to be spread on public-domain and shareware disks
  9. especially on Fred Fish's AmigaLibDisks, as long as they are sold for a
  10. reasonable charge that is less than US $6 or DM 8.- .
  11. For use in commercial products the permission of the author is required.
  12. Huntwindows may be copied and distributed via electronic networks such
  13. as the Internet, also it may be moved on anonymous ftp-servers,
  14. mail-boxes or BBS's.
  15. The Copyright is still by the Author.
  16. You may use the source for your own non-commercial purposes, but you are
  17. not allowed to spread a changed version under the same name. If you think
  18. you have made a useful change contact me, so I may include it.
  19.  
  20.  
  21. REQUIREMENTS:
  22.  
  23. Kickstart 2.04 (V37) or higher
  24.  
  25. PREFACE:
  26.  
  27. Coming with 2.0 you can make screens bigger than the visual size of your
  28. monitor. After I tried to catch windows like requesters etc. on my
  29. double-sized workbench, I got enough and wrote this little tool.
  30. It hangs itself into the VBI to find out which window in being
  31. activated and moves the screen to show the window in full view.
  32. Additionally there are some other related features like remembering
  33. and activating one window for each screen or bring the window or screen
  34. being activated to front.
  35. For full user-comfort, coming with version 2.0, Huntwindows is now a
  36. commodity and can placed into your WBStartup Drawer and has a Graphical
  37. User Interface.
  38.  
  39. USAGE:
  40.  
  41. Template:
  42.  MOVE/S,SFRONT/S,WFRONT/S,DEFPUB/S,ALWAYS/S,REMWIN/S,MOVEMOUSE/S,CX_POPUP/S
  43.  CX_PRIORITY/K,CX_POPKEY/K,HADJ/K,VADJ/K,SCREEN/K,WINDOW/K
  44.  
  45. or the same options as worbench tooltypes (if no default values are mentioned,
  46. then giving the tooltype turn on, leaving it away turns it off)
  47.  
  48. MOVE:
  49.   Enable ScreenMove() whenever a window is actived - this option should always
  50.   be given, because it's the main purpose of the program :)
  51.  
  52. SFRONT:
  53.   Enable the ScreenToFront() whenever a window is activated
  54.  
  55. WFRONT:
  56.   Do an additional WindowToFront() for windows being activated.
  57.  
  58. DEFPUB:
  59.   If the Intuition FirstScreen is a PublicScreen it will automaticly set as
  60.   DefaultPubScreen, so all windows opening on the default will use the
  61.   FirstScreen.
  62.  
  63. ALWAYS:
  64.   Turns off the optimization done when a window is already totally visible.
  65.   This will only have any affect if a HADJ or VADJ option is set.
  66.  
  67. REMWIN:
  68.   Remember the ActiveWindow for every screen. When switching through the
  69.   screens Huntwindows will activate the last window that was active when it
  70.   was the FirstScreen. A maximum of 64 different screens will be remembered
  71.   - that should be enough, right?
  72.   This option was based on TWA by Matthias Scheler.
  73.  
  74. MOVEMOUSE:
  75.   When you try to click on a close-gadget (or any other) of a window that is
  76.   not completely visible, Huntwindows will move the window to show it
  77.   completely before you have time to release the button and activate it. When
  78.   this option is set Huntwindows will move the mouse with the screen, so it
  79.   still is at the same position as before, and the window will really close
  80.   (or whatever).
  81.   This movement will only take place if the mouse was on a position that was
  82.   already visible before scrolling - otherwise no mouse move will occur.
  83.  
  84. CX_POPUP:
  85.   Show the Graphical User Interface on startup.
  86.   The Interface will be automaticly shown, if Huntwindows is already running.
  87.  
  88. CX_PRIORITY=<signed integer> (Default 0)
  89.   Set the commodity priority. This is the only function which can't be changed
  90.   from the GUI. It will naturally be saved anyway. To edit it you have to
  91.   use the workbench to directly change the tooltype.
  92.  
  93. CX_POPKEY=<standard key description> (Default: control alt h)
  94.   Sets the Popup-hotkey for the GUI. By pressing this key-combination, the
  95.   GUI will pop open.
  96.  
  97. HADJ=<a>: (only the first letter of the string is significant, Default "l" )
  98.   Horizontal Adjustment:
  99.   l : Left - means that IF scrolling is necessary, huntwindows will try to get
  100.          the window adjusted to the left edge of the screen
  101.   r : Same as above with the right edge
  102.   c : Same as above but centering in the screen
  103.   Everything else will switch the adjustment off
  104.  
  105. VADJ=<a>: (only the first letter of the string is significant, Default "t" )
  106.   Horizontal Adjustment:
  107.   t : Top - means that IF scrolling is necessary, huntwindows will try to get
  108.         the window adjusted to the top edge of the screen
  109.   b : Same as above with the buttom edge
  110.   c : Same as above but centering in the screen
  111.   Everything else will switch the adjustment off
  112.  
  113. SCREEN=<pattern>   (Default no pattern)
  114.   All actions will only take place if the DefaultTitle of the actual screen
  115.   matches to the given pattern. If no pattern is given, all screens match.
  116.   If you only want to exclude some screens, simply negate the pattern.
  117.   For example: SCREEN=~(myscreen#?)
  118.   The patternmatching is case insensitive.
  119.  
  120. WINDOW=<pattern>   (Default no pattern)
  121.   Same as screen, but checks the Title of the window that is going to be
  122.   processed.
  123.  
  124. From CLI you will have to start the program in the background via
  125.  
  126.        run <nil: >nil: huntwindows [options]
  127.  
  128. or whatever you like. If you want to quit Huntwindows simply break the
  129. task or quit it with the "Exchange" Commodity Program.
  130.  
  131. From Workbench adjust the tooltypes and simply start by double-clicking.
  132.  
  133.  
  134. THE GRAPHICAL USER INTERFACE:
  135.  
  136. By defining CX_POPUP, by starting Huntwindows a second time or by using
  137. "Show Interface" from the "Exchange" Commodity Program a GUI comes up.
  138.  
  139. All options and tooltypes can be changed here. So you can play around to
  140. find out your configuration. If you already have placed Huntwindows in your
  141. wbstartup-drawer you may simply click "Save" to add all your options as
  142. tooltypes to the icon. When starting from CLI, the "Save"-gadget will be
  143. disabled. All options matching the default-value will not be entered when
  144. saving.
  145. The tooltype "DONOTWAIT", which is necessary when placing Huntwindows into
  146. wbstartup is automaticly added on saving as is CX_PRIORITY if not default.
  147.  
  148. When changing the pattern from the GUI, a check will be done when you press
  149. return. If there is an error in the pattern, a requester comes up and tells
  150. you so. If you do not re-edit the pattern until it is ok, it will match nothing,
  151. which is equal to disabling Huntwindows.
  152.  
  153.  
  154. THANX TO:
  155.  
  156. -Michael Suelmann for help with the workbench/gadtools
  157. -Markus 'ill' Illenseer for ideas and Aswarm (where I looked up how to do
  158.  commodities)
  159. -Georg 'Gucky' Hessmann and Matthias 'Tron' Scheler for the idea with the
  160.  REMWIN option.
  161. -Bernhard 'ZZA' Möllemann for testing and help.
  162. -Stefan Sticht for help.
  163. -Olaf 'MagicOlf' Peters for finding V37-bugs.
  164.  
  165. TECHNICAL:
  166.  
  167. For reaching this Huntwindows installs a Vertical-Blank interrupt-server,
  168. which tests if the ActiveWindow and the FirstScreen recorded by intuition
  169. differs from the last interrupt and then signals the main-task to move the
  170. display.
  171. Don't mind it taking away too much CPU time - if you have a look at the
  172. source at label 'Interrupt3' you will find that it doesn't do anyhing that
  173. is worth arguing about.
  174.  
  175.  
  176. HISTORY:
  177.  
  178. Version 1.0:
  179. Worked with patching vectors, which didn't solve the problem of getting
  180. every active window completly.
  181.  
  182. Version 1.1:
  183. Now uses VBI for catching active windows.
  184.  
  185. Version 1.2:
  186. Added some new options and removed some bugs.
  187.  
  188. Version 1.3:
  189. WBONLY and WFRONT option added. WFRONT will not make WindowToFront() on
  190. Backdrop and WBENCHWINDOW windows because it causes problems.
  191. Workbenchsupport added.
  192.  
  193. Version 1.4:
  194. Crash when entering wrong arguments removed
  195. Added DEFPUB option
  196.  
  197. Version 2.0:
  198. Enforcer Hits (old debugging stuff) removed.
  199. Added Commodity support.
  200. Added GUI.
  201.  
  202. Version 2.1:
  203. Removed small bugs.
  204. Added REMWIN feature.
  205.  
  206. Version 2.2:
  207. Removed bug in argument-order at CLI-call.
  208. Added MOVEMOUSE feature.
  209.  
  210. Version 2.3:
  211. Added SCREEN and WINDOW option.
  212. Redesigned GUI.
  213.  
  214. Version 2.4:
  215. Now tooltypes can be saved to icon.
  216. Added "Save", "About" and "GUI Popup" Gadgets to GUI.
  217. Removed crash at closedown and some minor bugs.
  218.  
  219. Version 2.5:
  220. Added CX_PRIORITY tooltype.
  221. Removed small bug which caused REMWIN not to work in 2.4.
  222.  
  223. Version 2.6:
  224. Added CX_POPKEY tooltype. GUI can now be opened with a Hotkey.
  225. Added Key-Support for Quit,Save,About and Hide - which are easy to implement
  226.         (I don't think its worth the work and space to do it for all)
  227. Hotkey can be edited and saved from GUI.
  228. Again removed errors in CLI-call.
  229.  
  230. Version 2.7:
  231. CheckBox Gadgets now work under V37, too.
  232. MOVEMOUSE debugged, now works under V37 correctly, too.
  233. Huntwindows now only moves windows if the button is released, or after it is
  234.         released which avoids a lot of problems (thanx to Stefan Sticht)
  235. Due to the point above Huntwindows does no longer restricts Workbench drawers
  236.         from WindowToFront
  237. The DISP_CLIP is now determined better (thanx to Bernhard Möllemann)
  238. Removed Bug which caused Huntwindows to crash when quit after save.
  239.  
  240.  
  241. TODO:
  242.  Can anyone out there draw me a nice icon?
  243.  Waiting for any suggestions from you!
  244.  
  245. BUGS:
  246.  none - I hope.
  247.  
  248. FINAL REMARKS:
  249.  
  250. This tool is very nice to be used together with Windowshuffle by
  251. Stefan Sticht, for hopping through the windows and actually seeing them,
  252. when having a BIG workbench.
  253. Huntwindows could do a lot of more interesting things - if I could think
  254. about anything, so if you have ideas please contact me!
  255.  
  256. For problems and ideas, reach me at:
  257.  
  258. EMAIL: bublath@forwiss.uni-passau.de
  259.  
  260. IRC  : Skull (to be found on #amigager - the german amiga channel)
  261.  
  262. SMAIL: Jörg Bublath
  263.        Holzheimerstr. 4/E07
  264.        8390 Passau
  265.        Germany
  266.        Phone: Germany-0851-59947
  267.  
  268.