** This file contains an SQLite 2.1 database **(uãÚoýÐP8€€H&€ $&&index(item autoindex 1)item3ÿÿ¦€ ¦tableitemitem4CREATE TABLE item ( id int(11) NOT NULL PRIMARY KEY, name varchar(100), description longtext, cat int(11), priority int(1), severity int(1))/€ #,//index(severity autoindex 1)severity43xl€ !ltableseverityseverity44CREATE TABLE severity (id int(11) NOT NULL PRIMARY KEY, name varchar(100))¸/€ #,//index(priority autoindex 1)priority45xÄl€ !ltableprioritypriority46CREATE TABLE priority (id int(11) NOT NULL PRIMARY KEY, name varchar(100))%€ "%%index(cat autoindex 1)cat47ÿÿÿ€n€ ntablecatcat48CREATE TABLE cat ( id int(11) NOT NULL PRIMARY KEY, name varchar(100), level int(11))xÈR€ b0G2XU€+ 8b0G2YV€V Pb0G2Zq€‚# hb0G2ar€³* b0G2be€æ€K¬:”€X &’”163Irregularly shaped windowsOption to create application windows with transparent masks for irregularly-shaped, borderless windows5413TÀ„l€Ù %ehjl347Sort contents of controlsSort list boxes, combo boxes and other controls using wb_sort()2633€L€ÚREHJL348Tab controls do not behave correctly if handler is not assignedA tab control only shows/hides the correct child controls if wb_set_handler() is assigned to its parent window. This only occurs in the very rare eZ|ê€Û %ãæèê349Tabs placed at the bottomOption to make tabs appear at the bottom or on the right side: Use style TCS_BOTTOM, TCS_VERTICAL, etc. (CommCtrls v. 4.70) "This style is not supported if you use ComCtl32.dll version 6" 443S4€Ü -024350Tooltips on tabsUse TCS_TOOLTIPS4435@`°—€ -“•—4wb_set_text() must not select itemswb_set_text() must not be used to select items from controls. Should use wb_set_selected() instead2636ÿd£€ ,œŸ¡£24Create descriptions inside C codeProvide at least a one-line description for: - Functions - Structures and types - Constants - Variables 5113€231Support to the Windows ClipboardSupport reading data from and to the Clipboard. One option woiuld be to use already existing WB functions like: wb_get_text() wb_set_text() wb_set_image() and create a special °>€ /8:<>66PHP-style comments for documentationOptional313yPbe used to select items from controls. Should use wb_set_selected() instead2626ø and code examples for all functions - Overview: The status bar - Overview¤`œ‚€ !{~€‚39List boxes with imagesUse wb_set_image() or wb_set_item_image() to associate icons or bitmaps to list box items3733 ´€  6­°²´41Use wb_create_items() and wb_delete_items()Combo boxes and list boxes should allow wb_create_item(<$id>, <$value or $text>, [$index]) and wb_delete_items($index)2833´`¤€  * ¢¤42Create items with wb_set_text()Combo boxes and list boxes should allow the creation of items with wb_set_text() if the text parameter is an array2833|€ uxz|40Editable combo boxesDrop-down combo boxes are created with style CBS_DROPDOWN instead of CBS_DROPDOWNLIST2833®€  4§ª¬®42Create combo box items with wb_set_text()Combo boxes and list boxes should allow the creation of items with wb_set_text() if the text parameter is an array2833Û DROPDOWN instead of CBS_DROPDOWNLIST2823plœ¸„€  "}€‚„49Combo boxes with imagesUse wb_set_image() or wb_set_item_image() to associate icons or bitmaps to combo box items2833Ì´h»€ Bµ·¹»56Changes to wb_get_registry_key(), wb_set_registry_key()- Must return/set integer values in addition to strings - Support reading/writing binary data and other formats 636DÌ€ 0ÅÈÊÌ57wb_exec() should work in console mode- wb_exec() should accept parameters - Should capture the output (see commented-out code in phpwb_winsys.c) - Document extra parameter in function2526a€ :Z]_a60wb_set_item() does not have standard parametersMust check with other functions2633Úh€I56Changes to wb_get_registry_key(), wb_set_registry_key()* Must return/set integer values in addition to strings - Support reading/writing real doubles (currently stores them as strings), binary data and other forma?L´¬ø´œ€Þ 7•˜šœ352Allocate tab controls and pages dynamicallyTABDATA should allocate items dynamically; now it is carrying a somewhat large data structure5116°€ß:ˆ‹353Fix keyboard interface for tab controls- Give focus to tab controls and make them behave "normally": The tab/alt+tab key should move the focus to the other controls in the page and outside the tab control. This isgp®€à B§ª¬®354Multiline edit controls do not process tab / shift+tabAfter a multiline edit control receives the focus, it does not tab to the next (or previous) control3236Ûw€á #psuw355Support for mouse wheelAutomatic support is already present in Windows XP, must check other systems5613ü"€8 "64Bitmap, ImageList, BitBlt function set(See the GD extension) Proposed function set: . wb_load_image($filename, $index=0) . wb_create_image($width, $height, $background=BLACK) . wb_create_mask($image, $transG¿€"¸»½¿65Separate threadsThread the created windows somehow, so that events to the handled process are queued up, something like: wb_set_busy($main, true); // do long loop wb_set_busy($main, false); // continue... Onc5¬€4¦¨ª¬23Missing topics in WinBinder manual- Detailed description of very important functions like wb_create_window() - Comprehensive descriptions and code examples for all functions - Overview: The status bar - OverviewW all items with a particular value4843ü$ €9 267Check available open source extensions- win32std: win_play_wav() - win32std: resource functions - win32std: associative array to call a standard Open/Save dialog box - win32std: resource stream to embed Php scr@*€’ "#&(*270In-place label editing5213|*€“ "#&(*271In-place label editing4813(š€” -“–˜š318Include information for phpinfo()winbinder_module_entry() function, required for ZEND module, should include information for phpinfo()2515A€–K:=?A275All graphic functions must accept both handles and files- Graphical functions must accept both handles and files: wb_get_image_size() etc. - Graphic functions like wb_set_pixel() and wb_set_pixel() should accept IÜlŽ€8‡ŠŒŽ68wb_create_window() may abort executionwb_create_window() (and probably other functions too) aborts execution if parent window is an arbitrary number like 1, 200, etc. The cause is that wbIsWBObj() does not effectivHV€ +ORTV397Allow more keys as acceleratorsNew constants: "NumPad" "Win" 1815$Œen creating menu items3833ðO€ HKMO73Always on topNew option for top-level windows: always on top5443Š€ &ƒ†ˆŠ75Dialogs do not send IDCLOSEDialogs, when closed, are not sending a WM_COMMAND message with IDCLOSE as the wID parameter2136t$À=€ 569;=78Automatic creation of edit control (buddy)4213y¹€# .²µ·¹83Borderless windows with backgrounds- Allow the creation of "raw" windows with no border, title bar, or menu. - Allow bitmapped backgrounds - Allow color backgrounds5443Ùì¼X΀" $ÇÊÌÎ82Allow any images in menusToday's limitations: - No icons allowed, only bitmaps - Shows only the "checked" image - Only 13 x 13 pixels - Whites become transparent - Colors are faded3815x À3815lJ€% CFHJ85Latch-type buttonsPress to push, press again to release3933D€& <=@BD86Buddies can't allow entries outside spinner range4236X€"+82Allow any images in menusToday's limitations: - No icons allowed, only bitmaps - Shows only the "checked" image - Only 13 x 13 pixels - Whites become transparent - Colors are faded - Images are inverted wheTDPress to push, press again to release3923´ø„j€  7dfhj44Events not being passed to callback functionSeparate the KeyDown, MouseDown, etc. events533üh€ .adfh62wb_set_selected() must do treeviewswb_set_selected() must select items from treeviews4843 å€8Þáãå67Rename functions / classes / constantsFunctions: wb_set_pixel() -> wb_draw_dot() or wb_draw_point() wb_get_pixel() -> wb_get_color() Classes: ListView -> Grid? Frame->Static? Menu->MenuItem? Etc. CojtOverviewW œ€ :•˜šœ76Modal dialog boxes should have correct behaviorThe function that creates a modal dialog box should return only after the dialog is closed2136­€ 4¦©«­32Review of functions / consistent behavior- wb_set_text() must not be used to select things - clear wb_get_item_list() vs. wb_get_text() confusion - etc.5136pÛŒø °b0G1a€ ˜b0G2Wd€ xb0G2X6€ hb0G1u€ €b0G1~€ b0G2WW€ Èb0G2We€ Pb0G1t€ àb0G2Wf€ b0G2Wg€ p b0G2Wh€ (b0G2Wi€ @b0G2Wn€ Xb0G2Wu€ ˆb0G2Wv€  b0G1X€¡ ¸b0G2Wy€ ¸b0G2Wz€ Ðb0G2W|€ èb0G2X€ b0G2X1€H b0G2X2€ 0b0G2X3€ 8b0G2X4€0À `b0G2X5€ xb0G2X6€ b0G2X9€ ¨b0G2XB€ Øb0G2XC€ð Øb0G2XD€ b0G2XE€0P b0G2XG€ ˜ b0G2XH€! 8b0G2XI€" hb0G2XJ€#˜ hb0G2XK€$ €b0G2XL€% °b0G2XM€&à °b0G2XO€' Èb0G2XP€( b0G2XQ€) b0G2XS€*à b0G2XX€, 8b0G2XY€- Pb0G2Xc€. hb0G2Xf€/ €b0G2Xg€0 °b0G2Xh€1 b0G2YT€U Èb0G2Xk€3 øb0G2Xl€4 øb0G2Xm€5 (b0G2Xn€6Ð (b0G2Xo€7 @b0G2Xp€8 Xb0G2Xq€9 pb0G2Xr€: ˆb0G2Xs€;  b0G2Xt€< ¸b0G2Xu€= èb0G2Xv€>x b0G2YT€U b0G2Xx€@ b0G2Xy€A 0b0G2Xz€B Hb0G2Y1€C `b0G2Y3€D b0G2Y5€EØ b0G2Y6€F ¨b0G2Y7€G Àb0G2Y8€H ðb0G2YA€I  ðb0G2YB€J b0G2YC€K hb0G2YD€LH° 8b0G2YE€M hb0G2YF€N° hb0G2YG€O €b0G2YH€P ˜b0G2YI€Q Èb0G2YJ€Rà Èb0G2YQ€S ˜b0G2YS€T b0G2YT€U4T9€) 1257990Implement calendar (date/time control)3143€*€+ "#&(*94Three-state check boxes2933Ø5€- -.13598Process drag-and-drop in ListViews5233˜®€. 4§ª¬®102Create list box items with wb_set_text()Combo boxes and list boxes should allow the creation of items with wb_set_text() if the text parameter is an array3733Ûä<€/ 458:<105Implement context menus and pop-up menus3833 ©€0 "£¥§©106Context-sensitive help- Automatic context-sensitive help for dialogs - May use wb_exec() with parameters so there is no need to create a new function433„€1 !}€‚„107Auto geometry controlResizable windows should allow the setting of maximum and minimum sizes (message WM_SIZING)5443LÄ:€2 368:109Convert HTML to RTF(See SIGED project)4013al3€, ,/1397Color swatch buttonsA new class?3933<34à8Ç€4 7ÀÃÅÇ111Convert between bitmaps, icons, and cursorsConvert: - Bitmaps to icons - Icons to bitmaps - Bitmaps to cursors - Cursors to bitmaps - Cursors to icons - Icons to cursors 5013X¬8G€5 ,@CEG112Convert Rich Edit Format to HTML(See SIGED project)40134€66 113Incorrect window height in RC files* For tab pages, the interface designer must add about 15 dialog units or 24 pixels to all controls. This was solved with the creation of container tab pages. - Dialog boxes m°j€8 3dfhj115Create a callback for window activationCreate a callback to Windows message WM_ACTIVATE523øwò€9 )ëîðò116Create standalone executables- PHP2EXE - Optionally increase source code security: use the PHP Bytecode Compiler from PECL or some similar package to provide extra protection when releasing WinBinder applications to useUThH0€B (),.0125Implement Font system dialog2433Œ1€C )*-/1129Drop-down buttons in toolbars4533ÚÐ4€D ,-024131Set maximum number of characters3233Tt€E +mprt133Fix in wbCreateTreeViewImages()Use ImageList_AddMasked() in wbCreateTreeViewImages() (API layer)4836P‡€G6ƒ…‡135Avoid cascading events and messagesCallback functions are receiving multiple events. This should be avoided by filtering the notification messages according to the action (mouse click, keyboard, focus, etc.) GeN ©€H +¢¥§©136Implement user-defined controlsThe programmer may be able to define a class and do a callback to process mouse events, keyboard events, WM_PAINT etc.3033L€I ,EHJL138Create function wb_draw_bitmap()In fact it does a BitBlt5043˜DH^€3 0WZ\^110Convert from/to other bitmap formatsConvert to and from: JPEG GIF PNG5043ÿÿ=À6€A ./246124Implement Page Setup system dialog2433Lz€K (svxz140Convert integer RGB to arrayFunctions to convert integer RGB values to 3-element arrays and vice-versa5033§€T/ £¥§156Implement hyperlink controlsHyperlink controls can display a URL, an e-mail or other kind of hyperlink and call the appropriate application when clicked. The SysLink control seems tempting, but it was introducebxñ€: #êíïñ117Implement mouse cursorsCalling the SetCursor() API is trivial, but it may flicker a bit in slow systems because it competes with the cursor assigned to the control. A real wb_set_cursor() would have to correct this first[¼Mø‰€bC‚…‡‰180Closing modeless dialogs terminates applicationsA closing modeless dialog or a new top-level window that calls wb_destroy_window() terminates the application that calls it. For example: function process_1($windf€i0 191Treeviews should store valuesFor a treeview to be useful, it must storea value or array. If not, it will only return a string in wb_get_text() and wb_get_value() will return nothing. Another option is to associate üg€sP`ceg209Controls over tabs show wrong background colors in Windows XP* Labels, checkboxes, trackbars, buttons and child tab controls show their own background colors when positioned over a tab control. * If the "default"\"ô€x 3íðòô221Cannot remove icon from toolbar buttonsIf no index (null or empty index) is specified to a toolbar button, no icon should appear. Icon number zero is appearing instead. Workaround: use some non-existnt number as the iVor auto-sorting - Sort in opposite direction by clicking the appropriate header again - Indicate sorted column using an arrow - Individual flags for specific sort types: case-sensitive/insensitive/numeric, character code vs. locale 5233üìÒ€L ,ËÎÐÒ141Bitmapped buttons with XP themesBitmapped buttons with XP themes may also solve another cosmetic problem: disabled bitmapped buttons are shown with a gray square instead of a disabled image.3915xˆ‹€P 7„‡‰‹145Create 'enable_wb_low_level_functions' flagCreate a flag in PHP.INI to optionally prevent access to low-level functions1613È0€Q (),.0146Make one WB app call another2543#€R !#147Flat scrollbars4115t ´œ€U –˜šœ157Naming conventionsThere is still some confusion between controls, windows, Window (the OS), menus, toolbars, items, some functions etc. 316T€V $†‰‹159Text buttons in toolbarsImplement text buttons in toolbars. The text is being passed through pitem[i]->pszCaption already4535øw»€W *´·¹»162Implement scrollable containerNew control class: a scrollable window to contain images, checkbox lists and other controls. see Creating Scroll Bars in Windows API Help2633à´¬€U4¦¨ª¬23Missing topics in WinBinder manual- Detailed description of very important functions like wb_create_window() - Comprehensive descriptions and code examples for all functions - Overview: The status bar - Overviewäh b0G2YY€W Pb0G2YZ€X b0G2Zo€Ð €b0G2Ye€Zà €b0G2Yf€É ˜b0G2Yg€\ °b0G2Yk€] Èb0G2Yl€^ b0G2Ym€_0  øb0G2Yn€` b0G2Yo€a1 (b0G2Yq€b @b0G2Ys€c Xb0G2Yt€d pb0G2Yu€e ˆb0G2Yw€f ¸b0G2Yx€gÐ ¸b0G2Yy€h èb0G2Y~€i èb0G2Z€j b0G2Z1€k0 b0G2Z2€l Hb0G2Z3€m b0G2Zo€¼ `b0G2Z6€o xb0G2ZE€p ¨b0G2ZF€q8 ¨b0G2ZG€r Àb0G2ZH€s Øb0G2ZI€t ðb0G2ZP€u b0G2ZQ€v b0G2ZS€w Pb0G2ZT€x˜ Pb0G2ZX€y hb0G2Za€z €b0G2Zb€{ °b0G2Zd€|ø °b0G2Ze€} Èb0G2Zf€~ àb0G2Zg€ 8b0G2Zk€€PHìP6€Y ./246166* Optional grid lines in ListViews5245øL€Z FHJL168MIDI supportUse MMSYSTEM functions and/or mciSendString()7230:€] 2368:174Allow multiple selection in list boxes3733¬j€\ Bcfhj170Image inclusion in wb_create_items() is not consistentVerify this with other functions5246¬€_ 2¥¨ª¬176wb_set_control_value() must set lParamIn a treeview, wb_set_control_value($tree, $n, $value) must set the lParam value of the $n-order item (mixed type)4843t«€^ -¤§©«175wb_get_value() must return lParamIn a treeview, wb_get_value($tree) must return the lParam value of the selected hItem, or of a given item (mixed type)4843eturn lParamIn a treeview, wb_get_value($tree) must return the lParam value of the selected hItem, or of a given item (mixed type)4833„lue) must set the lParam value of the $n-order item4823xD-€` %&)+-177* Numeric-only edit boxes3243Ú€Ôh€e "adfh184Single instance optionThere should be an option so that apps have only one instance.2543„vel window that calls wb_destroy_window() terminates the application that calls it. For example: function process_1($windUˆt€c 1mprt182Automatic one-line help on status barSee message WM_MENUSELECT in the Windows API documentation.3835f€d /_bdf183Most recent files (or folders) listDefault menu is File, but should allow any menu3813Ô¸ÔÄ€e "½ÀÂÄ184Single instance optionThere should be an option so that apps have only one instance. It is easily done. References: - Petzold - codeproject.com/cpp/avoidmultinstance.asp2533d€€f 3y|~€186Buttons maintain borders after clickingMaybe only those which are over tab controls, or only bitmapped ones?3915C€g ; "Text 3" )); or wb_set_value($combobox, array( "value1" => "Text 1", "value2" => "Text 2", "value3" => "Text 3" ));2633à€g€t `ceg210Resource leaksVerify resource leaks in: * SetTransparentBitmap() - others (TBD)1716À.€u &'*,.217Implement splitter windows2233|©€v .¢¥§©218Auto save window size and positionWindows should have the option of saving their sizes and positions automatically to the registry or to an INI file.2013Q€w IJMOQ220Adjust thumb size according to data size and scroll bar range4135÷  8b0G2Zr€ƒ 8b0G2Zs€„ Pb0G2Zu€… hb0G2Zv€† €b0G2Zy€‡ ˜b0G2Z|€ˆ °b0G2Z~€‰ Èb0G2a1€Š àb0G2a2€‹ øb0G2a5€ (b0G2a9€` (b0G2aB€ @b0G2aE€’ Xb0G2aF€“ pb0G2aG€ ˆb0G2aJ€–  b0G2aK€— ¸b0G2aL€˜ Ðb0G2aO€™ èb0G2aQ€š b0G2aS€› b0G2aT€œ 0b0G2aV€ Hb0G2aW€ž xb0G2aX€Ÿø xb0G2aa€¢ b0G2ab€£ ¨b0G2ac€¤ Àb0G2ad€¥ Øb0G2ae€¦ ðb0G2af€§ b0G2ag€¨ b0G2ah€© 8b0G2ai€ª Pb0G2aj€« hb0G2ak€¬ €b0G2al€­ ˜b0G2am€® °b0G2an€¯ Èb0G2ao€° àb0G2ap€± b0G2aq€²Text function." Seems to make no difference, however. 2616ܸž€† @—šœž249Arrays and comma-separated values must be equivalentFunctions that accept arrays should also accept comma-separated strings and vice-versa5136x;€‡ (479;252Floating / dockable toolbarsReBar class4533@,€ˆ $%(*,254TreeView with checkboxes4815 O€‰ $HKMO255Treeview with filesystemSame as used in SHBrowseForFolder()4823øF€Š >?BDF257Treeview nodes must store collapsed/expanded state4845\R€‹ JKNPR258Treeviews must return the level and index of the selected item4843p€ /ilnp261Check for memory and resource leaks- Solved memory leak that occurred on every function call5116$?€ 78;=?261Check library for memory and resource leaks5116Ðàu€Œ )nqsu259* Use constants for resourcesUse constants AppWindow, ModalDialog, etc. instead of 102, 103, etc.1746„H<¨€˜ 9‰‹277wb_play_sound() does not work in some systemswb_play_sound() seems not to work in some systems; yet to be confirmed as a bug732w\£€™ (œŸ¡£280Merge some control functions- wb_set_image() and wb_set_item_image() have different parameters - Other control functions can be merged as well2635œ€š ?•˜šœ282wb_set_selected() does not have standard parametersIn function wb_set_selected(), the Item and Selected parameters must switch positions2635#€› !#284Colored stripes5215oÄàH-€ %&)+-287Implement hotkey controls3515䉀ž (‚…‡‰288Implement HTML page controlsAn HTML page control will encapsulate a HTML page in a way similar to a Rich Edit control3643‘|t‡€ŸW€ƒ…‡289Associate data with List Box / Combo Box / Treeview / ListView itemsSee "Special Combo Box Features" in Win32 API help. Example: wb_set_text($combobox, array( "value1" => "Text 1", "value2" => "Text 2"!”Ôs3743Ôtn€¢ "gjln292SQLite performance lowReading and writing data should be faster. Any cache configurations?1916øw°*€£ "#&(*293High-resolution timers1543Y€¤ 'RUWY294Auto save last tab selected(See "Auto save window size and position")4415W|§€¥ 1 £¥§295Auto save column positions and widthsIt is already possible to do that "manually" by using internal C function wbtemp_get_listview_column_widths().5215,ì„i€§ 7begi297Auto save splitter window size and position(See "Auto save window size and position")2215øw”_€¨CX[]_298Provide additional low-level accesses to the APIWinBinder should accept / supply: * Allow general access to the Windows API: create a simple mechanism to call API functions, something like DllImport() in VB. Uscq€ª )jmoq300Resize toolbars automaticallyResize toolbars automatically whenever a WM_SIZE event is issued4545L6€« ./246301Tooltips must be globally optional2033𓀬 !Œ‘“302Optional flat toolbarA flat toolbar is (or was) called "coolbar" to set it apart from old-style toolbar buttons (with borders).4515w”€­ /’”303wb_get_selected() must do treeviewsThe wb_get_selected() function does not yet return a value for treeviews (it's always 0 now).4843€H€© .ADFH299Optional dotted lines in treeviewsUse flag WBC_LINES4845¸x]€¯ VY[]305MDI windowsPossibly with tabs (see codeproject.com/docview/tabbedmdi.asp)2033ÿÿÿtA€°C:=?A306wb_set_value() does not work properly with itemswb_set_value() should have an extra parameter to deal with items. As it is now, it can set but not clear a check box in a ListView. Something like wb_set_value($lDÌG€± "@CEG307Rich Text in ListViewsFor text in color, bold, etc.5215$E€² )>ACE308Create more toolbar icon setsWith different looks4515ƒ€³ <|ƒ309Context menu support for ListViews and TreeViewsCreate context menu to copy selected lines to clipboard, etc. 5233H€ b0G2as€´ Pb0G2at€µ ¨b0G2bI€¼ hb0G2av€· ˜b0G2aw€¸ ˜b0G2ax€¹ °b0G2ay€º Èb0G2az€» àb0G2a|€” øb0G2a~€½ b0G2b€¾ (b0G2b2€À @b0G2b3€Á Xb0G2b4€Â pb0G2b5€Ã ˆb0G2b6€Ä  b0G2b7€Å ¸b0G2b8€Æ Ðb0G2b9€Ç èb0G2bA€È b0G2bC€Ê 0b0G2bD€Ëx 0b0G2bE€Ì Hb0G2bF€Í `b0G2bG€Î 8b0G2bH€Ï0P ¨b0G2bI€ÐP ¨b0G2bJ€Ñ Àb0G2bM€Ô Øb0G2bQ€Ø ðb0G2bR€Ù b0G2bS€Ú b0G2bT€Û 8b0G2bU€Ü hb0G2bV€Ýø hb0G2bW€Þ €b0G2bX€ß ˜b0G2bY€à °b0G2bZ€á Èb0G2ba€â àb0G2bb€ã b0G2bd€åh€ 8b0G1b€ b0G1Z€os b0G1c€ea b0G1Y€ix Pb0G1X€ug€ b0G1a€rah b0G1d€øwP(¼€5Cosmeticy œH € 3Featureyd € 6Fixure€ € 2Bugure € 1Crashe à€4CriticalyH€3New feature h b0G1X€ri 8b0G1Y€ow Pb0G1Z€or b0G1a€øw˜€$ € 1Lowica@ € 2Normal\ € 3Highl€4Done / solved€4 3 b0G1~€¥à201€29Check boxes1Œ¥ÐÔ(€1Product0P€3Documentation1yx€49Distribution1y €12OS features0yÌ€5Callback functions1ð€2Clipboard1Ù€50Graphics1Ù4 € 4Help1X€ 16Low-level1||€ 18Keyboard1Ùœ€  56Mouse1¬€ 7Multimedia1|ä€13Printing1|€17Resources1|(€25System1H€15Timers1l€20Windows0|˜€54Top-level windows1À€21Dialog boxes1¥è€24System dialogs1€23Message boxes1<€22Splitter windows1`€26Controls0|ˆ€30User-defined1¥€31Calendar1|À€ 6Registry / INI1,L ˜(€ 56Mouse1L€32Edit boxes1l€33Frames1œ€34Hyperlink controls1ôÈ€ 35Hotkey controls1ü€!36HTML page controls1 €€" 56Mouse18€#52List views1X€$ 38Menus1„€%39Push buttons1¥¬€&53Radio buttons1Ô€'40RTF edit boxes1(€(41Scroll bars1Œ¥€"37List boxes1D€*42Spinners1|l€+43Status bars1Œ¥”€,44Tab controls1¥¸€-45Toolbars1|Ü€.48Treeviews1|€/51Code-related0¥$t€019Databases0| €)55Sliders1|(€28Combo boxes1Œ¥Œˆ@ b0G1X€ig 8b0G1Y€ Pb0G1Z€Pr hb0G1a€¤ €b0G1b€ ˜b0G1c€ ¥ °b0G1d€ ¥ Èb0G1i€D àb0G1j€¥ øb0G1l€¥ b0G1m€ ¤ (b0G1n€¥ Xb0G1o€ H Xb0G1p€0¥ pb0G1q€¥ ˆb0G1r€¥  b0G1s€¥ ¸b0G1t€¥ Ðb0G1u€¥ èb0G1v€¥ b0G1w€¥ b0G1y€¥ 0b0G1z€¥ b0G1|€¥¸è b0G2WW€ 8b0G2WX€ Pb0G2WY€ hb0G2WZ€ €b0G2Wa€! ˜b0G2Wb€" °b0G2Wc€$ Èb0G2Wd€% àb0G2We€' øb0G2Wf€( b0G2Wg€* (b0G2Wh€+ @b0G2Wi€, Xb0G2Wj€- pb0G2Wm€. ˆb0G2Wn€o  b0G2Wo€ ¸b0G2Wp€/ Ðb0G2Wq€# b0G2Wr€&H b0G2Wv€ 0b0G2Wt€) b0G2Ws€ b0G2Wu€ ¸e the latter is complete, the queued events will be sent to the procedure (or a 'queued' specific procedure). That way we can process intensive applications and have the GUI not freeze up while it is done. 2513Œ´€µH­°²´311Possible conflict between lparam and tab page numbersWhen the function wb_create_control() is used to create a control inside a tab page, lparam is used to indicate the page number. It currently cannot be used to JˆŒx€¶ +qtvx312Test database wrapper for MySQLSupport is currently for MySQL and SQLite, but only SQLite was tested1943$†€· 8€‚„†313parse_ini() should understand "yes" and "no"Strings are "yes", "no", "on", "off", "true", "false", case-insensitive643΀¸ !ÇÊÌÎ314Non-destructive masksIn wbCreateMask(): perform a non-destructive mask creation. This function currently changes colors in the original bitmap. although this normally has no consequences5016xü@´'X>€¦ 67:<>296Implement Customize Toolbars system dialog2413y(È^€® VWZ\^304Main windows don't recognize tab / shift+tab when a tab control is present5426ÿÿ)D€´ =@BD310Clipboard supportCopy selected item to clipboard48336X€º@QTVX316Allocate memory dynamically in various placesAllocate memory dynamically instead of limited static memory - In wbtemp_create_menu(): allocate accel[] dynamically like pitem - Allocate tab controls and pages dyn;¸€À .ˆ‹322Use Windows API function MaskBlt()Use Windows API function MaskBlt() for masking in functions: - wbMaskPartialBits() 5036w>e€È<^ace330Enhancements to windows callback handlersDefaultWBProc() is the common processing routine for all parent windows. * Don't know which is the correct notification for trackbars, so pfnProcess is called all the ti^L, unselected item with children. 4835source stream, to embed Php scripts in a dll or exe file 633ic characters with wb_set_text() 3233”|€( uxz|89Modeless toolboxesAllow creation of modeless toolboxes (with shorter title bars and smaller Close button)2133lÜÌ4³€¼ ¬¯±³338Minimal PHP DLLProvide minimal versions of php4ts.dll/php5ts.dll after stripping all non-essential libraries. Maybe tweaking PHP\PHPn\source\main\config.w32.h?4915ˆm5116 Û›€» D”—™›317Separate RGB values in wb_get_pixel() and wb_set_pixel()These functions should accept an array of three values in addition to a DWORD 5013¬4†€¼ 3‚„†242Build WinBinder under several compilers* LCC * VC++ - MinGW (GCC) - Dev-C++ (GCC) - Pelles C - Digital Mars 4913info()4915¼x€½ qtvx319Error logwbError() should optionally log errors to a file and/or use a message box to display errors2513F€¾ 6@BDF320Support for non-Windows multimedia formatsMP3, etc.713Úì‚€¿ .{~€‚321* Enhancements to wb_get_address()wb_get_address() should get the address of other PHP objects besides strings1643XLøBе€Ø ?®±³µ346Cannot create accelerators without Ctrl, Shift, AltAccelerators like "M", "Delete", i.e. without "Ctrl", "Shift" or "Alt", do not work "Enter" does not work 1836wÚ +€Ý #$')+351Status bars with gauges4333 ؼ€â *µ¸º¼356Send messages up the hierarchyStatus bars cannot have child controls. This would be possible if messages were sent up as with tab controls and GroupBoxes (Frame class).4333Cœ±€ê -ª­¯±364Tab controls with no visible tabsTab controls with buttons instead of tabs (and perhaps no border): TCS_BUTTONS style (Must create a flag like WBC_NOTEXT)4435E˜T€ð?MPRT370Issues with keyboard accelerators in dialogs- In the To Do app, Edit Item dialog, access keys like Alt+C will work only if some control has the focus - In the To Do app, Edit Item dialog, typing access key Alt+iFN€õ 0GJLN375Obtain the index of the selected tabUse wb_get_selected()?4443Ú(˜€€; 2y|~€118Standard use of trigger_error() in PHPPHP code should use __FUNCTION__ and E_USER_WARNING in trigger_error()5116Ð(€< !$&(119Editable RTF control4043`~€= !wz|~120Drag-and-drop supportThe main window should accept dropping files from other apps such as Windows Explorer5433Ûäq€> .jmoq121Add items to any treeview positionCurrently, items can be added only at the end of a treeview48461€@ )*-/1123Implement Print system dialog2433ÚØ˜¬“€Á -Œ‘“323Enhancements to wbCreateControl()- Call wbCreateToolbar() if wbclass is a toolbar - Call wbCreateMenu() if wbclass is a menu 2636w,p€Â *ilnp324Enhancements to wbGetControl()- Process treeview items - Must validate toolbar item first 2633(*€Ã-#&(*325Fixes to wbGetTextLength()Try to fix control text length bug (although it does not seem to occur ). According to WinHelp for GetWindowTextLength, "To obtain the exact length of the text, use (...) the GetWindow$œ`€Ä ,Y\^`326Combo box items return a newlineThe combos return a newline after the text 2836à3€Å +,/13327nIndex not used in wbSetImage()2633P`€Æ )Y\^`328Reference menus like controlsIn wbGetWBObj(): return PWBOBJ from menus too 3836€Ç /–™›329Change title of some common dialogsHow to change the title of a following common dialog: - Select Color - Browse for Folder - Font 2415xts - Must delete keys in addition to entries633¨¬’€Ê 3‹Ž’332Test wb_get_system_info() in Windows 98wbGetSystemInfo() calls function GetGDIObjects(), which was not tested under Windows 982546øwü•€Ë2Ž‘“•333Minimize to taskbar status area* Minimize main window to an icon in the taskbar status area * Create a tooltip for the icon * Remove the icon on exit * Restore the window when double-clicking - Perform a custoYTŒüD€Ì <=@BD334Parameters in wbGetSystemInfo() are non-standard5136~€Í 9wz|~335Fix top-level window classes and dialog boxesTop-level window classes and dialog boxes don't work properly2046tall code revamp2036X¨”-€€ %&)+-238Implement tabs with icons4435Ú¸P€‚ )ILNP244Implement wm_pause() functionActually it was named wm_wait()1543t()?1533ÿÊ€ƒ 5ÃÆÈÊ245Move class-specific code to other modulesWM_COMMAND.C, WM_WINDOWS.C and possibly other C modules have code that is class-specific. Ex.: WC_TABCONTROL processing in DefaultWBProc()5136H΀ (ÇÊÌÎ272php-win.exe could be smallerphp4\php-win.exe could be smaller, about the size of php.exe (24 kB). Currently it is about 48 kB, taken from PHP-GTK with some icons removed and one replaced4945xŒtem-wide setting. Apparently the only way to solve this is to create a message box replacement.2315H΀ (ÇÊÌÎ272php-win.exe could be smallerphp4\php-win.exe could be smaller, about the size of php.exe (24 kB). Currently it is about 48 kB, taken from PHP-GTK with some icons removed and one replaced4915@œ€Ï5 337Improvements to numeric edit boxes- Subclass EditBox to allow digits, dots, commas, hyphens and possibly spaces so users can enter floats - Filter any other characters so even the programmer can't enter non-numer9솀Р3‚„†242Build WinBinder under several compilers* LCC * VC++ - MinGW (GCC) - Dev-C++ (GCC) - Pelles C - Digital Mars 4913ûwPp\PHPn\source\main\config.w32.h?4915$pì€Ñ 3395215s€Ô (loqs342New function: wb_get_image()Must return a handle to an image from a window, control, menu, etc.50334и€ã K±´¶¸357wb_set_position() should center horizontally or vertically onlywb_set_position() should center a window horizontally only or vertically only according to xPos, yPos2633 >€å 67:<>359Allow more than one toolbar in main window4533ytC€æ ;€è 67:<>362Use status bars as containers for controls4333yÌist, true, array(1, 2, 3)); instead of wb_set_value($list, array(1, 2, 3));2636ht=0, $xsource=0, int $ysource=0, $ROP=SRCCOPY) . wb_mask_image($dest, $source, $mask, int $target=0, $ytarget=0, $width=0, $height=0, $xsource=0, int $ysource=0) wb_save_image($image, $filename, $format="BMP") wb_scale_image($dest, $source, int $target=0, $ytarget=0, $targetwidth=0, $targetheight=0, $xsource=0, int $ysource=0, $sourcewidth=0, $targetwidth=0, $ROP=SRCCOPY) wb_tile_image($dest, $source, int $target=0, $ytarget=0, $width=0, $height=0, $ROP=SRCCOPY) 5036¼ÜÀë =¼¿ÁÃ365Main windows do not center properly in Windows 98Main windows do not position themselves at the center of the screen on Windows 98. they move to the upper left corner instead.5445p„€ì :}€‚„366Dialog boxes must be centered on their parentsDialog boxes must be centered on their parents, not on the desktop2135(@€í 89<>@367Merge wb_get_image_size() with wb_get_size()5145˜€ï9‘”–˜369Optionally propagate callback messagesMust create a flag to decide whether windows should propagate (cascade) calls to the callback functions. For example: If checkbox A changes the value of checkbox B, should Pl´back functions. For example: If checkbox A changes the value of checkbox B, should checkbox B calÀy€î :ruwy368Default buttons must look and behave correctlyDefault buttons must look and behave as default buttons3936L:€ñJ368:371Several controls do not generate WBC_FOCUS notificationRTF edit boxes, listviews, treeviews and other control classes should also generate WBC_FOCUS messages. Tab controls are an exception, because lparam is al_h°lX€ò 0QTVX372Auto installable, standalone versionWith Inno Setup and forms editor4923¼=€ó 569;=374Deactivate or hide individual check boxes5233y9€ô 12579373Image static controls with no borders3335l˜€ò ‘”–˜372Standalone version* Auto installable with Inno Setup * Includes all libraries - Includes forms editor - Includes simplified IDE 4923Pparent_color) . wb_copy_image($dest, $source, int $target=0, $ytarget=0, $width=0, $height=0, $xsource=0, int $ysource=0, $ROP=SRCCOPY) . wb_mask_image($dest, $source, $mask, int $target=0, $ytarget=0, $width=0, $height=0, $xsource=0, int $ysource=0) wb_save_image($image, $filename, $format="BMP") wb_scale_image($dest, $source, int $target=0, $ytarget=0, $targetwidth=0, $targetheight=0, $xsource=0, int $ysource=0, $sourcewidth=0, $targetwidth=0, $ROP=SRCCOPY) wb_tile_image($dest, $source, int $target=0, $ytarget=0, $width=0, $height=0, $ROP=SRCCOPY) 5036 confirm the hypotesis. 4442ely check if pwbo is a valid WB object and aborts when trying to dereference an invalid pointer. The fix would be to create a global list of valid WB objects.2011the name of a bitmap file in addition to a bitmap handle, HDC, or windows handle.5036anything else. One possible solution would be to use strings like "tab0" and pass an array to lparam if some other value is needed (e.g. array("tab0", 120) to pass the value 120 to the control). 4436a ç€ 7àãåç234Improve compatibility with resource editorsCurrently supports WinAsm Studio only. Problems: - Not processing "NOT 0x10000000 | " (invisible) Other options are: LCC-Wedit Visual C++ Pelles C Others 1713x7¤’€Î .‹Ž’336Improve icons minimized to taskbarIcons that are minimized to taskbar may get reduced to 16 colors in Windows 2000 (not in XP)5415øw<U€ü 9NQSU382Assign only a section of a bitmap to a buttonAs with window icons3936ture5116 Ü€œ2ÕØÚÜ285ListViews with sortable columns* Implement a flag for sorting or not * Sort by clicking the appropriate header * Create a function to sort columns * Automatic numeric sort * Ascending/descending sort - Flag fè±€ê -ª­¯±364Tab controls with no visible tabsTab controls with buttons instead of tabs (and perhaps no border): TCS_BUTTONS style (Must create a flag like WBC_NOTEXT)4435$¤lQ€ö *JMOQ376ListView with file/folder listSame as used in Window Explorer5223õ&€÷ "$&377SendKeysTo and DDE1623t¤.€ø &'*,.378Review control class names26364 ListView->Grid Menu->MenuItem Etc.2636ÚÄ›€ù <”—™›379Create functions wb_set_range() / wb_get_range()Maintain values in wb_set_value() for BC (backward compatibility), at least for a while2633Ï€ú =ÈËÍÏ380wb_set_text() must behave like wb_create_window()In all control and window classes: wb_set_text() must behave exactly like the Caption parameter of wb_create_window(), and vice-versa 2636x\N€û %GJLN381Review naming conventions- WinBinder Objects => Widgets? 5115üT´œ€z -•˜šœ228Status bars with panes (sections)Use wb_create_items() to create panes inside status bars, exactly as used to create items inside a menu4333=€{ 69;=229Sub-menusHow to specify them in an array?3833y€|=231Support compiled resources / other formats- Support compiled Windows resources (DLLs, EXEs, etc.) as well as parsed RC files - .NET resources use .resX files (XML format) . XRC for wxWidgets: http://www.wxwidgetmA€~ :=?A233Printing supportImplement support to printing1333ÁÛ¬nerally, messages should be generated only via user actions. Filter user commands in DefaultWBProc(). Try: (LPNMHDR)lParam)->code == NM_CLICK, etc. 536eturn value, and cannot be passed directly as a return value to wbGetText() which returns a BOOL. Two ocurrences of this error were fixed. 3) wbtemp_get_text() was returning a NULL instead of an empty string if the control or window text was empty. However, wb_set_text still returns NULL in some situations... 3242`lT€ý 8MPRT383Assign only a section of a bitmap to a FrameAs with window icons3336h˜€þ)‘”–˜384Other edit box filters- Allow negative numbers - Allow commas, dots, etc. for floating point values - Allow only valid file names A much better option would be to use custom, user-definable filters. A PHP strXd€ÿ-385Case-insensitive INI filesSections and labels in Windows INI files are case-insinsitive, while PHP's are case-sensitive. This depends on the availability of case-insensitive array functions in PHP, or to create€2 386More image options in treeviewsMust allow assigning up to four images (not only two as it is now) to a treeview item: unselected item with no children, selected item with no children, unselected item with children8 checkbox B call the callback function or not? Also, maybe control B should include a flag to show that is was changed due to an internal command, not a user command.2036´¬‘€ 9Š‘389Make wb_set_style() function work as expectedwbSetStyle() must do what is expected, i.e. change control styles of all classes2636%øwtµ€ 2®±³µ390Verify use of wb_get_control($tab, ID)Both wb_get_control($win, ID) and wb_get_control($tab, ID) can return the same control handle. Is this behavior expected? 2636wÚüx€ Cqtvx391Create notification messages for menus and acceleratorsCreate notification message WBC_ACCEL, etc. 3833øé€ 3âåçé392Full tests in several operating systemsWindows: - Windows 98 * Windows 98 SE - Windows NT Workstation 4.0 - Windows Me * Windows 2000 * Windows XP SP-2 - Windows 2003 Server Other: * Wine Emulators4913`¬€ *¥¨ª¬393Use canvas for faster graphicsCreate wb_create_canvas() and wb_destroy_canvas() to make Windows graphic functions operate faster. A canvas is a DC. 5016LP b0G2bf€ç Pb0G2bg€è  b0G2cF€ hb0G2bi€ê €b0G2bj€ë ˜b0G2bk€ì °b0G2bl€í Èb0G2bm€î àb0G2bn€ï øb0G2bo€ð b0G2bp€ñ (b0G2bq€ò @b0G2br€ô Xb0G2bs€ó pb0G2bt€õ ˆb0G2bu€ö ¸b0G2bv€÷ €b0G2cG€ Ðb0G2bx€ù b0G2by€ú ˜b0G2cI€ b0G2b|€ü 0b0G2b~€ý Hb0G2c€þ `b0G2c1€ÿ b0G2c2€ ðb0G2c8€ ¨b0G2c4€ Àb0G2c5€ Øb0G2c6€ xb0G2c7€ b0G2c9€ b0G2cA€ 8b0G2cB€ °b0G2cC€ È b0G2cK€U 8b0G2cE€ èb0G2cH€ b0G2cJ€ hb0G2cD€83ything else. One possible solution would be to use strings like "tab0" and pass an array to lparam if some other value is needed (e.g. array("tab0", 120) to pass the value 120 to the control). 4416n mouse is over an item3815rs4913ndex4536: The toolbar - Overview: Working with treeviews - Overview: The Windows message system - Overview: Windows design conventions and XP themes - WinBinder installation: folder structure 313ing would contain a list of the characters to be included (or excluded, according to a flag) from the list. For example: wb_set_filter($hexedit, "0-9A-F", true); 3213m action (restore the window, display a custom pop-up menu, do nothing etc.) when clicking - Display the system menu (or a custom pop-up menu) when right-clicking 5433vent of creating a window that has a tab control and not assigning a handler to this window.4436hanged due to an internal command, not a user command.2026.1733 dll or exe file 633ndWindow("Winamp v1.x", NULL); SendMessage($winamp, WM_COMMAND, 40045, NULL); The last parameter, Stdcall, should be optional. Another option would be to use the pack() notation: wb_declare_function("FindWindow", "FindWindowA", "USER32", "aa", "v"); wb_declare_function("SendMessage", "SendMessageA", "USER32", "v4", "v"); $winamp = FindWindow("Winamp v1.x", NULL); SendMessage($winamp, WM_COMMAND, 40045, NULL); 1633 Windows theme is enabled, tabs and status bars show up in default gray instad of the system background color. - TODO: obtain the actual tab color from the theme or, better yet, use the tab control texture. Meanwhile, 0xFCFCFE is used (it is the tab color for all standard XP themes) - Tab controls over tabs still not solved References: codeproject.com/wtl/ThemedDialog.asp codeproject.com/cs/miscctrl/themedtabpage.asp http://groups.google.com.br/groups?hl=pt-BR&lr=&threadm=1108f1ac.0309181153.1e2fd44f%40posting.google.com&rnum=3&prev=/groups%3Fq%3DGetThemeColor%2520TABP_PANE%26hl%3Dpt-BR%26lr%3D%26sa%3DN%26tab%3Dwg4415t_text(array($main, ID_OPEN))2635ab, and they have flag TCS_FOCUSNEVER5416me - Use the return value as a flag to know whether the calling function should continue default processing or not 2033ready used to refer to the selected tab, and they have flag TCS_FOCUSNEVER5436otificationRTF edit boxes, listviews, treeviews and other control classes should also generate WBC_FOCUS messages. Tab controls are an exception, because lparam is al]¸X€ò 0QTVX372Auto installable, standalone versionWith Inno Setup and forms editor49239€ô 12579373Image static controls with no borders3315õl=€ó 569;=374Deactivate or hide individual check boxes5213™ƒ|ø7€õ /03571* Process double-clicks in list boxes3743°¬Ù€ö 7ÒÕ×Ù88* A window cannot show two bitmapped buttonsCannot show two bitmapped buttons at the same time in the same window Solved: removed the first ocurrence of DeleteObject() from SetTransparentBitmap()3942ÿÿÿÀbkPOç€ +àãåç388Create function wb_get_window()wb_get_window() should accept parameters that allow it to get a handle to various types of window: - The desktop window - Top-level windows of other applications (FindWindow) 2033xQTA€ 9:=?A394Use the 'color' parameter in wb_create_font()5035d¡€ ;šŸ¡399Menu access keys won't work in some appsMenu access keys (mnemonics) will only work if the application has a tab control AND wb_set_selected() is called. SOLUTION: Refs to hCurrentDlg in app window wb_window.c h°d in Comclt32.dll version 6.0 only (which means Windows XP). Thus the best way would probably be to subclass (or superclass) the Static class or to create a new class from sratch. 3443e LoadLibrary() / GetModuleHandle() / GetProcAddress() - Various hooks including a way to intercept Windows messages from within WinBinder classes, direct hooks to the WinBinder windows processing routines, initialization steps, etc. - A mechanism to create new WinBinder object classes - Pointers to global variables - Plug-ins == foreign DLLs with new classes 1633v4", "v"); $winamp = FindWindow("Winamp v1.x", NULL); SendMessage($winamp, WM_COMMAND, 40045, NULL); 1633ˆ\C€  ; WBC_GRIDLINES? - Decide between all-purpose names (WBC_* like it is today) or specific names (WB_FLAG_*, WB_MB_*, WB_STR_*, etc.) * WBC_COLLAPSED is terrible * WBC_LINES and WBC_MULTILINE should be separated again 5116´å€ KÞáãå400Placing an image in a ListView makes text in the cell disappearUsing wb_set_item_image() to place an image inside a ListView cell makes the text in the cell disappear unless the first field in the row equals 15242x̹€ ²µ·¹401Anchor controlsProcess WM_SIZE to anchor controls in windows like in C#. This will allow controls to maintain their relative positions to one or more window borders.2633>ÚPs€ loqs402Scrolling windowsSee "Scrolling the Client Area" and "Creating Scroll Bars" in Windows API help2023T€ LMPRT403Use of parameter pwboParent in wbCallUserFunction() is not clear5416Ll constant, "Clipboard".233s.org/manuals/2.5.2/wx_xrcoverview.html 1713namically: TABDATA should allocate items dynamically; now it is carrying a somewhat large data structure5116