tbx  0.7.6
History/Changelog

0.7.6 March 2021

  • Removed Alpha from version as it has been used in distributed programs for over 10 years
  • Fixed subwindow alignment flags (from Serge Lenz)
  • Fixed monotonic_le/lt/ge/gt (bug raised by Serge Lenz)
  • Added Window add_all_key_listener to listen for key events on a Window and it's components
  • Added Window add_all_mouse_click_listener to listent for key events on a Window and it's components.
  • Added Object show_centred to show an object in the centre of the screen
  • Added Object show_at_pointer to show an object at the current mouse position
  • Added support for TreeView Gadget
  • Added support for Tabs Gadget
  • Added key_pressed function to check for current key presses
  • Added intersect method to intersect this bounding box with another to the BBox class.
  • Added inflate method to inflate in x and y directions independently to the BBox class.
  • Added operator bool() to check if the component has been initialised to the Component class.
  • const correctness fixes to Graphics and Loader class.
  • Added clip methods for setting/getting graphics clipping area to the OSGraphics class.
  • Support for the RISC OS global clipboard using the Clipboard class accessed through the clipboard() function.
  • Helper class MemoryLoader added to make it easy to create a Loader to load a block of data from another application.
  • Caret class to set and read wimp caret position
  • Improved area sizing in initialise() and load() SpriteArea methods
  • Added SpriteArea clear method to remove internal memory and return the sprite area to an uninitialised state.
  • Added Window focus method to set the focus to an invisible caret in the window.
  • Moved tbx exceptions, PThreadGuard and ResIteratorBase to the tbx namespace.
  • Doxygen generated documentation fixes
  • Remove intermediate build files in package generated by GCCKSDK autobuilder

0.7.5 Alpha July 2019

  • Added URI class to launch URIs using the Acorn URI module.

0.7.4 Alpha March 2016

  • Added Font::handle() to return RISC OS font handle
  • Added fpcs namespace with function to create font paint control sequences
  • Added FontItemRenderer to render items with a given font
  • Added common and wimp colours to Colour class enum
  • Added Menu/MenuItem submenu and selection listeners
  • Added DeleteClassAndObjectOnHidden listener
  • Fixed hang when saving a TagDoc where a node had attributes
  • Added GadgetListView class to handle a list made up of one or more gadgets on a line
  • Added copy_gadget_value function to copy the main value between gadgets of the same type
  • Added Gadget toolbox_class and toolbox_class_and_size methods
  • Added new class LockExtentPosition to keep gadget edges locked to the side of the windows extent
  • Fixed memory leak in show_message/show_message_as_menu and class MessageWindow
  • Added close_command method to show_message/show_message_as_menu and class MessageWindow to set a command to be run when the message window is closed.
  • Added TaskWindow class to run a child task using the RISC OS TaskWindow command

0.7.3 Alpha December 2014

  • Added Path::temporary() method to return a temporary path in the Wimp scrap directory.
  • Added ext namespace for classes that access third-party applications/modules.
  • Add StrongHelp class to ext namespace to help using the StrongHelp help system.
  • Added OleClient class to the ext namespace to help using OLE editing.
  • Added PThreadGuard class to disable threading around wimp poll and event processing when using pthreads to prevent crashes caused by interrupting event processing.
  • Added prepoll and post event listener to application (used by PThreadGuard)
  • Fixed plotting of 16M colour sprites to any other mode caused a crash due to a bug in the TranslationTable class.
  • Added SpriteArea::set and get_sprite(OsSpritePtr) to allow easier passing of a sprite area/user sprite to the TBX classes.
  • Fixed bug where PropertySet set bool method went into an infinite loop
  • Fixed display of all buttons with default styling after the first one was set in the message window.

0.7.2 Alpha March 2014

  • uncaught_exception method added to application to allow user processing of this error condition
  • Added Font::read_details to get the details of a font
  • Added Application::yield to allow multi-tasking in the middle of a long operation
  • Fixed possible memory corruption when removing idle commands from within a running idle command
  • Added TaskManager class to interrogate running tasks

0.7.1 Alpha December 2013

  • Window::remove_gadget now removes all listeners for the gadget
  • Fixed Window::title() always threw an exception
  • Fixed crash in Font copy constructor
  • Added string bounds and size methods to Font and made some of the existing methods const
  • Added stringviewvalue.h header with template classes to always return ItemViewValues as string as required by the WimpFontItemRenderer. It uses tbx::to_string to convert the item type to a string.
  • stringutils.h added overrides to to_string for simple conversion of char * and const std::string & types.
  • added UserSprite iterator to SpriteArea class
  • Replaced ModeInfo set/get mode methods with mode() and mode(int) to be consistant with other tbx setters and getters
  • Added static method ModeInfo::screen_mode to return the mode specifier for the current mode.
  • Window::update background redrawer made optional
  • VisibleArea::screen(Point) fixed bug where it converted the point given to work area co-ordinates instead of screen coordinates.
  • UserSprite::area_id did not return the correct value
  • Window::DragSpriteFlags added DSFLAG_SOLID for solid drags
  • Path::raw_path_info and PathInfo::read_raw added to get raw load/executable address for a file
  • Fixed UserSprite::create_mask to stop it corrupting the internal sprite pointers. The sprite was unusable unless it was reobtained using SpriteArea::get_sprite
  • Fixed conversion operators and other minor bugs in tbx::Fixed16
  • added showing() method to Object
  • ItemView updates_enabled() added to pause window updates.

