ChangeLog for smooth

28.12.03 23:45 - smooth alpha 0.8.63.0

- string.cpp		- new method: Replace(const String &, const String &); search for the first string and replace with the second
			- new method: ComputeCRC32(); get the CRC32 hash sum of the string
- i18n.cpp		- new class: Translator; implements the i18n system known from BonkEnc
- extended.cpp		- new template: provides support for data driven code execution (Extended Data Types, EDT)
- image.cpp		- renamed class Bitmap to Image
- bitmap.cpp		- new class: Bitmap; abstraction of bitmap objects in memory
- bitmapgdi.cpp		- new class: BitmapGDI; Bitmap implementation for Windows GDI surfaces

- modified many APIs to use GUI::Bitmap instead of HBITMAP
- removed obsolete friend declarations
- changed classes directory layout
- added support for right-to-left scripts like Arabic or Hebrew
- improved stability on Windows 9x/ME
- upgraded to libxml v2.5.10
- removed libpicture
- separated iconv from smooth - it is now only required for using non-latin scripts
- smaller improvements
- some bufixes
- license changed to 'The Artistic License, Version 2.0'

03.07.03 17:13 - smooth alpha 0.8.62.0

- string.cpp		- renamed IntToString to FromInt, DoubleToString to FromFloat
			- renamed ToDouble to ToFloat
			- new method: SetOutputFormat(const char *);
			- string only uses unicode internally now
			- default input format is now ISO-8859-1 again
			- String no longer hangs when input doesn't match input format
			- buffers returned from ConvertTo or SetInputFormat are now deleted regularly
- window.cpp		- Paint() now uses SP_UPDATE
			- added new callback: Menu *getTrackMenu(Int mouseX, Int mouseY)
			- fixed issues with modal and topmost windows
			- removed SM_MOUSELEAVE message (functionality is now integrated in Window::IsMouseOn(...))
			- new signal: onResize(Void)
- surface.cpp		- modified StartPaint and EndPaint methods
			- added PaintRect method: updates the requested region
- pciio.cpp		- read-only files can now be opened
- button.cpp		- new method: SetBackgroundColor(Int)
			- a double-click is now handled as two single clicks
- widget.cpp		- new method: SetFlags(Int), allows to set generic flags for widgets
			- onClick now takes two parameters, the x and y position of the mouse pointer
- listbox.cpp		- support for hiding the scrollbar and header
			- added methods to remote control scrolling
			- added an LF_MULTICHECKBOX flag; support for selecting multiple entries
- array.cpp		- improved speed of GetNthEntry()
			- renamed DeleteEntry to RemoveEntry, DeleteAll to RemoveAll
			- fixed a bug that crashed Array<t> when an entry was inserted in a previously cleaned array
- list.cpp		- class List now inherits from class Array<ListEntry *>
			- new method: SetReferenceList(List *), lets the list stay synchronized with the reference
			- renamed Cleanup() to RemoveAll()
- signaln.cpp		- slots can now be disconnected from signals
			- slots taking zero parameters can now be connected to any signal
			- SetParentObject can be used to specify an object that will automatically be protected on Signal::Emit
- titlebar.cpp		- hide min/max buttons if both are inactive
- editbox.cpp		- added support for dropdown lists with default strings
- font.cpp		- new class: abstraction of font metrics
- fontdlg.cpp		- implemented a font selection dialog
- background.cpp	- messages are now sent to all threads; fixes some problems with multithreaded applications
- document.cpp		- added support for parsing XML documents in memory
- popupview.cpp		- popups now open automatically when the mouse is moved on a popup entry
- menubar.cpp		- iconbars now support bigger icons
- shortcut.cpp		- new class: provides support for keyboard shortcuts

- fixed programs slow down when running for a longer time
- UnregisterObject() is no longer required unless you are removing an Object before the program quits
- introduced a new font management system
- fixed some PopupMenu issues
- upgraded to IOLib v4.9.14.0
- added support for Windows 95
- many bugfixes

16.03.03 07:00 - smooth alpha 0.8.61.0

- math.cpp		- new class: contains static mathematical functions
- binary.cpp		- new class: contains static binary helper functions
			- replaces old binary helper functions
- datetime.cpp		- new class: merges old SMOOTHDate and SMOOTHTime classes
- divider.cpp		- renamed old SMOOTHDivisionbar class
- tabwidget.cpp		- renamed old SMOOTHTabRegister class
- pciio.cpp		- integrated LibPCI into the main library (will be replaced by a new API later)
- window.cpp		- Windows now create a Layer automatically, so you can register Layer objects at a Window object
			- new method: Close()
			- new method: IsMouseOn(Rect)
			- new methods: MouseX(), MouseY()
			- new methods: Maximize(), Restore()
			- new method: SetMaximumSize(Size)
- stk.cpp		- removed function CloseWindow(Window *)
			- removed class Setup
- colordlg.cpp		- color box now updates when the vertical hue selector is moved
- system.cpp		- new class: includes basic functionality like GUIDs
- array.cpp		- implemented static GetNthEntry method
- widget.cpp		- new class: base class for GUI objects
- setup.cpp		- new class: replaces old SMOOTH::Setup
- object.cpp		- moved many methods to class GUI::Widget
- timer.cpp		- Timers no longer need to be registered and are now independent of Windows
- surface.cpp		- new method: Gradient(...), replaces same function in toolkit.cpp
- input.cpp		- new class: contains mouse and keyboard input functionality
- droparea.cpp		- new class: receiver for drag & drop files
- button.cpp		- new methods: SetFlags(Int), GetFlags(), flags: BF_NORMAL, BF_NOFRAME
- editbox.cpp		- support for 'Home' and 'End' keys
			- support for marking text
			- support for copy and paste to/from clipboard
			- fixed other editbox issues

- new namespace: smooth alias S
- new namespace: smooth::XML
- new namespace: smooth::GUI
- ported the whole library to the new smooth namespace layout
- added the pcitools (ras2pci and pci2ras)
- TestKey now displays Unicode character codes
- replaced the 'Procs' by a new template based callback mechanism
- added support for signals and slots
- Threads, Semaphores and Mutexecs no longer need to be registered
- upgraded libxml to version 2.5.1
- fixed the flickering when resizing a window
