home *** CD-ROM | disk | FTP | other *** search
/ APDL Public Domain 1 / APDL_PD1A.iso / program / c / desklib / docs / Updates < prev   
Encoding:
Text File  |  1995-01-14  |  34.0 KB  |  866 lines

  1. Updates between DeskLib versions:
  2.  
  3. 2.14 (January 1995) ----------------------------------------------------------
  4.  
  5. AMENDED
  6.   File
  7.     File_Size now returns zero if the file does not exist
  8.  
  9.   Kbd
  10.     Kbd_Keydown() now uses return value from r1 instead of r2; this doesn't
  11.     affect its normal use ('negative INKEY'), but allows it to be used to scan
  12.     for a range of keys with 0 < R1 < 128.
  13.  
  14.   Mem
  15.     Fixed a bug where the heap could be corrupted when merging blocks as
  16.     stuff was freed.
  17.  
  18.   Menu
  19.     NewMenu can now cope (under RO3.10 onwards) with indirected titles, so
  20.     you may now pass in strings longer than 12 chars to this method.
  21.     RemoveItem has been upgraded to handle menus including indirected titles
  22.     (thanks for that marvellous bodge, Acorn)
  23.  
  24.   Wimp.h
  25.     Added some RISC OS 3 flag bits to the window and menu flags
  26.     Added iconization rpotocol message structures
  27.  
  28.  
  29. ADDED
  30.   Icon
  31.     Icon_WhichRadioInESG - much the same as WhichRadio, but the icons to
  32.     scan are specified with an ESG value rather than a range of icon handles
  33.     Icon_ButtonIsHeld - returns TRUE if a mouse button is down.
  34.  
  35.   Menu
  36.     Added functions to provide a menu of available fonts.
  37.     Menu_MakeIndirected - Makes a menu item indirected
  38.     Menu_ReviseWidth - Re-scans the menu and sets its width to accomodate
  39.     the text of the title and all items (use after SetText or MakeIndirected)
  40.     Menu_FullDispose - Disposes of a menu, including indirected data (but does
  41.     not dispose recursively of attached submenus)
  42.     Menu_PopUp and PopUpAuto - for showing a popup menu to the right of
  43.     a given icon.
  44.  
  45.   Resource
  46.     resource_sprites now point at your global sprite resources. This defaults
  47.     to the WIMP sprite pool, but can be set to local resources by using the
  48.     new Resource_LoadSprites call.
  49.  
  50.   Templates
  51.     Template_LinkSpriteArea - Links a given template to a given sprite area
  52.  
  53.   Window
  54.     Window_ForceRedraw - a veneer for force redrawing part of a window
  55.     Window_SetExtent   - sets the window extent, and re-opens it if necessary
  56.     to make the window screen appearance update
  57.     Window_GetCoords   - a simple means to fill in the coords_convertblock
  58.     for a given window
  59.  
  60.  
  61. 2.12 (October 1994 - unreleased) ---------------------------------------------
  62.  
  63. AMENDED
  64.   Headers
  65.     Several headers have had tiny changes applied to be compatible with
  66.     c++ compilation - mainly replacement of reserved words such as new,
  67.     delete, template, etc.
  68.     Headers changed are: Filter, PDriver, WimpSWIs
  69.  
  70.   Str
  71.     Str.s.strcatcr rewritten. Now more efficient, and works properly.
  72.  
  73.   Sprite
  74.     Bug in WimpPlot fixed (was using 16 bytes at a random address, rather
  75.     than on the stack, for workspace!)
  76.  
  77.   Time
  78.     MonoTime made marginally more efficient (STM/LDM -> MOV)
  79.  
  80.   WAssert.h
  81.     Fixed the comments slightly. Now defines the assert macro if _DEBUG
  82.     is *defined*, as it should, rather than when it is not defined!
  83.     assert() Macro corrected.
  84.  
  85.   Wimp
  86.     Renamed all the object files to useful names
  87.     Veneers that used to stack r14 only over the SWI call now save it in
  88.     the ip register; this replaces 2 LDM instructions with MOVs - marginally
  89.     more efficient.
  90.  
  91.  
  92. ADDED
  93.   EventMsg
  94.     Fixed the EventMsg dispatcher so that message handlers may deregister
  95.     themselves during handling of a message without causing the message
  96.     dispatcher list scanner to jump immediately into hyperspace.
  97.  
  98.   File
  99.     Added the File_GetType code which was accidentally missed out last time
  100.  
  101.   Icon
  102.     Added IncDec.c which provides two new functions, Icon_InitIncDecHandler 
  103.     and Icon_ReleaseIncDecHandler. These attach automatic Event_ handlers
  104.     which change the integer value of a writable icon whenever left/right
  105.     or up/down bump icons are clicked. See Icon.h and Examples.!IncDec
  106.  
  107.     Added AlterValidation function - this allows you to write a new string
  108.     over the existing validation string; useful for changing border types
  109.     and suchlike
  110.  
  111.   Pointer
  112.     Added 4 routines to restrict the mouse pointer to a rectangle, a window,
  113.     and an icon, and to 'free' such a captured pointer again.
  114.     Examples.!TestApp now restricts the pointer while the hourglass is going
  115.     The hourglass now runs for 2 seconds rather than 1 in order to make it
  116.     easier to detect the restriction by waggling the mouse around.
  117.  
  118.   Sprite
  119.     Added Sprite_LoadFiles function, which uses varargs to allow you to
  120.     load multiple sprite files in one go
  121.  
  122.   Window
  123.     Window_ConstrainMouse - to constrain the mouse pointer within a window
  124.     (a convenient macro for a Pointer_ call)
  125.  
  126.  
  127. REMOVED
  128.   Examples.Pane was old code, incompatible with version 1.02 of the Pane
  129.   sublibrary. This has been removed.
  130.  
  131.  
  132.  
  133. 2.11 (August 1994) -----------------------------------------------------------
  134.  
  135. AMENDED
  136.   File
  137.     ** Changed all FILETYPE_ definitions to filetype_ for consistency
  138.     File_Exists now reads the object type of the file to determine if it
  139.     exists, rather than just attempting to open it.
  140.     File_Size now uses OS_File 17 rather than 13
  141.  
  142.   Icon
  143.     Icon_FileIcon filename formatting string amended
  144.  
  145.   Save
  146.     Sublibrary significantly improved and bugfixed- see Save.h and Save.c
  147.  
  148.   Sprite
  149.     SpriteOps 43 (ReadMask) and 47 (FlipY) calculated the SpriteOp reason
  150.     code incorrectly (SUB instead of ADD?!)
  151.     SpriteOps 52 (PlotScaled) and 62 (ReadSaveAreaSize) corrected
  152.  
  153.   Str
  154.     LeafName now also recognises ':' as a leafname separator, so it now
  155.     works on paths (e.g. "MyPath:Templates" now returns the leaf properly)
  156.  
  157.   Wimp
  158.     Now contains a definition for message_dataloadack (identical to dataload)
  159.     icon_indsprite now uses a (void *) as its sprite area pointer rather than
  160.     an (int *). It should use sprite_area, but (void *) was chosen to avoid
  161.     a dependency upon the sprite header (Wimp takes long enough to parse as
  162.     it is)
  163.  
  164.  
  165. ADDED
  166.   Clear
  167.     This new sublibrary provides base functions for handling Clear files
  168.  
  169.   File
  170.     Added prototype for existing File_Date function
  171.     New File_printf function
  172.  
  173.   Handler
  174.     New function Handler_Key to return unwanted keypresses to the Wimp
  175.  
  176.   KernelSWIs
  177.     Added OS_ReadModeVariable veneer
  178.  
  179.  
  180.  
  181. 2.10 (June 1994) -------------------------------------------------------------
  182. MOVED
  183.   I've moved !TestApp into the new Examples directory
  184.  
  185.  
  186. AMENDED
  187.   My contact addresses mysteriously changed, coincidentally at the same time
  188.   as I moved to England and started working at Computer Concepts.
  189.   See the end of 'AboutDL' for my new addresses.
  190.  
  191.   Doc.Blanks.Makefile
  192.     Updated this for the new make system (I missed it the last time around)
  193.  
  194.   Core
  195.     BOOL is now an unsigned rather than signed int, to allow 1-bit BOOL
  196.     bitfields.
  197.  
  198.   Coord
  199.     Changed to new help-comment format comments
  200.  
  201.   Dialog
  202.     A couple of bugfixes to the dialogue code
  203.  
  204.   Event
  205.     Fixed bug in NULL event handling (NULL events were not included in
  206.     event_ANY claims, but were in included in event_ANY releases, so were
  207.     often disabled when they should not have been).
  208.     event_ANY now definitely does NOT include NULL events, 'cos they're special
  209.  
  210.     **** IMPORTANT ****
  211.     Claims of events for any window (with event_ANY) are now added to the
  212.     HEAD of the event list rather than the TAIL. This means that you can add
  213.     a temporary event OVERRIDE to a window - the old system meant that you
  214.     could only intercept events that were not otherwise already processed
  215.     by the window.
  216.  
  217.   File
  218.     Fixed File_Delete (to save registers v1, v2 over the SWI call)
  219.  
  220.   Icon
  221.     Icon_GetText has been slightly modified so it won't blow up if you have
  222.     an indirected icon which does not contain text or a sprite. It now also
  223.     terminates the string at the first control character discovered, rather
  224.     than expecting the string to be zero terminated
  225.  
  226.     Icon_SetText, Icon_printf, Icon_SetTextRJ, Icon_SetInteger, Icon_SetDouble
  227.     now all ensure that when setting the text in an icon containing the caret,
  228.     the caret is not left in the wrong place
  229.  
  230.   Handler
  231.     Minor change (all functions now include handler.h)
  232.  
  233.   Misc
  234.     All strong handling functions have moved to the new 'Str' sublibrary
  235.  
  236.   Mem
  237.     Mem_MidExtend now returns TRUE if you ask it to extend by 0 bytes, so
  238.     you shouldn't have to special-case this case any more.
  239.  
  240.     Several serious bugs ironed out of Mem_Compact
  241.  
  242.   Menu
  243.     Small changes to NewMenu.c to calculate MenuWidths better, and not
  244.     indirect menu items if they are exactly 12 characters long.
  245.  
  246.   StringCR.h
  247.     All definitions from this file are now in the new 'Str.h' header.
  248.     StringCR.h remains for backwards compatability.
  249.  
  250.   Template
  251.     Fixed rampant bug in template ClearAll and Delete (trying to free memory
  252.     that wasn't malloc'd!)
  253.     ClearAll also now releases any fonts that were in use by the discarded
  254.     templates.
  255.     Template loading now truly appends templates to the current list rather
  256.     than destroying the old list.
  257.  
  258.   Window
  259.     Window.h now includes a prototype for Window_BringToFront
  260.     Added open_CENTEREDUNDERPOINTER open mode for Window_Show
  261.     Window_Delete now also releases all EventMsg claims
  262.     Window_Create now returns 0 if it fails
  263.  
  264. ADDED
  265.   Added Erik de Kort's small OpenDirH program to !DeskLib, so now double-
  266.   clicking !DeskLib opens the headers without obscuring the icon bar.
  267.   (RISC OS 3 only. If you haven't got RO3, upgrade)
  268.  
  269.   Added Docs.HelpCommnt and Blanks.HelpCommnt.*
  270.   This describes how to generate machine-readable comments in your sources
  271.   that can be compiled with Tim Browse's up-coming help compiler. The help
  272.   will then become an on-line hyperlinked database (StrongHelp or WordWorks
  273.   HyperView) rather than scrappy bits of text spread over hundreds of
  274.   header files.
  275.  
  276.   ColourTrans
  277.     Added veneer for ColourNumberForMode SWI
  278.  
  279.   Coord
  280.     Added RectUnion
  281.  
  282.   Core.h
  283.     Added UNUSED_ARG, MIN, MAX, and OSCLI macros
  284.  
  285.   Dialog
  286.     Addition of Hide and ShowAt functions
  287.  
  288.   Drag sublibrary
  289.     This simplifies dragging by providing a central handler system, into which
  290.     you can plug handlers specific to each drag when the drag is started.
  291.     These handlers are automatically discarded when the drag completes.
  292.     This addition includes the Event handlers DragNULL & DragFinish, and
  293.     the stuff in the Drag sublibrary (Drag_Initialise, Drag_SetHandlers)
  294.     See Drag.h for details.
  295.  
  296.   File
  297.     Added File_Date and File_SetType
  298.  
  299.   GFX
  300.     Added GFX_GCOL macro
  301.  
  302.   Handler_HatchRedraw.
  303.     This redraws a hatch pattern across a window. Useful when developing a
  304.     program but haven't written a redraw handler, so you can see that
  305.     something is happening.
  306.  
  307.   Hourglass
  308.     The hourglass swi veneer macros (in hourglass.h) have now been replaced
  309.     by proper SWI veneer functions.
  310.  
  311.   Icon
  312.     Icon.SetCol, two small functions to set the foreground and background
  313.     colours of a (non-outline-font) icon.
  314.  
  315.     Icon_SetTextRJ; similar to SetText, but right-justifies the text in the
  316.     icon string buffer (i.e. if the string is too long, it is truncated at
  317.     the beginning rather than at the end)
  318.  
  319.     Addition of the following code files by Tim Browse:
  320.       BarIconUse
  321.       FileIcon
  322.       GetBgCol
  323.       GetFgCol
  324.       GetTextPtr
  325.       ScreenPos
  326.       SelectGroup
  327.       ShadeGroup
  328.  
  329.   Kbd
  330.     Added GetModifiers function, which reads the up/down state of modifier
  331.     keys (Alt, Ctrl, Shift)
  332.  
  333.   KernelSWIs
  334.     Added this sublibrary, which provides veneers for OS_Byte and OS_Word
  335.  
  336.   Mem
  337.     Added Mem.CheckHeap, a function for debugging which checks the
  338.     integrity of the heap.
  339.  
  340.   Menu
  341.     Menu.GetText: A function that returns a pointer to a menu item text buffer
  342.  
  343.     Menu.GetFlags: A function to read a menu item's flags
  344.  
  345.     Menu.Warn: A function that registers a message_MENUWARN handler with
  346.     EventMsg, and sets a menu item's flags to make it produce such a message.
  347.  
  348.     Menu.RemItem: A function to remove an item from an existing menu structure
  349.  
  350.   Module
  351.     A new sublibrary supporting the OS_Module SWI.
  352.     Currently provides OS_Module Claim and Free functions
  353.  
  354.   PDriver
  355.     PDriver.h now has a more constants defined, tidier comments, & RO3 support
  356.  
  357.   Save
  358.     A save-as window handler sublibrary
  359.  
  360.   Serial
  361.     Veneers and handlers for accessing the serial port - see Serial.h
  362.  
  363.   Sprite
  364.     A whole heap of new veneers, plus Sprite_LoadFile
  365.  
  366.   Str
  367.     New String sublibrary. This includes all the 'StringCR' stuff, plus
  368.     some new ANSI-like string handlers, plue LeafName (returns the leaf
  369.     name from a full RISC OS pathname string) and other functions such
  370.     as decoding hexadecimal strings, etc. See Str.h for details.
  371.  
  372.   Template
  373.     Added Template_UseSprites function; Call this before using templates
  374.     to make them use sprites from a user sprite area instead of the
  375.     WIMP sprite pool
  376.  
  377.   Time
  378.     Added SWI veneers for time conversions ConvertDateAndTime and
  379.     ConvertStandardDateAndTime.
  380.  
  381.   WAssert
  382.     A new sublibrary providing a WIMP (Wimp_ReportError) based assertion
  383.     system (Used while developing a program to check if certain conditions
  384.     that should be met in your code actually ARE being met in your code).
  385.     See WAssert.h for details of its use.
  386.  
  387.   Wimp
  388.     Added mouse button value constants (button_SELECT etc) to Wimp.h
  389.  
  390.  
  391.  
  392. 2.05 (inadvertently released ?) ----------------------------------------------
  393.  
  394. ADDED
  395.   Kbd
  396.     Kbd_GET, an OS_ReadC veneer, similar to BASIC's GET command - returns the
  397.     ASCII code of the next keypress in the keyboard buffer (or waits for
  398.     the user to press a key if the buffer is empty)
  399.  
  400. AMENDED
  401.   DragASprite
  402.     DragASprite_DragIcon now works properly under RISC OS 2 as well as 3.
  403.     It turned out the parent bounding box maximum was being set to &FFFFFFFF
  404.     (-1) instead of &7fffffff (the maximum possible positive integer).
  405.     Under RO3 this didn't matter, but RO2 then put the drag box offscreen
  406.     (i.e. it worked fine except the dragbox was 'invisble'!
  407.  
  408.   PDriver.h
  409.     The prototype for EnumerateJobs was missing its argument!
  410.  
  411.   Window
  412.     Window.c.ParentName fixed (was copying only 8 characters of the name
  413.     instead of 12 (wimp_MAXNAME)).
  414.  
  415.  
  416. 2.04 (July 1993) -------------------------------------------------------------
  417.  
  418. Updated the !DeskLib !Run file - now uses Filer_CloseDir on the header dir.
  419. before trying to open it, so that it is now never lost off-screen.
  420.  
  421. Added Wimp_ReportErrorR, which returns the flags to you indicating which
  422. button (OK/Cancel) on the Wimp_ReportError dialogue was clicked by the user.
  423. (source in WimpSWIs.s.Wimp40R). See WimpSWIs.h
  424.  
  425. Added Wimp_Poll3 and Wimp_PollIdle3.
  426.  
  427.  
  428. 2.03 (July 1993) -------------------------------------------------------------
  429.  
  430. Important - Please note that Event_ and Wimp.h now support more RISC OS 3
  431. functionality. Specifically, Wimp_Initialise has a new parameter (message
  432. list) on the end - to re-link with this version of the library, you will need
  433. to upgrade any Wimp_Initialise calls in your code (add a NULL onto the end of
  434. the list of parameters to Wimp_Initialise). You can of course take this
  435. opportunity to upgrade your code to use the new features the RISC OS 3
  436. makes available. Note that you'll also need to use LibFile to re-make the
  437. WimpLib if you use it separately.
  438.  
  439. Along similar lines, you can now call Event_Initialise3() in place of
  440. Event_Initialise to do a proper RISC OS 3 Wimp_Initialise, passing in a
  441. list of accepted messages, etc. Event_Initialise provides the same (RISC OS 2)
  442. functionality as before.
  443.  
  444.  
  445. MISCELLANEOUS modifications
  446.   Modified the Libraries.!MakeDLib obey file. Each sublibrary is now compiled
  447.   by invoking an alias 'DLibMake', which makes the file shorter and more
  448.   readable, and also allows you to more easily modify the way in which
  449.   sublibraries are compiled.
  450.  
  451.   Modified the Clean obey files - they now won't abort if a file is missing.
  452.  
  453.   Modified the Makefiles to make everything tidier.
  454.   Now, in the obey file Libraries.!MakeDLib, you can set 3 amu variables:
  455.     x_cflags - c compiler extra flags
  456.     x_aflags - objasm extra flags
  457.     do       - What to do to create the sublibrary
  458.  
  459.   This allows you to do some important things:
  460.     x_cflags=-Ff
  461.       This is the new default, which reduces the library code size by about 5%.
  462.       However, when debugging, you may like to recompile the library with the
  463.       'f' removed, so that you can find the names of the functions being
  464.       called as you debug.
  465.  
  466.     do="Create $@ 1"
  467.       This will minimise disc space used by the library (by creating 1-byte
  468.       'sublibraries' instead of compiling them properly - the file is needed
  469.       so amu knows the sublibrary is up to date)
  470.  
  471.     do="LibFile -c -o $@ @.o.*"
  472.       This will create each sublibrary - you can then use the sublibrary files
  473.       to link with instead of the main DeskLib library (eg WimpLib is quite
  474.       handy on its own, and is only 18kB rather than DeskLib's >100kB, a very
  475.       useful thing if you're developing of floppies!)
  476.  
  477.  
  478.   Updated the TestApp- now does the following extra things:
  479.     * Uses outline fonts, and gets them right if you change screen modes
  480.     * Changes the window title if you click the menu item 'Change title'
  481.       when you brought the menu up from a window (else that item is shaded)
  482.  
  483.  
  484. BUGS which have been fixed:
  485.   Font
  486.     Fixed a major set of bugs due to a small and harmless-looking typo in the
  487.     Font sublibrary - most of the font calls would return a non-zero value
  488.     if no error occurred, and a zero value if an error occurred (i.e. the
  489.     opposite of what they should have been doing: MOVVS r0, #0 instead of
  490.     MOVVC r0, #0)
  491.     This affects most font calls, but you'll only notice a difference if you
  492.     check the returned error - the SWIs worked fine, but returned incorrect
  493.     error-return-values - all other return values were unaffected.
  494.  
  495.   ColourTrans, DragASprite
  496.     Similar problems were also removed from the assembler veneers for the
  497.     ColourTrans, DragASprite, and PopUp sublibraries - namely that the return
  498.     values were not consistent with the definitions given in the headers.
  499.     I'll keep a closer eye on this in future!
  500.  
  501.   Icon
  502.     Icon_BarIcon, Icon_GetText, Icon_Set(Integer/Double/Text), Icon_printf
  503.     previously did not correctly terminate strings correctly if they were too
  504.     long to fit in the icon.
  505.     Icon_BarIcon now uses sprite_MAXNAME rather than wimp_MAXNAME for copying
  506.     the sprite name (though these constants are both 12, so there is no
  507.     effective difference)
  508.  
  509.   Menu
  510.     No longer trashes your machine with indirected menu items (Menu_New)
  511.  
  512.   PopUps
  513.     'bugs' removed from the PopUp.h header file's example code segments
  514.     SWI veneers fixed up - they didn't quite correspond to the prototypes
  515.     given in the headers.
  516.  
  517.   Template_Clone
  518.     Now terminates copied strings properly.
  519.  
  520.  
  521. MODIFICATIONS
  522.   Error
  523.     Upgraded OtherSrc.c.Error and Error.h to new code submitted by P.Colmer.
  524.     Now Error_Report and Error_ReportFatal (and "Internal" versions of these)
  525.     take variable arguments - they can still be used exactly as before, but
  526.     you can now include any 'printf' style arguments to save having to
  527.     pre-assemble a string to pass in.
  528.  
  529.   Event
  530.     Upgraded Event_Initialise to call the new function Event_Initialise3
  531.     with a required WIMP version of 200 (RISC OS 2 WIMP), to add support
  532.     for RISC OS 3, and the new non-zero-pollword events.
  533.  
  534.   Resource
  535.     This has now been moved from Misc to its own (Resource) sublibrary.
  536.     Also added replacement call for Resource_Initialise,
  537.     Resource_InitialisePath, which allows you to use DeskLib functions
  538.     to load Templates, messages, etc. from a path ("AppName:Templates")
  539.     rather than a directory ("<AppName$Dir>.Templates") - useful for adding
  540.     support for internationalisation.
  541.  
  542.   Template
  543.     Added support into Template_Clone for a new 'maxtitlesize' value of
  544.     template_TITLEMIN (-1) which will allocate as much room for the title
  545.     as declared in the template definition.
  546.  
  547.     Added support for outline fonts into Template loading.
  548.     (See the end of Template.h for details of the new calls)
  549.  
  550.   Template, Handler, Window
  551.     Added code to fix any windows/templates you are using which contain icons
  552.     using outline fonts whenever a mode change necessitates it (On some mode
  553.     changes outline fonts will otherwise become the wrong size as the font
  554.     manager doesn't re-cache them).
  555.  
  556.     This functionality required addition of:
  557.     Font.c.LoseAll         Lose all fonts in a Template_Load style font
  558.                            usage array
  559.     Handler.c.ModeChange   Replacement for old ModeChange handler - does the
  560.                            same as before, but if you are using outline fonts
  561.                            (you have called Template_UseOutlineFonts()) it
  562.                            fixes all your fonts if necessary. Note that this
  563.                            only works on templates loaded with Template_ calls
  564.                            and windows opened with Window_ calls.
  565.     Template.c.UseOutFont  Function to call BEFORE Template_LoadFile to set up
  566.                            a font usage array and exit-handler to lose any fonts
  567.                            you were using.
  568.     Window.c.ModeChange    Function to call to fix outline fonts in all windows
  569.                            and templates. Called by Handler_ModeChange()
  570.  
  571.     Appropriate changes have been made to the relevant header files.
  572.  
  573.   Wimp SWI veneers
  574.     WimpSWIs.s.Wimp01 (Wimp_Initialise) has now been modified to support
  575.     the new RISC OS 3 parameter (the message list). This call is still
  576.     RISC OS 2 compatible, but those of you calling Wimp_Initialise directly
  577.     will need to add a NULL onto the end of your initialise call, e.g.
  578.       Wimp_Initialise(&version, "MyTask", &taskhandle);
  579.     will become:
  580.       Wimp_Initialise(&version, "MyTask", &taskhandle, NULL);
  581.  
  582.   Window
  583.     As well as the additions mentioned in the bit above,
  584.     changes have also been made to the internal window information structure
  585.     as used by the Window.c files. (The window template name is now
  586.     WIMP_MAXNAME+1 characters long (13) rather than 9 characters long)
  587.  
  588.  
  589.  
  590. ADDITIONS
  591.   Event
  592.     Added Event_Initialise3() to Event.c.Event. This more or less replaces
  593.     Event_Initialise with a new call that will initialise the RISC OS 3 WIMP
  594.     and allow you to pass in the list of desired messages. You should not use
  595.     Event_Initialise with WIMP version numbers greater than 200 - use
  596.     Initialise3 instead. [If you desire RISC OS 2 compatability, you MUST
  597.     call Event_Initialise]
  598.     This also allows the support for non-zero pollword events now available
  599.     under RISC OS 3. Thanks to P.Colmer.
  600.  
  601.   File
  602.     Added File sublibrary, which gives calls for opening, closing, reading and
  603.     writing (bytes, words, words with endian-conversion, chunks),
  604.     getting/setting the file position, and misc operations (reading file size,
  605.     deleting a file, checking if a file exists). These are all veneers for
  606.     OS_File/GBPB/BGet SWIs, and may be preferable to stdio functions in some
  607.     circumstances, as they are faster than stdio calls, and also are easier
  608.     to use in conjunction with other systems that work with RISC OS file
  609.     handles (rather than C's (FILE *))
  610.  
  611.     Added some test code for File_ calls to TestApp. This test code can be
  612.     found in "!TestApp.Test c" - you can add it back into the test app if you
  613.     feel keen to try it out! It also might be of use as an example of use of
  614.     the file calls, though they're pretty simple!
  615.  
  616.   GFX
  617.     Added GFX_VDU (and alias VDU), an OS_WriteC veneer
  618.  
  619.   Mem
  620.     Added Mem_MoveAnchor, which allows you to move the anchor for a memory
  621.     chunk into another variable. Very convenient in some circumstances
  622.     (i.e. I had an anchor in an array, and wanted to allocate a new chunk,
  623.      and some time later replace the old chunk with it in the array - this is
  624.      now possible by simply moving the anchors for the two blocks into new
  625.      storage locations as appropriate)
  626.  
  627.   PopUps
  628.     Added Docs.ModuleNote.PopUps which gives a bit more help and example code
  629.     on using PopUp windows from DeskLib C code.
  630.  
  631.   Sprite
  632.     Added 3 new Sprite functions - a veneer for SpriteOp 62 (read save area
  633.     size) and functions to return the size (in bytes) of a sprite, given its
  634.     vital parameters, and the size of a sprite needed to fill a window's icon.
  635.     Thanks to Tom Kirby-Green for this submission.
  636.  
  637.   Wimp.h
  638.     Wimp.h has been upgraded: icon_flags now include a third struct in
  639.     the union which allows you to directly access the font handle with
  640.     icon.font.handle instead of having to mask it out of icon.value
  641.  
  642.     Wimp.h now has extra support for RISC OS 3, relating mainly to wimp
  643.     pollwords and non-zero pollword events. Some new event mask bit
  644.     definitions have been added.
  645.  
  646.   Window
  647.     Added Window.c.SetTitle, which allows you to set the text of a window title
  648.     and update the correct bit of the screen, even when using odd sized
  649.     toolsprites, etc. (And better than win_settitle because it doesn't crash if
  650.     the icon is non-indirected, it bothers to terminate the string if it had
  651.     to truncate it to make it fit, and it doesn't try to force redraw part of
  652.     the screen if the window isn't actually OPEN!)
  653.  
  654.     Also added Window_ModeChange, as described above (Modifications to
  655.     Template)
  656.  
  657.  
  658. 2.01 (May 1993) --------------------------------------------------------------
  659. Apologies to all DeskLib users out there for the long (1 year) delay between
  660. releases, and for all the bugs and missing bits in the library. This delay
  661. was caused by my thesis and other things taking too much of my time. I hope
  662. that I will be able to continue DeskLib updates at a more reasonable pace
  663. in the future... I have jumped from version 1.04 to version 2.00 to reflect
  664. the reasonably large update, to stress the newness of this version, and
  665. to make you feel as if something must have been done between this and the
  666. last release! ;-)
  667.  
  668. Note that although DeskLib is now supporting RISC OS 3 functions, it is still
  669. RISC OS 2 compatible. Also, some things (such as Wimp_Initialise under RISC
  670. OS 3) have not yet been implemented, mainly due to a total lack of any
  671. documentation on the subject. This will hopefully change for the better in
  672. the not too distant future...)
  673.  
  674. Apologies to anyone who needs to adjust their code because of changes to the
  675. library headers. These changes were deemed necessary for one or more of the
  676. following reasons in each case:
  677.   * To make it work!
  678.   * To remove unnecessary incompatabilities with compilers other than Desktop C
  679.   * (as a side effect) To improve consistency/readability
  680.  
  681. You can, of course, stick with the old definitions in the headers if you
  682. prefer them. Most people I know have their own random perturbations of the
  683. original header files anyway!
  684.  
  685.  
  686.   Additions
  687.     Added sublibraries:
  688.       ColTrans       Assembler interfaces to 4 ColourTrans SWIs
  689.  
  690.       DragASpr       3 Routines for using DragASprite
  691.                      I especially direct your attention to
  692.                      DragASprite_DragIcon() which is excellent!
  693.                      (c.f. macro "Icon_StartSolidDrag" defined in icon.h)
  694.                      
  695.       Filter         Assembler interfaces to RISC OS 3 FilterManager SWIs
  696.  
  697.       Font           Assembler interfaces to 23 Font SWIs
  698.  
  699.       Kbd            Assembler function to check if a key (e.g  SHIFT, CTRL)
  700.                      is currently depressed. (No function yet to cheer it
  701.                      up if it is, though ;-)
  702.  
  703.       Menu           Simple menu creation and manipulation functions along
  704.                      similar lines to those in RISC OS lib. (A proper menu
  705.                      template system is planned in conjunction with Glazier
  706.                      for the future, but I needed to fill this gap NOW!)
  707.  
  708.       Mem            'flex'-like dynamic memory manager for multitasking
  709.                      applications. However, 'better' than flex, as it
  710.                      compacts its heap much more efficiently than the
  711.                      equivalent operation from flex (you call the Mem_Compact
  712.                      function just before Wimp_Poll). It also guarantees
  713.                      that blocks will not move around to a much higher degree
  714.                      than flex does, giving you more freedom.
  715.  
  716.       Sound          Routine to sound a system beep (VDU 7!)
  717.  
  718.     Added functions to:
  719.       GFX            Added GFX_Write0() and GFX_WriteN()
  720.  
  721.       Icon           Added Icon_SetSelect(), Icon_SetShade(), and
  722.                      Icon_DisposeIndData()
  723.  
  724.       Misc           Added Dispatch(), a generic function dispatcher, and
  725.                      new stringcr functions (strcmpcr, strcatcr, strcpycr)
  726.  
  727.       Sprite         Added 6 new SWI veneers
  728.  
  729.     Added more definitions to:
  730.       KeyCodes.h
  731.  
  732.   Subtractions
  733.     The REDRAW (3-d icon border redraw) code has been discontinued because:
  734.       a) RISC OS 3.10 includes this feature for you, and
  735.       b) DeskLib actively supports RISC OS 3.10 onwards and no longer has
  736.          any sympathy for people without it! (though all non-RISC-OS-3
  737.          specific portions of it still work fine with RO2, this cannot be
  738.          guaranteed for the future)
  739.      For this reason, Icon_Select3d, Icon_Deselect3d, and Handler_Redraw3d
  740.      have also been removed.
  741.      If you have code which uses any of the above, then either copy them
  742.      forward from your old DeskLib or convert your program to use RISC OS
  743.      3.10 borders!
  744.  
  745.  
  746.   BugFixes/Modifications
  747.     Generally:
  748.       Touched up the docs. PLEASE NOTE my change of email address!
  749.  
  750.       Rewrote all the makefiles. Now much smaller, tidier, and easier to both
  751.       understand and maintain, as well as more informative during Makes.
  752.       Redirected LibFile through a 'via' file (!Objects).
  753.       (It's wonderful what you can find out by reading the manual ;-)
  754.  
  755.       Moved "Template.c.strlencr" to "Misc.c.strlencr" (see strlencr.h, below)
  756.  
  757.       Slightly improved some of the Docs and quickrefs.
  758.  
  759.     Coord:
  760.       Fixed some stunningly obvious and totally wrong prototypes and
  761.       #defines in Coord.h, particularly the Coord_YTo... macros.
  762.  
  763.     GFX:
  764.       Most GFX commands have been converted to more efficient assembler
  765.       versions. The header reflects slight changes (e.g. GFX calls now no
  766.       longer return os_errors).
  767.       Fixed a harmless bug in GFX_CLG.
  768.       Made some GFX macros in GFX.h a bit nicer to read
  769.       Fixed GFX_Circle and GFX_CircleFill (used to use x+r instead of r!)
  770.  
  771.     Handler.ClickOK.c:
  772.       Now doesn't do anything if icon clicked with MENU.
  773.  
  774.     Icon:
  775.       BarIcon.c fixed to take icon size from the sprite correctly
  776.       Macro Icon_StartSolidDrag added as an alias for DragASprite_DragIcon
  777.       SetDouble modified to correctly fill in the right number of decimal
  778.       places.
  779.       SetCaret will now refuse to place the caret into a shaded icon.
  780.  
  781.     LinkList.h:
  782.       InitItem macros added - now use Init() to init an anchor and InitItem()
  783.       to init an item, which will make it easier to replace the workings of
  784.       the list manager seamlessly.
  785.       Also modified these macros so that they will function corrrectly in the
  786.       following code:
  787.         if (whatever)
  788.           LinkList_InitItem(blah);
  789.       Redefined LinkList_{Next|Previous}Item() to make them nicer to use -
  790.       instead of using LinkList_NextItem(&thing.header), you can now use
  791.       LinkList_NextItem(&thing); (note that both syntaxes are fine now)
  792.       The Makefile for ListLib now also includes ListLength.c
  793.  
  794.     Misc Resource.c:
  795.       Now adds terminator to string after strncat to ensure that the string
  796.       is terminated if you supply too long a name.
  797.  
  798.       **** Important
  799.       strlencr has been moved into the Misc sublibrary.
  800.       strlencr() has been modified to make it functionally equivalent to
  801.       the ANSI function strlen() - that is, it now returns a value 1 LESS
  802.       than it did under 1.04 (i.e. it doesn't include the terminator any more)
  803.       All routines within DeskLib which use this function have been modified
  804.       accordingly.
  805.  
  806.     Sprite:
  807.       Sprite.h tidied up, and parameter types slightly modified. 'sprite' and
  808.       'sprite_area' pointer typedefs fixed (previously used old names for the
  809.       definitions, so were totally incorrect)
  810.  
  811.     strlencr.h
  812.       This has been renamed to 'stringcr.h', and now includes more than one
  813.       cr-terminated string handling function. (Correspondingly, a slight
  814.       modification of Template.h.TemplDefs to #include this new header)
  815.  
  816.     Wimp.h:
  817.       window_ICONBAR changed from -1 to -2
  818.       message_destinee changed to a 'typedef int' instead of a union
  819.  
  820.       window_block structure used to use shorts for minwidth and minheight.
  821.       This has been changed to minsize.x and minsize.y (both for consistency
  822.       and compatability with the Risc Developments compiler)
  823.  
  824.       window_flags structure modified to use the normal DeskLib form for
  825.       flag-words (flag.value plus flag.data.*)
  826.  
  827.       iconvalid_BORDERTYPE changed from 'B' to 'R' (RISC OS 3, 3.10 onwards)
  828.  
  829.       Added definitions for message_WINDOWINFO (used for iconisation)
  830.       and message_MENUSDELETED (warning when a menu is closed)
  831.  
  832.       Added windowcol_XXXX defines to make accessing a window's colours
  833.       easier (i.e. window->colour[windowcol_WORKBACK] = colour_RED)
  834.  
  835.       Added colour_TRANSPARENT (= 255)
  836.  
  837.       Added message_menuwarn structure definition
  838.  
  839.     WimpSWIS:
  840.       Several function prototypes changed. Some were prototyped as accepting
  841.       a union which contained either a data set or a 'value' int. Unfortunately
  842.       the compiler baulks at this, so these have been changed to 'int's. This
  843.       now means that you need to pass in 'whatever.value' to these functions.
  844.  
  845.       Added Wimp_CommandWindow prototype, which somehow got missed out
  846.       last time!
  847.       Wimp_DeleteWindow fixed (now actually deletes the window! Wow!) 
  848.  
  849.     Window:
  850.       GetInfo.c: '&block' changed to '&block[0]'
  851.       Show.c:    Showing a window with open_NEARLAST now modified to open
  852.                  the very first such window centered. Also, only windows
  853.                  opened with NEARLAST will now affect the position of
  854.                  succeeding NEARLAST windows.
  855.  
  856.     Template.Clone.c
  857.       Modified to use the new form of strlencr()
  858.  
  859.  
  860. 1.04 31/05/92 ----------------------------------------------------------------
  861.   BugFixes/Modifications:
  862.     A minus changed to a plus in Coord_Convert routine (should now work!)
  863.     Extra fields added to the menu_flagword struct
  864.     Incorrect definitions of message_Data(Load/Save/SaveAck) fixed
  865.       -replaced incorrect "wimp_box" with "wimp_point"
  866.