0.7 Alpha May 2013

  • show_as_subwindow added to Window class to show a child window attached to a parent
  • Add attributes enum and setting for Path class
  • Modifed Application::directory method to return directory as a path (i.e. with a dot added if it was specified as just a directory initially) so it returns consistent results on RISC OS 4 and 5.
  • Added Window::outline to return the area covered by the window on the desktop
  • Added Saver::safe method so it is possible to check if a save location is safe before write a file.
  • Fixed bug in VisibleArea::screen methods for a BBox. It was returning the original rectangle not the screen rectangle.
  • Minor documentation fixes

0.6 Alpha September 2012

  • Fixed incorrect return value from Font class string_width methods
  • Add a few more methods to the WindowInfo class
  • Added canonicalise and canonical_equals methods to Path class
  • deleteonhidden.h was missing object.h include
  • Added show_message function and the MessageWindow class (in messagewindow.h) to make it easy to show a message in a window.
  • Added FilerAction class to make it easy to run multi-tasking file operation via the desktop filer
  • Added COPY_FORCE option to force overwrite of the target in Path::copy and Path::move methods. The documentation for previous releases said they were overwriting always when they were incorrectly adding the recurse flag.
  • Added application::set_post_poll_listener so an application can look at the raw messages it recieves.
  • Added Gadget::move_by to move a gadget relative to current position
  • Add TextDisplayWindow class to display a window resized to a text message
  • Added show_question function and QuestionWindow class to make it easy to display a question in a window (in questionwindow.h)
  • Remove show_as_menu and show_as_submenu with ShowFullSpec parameter from ShowFullObject class as the full spec does not affect the show.
  • Added methods for window flags to ResWindow class
  • Added has_been_hidden_listener to SaveAs dialogue
  • Fixed slider bounds getting/setting which was switching the lower and upper bounds
  • Included TbxRes resource file with pre-built template as a basis for an alternative save as window.
  • DrawPath class to create RISC OS Draw paths and paint them on the screen
  • Graphics classes modified to allow filling and stroking of draw paths, with the user units in the draw path mapped to OS units.
  • DrawTransform class modified to use new Fixed16 class to represent the 16.16 bit fixed point values in it.
  • Fixed removing individual events or handlers
  • add start_wimp_task method to the Application class
  • add os_cli method to the Application class
  • Fixed incorrect case and missing c includes that stopped cross compiling with latest GCC4
  • Removed ScrollListSelectionEvent selected() method as it always returned 0
  • Added ScrollListSelectionEvent adjust() method which returns true if the selection was done with adjust
  • create directory/copy/move and similar functions now throw exceptions rather then returning bool so the failure OsError can be used.

0.5 November 2011

  • const char * constructor for Path class
  • pointer operator for Path and PathInfo iterators
  • Added foreground and background methods for setting the font colours in the TextView
  • Removed space at beginning of a wrapped line in the TextView
  • Added Point/Size constructor the BBox
  • Missing ActionButton, Button, NumberRange, Slider and StringSet methods added
  • JPEG added draw transform plot and file checking methods
  • Fixed error when the last idle command was removed during an idle command

0.4 Alpha September 2011

  • New userguide
  • Added missing reference documentation on classes/methods etc.
  • Minor class tidying

0.3 Alpha February 2011

  • Release so version used with PackIt 0.2 is available
  • Added res namespace containing Toolbox Resource file/object/gadget handling
  • WriteableField renamed to WritableField.
  • Method/parameter names for file names modified to have consistent naming throughout the library
  • Added functions to support message files
  • Added doc namespace containing classes to help in writing document based applications
  • Added static methods for accessing/setting a files file type.
  • Added raw_file_type Path/PathInfo method to get file type for ImageFS files
  • Added Opener handlers to application to be used for opening a file double clicked in the filer.
  • Added Window scroll request listener
  • Split out Wimp Message Listener to use listeners explicit for the three message types.
  • Added drag methods to Window
  • Updated ItemView to improve paging.
  • Added mode changed and palette changed listeners to application.
  • Various minor API and documentation fixes/improvements.
  • fixed equals_ignore_case function as it failed when both parameters were strings.
  • Added defer_delete template function to delay deletion of an object until the next null poll.
  • Added UserSprite methods to set and get pixels.

0.2 Alpha July 2010

  • Release so version used with PackIt is available.
  • Removed uncaught exception handling so program stops with an error.
  • Automatically remove file loaders from an object when it is destroyed.
  • ReportView didn't refresh enough lines when items were inserted.
  • All toolbox and Window WIMP events information now derives from EventInfo class
  • Added missing toolbox objects ColourMenu, FileInfo, FontDbox, FontMenu, PrintDbox, ProgInfo and Scale.
  • Partial implementation of ColourDbox
  • Added missing gadgets Adjuster, PopUp, RadioButton, Button, Draggable and ToolAction.
  • WimpFont::paint - changed to paint font along base line provided
  • Desktop font item rendering and textview rendering modifed to use 40 os units for the height.
  • Added key pressed event processing to Window object.
  • Fixed bug where command added to application could be executed multiple times

0.1 Alpha June 2010

  • Alpha release so library used with !PackMan is available