home *** CD-ROM | disk | FTP | other *** search
/ The Datafile PD-CD 4 / DATAFILE_PDCD4.iso / utilities / utilsf / jfshared / Modules / NoCoverIco / !Help < prev    next >
Encoding:
Text File  |  1995-10-01  |  9.3 KB  |  199 lines

  1.                                  NoCoverIconBar
  2.                                  ==============
  3.                                  
  4. Version 1.00 (05 Sep 1995)
  5. Version 1.01 (06 Sep 1995)
  6. Version 1.02 (22 Sep 1995)
  7. Version 1.03 (29 Sep 1995)
  8. Version 1.04 (01 Oct 1995)
  9.  
  10. Introduction
  11. ------------
  12. A long time ago I discovered a configuration program which allowed you to set
  13. the NoObscureIconBar bit (as noted it OSLib) in CMOS RAM, although there is
  14. no actual use for it as the Wimp pays no heed what-so-ever to it. The
  15. application was Config+, and whilst being an excellent utility it is somewhat
  16. lacking by the fact that some of the options do not work (eg 3rd Party
  17. crashed on my Machine), and the above flag does nothing. Whilst this is not
  18. the programmers fault, I did find it a little annoying that the program could
  19. not easily allow other users to write configuration programs in the same
  20. vein.
  21.  
  22. Later, I saw an article in Acorn User about possible new features which might
  23. appear in RiscOS 4. Whilst very vague, it did include some nice screen shots
  24. from a RiscPC with a mock-up of what things might look like. Along with the
  25. slabbed menus (available in PD by somebody whose name I forget - RiscPC only,
  26. I believe) I saw an improved Configuration application. Although all the
  27. windows were slabs (each had it's border raised) and I could see no easy way
  28. to do this, I could see a simple manner in which the Config program could be
  29. put together with third party options easily added in Libraries.
  30.  
  31. Hence ConfigPlus.
  32.  
  33. In the mean time, however, I was looking into OSLibs and found the NoObscure
  34. IconBar bit I mentioned above, along with :
  35. Desktop dither - very little use except in 4 and 2 colour modes
  36. Tube - hang over from old Master days perhaps ?
  37. NoTile - possibly special flag for tile_1 ?
  38. VFS - Hmmm.
  39. ROMFS - More hmmm.
  40. IconCache - Not a clue :-)
  41. ROMBatMan - along side the auto loaded ROM applications as the bottom bit :-)
  42.  
  43. The NoObscureIB flag looked interesting, so I quickly knocked together a
  44. module to get around the problem of the wimp ignoring it.
  45.  
  46.  
  47. Usage
  48. -----
  49.    Run the !Run file. That's it.
  50.    One question will be asked of you. That is if you wish Ctrl-Shift to
  51. cancel the shift action. Basically, if you hold down shift then the checks
  52. for not covering the iconbar will be ignored. However, in some applications
  53. like Zap you use Shift-Ctrl-G for full size and Shift-Ctrl-W for wide (well I
  54. do anyway). Therefore if you don't set this, then this keeys will do as
  55. asked, but the next time that the window is opened (probably on next key
  56. press) the window will shink.
  57.    So, if you want Ctrl-Shift to bypass the bypass, then press Y or Select.
  58.    Hopefully, the code will be assembled with no errors and all that in
  59. future will be required is the running of the resultant code file.
  60.     
  61. How it works
  62. ------------
  63. Basically, it just patches the Wimp_OpenWindow call to modify it's parameters
  64. using WimpSWIve (see below). The bottom of the window is limited to just
  65. above the iconbar unless shift is pressed, the CMOS bit is unset, there is no
  66. Adjust size or vertical scroll bar, or the title bar is below the iconbar
  67. top. The toolsprites are taken into account by using Wimp_GetWindowInfo and
  68. WimpGetWindowOutline (unlike many programs!).
  69.  
  70. A small patch is used to ensure that if you click on full size, you get full
  71. size, as otherwise the window only opens downwards to the iconbar and stops.
  72. This is peculiar, but thats what the Wimp does, so I had to work around it.
  73. If you do click on the toggle icon, then the maximum height is found, and the top extended by that amount. Then it is clipped to the screen, also taking into
  74. account the tool icons. Try it using the Mega set created by Edouard Poor and
  75. see the effect!
  76.  
  77. A further modification is also made to any window with Force to screen on
  78. next open, or bounded by screen and if this is the first open, bits are set.
  79. This ensures that StrongHelp windows which, I think, are opened twice (or are
  80. at least created in different positions to that in which they are opened),
  81. open correctly (ie on the screen). For some peculiar reason (possibly related
  82. to the above peculiar reason, but more likely due to the fact that I open the
  83. window myself an extra time in the patch) these windows open with just half a
  84. line showing at the top of the screen and the adjust size icon. This is
  85. useful, but only if the information was contained in the bottom half of the
  86. last line and you really needed to see the adjust size icon. If, like any
  87. sane person (ie those who believe this), you would much prefer to see the
  88. whole of the window, then the patched version is much more useful.
  89.  
  90.  
  91. Bugs
  92. ----
  93.    One of the problems which I have not encountered (but guess could occur if
  94. some programmer tried hard enough) is that some programs may check to see if
  95. the window is full size and act differently on it if it is (ie try to force
  96. full size); this may cause problems, but then again the same effect would
  97. probably occur if the Wimp did the same thing, unless it modified the bits to
  98. indicate that the window was at full size when on a line with the icon bar.
  99.    This problem mainly comes from the fact that there is no way to force a
  100. window to full size (ie simulate click on Toggle size), because if you open
  101. to a ridiculous size under RO3, you get a window which is ridiculously size,
  102. rather than one which you would have got had you resized it using the resize
  103. button. Ask Dominic Symes if the lack of this facility has caused him any
  104. problems and I'm sure he'd say “no, but don't as me to do it again” (maybe he
  105. won't, but I would!)
  106.  
  107.  
  108. Disclaimer
  109. ----------
  110.   The author accepts no responsibility for any problems which this
  111. application may cause or loss of data resulting in its use. This application
  112. is Public Domain. This means that it may be distributed, so long as no charge
  113. other than copying costs are charged for it.
  114.   
  115.  
  116. Source code
  117. -----------
  118.    This program requires the !JFPatch pre-assembler to make the code. This is
  119. a simple text-to-basic assembler which takes a text assembler file, makes a
  120. basic program from it to assemble, assembles it and returns any errors.
  121. Currently, it is under development and requires a lot of work before it will
  122. be released in any form. As such, the patch file is mostly useless, but must
  123. be distributed with the resultant module.
  124.    All source code an the resultant module must be distributed together.
  125.  
  126.  
  127. WimpSWIVe
  128. ---------
  129.    This program require WimpSWIve to be installed before it will run
  130. correctly. It provides easy access to filtering Wimp calls other than
  131. Wimp_Poll (provided by FilterManager) and is provided with NewerLook (which
  132. is ok, but takes a bit of getting used to).
  133.    The WimpSWIVe module is © Andrew Clover, and if copied should be copied
  134. with the documentation which is provided. Refer to the file WSWI-Help for
  135. more details.
  136.  
  137.  
  138. Contact                
  139. -------
  140. Any comments, queries, donations or bug reports can be sent to :
  141.  
  142. Fidonet NetMail :  Justin Fletcher at Arcade (0181 655 4412) [2:254/27]
  143. E-Mail : Gerph@arcade.demon.co.uk
  144.  
  145. Snail Mail :
  146.     Justin Fletcher
  147.     “Galadriel”
  148.     17b Cromwell Road,
  149.     Weeting,
  150.     Brandon,
  151.     Suffolk.
  152.     IP27 0QT
  153.  
  154. History
  155. -------
  156. Version 1.00 : 05 Sep 1995
  157.                First version written. Simply locked the bottom of every
  158.                window to the icon bar if they were below it, unless the title
  159.                was above it. Didn't work particularly well if the window you
  160.                wanted to move was one without an adjust size icon.
  161.  
  162. Version 1.01 : 05 Sep 1995
  163.                Added support for CMOS bit, and checks for Vertical bar and
  164.                adjust size icon. A little more work provided a toggle size
  165.                which worked correctly, locking to top of screen.
  166.  
  167. Version 1.02 : 22 Sep 1995
  168.                Support for Force to screen next Open Window, and bounded
  169.                windows by using some modified code from the original
  170.                checktoggle size routine.
  171.                Should work in most instances now, and with the new SetCMOS
  172.                utility could give a really easy way to set that type of
  173.                thing!
  174.                Oh, and must remember to turn off the testing comments !
  175.  
  176. Version 1.03 : 29 Sep 1995
  177.                Initial window opening if closed changed to using new block
  178.                rather than old. Also re-gets state into user buffer.
  179.                Bug fix so that if you pass over toggle icons whilst it is
  180.                opening the window does not pop to full size - you need to
  181.                have clicked it.
  182.                Added Ctrl-Shift bypass bypass :-)
  183.  
  184. Version 1.04 : 01 Oct 1995
  185.                Fixed bug with Ctrl-Shift which meant that it didn't actually
  186.                do anything :-(
  187.                Minor bug fix for SharedCLibrary based applications, eg !Draw
  188.                Draw would crash with an Address exception because the extra
  189.                Wimp_GetWindowState into the user block would corrupt word 9
  190.                (bytes 32-35) as this is not used by Wimp_OpenWindow. C being
  191.                more memory conscious than the average person would spot this
  192.                and only allocate enough space for the Wimp_OpenWindow block
  193.                and hence had some vital information overwritten. Yuck! Took
  194.                me ages to spot that.
  195.  
  196. PS. In case you were interested, the Don't Obscure Icon Bar bit is bit 4 of
  197. CMOS byte 28, set it with something like *SetCMOS 28 16 16, unset with
  198. *SetCMOS 28 0 16.
  199.