home *** CD-ROM | disk | FTP | other *** search
- Shell History.
-
-
-
- 15-Apr-1994
-
- Made Shell_ReLabel take notice of the rectangle's update_time, so that the
- label is only updated slowly. This was mildly complicated because the rect
- has to be redrawn imediately if the label changes size.
-
- 18-Apr-1994
-
- Added Shell_AddDoubleBarGraph2.
- Changed Shell_OpenGFXWindow to Shell_OpenWindow. Put a '#define
- Shell_OpenGFXWindow Shell_OpenWindow' in Shell.Shell.h' so old programs still
- run.
-
-
- 26-Apr-1994
- Changed to open windows open_NEARLAST instead of open_UNDERPOINTER
-
-
-
- 02-May-1994
-
- Added Shell_Printf, which just calls Shell_TextRectPrint( NULL, ...). This
- provides a simple replacement for printf.
-
-
-
- 03-May-1994
-
- Changed Shell_2DDoubleArray so that it can save an array. I rather
- shortsitedly forgot to save the size of a 2DDouble array so had to copy bits
- of Shell_GeneralArray code.
-
-
- 04-May-1994
-
- Added 'Shell_WaitPrintf'. This is the same as Shell_Printf, but stores the
- string to be printed in a malloc block and only sends it to
- Shell_TextRectPrintf( NULL, ...) on the next event_NULL. This makes it
- capable of being called from within (for e.g.) a window-redrawing function
- (Using Shell_Printf from within such a function will confuse the Wimp as
- Shell_Printf will call Wimp_ForceRedraw etc).
-
-
-
- 05-May-1994
-
- changed the (convert_block *) passed to Shell_ redraw functions to a special
- wimp_point (typedef-ed as a Shell_convertpoint): A convert_block contains 6
- ints: rect.min/max.x/y, scroll.x/y, but all that is really needed is 2 ints.
-
- For example, we could do the following:
-
-
- int RedrawFn( ... )
- {
- typedef wimp_point Shell_convert_block;
-
- Shell_convert_block convert;
-
- convert.x = visiblearea.min.x - scroll.x;
- convert.y = visiblearea.max.y - scroll.y;
-
- /*then:*/
-
- screen.x = workarea.x + convert.x;
- screen.y = workarea.y + convert.y;
-
- /*or*/
-
- workarea.x = screen.x - convert.x;
- workarea.y = screen.y - convert.y;
- }
-
- Here, 'convert.x/y' is the screen coordinates of the origin of the window.
- Note that this is not restricted to the actual physical screen.
-
- When redrawing, one could set the GFX origin to (convert.x, convert.y) and
- then use OS_Plot with workarea coors. The problem with doing this is that
- OS_Plot only accepts 16 bit numbers, so doing this with large windows doesn't
- work. (Apparently RO3.5 OS_Plot uses the full 32 bit representation.)
-
- Anyway, the above method means that we only have to pass 2 ints to the
- redrawing functions, and the said fns have a simpler job of converting to the
- screen coors. Also, I pass the Shell_convert_block directly (as 2 ints)
- rather than passing a pointer, to increase speed.
-
-
-
- 06-May-1994
-
- Added a new rectangle type - PlainRect. The idea is to define a plain rect on
- top of (so it gets shift-menu clicks) a group of graphical rects; saving a
- Plain rect will create a Sprite which contains the contents of the window in
- the region of the plain-rect. This means you can create a sprite of an area
- of a shell window, even if the area is bigger than the screen-size. I did
- this because one of my programs displays some BlockRects which I wanted to
- include in a document. I used to grab parts of the window using Paint and
- then stick them together, but by defining a transparent plain-rect which
- covers all the block rects, I can now save the entire region as a sprite. NB
- this works by creating a sprite in memory, redirecting all VDU to this
- sprite, redrawing the region using a doctored Shell_convertpoint, then
- switching output back to the screen. At the moment, text is half-height
- compared to a mode-31 screen, and icon borders/backgrounds don't appear in
- the sprite. I don't know why as yet.
-
- Also altered the save functions so that rects are saved with particular
- filetypes - Paint only accepts sprite files for e.g. so this was important
- for saving plainrects. The default is to save data as text.
-
-
- 10-May-1994
-
- Maybe all Shell rectangle redrawing routines should work in coordinates which
- are relative to the bottom-left of the rectangle. This would be easy to do
- with the new Shell_onvertpoint, and would mean that less info has to be
- passed to the redrawing routine - instead of the bigrect, which tells the
- routine what the original rectangle size was, just pass a wimp_point,
- size.x/y which tells how big the rect is. It would also simplify much of the
- redrawing code, which at the moment seeems to do a lot of ( x +
- bigrect.min.x, y+bigrect.min.y) etc. Ummm...
-
-
- 16-May-1994
-
- Added a different version of Shell_AddPlainRect called
- Shell_AddPlainGreyRect. This is identical to a normal plainrect, except when
- you save it, Shell creates a 256-colour sprite with a grey-scale palette.
- I did this so I could export useful sprites for including in documents -
- previously, I had used large Shell_blockrects so that the ESG-ing would give
- ~256 greys, but these got a bit big (1-2 MB!). Now you can display small
- blockrects, save them as a grey-sprite, and include magnified versions of
- them in Draw or wordprocesser files. (Can you tell it's write-up-thesis
- time?). Note that this will only work well if the shellrects inside the
- plaingreyrect use ColourTrans_SetGcol etc instead of Wimp_SetColour. DeskLib
- makes it very simple to use ColourTrans so this is not a big problem.
-
-
-
- 18-May-1994
-
- Changed the headers to do a
-
- #ifndef __dl_wimp_h
- #include "DeskLib:Wimp.h"
- #endif
-
- to speed compilation.
-
- Also changed the order of #includes in Shell.*.c so that the simpler headers
- are included first (e.g. <*.h>, "DeskLib.*.h", "Shell.*.h". This way, headers
- are never loaded twice, but source files don't have to do any #ifndef
- __dl_wimp_h etc. Of course, most headers have #ifndef __dl_wimp_h, #define
- ... ... #endif, but this method still involves loading the header file from
- disc so is slow.
-
-
-
- 18-May-1994
-
- Altered the makefile to use -fah flags for cc. These check for variables
- being used before they are set etc. Added macro #define UNUSED(x) (x)=(x) to
- Shell.Shell.h as many functions don't use dome of their parameters, which
- causes a warning from Desktop CC.
-
-
-
- 19-May-1994
-
- Tidied up the Shell_AddPlainRect/Shell_AddPlainGreyRect code.
-
-