********************************************************************************

 WINBINDER - The native Windows binding for PHP

 Copyright  Hypervisual - see LICENSE.TXT for details
 Author: Rubem Pechansky (http://winbinder.org/contact.php)

 Changelog

********************************************************************************

*** PLEASE SEE "INCOMPLETE IMPLEMENTATIONS" SOMEPLACE BELOW ***

------------------------------------------------------------------------------
Version 0.46 (alpha) - build 189
Date: Oct 18, 2006
------------------------------------------------------------------------------

- Function wb_get_text() was not passing parameter $item to ListBoxes and ComboBoxes. Fixed in wb_windows.inc.php.
- Fixed potential crash in wb_get_text()
- wb_get_text() will retrieve the text of the editable field of a ono-read-only combo box (no WBC_READONLY flag) when parameter 'item' is set to -1. A non-negative 'item' will now retrieve the text of the desired line for both editable and read-only combo boxes.
- Enhancements in example combo_list_boxes.phpw
- Updated documentation on wb_get_text()
- Minor code changes

------------------------------------------------------------------------------
Version 0.46 (alpha) - build 188
Date: Sep 29, 2006
------------------------------------------------------------------------------

- wb_set_text(): fixed errors when using arrays to call it; setting captions and tooltips should behave now as described in the doc
- wbConvertLineBreaks() now check values against null or empty so no crashes are expected anymore when calling wb_set_text($ctrl, array(null, ...))
- windows.inc.php: wb_set_text(): extra check for arrays
- tooltips.phpw was not working, other scripts possibly fixed as well
- wb_set_image(): ImageButton is transparent (background is always black for now)
- states.bmp resource: background set to green so it may be considered transparent
- borderless.phpw / animation.phpw / tray_popup.phpw / tooltips.phpw changed to show bitmap transparency
- Minor changes in Help
- Changes in file headers (link to winbinder.org now)

------------------------------------------------------------------------------
Version 0.46 (alpha) - build 187
Date: Aug 05, 2006
------------------------------------------------------------------------------

NEW FEATURES AND FIXES

- Fixed missing parameter in call to wbtemp_create_listview_column() in wb_windows.inc.php
- Included syntax highlighter for PSPad in \tools\pspad\winbinder.ini
- Revised running.html and included it in the index
- handles.html renamed to objects.html
- New example: findwindow.phpw
- Removed example "hello_oo.phpw" because it is really not OOP
- Fixed date checking bug in make_release.phpw

DOCUMENTATION CHANGES

- New page "Running WinBinder applications" with information about associating the PHPW extension with WinBinder, running without a console window, running scripts from a code editor (specially TextPad and PSPad), code syntax highlighting, how to display help on PHP and WinBinder reserved words, and more.
- Updated the "WinBinder Objects" page: new WBOBJ definition, new paragraphs "parents and containers" and "control handles and identifiers"
- Fixed example code for db_create_record()
- Corrected information about database functions prefix
- Several other minor fixes and revisions

SOURCE CODE CHANGES

- Removed some unused functions and declarations
- Included standard definition for NUL in wb.h
- Replaced calls to the non-standard stristr() with a new global function called wbStriStr() in wb_generic.c to avoid MSVC compilation problems
- Included <math.h> and _finite() function to phpwb_bitmap.c (needed by PHP 5.1)

------------------------------------------------------------------------------
Version 0.46 (alpha) - build 186
Date: Jul 23, 2006
------------------------------------------------------------------------------

- Numeric values were not being passed correctly to wb_set_text() since build 184. Fixed (in wb_windows.inc.php).
- Added optional right- and center-aligned columns to ListViews (Thanks m3nt0r)
	- wbCreateListViewColumn(): new parameter 'nAlign'
	- wbtemp_create_listview_column(): new parameter 'align'
	- Help: fixed some items in the ListView class topic and added alignment example
	- Added alignment example to listview.phpw
- Form Editor fixes:
	- Numeric values were not appearing correctly. Fixed wb_set_text() bug.
	- New controls were not appearing in work area when created. Fixed.
	- Restored tooltips for control classes dialog
- In fe_tabs example: several changes and fixes

------------------------------------------------------------------------------
Version 0.46 (alpha) - build 185
Date: Jul 17, 2006
------------------------------------------------------------------------------

- New example drawontab.phpw
- Fixed crash in function wbConvertLineBreaks() introduced in build 184

------------------------------------------------------------------------------
Version 0.46 (alpha) - build 184
Date: Jul 10, 2006
------------------------------------------------------------------------------

- wb_create_control() now duplicates wb_set_text() functionality in classes ComboBox, ListBox, TreeView and ListView. This means programmers may use wb_create_control() to create items in those controls (column titles in ListView).
- wb_create_control() now duplicates wb_set_value() functionality in classes Gauge, Slider, and ScrollBar. This means programmers may use wb_create_control() to set initial values for those controls
- All control captions and tooltips subject to function wbConvertLineBreaks()
- Enhanced tooltips support. The following classes now support tooltips: RadioButton, CheckBox, PushButton, EditBox, TabControl, Spinner, ScrollBar, RTFEditBox, HyperLink, Calendar, ListBox, ComboBox, Gauge, Slider, TreeView and StatusBar, in addition to InvisibleArea and ImageButton which supported tooltips already. ToolBar does support tooltips, but differently (one tooltip for each button). All window classes (AppWindow, ModalDialog, ModelessDialog, NakedWindow, PopupWindow, ResizableWindow, ToolDialog) now support tooltips.
- Support for multi-segment status bars. See help for more information.
- TreeViews: calling wb_set_selected() with items equal to -1 deselects any selected nodes
- Solved wb_get_text() bug in combo boxes / list boxes introduced in 0.46.183
- Other minor changes

PHP code

- FE: fix to properly escape quoted captions for controls and windows
- In To Do application: changed icons in treeview; removed old treeview hack; other changes
- Updated example invisible.phpw to replace InvisibleAreas (now deprecated) with ImagButtons
- Clearer 'supported php version' message in winbinder.php
- New resource: menu_web.bmp
- New example: statusbar.phpw for multi-segment status bars
- New sample code: tooltips.phpw

C code

- Function wbConvertLineBreaks() rewritten and moved to wb_generic.c
- CreateToolTip is now public for use with wb_window.c
- Created function wbtemp_create_statusbar_items()
- wbSetText(), wbCreateControl() and wbCreateWindow(): added pszTooltip parameter
- New function wbSetStatusBarsegments()
- Used lparam[6] for tooltips (macro M_ToolTipWnd)

------------------------------------------------------------------------------
Version 0.46 (alpha) - build 183
Date: Jun 26, 2006
------------------------------------------------------------------------------

- Now wb_get_text() can retrieve the text of any item inside a combo or list box, not only the selected one. See manual for more details.
- In wb_message_box(): "No" returns 0 while Cancel returns boolean FALSE so WBC_YESNOCANCEL is now possible
- Lots of changes, fixes and enhancements in the manual, many due to user contributions. Thanks to all of you. Highlights are:
	- Much better documentation for system dialog box functions and several other functions
	- Added missing 'backgroundcolor' and 'colordepth' options to wb_get_system_ini()
	- Added missing option to wb_set_style()
	- Several additional code examples and explanations
	- More keywords
	- Many typos corrected
	- New welcome page with version and date information, new logo
	- Updated WinBinder diagram in the "How WinBinder works" page
	- Many other corrections and enhancements
- wb_get_text(), wbtemp_get_text(), wbGetTextLength(), wbGetText() now have parameter "index"
- Better ImageList implementation in wbSetImage()
- Changes in script no_main_loop.phpw
- Updated some info in the Readme file
- New script message_boxes.phpw


------------------------------------------------------------------------------
Version 0.46 (alpha) - build 182
Date: Jun 26, 2006
------------------------------------------------------------------------------

- Updated manual with all recent changes
- High-resolution timers are now available (see manual)
- WAV and MIDI sound support
	- Changes in wb_play_sound() to support WAV and MIDI
	- New function: wb_stop_sound()
- New PHP examples:
	animation.phpw
	timers.phpw
	text_size.phpw
	skeleton.phpw
	sounds.phpw
- New resources: click1.wav, fx2.wav, canon.mid
- Changes in make_release.phpw
- M_FileExists macro now is called EXISTFILE and was moved to wb.h
- Other minor changes

------------------------------------------------------------------------------
Version 0.46 (alpha) - build 181
Date: Jun 23, 2006
------------------------------------------------------------------------------

- Updated copyright notes in source and text files so they mention the new winbinder.org domain, email and slogan
- Removed dates from copyright notes in source/text files so no year updates are necessary anymore except for README.TXT
- Minor Fixes in welcome.phpw
- Minor fixes in the form editor
- Minor fixes in PHP code files
- New fe_tabs example shows how to implement tab pages in FE
- Updated file repository in the WB web site
- Other minor fixes

------------------------------------------------------------------------------
Version 0.46 (alpha) - build 180
Before Jun 23, 2006
(internal release)
------------------------------------------------------------------------------

Incomplete implementations / need more testing:

- wbInit(): Fixed bug where the background color of tab controls was wrong when XP themes were enabled and the PHP or PHP-WIN command line had quotes. ** BUT ** other controls over tabs give painting errors (ex.: put labels over a tab in form editor -- label background appears in gray, not white) -- the old way was to paint everything with the default gray, avoiding the XP white altogether. Needs more testing.
- wbMakeAccelFromString(): uncommented the "fVirt |= FVIRTKEY" line. This allows keys like plain "Right" and "Enter" to work. However there must be some other problems because this statement must have been commented out for some good reason (which I can't find in the changelog). This needs more testing and is still a pending issue.

Fixes and enhancements:

- wb_set_range() was not working for Sliders. Fixed. (was lMin,lMin instead of lMin,lMax)
- wb_set_range() now returns TRUE for all operations. Previous results were undetermined.
- Sliders: redraw the slider after its range is set (TBM_SETRANGEMAX, TRUE)
- Tooltips now accept line breaks
- Fixed "caret" cursor over scroll bars in multi-line edit boxes
- wbDrawBitmap(): Initialized hbmMask as NULL so fixed the mystery "NOCOLOR" bug
- In wb_set_image(): Default value for param is now 1 (obviously) instead of 4
- Prevented resource leak in ImageButtons: DeleteObject() after ImageList_Add()
- Automatically remove quotes from command line, if any
- wbInit(): Fixed bug where XP themes were not shown when the PHP executable was in a directory name with spaces.
- wbCreateListViewColumn(): changed additional space for auto calculated field widths from 14 to 20 pixels for better display
- Some fixes in wbtemp_get_text() to suppress some superfluous code and to return actual text length

PHP code:

- Fixed wb_get_text() in wb_windows.inc.php so it does what is stated in the doc, i.e. return an array with the whole contents of a ListView. It was returning NULL instead.
- wb_windows.inc.php: Fixed wb_set_selected() code for menu items
- Corrected REs in parse_ini(), there was a potential problem because '$' character was not escaped
- hyperlink.phpw: changed to show "finger" cursor and underlined text
- New icon resource: wb.ico with new WinBinder icon
- Added example range.phpw

C code and library compilation:

- wbDestroyWindow() now resets window handler
- New internal C functions: GetTokenExt() and GetToken()
- NOCOLOR defined as CLR_INVALID in wb.h
- Non-ANSI stricmp() function replaced by lstrcmpi() in wb_winsys.c, required by MSVC compiler
- Created macro M_FileExists() in wb_winsys.c
- MSVC: Separated versions 5.0 and 5.1
- Changed makefile to include extra path to avoid compilation errors
- Commented out #include "winres.h" in wb.rc
- Fixes in batch files for MSVC

Other:

- Some instances of PHP.INI: set memory_limit to -1

------------------------------------------------------------------------------
Internal release - SVN release 36
------------------------------------------------------------------------------

- Removed the change in wbDrawBitmap() which caused other (more severe) problems.

------------------------------------------------------------------------------
Internal release - SVN release 35
------------------------------------------------------------------------------

- Fixed wbDrawBitmap() to avoid misbehavior when wb_draw_image() was called with NOCOLOR. Strangely enough, this problem does not occur when the library is compiled the lcc-win32 compiler, only MS.
- Updated the make_release.phpw application to handle correctly the new wb_version.h format introduced by Hans in revision # 20
- New PHP example: animation.phpw

------------------------------------------------------------------------------
Internal release - SVN release 33-34
------------------------------------------------------------------------------

- Changed OwnerDrawnWndProc() so each window stores its own screen buffer size. This avoids the problem where an owner-drawn window was shown blank after being closed and opened again. Thanks to Hans for finding this bug.
- In wb_set_image(), param is now used to set the number of images in a ImageButton control. Default is 4 (normal / highlighted / pressed / disabled), minimum is 1.
- HyperLink class now requires WBC_LINES style to show underlined text. Please add this style to any HyperLink controls you may have if you want to maintain the default behavior.
- HyperLinks now accept the WBC_CENTER style for horizontally centered text.
- ToolDialog class is not "always Always On Top" anymore
- In example resizable.phow: Included code to disable the window's maximize button
- Other small changes in PHPW examples mouse.phpw and resizable.phpw

------------------------------------------------------------------------------
Internal release - SVN releases 29-32
------------------------------------------------------------------------------

- Created function wb_set_cursor() which can set or change the mouse cursor shape of windows, controls, or instantaneously (inside callback functions). It can change the cursor of all window classes (AppWindow, ModalDialog, ModelessDialog, NakedWindow, PopupWindow, ResizableWindow, ToolDialog), plus ImageButtons, InvisibleAreas, HyperLinks and EditBoxes. Mouse cursors can be set individually or class-wide for all controls that are subsequently created. The function can use one of the existing system cursors ('arrow', 'cross', 'finger', 'forbidden', 'help', 'ibeam', 'sizeall', 'sizenesw', 'sizens', 'sizenwse', 'sizewe', 'uparrow', 'wait', 'waitarrow') or read a cursor from a file (through function wb_set_image). It can also make the cursor invisible using 'none' as the second parameter. Several other changes (also listed here) have taken place as a consequence.
- ImageButton was completely rewritten as a custom Windows class ("wbImageButton") instead of a subclass of Windows class "BUTTON" as previously. Advantages are: highlight on mouse over; optional auto-repeat function (WBC_AUTOREPEAT flag); custom mouse cursors; optionally transparent (use flag WBC_TRANSPARENT) so it completely replaces InvisibleArea with several advantages.
- InvisibleArea: enabled tooltips, changed style to SS_SIMPLE to avoid displaying a string, caption was set to NULL. Please note that InvisibleAreas may be deprecated in the near future in favor of ImageButtons which do everything InvisibleAreas do but are much more flexible.
- Functions generate_ini() and parse_ini() in wb_generic.inc.php: Double-quotes (") were not being correctly escaped in INI files. Fixed.
- wb_set_image() was extended to return a cursor handle from a .CUR file.
- Updated examples borderless.phpw, mouse.phpw and resizable.phwp to show the usage of wb_set_cursor() and the new ImageButton commands.
- Included new resource file finger.cur.
- The creation of function wb_set_cursor() overrides the previous behavior of HyperLinks which always displayed a "finger" (IDC_HAND) cursor.
- New control styles: WBC_AUTOREPEAT, WBC_TRANSPARENT (for ImageButtons)
- wbSetEnabled(): flag WBC_DISABLED is now changed accordingly to the value set, better error checking and other minor changes
- Commented out some redundant function calls in the end of window processing routines
- Changed some internal function names here and there. This won't affect any PHP code.
- New internal functions wbSetCursor(), wbIsValidClass()
- Changed WinBinder class values from #defines to an enum. Values were completely changed.
- Removed the union from structure WBOBJ and adjusted the sources accordingly
- Many other minor code revisions

------------------------------------------------------------------------------
Internal release - SVN release 28
------------------------------------------------------------------------------

- Fixed problem where editable combo boxes were not sending the correct text to wb_get_text() when a selection was made. Patched DefaultWBProc() in wb_window.c to include a CB_GETLBTEXT / WM_SETTEXT pair.
- Fixed problem where wb_get_text() sometimes returned truncated text from combo boxes, and even crashed the application occasionally. Changes included wbGetTextLength() and wbGetText() in module wb_control.c. Pinpointed and requested by Hans.

------------------------------------------------------------------------------
Internal release - SVN release 27
------------------------------------------------------------------------------

- Implemented the option of passing a class method to wb_set_handler() using an array instead of a string (requested by Stefano for the OO interface). A pszCallBackObj parameter was added to structure WBOBJ. Also the following internal functions were changed to add a pszObject parameter: AssignHandlerToTabs(), wbCallUserFunction(), wbSetWindowHandler(). This parameter is now passed to the call_user_function_ex() call in wbCallUserFunction(). Must be tested with real-life situations (both with and without classes), specially using tab controls in both cases. Also, error checking is very poor when an object class is passed to wb_set_handler().
- In the PHP callback function: $lparam2 now receives a notification code or extra data (see API documentation on WM_COMMAND, parameter wNotifyCode) when the default action is sent. The code helps differentate if the command comes from clicking or pressing the control itself or from another action. Seems to work for InvisibleAreas only, but it's not clear why. A more general implementation in the future should clearly differentiate between clicking, using the keyboard, using a menu, an accelerator, or an external action caused by another control. This is still a pending issue.
- In wbDestroyWindow(): trying to prevent wb_destroy_window($any_other_window) from closing the application. Added 'pwbo->hwnd = NULL' which makes sense but still didn't solve the problem
- InvisibleArea was subclassed to process and send WBC_MOUSEMOVE messages to the callback

------------------------------------------------------------------------------
Version 0.46.0 (alpha)
Date: Jun 5, 2006
------------------------------------------------------------------------------

HIGHLIGHTS

- WinBinder now uses the new Form Editor (FE) instead of WinAsm
- Updated the included PHP 4 engine and respective extensions to 4.4.2
- New "minimal" versions PHP 4.4.2, 5.0.5 and 5.1.2 available
- Easier processing of resize events in callback function
- Several improvements in PHP scripts: make_release.phpw, welcome.phpw, hyperlink.phpw
- New example printer.phpw shows how to print from a WinBinder application
- Included a new WinBinder icon
- Fixed functions generate_ini() and parse_ini() so now they handle double quotes correctly
- wb_set_selected() now processes check boxes in menu items as it should
- wb_get_text() fixed so now it returns an array with the whole contents of a ListView control
- wb_set_range() didn't work for sliders -- this was fixed
- InvisibleArea now informs the callback function when the mouse is moved
- Rewrote wb_refresh() so several bugs were fixed and more -- see changelog for details
- Several changes, corrections and improvements in setup, including updates, fixes and more
- Solved memory leak that occurred on every function call
- Created PHP 5.1.1 path and project files for the lcc-win32 compiler
- Other changes and fixes

This is the last maintenance release of the alpha branch. WinBinder now does fully support the following PHP versions: 4.3.10 up to 4.4.2 and 5.0.3 up to 5.1.4.

HIGHLIGHTS / ENHANCEMENTS

- Added the new Form Editor (FE) developed by Rubem and removed the old Layout Editor (LE)
- Improved PHP version checking in winbinder.php
- In PHP.INI for version 5.0 and 5.1: added E_STRICT flag to entry error_reporting
- Created PHP 5.1.1 path and project files for lcc-win32
- Changes in make_release.phpw:
	. even less "USER PARAMETERS" to set up (7 strings only)
	. force DEBUG = False in wb_setup.pas
	. slight adjustments in screen layout
	. more adjustments to include PHP 5.1.1 files
	. checks if zip file was actually generated
	. other changes
- Small changes in welcome.phpw
- Examples/hyperlink.phpw: changed to show "finger" cursor and underlined text
- Examples/printer.phpw: added example how to print directly from a WinBinder enabled application
- Resources/wb.ico: added new WinBinder icon

BUG FIXES

- wb_generic.inc.php: functions generate_ini and parse_ini do now handle double quotes correctly; fixed missing escaping of the '$' character
- wb_windows.inc.php: function wb_set_selected now processes check boxes in menu items as it should; wb_get_text() now returns an array with the whole contents of a ListView control, as stated in the manual - did return null instead
- wb_control.c: Rectified wb_set_range() slider TBM_SETRANGEMAX action and other aspects of this function
- InvisibleArea was subclassed to process and send WM_MOUSEMOVE messages to the callback
- Changes in make_release.phpw:
	. now correctly handles/saves the new version no. structure
- Changes in setup:
	. many changes and corrections to wb_setup.iss (PHP 5.0 and 5.1, freeimage.dll, etc.)
	. separated the script section from wb.iss into wb_setup.pas. A separate file allows correct syntax highlighting in a code editor and allows testing script changes without leaving ISTool (Inno Setup UI)
	. other changes

OTHER ACTIVITIES

- Updated the PHP 4 engine and the respective extensions to 4.4.2
- Removed the redundant PHP binaries and accompanying files (not the extensions) for 5.0.5 and 5.1.2
- Uploaded new "minimal" PHP 4.4.2, 5.0.5 and 5.1.2 versions as well as the respective extensions to SF

------------------------------------------------------------------------------
Version 0.45 (alpha) - build 173
Date: Jan 31, 2006
------------------------------------------------------------------------------

- WBC_MOUSEMOVE messages were not being sent in certain situations. Fixed.
- Added and optional extra parameter (usually called $lparam3) to window callback functions. This was done via wbCallUserFunction().
- On windows that have the WBC_RESIZE style, $lparam3 (in the callback function) now receives the size of the client area as a LONG. Usually a call to wb_get_size($window, true) would produce the same effect, but it's there anyway to take advantage of the new $lparam3
	. Updated example 'resizable.phpw'
- wb_refresh() (and wbRefreshControl()):
	. Completely rewrote the whole function
	. Default value of parameter 'now' was changed to TRUE
	. Now it invalidates and redraws only a part of the screen or control when (still undocumented) xpos/ypos/width/height parameters are passed to it. Was buggy prior to this release.
	. Probably a bit faster for most operations
	. If the wb_refresh() command is issued and the xpos/ypos/width/height are set, the window callback function (in PHP) receives a pointer to rectangle (About to change! Should be the area instead, and an array would be great.) as $lparam3. If wb_refresh() acts on the whole window, $lparam3 is zero. Dimensions should be obtained from $lparam3 as follows:
			$address = wb_peek($lparam3, 16);
			$num = unpack('L4n', $address);
			$xpos = $num['n1'];
			$ypos = $num['n2'];
			$width = $num['n3'] - $xpos;
			$height = $num['n4'] - $ypos;
- Solved memory leak that occurred on every function call: added some extra calls to efree() in function wbCallUserFunction() in module phpwb_wb_lib.c
- Added some ToDos to the list

------------------------------------------------------------------------------
Version 0.44 (alpha) - build 172
Date: Jan 2, 2006
------------------------------------------------------------------------------

- Implemented SVN repository in BerliOS (http://developer.berlios.de/projects/winbinder/)
- In PHP.INI for version 5.0 and 5.1: added E_STRICT flag to entry error_reporting
- Changes in setup:
	- Many changes and corrections to wb_setup.iss (PHP 5.0 and 5.1, freeimage.dll, etc.)
	- Separated the script section from wb.iss into wb_setup.pas. A separate file allows correct syntax highlighting in a code editor and allows testing script changes without leaving ISTool (Inno Setup UI)
	- Other changes
- Changes in make_release.phpw:
	- Even less "USER PARAMETERS" to set up (7 strings only)
	- Force DEBUG = False in wb_setup.pas
	- Slight adjustments in screen layout
	- More adjustments to include PHP 5.1.1 files
	- Checks if zip file was actually generated
	- Other changes
- Created PHP 5.1.1 path and project files for lcc-win32
- Remaining files set to lowercase. 'Makefile's should be the only exception now.
- Small changes in welcome.phpw
- Removed customdraw_test.phpw
- Other minor changes

------------------------------------------------------------------------------
Version 0.44 (alpha) - build 171
Date: Dec 14, 2005
------------------------------------------------------------------------------

MAIN CHANGES

- Included separate builds for PHP 5.0 and PHP 5.1
- Fixed build for PHP 5.1.1 which was not working
- wb_call_function() crashed since build 165. Fixed.
- Spinners now need the WBC_GROUP style to perform auto buddy operations. You will have to include this style when calling wb_create_control().
- wb_refresh(): added optional parameters width, height (not official yet -- parameter order may change in the future)
- wb_draw_image(): added parameters xoffset, int yoffset (not official yet -- parameter order may change in the future)
- wb_set_range() can now set 64-bit values for Gauges, Spinners and Sliders.

CHANGES IN PHP SCRIPTS

- tabcontrol.phpw now shows notifications, show more data in statusbar
- Some more tests added to images.phpw
- Added missing call to wb_destroy_timer() and other changes in welcome.phpw
- More changes and fixes to make_release.phpw and related /tools/*/*.txt files
- Removed ZIPPER_FLAT option from make_release
- Replaced WinZip Command Line Add-on (shareware) with info-zip (open source) for automated distro building

OTHER CHANGES

- Created cwb_wb_lib.c for binding with C language. Proof-of-concept is in binaries\c\hello.exe
- Changes in phpwb_export.c to include data for phpinfo() (thanks to Hans). This change also implied a reference to info.h so that the project files for lcc-win32 (*.prj) and makefiles were changed. The info.h files were added to the "tweaked headers" and setup package as well.
- All file names made lowercase for better compatibility with *nix FTP servers. Exceptions are the various Makefiles.
- Created folder binaries/php5.1 and updated scripts accordingly: make_release.phpw, ws.iss (Inno Setup), winbinder_php5.prj (lcc-win32) and Makefile (lcc-win32)
- Renamed folder binaries/php5 to binaries/php50
- Created the tools/info-zip directory, added cmd.php script to it to simplify make_release
- Added extensions php_pdo.dll and php_sqlite.dll to php.ini in version 5.1.1 (not 5.0.5, though)
- The reason wb_call_function() was crashing was because of DWORDLONGs (introduced in build 165). Went back to DWORDs and the crashes went away
- wbSetRange() now uses LONGs instead of DWORDs for consistency
- wbRefreshControl(): added parameters nWidth, nHeight
- wbDrawBitmap(): added parameters xOffset, int yOffset
- Several other minor fixes and adjustments

------------------------------------------------------------------------------
Version 0.43 (alpha) - build 165
Date: Nov 28, 2005
------------------------------------------------------------------------------

- Compiled for PHP version 5.1.0
- WinBinder now uses the MSVC compiler. See tools\msvc\readme_msvc.txt for instructions on how to compile WinBinder with a Microsoft compiler.
- Adjustments to make_release.phpw and templates.xml as required by PEAR 1.4, it now produces 2 XML files (thanks Stefano)
- New test application registry.phpw
- In wb_set_registry_key(), floats are converted to strings for storage. To retrieve a float, cast the result using (float)wb_set_registry_key(). See registry.phpw for an example.
- wb_get_text(): fixed crash with empty combo boxes introduced in build 0.43.164 (thanks Hans), prevented other problems as well
- wb_call_function() array now uses DWORDLONGs to prevent compiler warnings
- wbGetValue() now calls wbGetTreeViewItemValue() which was not being called by any other function
- Several .c and .h files: fixed some non-standard variable declarations, clarifying parentheses, missing headers, some casts and other minor adjustments to keep the MS compiler happy

------------------------------------------------------------------------------
Version 0.43 (alpha) - build 164
Date: Nov 21, 2005
------------------------------------------------------------------------------

- Added page to setup wizard to select a server for download when installing WinBinder
- Updated PHP versions to 4.4.1, 5.0.5
- Updated SQLite DLL
- Implemented extra argument (param) in wb_load_image() and used param in wb_set_image() to force a small or large icon (thanks EK). See images.phpw for an example.
- welcome.phpw: PHP version check (thanks Stefano), more icons, more menu items, more buttons, a new loop to generate buttons, Always on Top deactivated after 4 sec, fixed internal version verification, minor changes
- Removed double FreeImage.dll in setup, many more revisions and tweaks in installer
- make_release.phpw: more fixes, changes in tools/winzip/release_zipme*.txt
- parse_rc() in wb_resources.inc.php: fixed a preg_replace() call because it stopped working in PHP 4.4.1 / PHP 5.0.5 (thanks Hans)
- New resources: menu_doc.bmp, viewer.ico
- Missing license files included in distribution

------------------------------------------------------------------------------
Version 0.43 (alpha) - build 163
Date: Nov 20, 2005
------------------------------------------------------------------------------

- Several fixes to PHP 5 files in Setup: changed download server for PHP 5 libraries, added missing Unzip utility, added FreeImage.dll to PHP 5 install
- Many other changes and fixes to setup script
- welcome.phpw was not opening the help file and text files. Fixed.
- welcome.phpw window was made Always on Top
- make_release.phpw: additional / better version checking, forces compression of setup file, several fixes and changes
- Layout editor: fixed cosmetic drawing problem in buttons and main window
- Other minor fixes

------------------------------------------------------------------------------
Version 0.43 (alpha) - build 162
Date: Nov 18, 2005
------------------------------------------------------------------------------

NEW FEATURES, MAIN CHANGES AND IMPROVEMENTS

- New, better, clearer, more sensible folder structure (thanks Techtonik, Stefano) with five main subdirectories: binaries, csource, docs, phpcode, tools. This implies you may have to change one or two lines in your own scripts, typically "../include/winbinder.php"
- Setup completely revised, now includes php4ts.dll, php_sqlite.dll and FreeImage.dll for faster and easier installations, and HTML sources for manual. PHP 5 is also available as an optional download. Please inform about any installation problems.
- wb_get_size() now can also return the size (in pixels) of a text. The font is passed in param. See manual for more information
- wb_sys_dlg_save() now allows a default extension to be added to file names
- New function: wb_draw_ellipse(), analogous to wb_draw_rect()
- Included parameter for dashed line styles in wb_draw_line(), wb_draw_rect() and in the new function wb_draw_ellipse(). See manual and lines_and_shapes.phpw for line style examples.
- Implemented non-read-only combo boxes. A normal (read-only) combo box now needs to include the WBC_READONLY flag. In all example scripts the combo boxes were set to WBC_READONLY to maintain previous behavior. Function parse_rc() (in wb_resources.inc.php) now sets all default (non-editable) combos to WBC_READONLY. See combo_list_boxes.phpw for an example.
- Functions wb_get_text(), wb_get_selected(), wb_get_value() were extended to support non-read-only combo boxes
- Functions generate_ini(), parse_ini() adjusted to process empty strings correctly
- Removed resizable attribute from modeless dialogs (class ModelessDialog)
- Treeviews now keep the selected item highlighted (usually in gray) when it loses focus (TVS_SHOWSELALWAYS style)
- wb_set_selected() now allows selection of root node in treeviews by passing zero as the 'items' parameter

FIXES

- Modeless dialogs were resizable. Fixed.
- Fixed possible crash in wb_call_function() when calling functions without parameters
- Fixed wrong parameter (nIndex) being passed in wb_set_image(). You may have to change your calls to this function. Check if you need to make any changes in the function documentation.
- Text retrieved from combos and list boxes don't get right-trimmed anymore.

CHANGES IN SCRIPTS

- Verified scripts for changes in wb_set_image()
- If the DLL is not found in db_sqlite.inc.php, db_mysql.inc.php and freeimage.inc.php, a warning message box appears
- ToDo: commented out database editing functions in todo_dlg_cat.inc.php (categories) which are not working properly. ToDo items in the main window are working normally.
- Layout editor prototype now can select/unselect (just one) control, takes mouse cursor position into account, scale control horizontally / vertically / diagonally (only right and bottom handles implemented), has a warning saying it is only a proof of concept
- Most PHPW scripts now use a PATH_SCRIPT constant and include paths relative to themselves so they execute no matter where they are called from
- Many new features, changes and fixes in scripts, specially make_release.phpw, listview.phpw, dib.phpw, db_test.phpw, manytests.phpw, welcome.phpw, combo_list_boxes.phpw and others
- Updated database library to reflect changes in CVS
- Created example move_control.phpw
- Scripts that use the FreeImage library now include FIPL license note
- "?>" was missing in several .phpw files. Fixed.
- In treeview.phpw: swap items

DOCUMENTATION CHANGES

- Many revisions in Readme.txt: Included license information, extra DLL information and other changes
- Revisions in other readme files and text files because of the new folder structure
- Included License-fi.txt (FIPL) for FreeImage library

OTHER CHANGES

- Tweaked code for most recent lcc-win32 builds: In win95nt.h, commented-out typedef uint. In wb_control_html.c, changed some VTable declarations (added "void *") to avoid compiler warnings. New function pointer declarations in wb_winsys.c.In wb.h, included <sys/types.h>.
- Added parameter lpstrDefExt to wbSysDlgSave(), defext to wbtemp_sys_dlg_save()
- h_exec: better examples of INI files
- Updated manual.hhp (HTML help project) to reflect new folder structure
- wbGetTextSize() function was moved to wb_draw.c
- wbSetTreeViewItemSelected() now allows selection of root node
- Changed C and PHP source code headers to avoid spam (thanks Techtonik)
- Made lcc-win32 project files (winbinder_php4.prj, winbinder_php5.prj, h_exec.prj) conform to the new folder structure and easier to read
- Corrected paths in project files and makefiles (PHP 4 & 5)
- Removed unused wbSetImage() parameter: nIndex (internal function)
- Removed wb_debug.iss from distribution
- Other minor changes

------------------------------------------------------------------------------
Version 0.42 (alpha) - build 158
Date: Oct 30, 2005
------------------------------------------------------------------------------

Internal release only

------------------------------------------------------------------------------
Version 0.41 (alpha) - build 157
Date: Aug 12, 2005
------------------------------------------------------------------------------

- Manual corrections: wb_set_area()
- Manual: New "Building WinBinder" page
- Added project layout_editor to \code
- New database function: db_get_index()
- New database function: db_create_database(). Was separated from db_open_database(), access privileges might be not be enough for a user to create a database
- Other minor fixes in some database functions
- Setting the width of a ListView column to zero was not possible. Fixed.
- parse_rc() now recognizes the Calendar control

------------------------------------------------------------------------------
Version 0.41 (alpha) - build 156 (patch)
Date: May 31, 2005
------------------------------------------------------------------------------

- New wb_system_info() parameter: backgroundcolor

------------------------------------------------------------------------------
Version 0.41 (alpha) - build 155 (patch)
Date: May 31, 2005
------------------------------------------------------------------------------

- Fixed DLL for PHP 5 (was not working)

------------------------------------------------------------------------------
Version 0.41 (alpha) - build 154
Date: May 29, 2005
------------------------------------------------------------------------------

NEW FEATURES AND MAIN CHANGES

- Implemented HTMLControl. Many thanks for Jeff Glatt for his beautiful code. See html_control.phpw in the samples directory.
- Created function wb_set_location() for HTMLControl. See manual for details.
- wb_get_system_info(): Unrecognized parameters now return NULL instead of zero
- wb_get_system_info("osversion") now returns more descriptive textual information
- wb_get_system_info(): "osversionnumber" renamed to "OSNumber"; "sysmemory" divided into "totalmemory" and "freememory". See manual for details.
- When calling wb_get_size() for a ListView, it optionally returns an array of column widths. See manual for more information.
- Custom-drawn windows are now created with the system background color instead of blank or an empty buffer. Call wb_draw_rect() if you ned a black background.
- NakedWindows now must be have WBC_CUSTOMDRAW style if they are meant to be custom-drawn, just like the other window classes
- NakedWindows now accept WBC_BORDER style which creates a standard pop-up window border
- Now calling wb_set_text() with text==null and item==true clears all items from the ListView, while calling wb_set_text() with text==null and item==false (or empty) clears all columns from the ListView. Also resurrected wbtemp_clear_listview_columns().

FIXES

- Modal and modeless dialogs were not returning IDCLOSE when using the top right 'x' button. Fixed (hanks to yafuka and davide for the code).
- PHP process was not being removed from memory when using a dialog class as main window. Fixed (thanks davide).
- Fixed bug inadvertedly introduced in version 0.40: Extra column titles were being added to a ListView each time wb_set_text() was called.
- wb_draw_text() was crashing if an invalid font index was being passed to it. Fixed.
- parse_rc() was generating wrong code. This code generated green bitmaps in Frames and PushButtons with images. Fixed.
- Fixed bug inadvertedly introduced in version 0.40: The WinBinder DLL was not working in Windows 98 because wb_get_system_info() was calling a function not available in Win98. Fixed.
- wb_refresh() was not always refreshing a window/control when 'now' was TRUE. Fixed.
- wb_draw_rect() is marginally faster

OTHER CHANGES

- Removed temporary function wbtemp_set_listview_column_widths()
- Some updates in php.ini
- Included php_dist.ini with better settings for project distribution
- Several corrections in manual
- Several fixes in .phpw scripts
- Corrected some compiler-specific code (for Visual C++)
- Many other small fixes as usual

------------------------------------------------------------------------------
Version 0.40 (alpha) - build 153
Date: May 18, 2005
------------------------------------------------------------------------------

- Several potential memory leaks prevented
- Added two new options to wb_get_system_info(): "appmemory" and "sysmemory"
- Included leaks.phpw (memory leak test program)
- Replaced constant __func__ for the more standard __FUNCTION__

------------------------------------------------------------------------------
Version 0.40 (alpha) - build 152
Date: May 3, 2005
------------------------------------------------------------------------------

******************************************************************************
*           WARNING: THIS VERSION IS NOT 100% BACKWARDS COMPATIBLE.          *
*                 SOME CHANGES WILL AFFECT EXISTING CODE!                    *
******************************************************************************

NEW FEATURES AND IMPORTANT CHANGES

- Big changes and enhancements to the documentation.
- Calendar control added (thanks to Davide for the code). See calendar.phow.
- HyperLink control added (thanks to Davide). See manual and hyperlink.phow.
- InvisibleArea control added. See invisible.phpw.
- Treeviews have learned lots of new tricks. All treeview nodes are now assigned a unique identifier. You can now: Select any node; Get the id of the currently selected node; Create treeview nodes in any possible level; Delete selected nodes and their children; Store and retrieve an integer, string or float value into any treeview node; Expand or collapse a node; Get the parent, level and expanded/collapsed state of a node; Set the icons for a node.
- It is now possible to set and retrieve integer values from combo boxes and list boxes with wb_set_value() and wb_get_value(). See manual and combo_list_boxes.phpw.
- wb_set_area() will control maximum and minimum window size in resizable windows with constants WBC_MINSIZE and WBC_MAXSIZE. See resizable.phpw.
- New notification message WBC_RESIZE is used to resize and/or reposition controls when main window changes size. It is now possible to fake split windows. See resizable.phpw.
- Drawing persistently on a window is now possible by using new WBC_CUSTOMDRAW style (set automatically for naked windows) and WBC_REDRAW notification message. See customdraw.phpw and borderless.phpw.
- New function wb_get_level() gets the level of a treeview node
- New function wb_get_state() expands / collapses a treeview node
- New function wb_set_state() get the treeview node expanded / collapsed state
- New function wb_set_range() replaces some functionality of wb_set_value()
- New function wb_destroy_font(), must be called after wb_create_font() to avoid leaks
- New function wb_destroy_control()
- Tab controls can now be nested (one level only). See tabcontrol.phpw.
- New tool h_exec created to make script execution easier (see readme at \tools\h_exec). Source now has WinBinder (BSD-style) license and included at \source\h_exec.
- wb_create_control(): added parameter $ntab to prevent conflicts with checkbox / radiobutton values
- The callback function is only notified when there is a corresponding flag, except for default notifications. For example, to detect when a window resizes itself, wb_create_window() must use the WBC_NOTIFY style and include WBC_RESIZE in param. See "windows messages and events" in manual.
- wb_get_value(), wb_get_selected(), wb_set_value(), wb_set_selected(): meaning was reviewed and made more consistent in many cases, dropped some nonsense uses
- wb_delete_items() works with ListBox, ComboBox, ListView, TreeView
- wb_draw_image() accepts optional transparent color
- wb_get_system_info() option: "temppath" returns the temporary path
- wb_set_registry_key(): added type float
- wb_message_box() return values had some changes (see manual)
- New meaning of $font parameter in wb_set_font(): -1 means system font, 0 means current (latest) font, which is the default
- New parameter $forcelowercase in get_folder_files(), default is TRUE
- Use wb_set_size() to set width of ListView columns
- Dropped parameter numitems from wb_delete_items(). To delete multiple items, use an array.
- May set the text of a RTFEditBox upon creation (wb_create_control), does not need to use wb_set_text() anymore. See rtfedit.phpw.
- wb_get_registry_key() now returns "" (an empty string) if an entry exists but is empty and NULL if it does not exist
- wb_set_image() returns a bool, added $param1 and $param2 parameters
- New bool parameter $clientarea added to wb_get_size() and wb_get_position() allows selecting which type of window area to return (may be removed in the future)
- wb_set_pixel() function renamed to wb_draw_point()
- wb_set_text(): added parameters $item and $subitem
- wb_set_text(): removed $append parameter (was not being used)
- wb_set_text() will now change a menu item text
- wb_set_text() for ListViews: If a null element is used on the array, the respective column is skipped.
- wb_set_item() function dropped and mapped to wb_set_text()
- Replaced constant WBC_DEFAULT by IDDEFAULT (meaning zero anyway)
- WBC_DBLCLICK / WBC_HEADERSEL / WBC_GETFOCUS are now bit flags
- wb_create_items(): parameter $items was changed for treeviews. Order now is: Caption, value, where, image, selectedimage, insertiontype
- Dropped constant WBC_KEYPRESS, replaced by WBC_KEYDOWN / WBC_KEYUP
- Changed parameters of wb_set_item_image() (see manual)

FIXES

- WBC_SINGLE flag meaning (for ListViews) was inverted. Fixed.
- WBC_DBLCLICK, WBC_MOUSEMOVE, WBC_MOUSEDOWN, WBC_MOUSEUP were being passed incorrectly. Fixed.
- Multiple icons appeared in the taskbar in multiple-window applications. Fixed.
- Multi-line Label controls were not being displayed properly. Fixed.
- Random garbage returned when retrieving text of non-existing items in ListViews. Fixed.
- wb_create_items() corrections thanks to Hans
- wb_set_text() could not change the value of the first item on a ListView. Fixed.
- wb_set_text() in ListViews: fixed bug when attempting to change text of a line where the first column is zero.
- wb_set_registry_key() was reporting an error when a bool was passed to it. Fixed.
- Fixed resource leak in wb_create_bitmap.
- Resizing / moving controls was not working with maximized windows. Fixed.
- Many other fixes, bugs and several potential crashes in several functions

SCRIPTS

- Other scripts:
	html_control.phpw: a mini-browser using cwebpage.dll
	radio_groups.phpw: how to work with separate radio button groups
	serial.phpw: shows how to access a serial port
	tray_popup.phpw: shows a custom-drawn window that pops up from the taskbar
- Many changes and fixes to existing scripts

OTHER CHANGES

- Hyperlink: variable text color
- Fixed resource leak in wbCreateBitmap()
- Removed WS_EX_APPWINDOW	styles from window classes AppWindow, ResizableWindow, PopupWindow, NakedWindow so there will be only one icon in multiple-window apps
- Dropped wb_get_pixel_direct(), using wb_get_pixel() with four parameters instead
- Dropped wbtemp_delete_listview_item()
- Dropped wbtemp_clear_listview_columns()
- Rewrote wb_delete_items. Now it works equally well for ListBox, ComboBox, ListView, TreeView
- Added trim() functions to wb_generic.c
- Added wb_control_calendar.c
- Added Calendar class, lparam1 is selected unix stamp
- InvisibleButton class added
- New sample invisible.phpw
- wb_get_value(), wb_get_selected(): meaning was reviewed and made more consistent in many cases
- I'm making sure everything has long tags to avoid future problems
- May use wb_set_size() to set width of ListView columns: wb_set_size($list, array(200, null, 60, 60))
- ListView WBC_SINGLE flag meaning was inverted, Fixed.
- Reviewed wb_message_box() return values (see manual)
- Fixed bugs and several potential crashes in wb_draw_text(), wb_set_font(), wbtemp_create_toolbar(), wbtemp_create_menu(), wbtemp_set_accel_table(), wb_set_image() and other places

------------------------------------------------------------------------------
Version 0.39 (alpha) - build 146
Date: Apr 23, 2005
------------------------------------------------------------------------------

- wbSetEnabled(): corrected return value for EnableWindow()
- New function: wbGetTreeViewItemLevel()

------------------------------------------------------------------------------
Version 0.39 (alpha) - build 145
Date: Apr 22, 2005
------------------------------------------------------------------------------

- Two levels: AssignHandlerToTabs()

Main new features and changed features

- Fixed treeview expand/collapse, was not working
- New wb_get_system_info() option: "temppath" returns the temporary path
- wbtemp_set_text(): added parm item
- wb_set_text() can change a menu item text
- Added type double to wb_set_registry_key()
- wb_get_registry_key() now returns "" if an entry exists but is empty and NULL if it does not exist
- Created wb_set_icon() (Which is not for .ico files, but for controls with icons: ListView and TreeView)
- New function: wbtemp_get_treeview_item_text()
- Dropped wb_set_item_image(), mapped to wb_set_image()
- Dropped wbtemp_create_listview_images()
- Dropped wbtemp_get_treeview_item_state()
- Dropped wbtemp_set_listview_item_image(), wbtemp_set_treeview_item_image(), wbtemp_get_treeview_item_parent()
- Dropped wbtemp_set_treeview_item_state()
- Dropped (new) functions wb_set_item_value(), wb_get_item_value()
- Dropped (new) wb_set_item_text(): use wb_set_text() with $item
- wb_create_control(): added param ntab to prevent conflicts with checkbox / radiobutton values
- wb_set_image(): added $param2 parameter
- wb_set_text(): added $item parameter
- wb_set_text(): removed $append parameter
- wb_set_value(): added $item parameter
- wbtemp_create_control(): added $ntab parameter
- wbtemp_set_range() renamed to wb_set_range(), new public function that replaces some functionality of wb_set_value()
- wbtemp_set_accel_table() now unsets the accel table using NULL

Main fixes

- Fixed a coding error that could crash some applications
- Multi-line labels were not working properly. Fixed.
- wb_set_registry_key() was reporting an error when a bool was passed to it. Fixed.
- Fixed several potential crashes in wbtemp_create_toolbar(), wbtemp_create_menu(), wbtemp_set_accel_table(), wb_set_image() and other locations

Changes in PHP scripts

- Changes in accel.phpw
- Changes in make_release.phpw
- New sample code: tabcontrol.phpw
- Many changes in tabcontrol.phpw
- Updated _scale_controls in wb_resources.inc.php to deal with extra parameter in wb_create_control()

Changes in C code

- Fixes in ConvertLineBreaks()
- Potential crash in wbSetText() avoided (NULL test)
- New function ConvertLineBreaks() used by wbtemp_create_control(), fixed coding error that was crashing some apps
- wb_set_image() now gives an error if hImage is invalid and other fixes
- wbLoadImage(): hIcon NULL checking was wrong, now nIndex is UINT to prevent negative indices
- Fixed crashes in wbtemp_create_toolbar(), wbtemp_create_menu(), potential crash in wbtemp_set_accel_table(): wrong zend var type, test against NULL pointers, more
- Maximum images in a control ImageList is now the bitmap nwidth (because it does not make sense to have more than with 1-pixel elements in an ImageList) or 128, whichever is lower
- Fixed several potential crashes in wbCreateListViewImageList(), wbCreateTreeViewImageList(), CreateToolbar()
- Corrected wb_set_image() parameters
- Updated return values in wb_control_treeview.c: wbSetTreeViewItemText(), wbSetTreeViewItemValue()
- New function wbSetMenuItemText()
- wbSetText(): added parm item
- wbDrawText(): Used DT_EDITCONTROL
- Updated return values in wbSetTreeViewItemText(), wbSetTreeViewItemValue()
- New function: wbGetTreeViewItemText()
- wbCreateControl(): added nTab parameter
- wbCreateListViewImages() renamed to wbCreateListViewImageList()
- wbSetImage() parameter order changed

------------------------------------------------------------------------------
Version 0.39 (pre-alpha) - build 140
Date: Apr 07, 2005
------------------------------------------------------------------------------

WARNING: SOME CHANGES WILL AFFECT EXISTING CODE

Main changes

- wb_create_items() parameters changed for treeviews. Order now is: caption, value, level, image1, image2
- WBC_DBLCLICK, WBC_MOUSEMOVE, WBC_MOUSEDOWN, WBC_MOUSEUP were being passed incorrectly through pwbobj->style instead of pwbobj->lparam. Fixed.
- Drawing persistently on a window made possible using WBC_CUSTOMDRAW style, WBC_REDRAW flag
- New tool h_exec created to ease script execution (see readme at \tools\h_exec). Source was adapted to WinBinder license and included at \source\h_exec.
- Treeviews have learned many new tricks:
	- wb_create_items() may store an integer, string or float value to a treeview node
	- wb_set_value() stores an integer, string or float value into the selected treeview node
	- wb_set_item_value() stores an integer, string or float value into a treeview node
	- wb_get_item_value() returns the value stored in a treeview item with wb_create_items() or wb_set_item_value()
	- wb_get_value() returns the value stored in the selected treeview item with wb_create_items() or wb_set_item_value()
	- wb_set_selected() now selects treeview nodes
	- wb_set_item_image(): added one parameter (selectedimage)
	- wb_create_items() returns an array of unique integers (actually the HTREEVIEW handles) of the newly inserted items
	- wb_delete_items() deletes a treeview item. Receives the unique integer (the HTREEVIEW handle) that refers to it
	- wb_get_selected() now returns a unique integer (actually the HTREEVIEW handle) referring to the selected treeview item
- The callback function is only notified when there is a corresponding flag. For example, to detect when a window resizes itself, wb_create_window() must use the WBC_NOTIFY style and include WBC_RESIZE in param.
- WBC_DBLCLICK / WBC_HEADERSEL / WBC_GETFOCUS are bit flags
- New Treeview public functions:
	wbtemp_create_treeview_item()       -> mapped to wb_create_items()
	wbtemp_get_treeview_item_value()	-> mapped to wb_get_item_value()
	wbtemp_get_treeview_item_parent()   -> mapped to wb_get_parent()
	wbtemp_get_treeview_item_state()    -> mapped to wb_get_state()
	wbtemp_set_treeview_item_image()    -> mapped to wb_set_item_image()
	wbtemp_set_treeview_item_selected() -> mapped to wb_set_selected()
	wbtemp_set_treeview_item_state()    -> mapped to wb_set_state()
	wbtemp_set_treeview_item_text()     -> mapped to wb_set_item_text()
	wbtemp_set_treeview_item_value()    -> mapped to wb_set_item_value()
- New functions (in wb_windows.inc.php):
	- wb_get_parent() -- returns the parent node of a treeview node
	- wb_get_state() -- expand / collapse treeview nodes
	- wb_set_state() -- get treeview node expanded / collapsed state
	- wb_get_item_value() -- get treeview node value
	- wb_set_item_value() stores an integer, string or float value into a treeview node
- wbtemp_set_treeview_item() was removed (was not used anywhere)
- New constants WBC_MINSIZE, WBC_MAXSIZE used with wb_set_area() to control maximum and minimum window size in resizable windows
- wb_draw_image() accepts optional transparent color
- Callback function on WM_SIZE (windows style must have the WBC_NOTIFY notification flag on)
- New constant WBC_REDRAW, used to redraw a custom-drawn window when necessary. This includes a window being resized.
- New constant WBC_RESIZE, used to resize and/or reposition controls when main window changes size
- Resizing / moving controls was not working with maximized windows because wb_get_size() was returning WBC_MAXIMIZED insted of window size. Fixed.
- New flag: WBC_CUSTOMDRAW for owner-drawn windows (flags is automatic for naked windows, no need to declare it)
- wb_set_item() function renamed to wb_set_item_text() -- alias added to wb_windows.inc.php, will be removed in the future
- wb_create_items() now works with combo boxes too
- wb_set_item_image() returns a bool
- wb_set_item() could not change the value of the first item on a ListView. Fixed.
- wb_set_item(): If a null element is used on the array, the respective column is skipped.
- wb_set_item(): bug when trying to change a line where the first value is zero. Fixed.
- New bool parameter clientarea added to wb_get_size() and wb_get_position() allows selecting which window area to return
- New function wb_destroy_font(), must be called after wb_create_font() to avoid GDI leaks
- Added meaning of font parameter in wb_set_font(): -1 means system font, 0 means current (latest) font, which is the default (ATTENTION: these defaults are different from those of wbDrawText()!!!)
- New parameter $forcelowercase in get_folder_files(), default is TRUE
- New function wb_get_pixel_direct() for faster performance than wb_get_pixel()
- Replaced constant WBC_DEFAULT for IDDEFAULT (meaning zero anyway)
- Dropped constant WBC_KEYPRESS: replaced by WBC_KEYDOWN and WBC_KEYUP
- wb_windows.inc.php, wb_create_items(): code correction (thanks to Hans)
- Fixed bugs in wb_draw_text()
- wb_set_font() crashed with invalid font handles. Fixed.
- Many, many changes in documentation.

Changes in PHP scripts

- New scripts:
	- resizable.phpw: demonstrates setting minimum/maximum size for resizable windows, changing control size and/or position based on window size, how to fake a split window
	- treeview.phpw: demonstrates new tricks with treeviews
	- customdraw.phpw: demonstrates how to use custom drawn windows / persistent bitmaps
	- html_control.phpw: a mini-browser using cwebpage.dll
	- radio_groups.phpw
	- rtfedit.phpw
	- serial.phpw
	- tray_popup.phpw
- Changes to existing scripts:
	- calc.phpw: may be called from anywhere
	- listview.phpw: some updates
	- ttfreader.phpw: was not reading data from all TTF files
	- Corrected radio groups in focus.phpw
	- Todo.phpw: Old call to db_get_wrap_version() replaced by db_get_info("version"), thanks to runner60
	- borderless.phpw: made simpler, uses persistent bitmaps, no need to a Frame control anymore
	- Other changes
- New resources: h_setup.ico, browser.bmp

Changes to C code

- Moved error message from wbCreateWindow() to wb_create_window(), now with fatal status
- Treeviews:
	- New treeview functions: wbSetTreeViewItem(), wbGetTreeViewSelectedItem(), wbAddTreeViewItemChild(), wbAddTreeViewItemSibling(), wbAddTreeViewItemLevel(), wbGetTreeViewItemValue()
	- wbSetTreeViewSelectedItem() renamed to wbSetTreeViewItem()
	- wbCreateTreeViewImages() renamed to wbCreateTreeViewImageList()
- Dropped custom message WBWM_KEYPRESS: replaced by WBWM_KEYDOWN and WBWM_KEYUP
- New constants WBC_MINSIZE, WBC_MAXSIZE used with wbSetWindowArea() to control maximum and/or minimum window size
- WM_ERASEBKGND message is being processed in NakedWndProc()
- Naked window class: wc.hbrBackground was GetStockObject(WHITE_BRUSH), changed to NULL to avoid flicker on application startup
- ImageButtons were not being drawn: fixed DefaultWBProc, used wbGetWBObj(lpdis->hwndItem)
- New parameter in wbGetWindowPosition(): bClientRect
- Message WM_SIZING is processed to control window size based on WBC_MINSIZE, WBC_MAXSIZE settings
- New parameter bClientRect added to wbGetWindowSize()
- wbDrawBitmap() may draw with optional mask using new parameter clTransp
- WBOBJ structure: field "handle" renamed to "hwnd", "pbuffer" field added, lparam2 replaced by a union with rcTitle, arMin and arMax or lparams[8]
- In wbGetWindowSize(): may opt between GetClientRect() or GetWindowRect
- Added parenthesis to some constants (0x00010000 + 103), etc.
- In wbCallUserFunction() removed ?: operator from line ZVAL_LONG(z1, (LONG)id)
- wb_control.c: Fixed resource leak on wb_set_image
- wb_control.c: Fixed two resource leaks in SetTransparentBitmap()
- Created function wbDestroyFont()
- Changed meaning of nFont in wbSetControlFont(), wbGetFont(), wbDestroyFont() -- (ATTENTION: these defaults are different from those of wb_draw_text()!!!)
- Created wbGetPixelDirect()
- Windows memory functions replaced by Zend equivalents in wb_bitmap.c
- Removed IsBadReadPtr() call in wbGetBitmapBits(), was not working for large images and doesn't appear to be necessary anyway
- Small changes in message strings

------------------------------------------------------------------------------
Version 0.38 (pre-alpha) - build 133
Date: Mar 7, 2005
------------------------------------------------------------------------------

To review the changelog for version 0.38 and before, see archived changelog in
http://winbinder.org/doc/changelog_arch1.txt
