- 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

- 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

- solved memory leak that occurred on every function call: added some extra calls to efree() in function wbCallUserFunction() in module phpwb_wb_lib.c

- wb_control.c: Rectified wb_set_range() slider TBM_SETRANGEMAX action and other aspects of this function

- WBC_MOUSEMOVE messages were not being sent in certain situations

- InvisibleArea was subclassed to process and send WM_MOUSEMOVE messages to the callback

- 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.

- New installer includes PHP version 4.4.1, SQLite, FreeImage, HTML sources for manual and other files. Server for downloading PHP 5.0.5 is selectable
- New, much better folder structure (thanks Techtonik, Stefano)
- wb_load_image() and wb_set_image() can load/set small icons (thanks EK)
- wb_get_size() can also return the dimensions of a text in pixels
- wb_sys_dlg_save() now allows a default extension to be added to file names
- wb_set_selected() allows selection of root node in treeviews
- Treeviews now keep the selected item highlighted (usually in gray) when focus is lost
- Implemented non-read-only (editable) combo boxes
- New function: wb_draw_ellipse()
- Included parameter for dashed line styles in some drawing functions
- Lots of changes and fixes in the PHP scripts, as well as a couple of new ones

... and many other fixes and changes as usual. Please make sure you read the changelog for the complete list!

- Implemented the much awaited HTML control
- New memory constants for wb_get_system_info()
- Easy way to set/retrieve columns widths from ListViews
- Custom-drawn windows now created with system background color
- Optional standard window border for naked windows
- Several bug fixes, corrections to manual and other improvements

- Applications can be made single instance
- Implemented Always on Top windows
- Windows with no border, no title bar and draggable
- New and improved PHP database library (thanks to Hans) with several enhancements and new documentation
- Programatically minimize / maximize / restore application windows
- New control class for bimapped buttons with automatic tooltips
- Change icons in the taskbar
- wb_get_system_info("DiskDrives") now returns the list of available disk drives
- wb_get_image_size() removed, merged with wb_get_size() which now returns icon sizes too
- Some odd constant names changed at last
- In most (but not all) errors, the warning message will now display the name of the function where the error occurred
- New, smaller php-win.exe does not need php.exe anymore
- Fixed: Closing modeless dialogs terminates applications
- Fixed: Persistent icon bug in ListViews
- Fixed: After switching to another program and back, wb_destroy_window() destroyed the main window instead of the dialog
- Fixed: Modeless dialogs did not always pass the focus to the calling window when closed
- As always, many other fixes and enhancements, several new sample scripts and many additions and corrections to the documentation.

Please make sure you see the changelog.txt and db_changelog.txt for details.

- "plus" string accepted as accelerator in menus or in wb_create_control($mainwin, Accel, ...)
- All styles that can be set with wb_set_style() can now be set on wb_create_control() too (but not vice-versa yet)
- Arrow keys will change pages of a tab control with the keyboard focus (Part of item #353)
- Edit controls send the WBC_KEYPRESS notification message when a key is pressed. lparam2 contains the key code
- Fixed function wb_set_style(), was broken
- Fixed inconsistency in WBC_DBLCLICK: was being tested in style instead of lparam (thanks Alexandre)
- Item #300 (resize toolbars automatically) - already implemented
- ListView: header selection goes now through WBC_HEADERSEL notification message in $lparam1; Header number is $lparam2. Thus WBC_HEADERSEL must be included as lparam in wb_create_window(). CAUTION: THIS CHANGE MAY BREAK EXISTING CODE.
- Message WBC_HEADERSEL is sent to callback function when a ListView header is clicked
- More options in wb_wait(): WBC_MOUSEUP, WBC_KEYUP
- Moved the OOi interface to a separate file
- New aliases accepted as accelerators in menus or in wb_create_control($mainwin, Accel, ...): "ESC", "PGDN", "PGUP", "INS", "DEL"
- New constant WBC_KEYDOWN, used in wb_wait()
- New constant WBC_KEYUP, used in wb_wait()
- New constant: FTA_REGULAR (Same as FTA_NORMAL)
- New constant: WBC_HEADERSEL
- New function wb_wait() can be used as a simple delay or to verify if a key or mouse button was pressed, useful for lengthy operations
- New function: wb_draw_image() (Issue #138)
- New function: wb_draw_text()
- New function: wb_get_focus(), returns the control or window that has the focus
- New notification: WBC_KEYPRESS
- New wb_get_system_info() parameters (part of item #276):
- "commandline": The original Windows command line including the executable file (PHP.EXE)
- "consolemode": A boolean indicating whether console (DOS box) is active or not
- "computername": The name of the computer, in a network
- "username": The name of the user, in a network
- "screenarea": The total area (x, y, width, height) of the screen, in pixels
- "workarea": The valid area (x, y, width, height) of the screen, in pixels
- "exepath": Path to the main executable (PHP.EXE)
- "systemfont": The default interface font, which will be used in the controls
- No need to include notification messages as lparam when creating a window
- Parameter linewidth works correctly in wb_draw_rect() now
- Solved bug #399, "Menu access keys won't work in some apps"
- Solved issue #299, "Optional dotted lines in treeviews", using wb_set_style()
- Solved serious leakage in some wb_draw* functions
- Some resource leaks solved
- Tab control: tab selection goes now through WBC_HEADERSEL notification message in $lparam1; Tab number is $lparam2. Thus WBC_HEADERSEL must be included as lparam in wb_create_window(). CAUTION: THIS CHANGE MAY BREAK EXISTING CODE.
- wb_create_font() had undefined values for optional parameters, fixed
- wb_create_image(): two optional, extra parameters for use with image libraries (like FreeImage): bmi, bits
- wb_draw_text() can accept flags WBC_CENTER, WBC_LEFT, WBC_RIGHT, WBC_LINES, WBC_ELLIPSIS
- wb_draw_text() now accepts three different vertical alignments: new constants WBC_TOP, WBC_BOTTOM, WBC_MIDDLE
- wb_exec() will give a warning if the executable/target file does not exist
- wb_exec(): new 'o' parameter will "shell execute" a phpw file instead of running it. It will usually run it anyway, except if the user has changed the .phpw association.
- wb_exec(): new parameters 'c' or 'w' run a phpw file in console or windowed mode, respectively
- wb_poke(): an incorrect NULL test was improperly invalidating some results. Fixed.
- wb_send_message(): 0xFFFF (65535) can be used as first parameter (HWND_BROADCAST in Windows API)
- wb_set_style(): changed parameter to set/unset style (bool)
- wb_wait: changed parameter order, now flags is last
- Bug fix: wb_wait was always returning upon keyboard events regardless of flags: fixed.
- Other changes

This release has several enhancements and fixes. Here are the main ones:

- A working concept of a visual form editor for WinBinder
- New functions: wb_get_position(), wb_get_size(), wb_get_id(), wb_get_item_list()
- Fixes in wb_get_text() and wb_set_item()
- Reviewed and updated object-oriented interface
- Independent radio button groups now possible within the same window
- New interface for the make_release application
- Many small improvements and other bug fixes

This release has many bug fixes and more enhancements. the main ones are:

- Fixed bug that made some classes appear 'wrong' over tab pages in Windows XP
- New style options: grid lines and check boxes in ListViews; tick marks in Sliders; sunken borders in various classes; wrap lines in labels
- Consistent processing of focus and double-click notification messages
- New functionalities and fixes to low-level functions
- Several enhancements to the example and test applications
- Several other enhancements and various bugs corrected
- Some enhancements to web site

Some fixes werw quite major and may be still unstable, so please report any bugs you find.