home *** CD-ROM | disk | FTP | other *** search
/ ARM Club 1 / ARM_CLUB_CD.iso / contents / apps / languages / progs / shell / Other / History
Encoding:
Text File  |  1994-07-07  |  5.9 KB  |  175 lines

  1. Shell History.
  2.  
  3.  
  4.  
  5. 15-Apr-1994
  6.  
  7. Made Shell_ReLabel take notice of the rectangle's update_time, so that the
  8. label is only updated slowly. This was mildly complicated because the rect
  9. has to be redrawn imediately if the label changes size.
  10.  
  11. 18-Apr-1994
  12.  
  13. Added Shell_AddDoubleBarGraph2.
  14. Changed Shell_OpenGFXWindow to Shell_OpenWindow. Put a '#define
  15. Shell_OpenGFXWindow Shell_OpenWindow' in Shell.Shell.h' so old programs still
  16. run.
  17.  
  18.  
  19. 26-Apr-1994
  20. Changed to open windows open_NEARLAST instead of open_UNDERPOINTER
  21.  
  22.  
  23.  
  24. 02-May-1994
  25.  
  26. Added Shell_Printf, which just calls Shell_TextRectPrint( NULL, ...). This
  27. provides a simple replacement for printf. 
  28.  
  29.  
  30.  
  31. 03-May-1994
  32.  
  33. Changed Shell_2DDoubleArray so that it can save an array. I rather
  34. shortsitedly forgot to save the size of a 2DDouble array so had to copy bits
  35. of Shell_GeneralArray code.
  36.  
  37.  
  38. 04-May-1994
  39.  
  40. Added 'Shell_WaitPrintf'. This is the same as Shell_Printf, but stores the 
  41. string to be printed in a malloc block and only sends it to
  42. Shell_TextRectPrintf( NULL, ...) on the next event_NULL. This makes it
  43. capable of being called from within (for e.g.) a window-redrawing function
  44. (Using Shell_Printf from within such a function will confuse the Wimp as
  45. Shell_Printf will call Wimp_ForceRedraw etc).
  46.  
  47.  
  48.  
  49. 05-May-1994
  50.  
  51. changed the (convert_block *) passed to Shell_ redraw functions to a special
  52. wimp_point (typedef-ed as a Shell_convertpoint): A convert_block contains 6
  53. ints: rect.min/max.x/y, scroll.x/y, but all that is really needed is 2 ints.
  54.  
  55. For example, we could do the following: 
  56.  
  57.  
  58. int RedrawFn( ... )
  59. {
  60. typedef wimp_point Shell_convert_block;
  61.  
  62. Shell_convert_block    convert;
  63.  
  64. convert.x = visiblearea.min.x - scroll.x;
  65. convert.y = visiblearea.max.y - scroll.y;
  66.  
  67. /*then:*/
  68.  
  69. screen.x = workarea.x + convert.x;
  70. screen.y = workarea.y + convert.y;
  71.  
  72. /*or*/
  73.  
  74. workarea.x = screen.x - convert.x;
  75. workarea.y = screen.y - convert.y;
  76. }
  77.  
  78. Here, 'convert.x/y' is the screen coordinates of the origin of the window.
  79. Note that this  is not restricted to the actual physical screen. 
  80.  
  81. When redrawing, one could set the GFX origin to (convert.x, convert.y) and
  82. then use OS_Plot with workarea coors. The problem with doing this is that
  83. OS_Plot only accepts 16 bit numbers, so doing this with large windows doesn't
  84. work. (Apparently RO3.5 OS_Plot uses the full 32 bit representation.)
  85.  
  86. Anyway, the above method means that we only have to pass 2 ints to the
  87. redrawing functions, and the said fns have a simpler job of converting to the
  88. screen coors. Also, I pass the Shell_convert_block directly (as 2 ints)
  89. rather than passing a pointer, to increase speed.
  90.  
  91.  
  92.  
  93. 06-May-1994
  94.  
  95. Added a new rectangle type - PlainRect. The idea is to define a plain rect on
  96. top of (so it gets shift-menu clicks) a group of graphical rects; saving a
  97. Plain rect will create a Sprite which contains the contents of the window in
  98. the region of the plain-rect. This means you can create a sprite of an area
  99. of a shell window, even if the area is bigger than the screen-size. I did
  100. this because one of my programs displays some BlockRects which I wanted to
  101. include in a document. I used to grab parts of the window using Paint and
  102. then stick them together, but by defining a transparent plain-rect which
  103. covers all the block rects, I can now save the entire region as a sprite. NB
  104. this works by creating a sprite in memory, redirecting all VDU to this
  105. sprite, redrawing the region using a doctored Shell_convertpoint, then
  106. switching output back to the screen. At the moment, text is half-height
  107. compared to a mode-31 screen, and icon borders/backgrounds don't appear in
  108. the sprite. I don't know why as yet. 
  109.  
  110. Also altered the save functions so that rects are saved with particular
  111. filetypes - Paint only accepts sprite files for e.g. so this was important
  112. for saving plainrects. The default is to save data as text.
  113.  
  114.  
  115. 10-May-1994
  116.  
  117. Maybe all Shell rectangle redrawing routines should work in coordinates which
  118. are relative to the bottom-left of the rectangle. This would be easy to do
  119. with the new Shell_onvertpoint, and would mean that less info has to be
  120. passed to the redrawing routine - instead of the bigrect, which tells the
  121. routine what the original rectangle size was, just pass a wimp_point,
  122. size.x/y which tells how big the rect is. It would also simplify much of the
  123. redrawing code, which at the moment seeems to do a lot of ( x +
  124. bigrect.min.x, y+bigrect.min.y) etc. Ummm...
  125.  
  126.  
  127. 16-May-1994
  128.  
  129. Added a different version of Shell_AddPlainRect called
  130. Shell_AddPlainGreyRect. This is identical to a normal plainrect, except when
  131. you save it, Shell creates a 256-colour sprite with a grey-scale palette.
  132. I did this so I could export useful sprites for including in documents -
  133. previously, I had used large Shell_blockrects so that the ESG-ing would give
  134. ~256 greys, but these got a bit big (1-2 MB!). Now you can display small
  135. blockrects, save them as a grey-sprite, and include magnified versions of
  136. them in Draw or wordprocesser files. (Can you tell it's write-up-thesis
  137. time?). Note that this will only work well if the shellrects inside the
  138. plaingreyrect use ColourTrans_SetGcol etc instead of Wimp_SetColour. DeskLib
  139. makes it very simple to use ColourTrans so this is not a big problem.
  140.  
  141.  
  142.  
  143. 18-May-1994
  144.  
  145. Changed the headers to do a 
  146.  
  147. #ifndef __dl_wimp_h
  148. #include "DeskLib:Wimp.h"
  149. #endif
  150.  
  151. to speed compilation.
  152.  
  153. Also changed the order of #includes in Shell.*.c so that the simpler headers
  154. are included first (e.g. <*.h>, "DeskLib.*.h", "Shell.*.h". This way, headers
  155. are never loaded twice, but source files don't have to do any #ifndef
  156. __dl_wimp_h etc. Of course, most headers have #ifndef __dl_wimp_h, #define
  157. ... ... #endif, but this method still involves loading the header file from
  158. disc so is slow.
  159.  
  160.  
  161.  
  162. 18-May-1994
  163.  
  164. Altered the makefile to use -fah flags for cc. These check for variables
  165. being used before they are set etc. Added macro #define UNUSED(x) (x)=(x) to
  166. Shell.Shell.h as many functions don't use dome of their parameters, which
  167. causes a warning from Desktop CC.
  168.  
  169.  
  170.  
  171. 19-May-1994
  172.  
  173. Tidied up the Shell_AddPlainRect/Shell_AddPlainGreyRect code.
  174.  
  175.