ProGUI V1.38 UI Library (Small Bug Fix)

Developed or developing a new product in PureBasic? Tell the world about it.
Posts: 624
Joined: Wed Aug 10, 2005 2:08 pm
Location: Yorkshire, England

ProGUI V1.38 UI Library (Small Bug Fix)

Post by PrincieD »


V1.38 : Hi guys! Fixes a memory leak in FreePanelEx and FreePanelExPage, Thanks goes to ruslanx for finding this one! Please take a look at the history for details:-

Please note ProGUI is licenseware and will timeout at around 5 minutes per session so that you can trial out ProGUI with your applications. A license for the standard version is only €30 (EUR) however! There is also a ProGUI Gold license which is slightly more expensive but Includes full source code of ProGUI and a license to use it in your own projects: €45 (EUR) and there is now a new ProGUI Platinum license which costs 80 EUR (35 EUR for Gold members to upgrade) and gives you a life-time of free Major Updates! :D

ProGUI Forums

ProGUI Main Archive: Includes DLL version and Userlib version. (both native 32 bit and 64 bit versions of each)


Main Features

· Easy to use and simple API with commands such as "MenuTitleEx(title.s)"

· Easy Installation

· Extremely fast rendering with internal caching and intelligent double-buffering.

· One of the most accurate replica of Whidbey, Office 2007 and Office 2003 styles that exist as well as improvements over Microsoft's engine such as flicker free menu tracking and superior menu scrolling!

· Native 32 bit and 64 bit versions!

· Windows 7, Vista and XP compatible.

· Unicode support.

. Full Source Code included in ProGUI Gold edition.

· Rebars! (IE Explorer style container control for toolbars), multiple rebars on multiple windows!

· Extended rebar functionality including new Office 2007 and Office 2003 style, auto vertical resizing and user vertical resizing.

· Super smooth window resizing of components, no wild jumping or flickering!

· Option for automatic double buffering of rebars when resizing!

· Full Automatic Chevron support for rebars, see IE Explorer - resize the window too small and click on the chevron to see a popup menu with toolbar icons.

· Extended toolbars, full 32bit Alpha masked icon/image support of any size for toolbar buttons with separate images for normal, hot and disabled states. As many toolbars as you want on multiple windows!

· New Office 2007/Office 2003 Toolstrip style toolbars!

. Office 2007/Office 2003 styled ComboBoxes in toolbars/rebars.

· Support for drop down buttons in toolbars, just pass a popup menu or extended popup menu to the command!

· Extended menus! Have cool "floating" menus contained in a rebar/container with ease! Full support for 32bit Alpha masked icons/images of any size in menus with support for different images for normal, hot and disabled states! Includes extended system menu and popup menu. Different styles of menus available for example: Office 2007 style menus, Office 2003 style menus, Office XP/Whidbey style menus, IE Explorer style, Classic/Mozilla Firefox Style and other styles. Automatic chevrons on menus when window resized too small! Automatic detection of system font change and resized accordingly. Full keyboard navigation and hot-key support. When menu goes off screen automatically fits inside screen (see Explorer for a bad implementation of this, see Firefox for a good implementation).

· Theme adaptive custom user defined colours for User Interface styles.

· No window callbacks!


17 September 2012 : Version 1.38

- Fixed memory leak with FreePanelEx and FreePanelExPage due to some internal buffers not being freed correctly. (Reported by ruslanx, thanks!)

- Updated docs.

18 August 2012 : Version 1.37

- Fixed bug with sub-menu width when menu scrollable.

- Fixed ExplorerBar IMA on x86 when standard skin used under classic theme in UserLib version due to a bug with TailBite.

- Fixed rendering bug with SetButtonExSkin not applying button's current state i.e. selected, inbetween, disabled.

- Added new isCollapsed parameter to AddExplorerBarGroup and AddExplorerBarImageGroup.

- Added new GetExplorerBarGroupState command.

- Added new SetExplorerBarGroupState command.

- Updated docs.

30 May 2012 : Version 1.36

- Fixed bug with UserLib version and GadgetList not being restored to none ProGUI GadgetList with TextControlEx and other skinned controls.

- Added new #PNLX_NOGADGETLIST style flag (PureBasic specific) to AddPanelExImagePage and InsertPanelExImagePage.

- Updated docs.

16 May 2012 : Version 1.35

- Fixed bug with UserLib version and alpha transparency causing a crash due to referencing a null pointer (GDIAlphaBlend not being imported correctly).

- Fixed bug with Frame3DGadget not being aligned properly in nested PanelExs.

- Fixed rendering bug with Frame3DGadget inside alpha transparent PanelEx page.

- Fixed bug with UserLib version and skinned controls inside PanelEx page not restoring parent GadgetList which caused any PureBasic gadgets to be parented to the skinned control instead of the PanelEx page! *Oops!

- Fixed bug with TextControlEx link ID's not being posted to parent window if not in PanelEx page.

- Updated docs.

05 April 2012 : Version 1.34

- Fixed bug with GDI Plus notification hook/unhook under Windows XP (Microsoft bug).

- Fixed rendering bug with ExplorerBar (Reported by Zach).

- Fixed small device context handle leak on PanelEx resize.

- Fixed bug with AddPanelExPage when skinned control created and then AddPanelExPage called again (which added the page to the created control!).

- Fixed minor alignment bug with ButtonEx text and no icon.

- Fixed border rendering bug with alpha transparent PanelEx pages.

- Fixed bug with SetPanelExPageScrolling autoscroll not updating if called after controls created into page.

- Fixed/Improved alpha channel rendering of text (GDI doesn't support the alpha channel so ProGUI has to calculate and add it based on the pixel data).

- Changed behaviour of "Button" class with groupbox style (PB Frame3DGadget) when inside a PanelEx, now renders directly to PanelEx buffer (no longer flickers).

- Further optimized rendering of PanelEx, none ProGUI controls are now significantly faster at rendering inside a PanelEx.

- Changed rendering of alpha transparent PanelEx pages to use GDI AlphaBlend instead of GDI+, now considerably faster as hardware accelerated.

- Changed ImageButtonEx and TextControlEx internally to be subclassed PanelEx, less code in core drawpanel routine, smaller library size and more elegant design.

- Changed ButtonEx, ToggleButtonEx, RadioButtonEx, CheckButtonE, ExplorerBar Header/Item, text labels now support escape code effects and multiple lines!

- Changed ButtonEx, ToggleButtonEx, RadioButtonEx, CheckButtonEx, ExplorerBar Header/Item text, now shows ellipsis (...) when dimensions too small to contain all of the text.

- Added new GetTextControlExStyle command.

- Updated docs.

26 March 2012 : Version 1.33

- Fixed potential sporadic lock-up and IMA problems on start-up and exit, extremely stable now.

- Fixed bug with RemoveMenuItemEx by ID.

- Fixed rendering bug with PureBasic Panel gadget under Windows Server 2003.

- Fixed missing system default ToggleButtonEx skin.

- Fixed rendering bugs with nested alpha transparent PanelEx's and alpha transparency now works with the "root" PanelEx.

- Fixed #PNLX_STRETCH in PanelEx page, now functional and uses GDI+ however is pretty slow so use sparingly.

- Fixed grainy rendering of system default radio button skin by normalizing the alpha.

- Fixed missing alpha channel of some components when using windows classic visual style and/or on XP machines.

- Further optimized memory usage and start-up speed by initializing default skins/resources only when used (instead of everything being created on start-up).

- Changed SetButtonExSkin, now has an extra noRefresh parameter.

- Changed SetSplitterExSkin, now has an extra noRefresh parameter.

- Changed SetGlobalSkinColourTheme, all controls previously created will now automatically update to the new colour theme.

- Changed SetUIColourMode, now automatically updates all skinned controls to the equivalent theme colour name if supported.

- Changed SetSkinProperty, now by default automatically updates all previously created controls using the specified skin.

- Added new #PNLX_TRANSPARENT flag to PanelEx page style.

- Added new "inbetween" state to CheckButtonEx and corresponding skin state properties.

- Added new GetExplorerBarSkin command.

- Added new SetExplorerBarSkin command.

- Added new SetSkinAutoUpdate command.

- Added new GetSkinAutoUpdate command.

- Added new UpdateSkins command.

- Added new GetButtonExState command.

- Added new SetButtonExState command.

- Added new GetButtonExText command.

- Added new SetButtonExText command.

- Added new GetTextControlExText command.

- Updated examples.

- Updated docs.

16 February 2012 : Version 1.32

- Fixed huge private-bytes/virtual memory usage due to nested hash maps in skin subsystem, now uses linked lists.

- Fixed CopySkin command in userlib version, now works due to not using maps anymore (tailbite bug).

- Updated docs.

30 January 2012 : Version 1.31

- Fixed startup speed of DLL version, now almost instantaneous startup.

- Fixed visible destroying of ProGUI child windows/controls on exit.

- Fixed GDI+ copy buffer command that was left in by accident causing ProGUI to be twice as slow at rendering.

- Fixed clipping of PanelEx tab theme background.

- Fixed background rendering bug with some transparent areas of PanelEx themes on page change.

- Fixed solid black rectangle bug with static controls on newly displayed PanelEx page.

- Changed ShowPanelExPage, can now also accept page handle as index.

- Changed PanelExPageIndex, now also if a handle to a page is passed instead of ID/Handle of PanelEx then returns index number of that page.

- Changed MenuItemEx, can now also accept #ProGUI_Any as Item ID.

- Updated examples.

- Updated docs.

12 November 2011 : Version 1.30

- Fixed menu selection colours under XP classic with system menu styles.

- Fixed small bug with ButtonEx skin image and text position when not normal state.

- Fixed render bug under Windows Classic themes where gradients were not being displayed in PanelEx's.

- Fixed rendering bug with ButtonEx system skin under Windows Classic themes.

- Fixed bug with GetMenuExBarHeight(), was returning height by 3 pixels out.

- Fixed bug with whole window moving when limit reached in LimitWindowResize() and fixed minimized/maximized problems.

- Fixed bug with RebarHeight returning incorrect height with menu inside when main window minimized.

- Fixed rendering bug with Rebar gripper under Windows 7 when main window minimized/maximized.

- Changed ChangeButtonEx, now includes selectedImageID, hotSelectedImageID and pressedSelectedImageID parameters.

- Changed SetButtonExSkin, now has an extra optional ComponentName$ parameter.

- Changed SetSplitterExSkin, now has an extra optional ComponentName$ parameter.

- Changed SetPanelExPageCursor, default system cursor constants can now be passed as well as HCURSOR.

- Changed ButtonEx, can now have different mouse cursors for each state in skins.

- Changed ButtonEx, now has default "image" property with "noclip" parameter in skin.

- Changed ButtonEx, can now have bold / italic / underline etc.. in font skin property.

- Added new ExplorerBar control with smooth sliding animation and alpha fade transparency!

- Added new CreateExplorerBar command.

- Added new AddExplorerBarGroup command.

- Added new AddExplorerBarImageGroup command.

- Added new ExplorerBarItem command.

- Added new ExplorerBarImageItem command.

- Added new ExplorerBarID command.

- Added new FreeExplorerBar command.

- Added new #PNLX_HPERCENT, #PNLX_VPERCENT and #PNLX_NOCLIP style flags to AddPanelExImagePage.

- Added new SetPanelExPageAlpha command.

- Added new GetPanelExPageScrolling command.

- Added new ToggleButtonEx command.

- Added new RadioButtonEx command.

- Added new CheckButtonEx command.

- Added new IsSkin command.

- Added new GetSkinHandle command.

- Updated examples.

- Updated docs.

16 August 2011 : Version 1.27

- Fixed rendering bug with ToolbarEx/MenuEx when inside a PanelEx/SplitterEx.

- Fixed event notification bug with ToolbarEx/MenuEx inside PanelEx/SplitterEx.

- Fixed small memory leak in ImgBlend and ImgHueBlend.

- Fixed notification of #REBAR_UPDATED when size changed, now gets posted just before the Rebar is about to be changed instead of after.

- Added automatic HotKey/Keyboard Shortcut creation and management to MenuEx item text.

- Added #ProGUI_Any (or #PB_Any) support to all controls, using the PureBasic Object Manager (Thanks Thomas and Poshu!).

- Added automatic setting of parent window to #WS_CLIPCHILDREN when a control requires the parent to clip children for flicker free rendering.

- Added new #ImgBlend_DestroyOriginal flag to ImgBlend and ImgHueBlend.

- Added new MenuExAutoHotKeyDisable command.

- Added new HotKey command.

- Added new LimitWindowSize command.

- Added new LoadFontEx command.

- Added new SetWindowFont command.

- Added new FreeFontEx command.

- Added new AlphaBlendColour command.

- Added new LoadImg command.

- Added new ImgPath command.

- Added new ImgWidth command.

- Added new ImgHeight command.

- Added new FreeImg command.

- Added new LWord and HWord helper commands to general.

- Updated examples.

- Updated docs.

25 July 2011 : Version 1.26

- Fixed top PanelEx parent window brush alignment bug with semi-transparent PanelEx page background.

- Fixed none posting of #SPLITTEREX_MOUSEDOWN event message.

- Fixed #SPLITTEREX_POSITION bug with nested vertical SplitterEx.

- Fixed SplitterEx bug with gripper being dragged when double-tap (when using trackpad) then released and then mouse moved.

- Fixed ToolBarExAttachDropdownMenu not working.

- Fixed bug with #SPLITTEREX_ANCHOREDBOTTOM constant not being to the power of 2.

- Fixed SplitterEx Anchoring bug when 'clicked' to anchor then 'clicked' to de-anchor and gripper not previously dragged.

- Fixed incorrect dwExtraInfo data type from long to int (pointer) in MSLLHOOKSTRUCT structure (Thanks for finding this Denis! :))

- Updated examples.

- Updated docs.

20 July 2011 : Version 1.25

- Fixed PureBasic PanelGadget rendering bug inside SplitterEx under Windows XP.

- Fixed SplitterEx lockup bug on 32bit machines.

- Fixed vertical SplitterEx skin padding bug.

- Fixed rendering bug of top PanelEx with semi-transparent gradient background.

- Fixed position bug of Rectangle/Ellipse gradients in a nested PanelEx and TextControlEx.

- Fixed bug with ToolBarEx dropdown lockup under x64 when no menu attached (found and fixed by Denis, thanks!)

- Fixed missing constants in UserLibrary resident.

- Updated examples.

- Updated docs.

16 July 2011 : Version 1.24

- Fixed missing #TVM_SETITEMHEIGHT constant value in Preferences example.

- Fixed bug with SplitterEx padding causing control border to be clipped.

- Fixed bug with SplitterEx/PanelEx where PureBasic container control inside not erasing background.

- Fixed flickering of Windows system scrollbars in none ProGUI controls inside PanelEx/SplitterEx.

- Fixed bug with SetSplitterExAttribute and #SPLITTEREX_VERTICAL flag value being inverted.

- Fixed bug with SetSplitterExAttribute and firstminimum/firstmaximum on vertical SplitterEx.

- Fixed flickering of none ProGUI components inside SplitterEx/PanelEx and further optimized rendering.

- Fixed vertical SplitterEx splitter alignment bug when resized.

- Added new #SPLITTEREX_MOUSEDOWN, #SPLITTEREX_MOUSEUP and #SPLITTEREX_HOVER Windows Event notification messages for detecting SplitterEx gripper state.

- Added new SplitterEx anchor feature.


- Added new CopySkin command.

- Updated examples.

- Updated docs.

07 July 2011 : Version 1.23

- Fixed parent background render bug of PanelEx page with -1 background.

- Fixed bug with SetSkinPropertyData and SetSkinPropertyDataSize where if property not already created then wouldn't set.

- Fixed bug with ButtonEx not setting some properties from skin at state change.

- Changed the Skin Sub-system, can now take an optional colour theme name in 'component' parameter separated by a colon.

- Changed SetGradient, now just changes gradient style.

- Added special colour constants to skins for system window background etc..

- Added new SplitterEx command.

- Added new SetSplitterExSkin command.

- Added new GetSplitterExSkin command.

- Added new SetSplitterExAttribute command.

- Added new GetSplitterExAttribute command.

- Added new SplitterExID command.

- Added new FreeSplitterEx command.

- Added new SetGradientColour command.

- Added new GetGradientColour command.

- Added new RemoveGradientColour command.

- Added new gradient styles and multiple blend colours.

- Added new GetDefaultGlobalSkinColourTheme command.

- Added new GetGlobalSkinColourTheme command.

- Added new SetGlobalSkinColourTheme command.

- Added new SetPanelExPageCursor command.

- Updated docs.

22 May 2011 : Version 1.22

- Fixed ButtonEx IMA bug in 32bit Userlib.

- Fixed bug in Mutex anti-deadlock code.

- Fixed none de-selection of PopupMenuEx when clicked outside of menu's window.

- Updated docs.

16 May 2011 : Version 1.21

- Fixed lockup bugs under Windows XP 32bit due to a bug in UnlockMutex.

- Fixed various small bugs.

- Fixed possible IMA on program exit with DLL version due to bug in DLL detach procedure.

- Fixed alpha icon rendering bug with InsertToolBarExGadget() in Windows XP 32bit due to a bug in Windows API ImageList_Copy command.

- Changed SaveRebarLayout/LoadRebarLayout now saves show state of each band.

- Updated docs.

13 May 2011 : Version 1.20

- Fixed bug that caused an IMA with ToolBarEx and no MenuEx when ToolBarEx has dropdown button.

- Fixed small rendering glitch of PanelEx border corners at certain sizes.

- Fixed potential null buffer IMA bug in internal code.

- Fixed rendering bug with ToolBarDropdownImageButtonEx menu containing sub menu.

- Fixed submenu window alignment bug of menu in ToolBarDropdownImageButtonEx.

- Fixed some rendering bugs under Windows XP.

- Fixed bug where grid-lines not appearing in listicon gadget.

- Fixed memory leak in FreeToolbarEx.

- Fixed rendering bug with none masked border in nested PanelEx.

- Changed CreatePanelEx UserCallback, now allows custom drawing inside the PanelEx page.

- Changed AddPanelExPage, AddPanelExImagePage, InsertPanelExPage, InsertPanelExImagePage and SetPanelExPageBackground, now have more default background themes.

- Changed SetPanelExPageBorder, can now also take a page handle as the index parameter, automatically generate a mask/border rectangle based on the border image and the BorderBackgroundColor parameter has been dropped and replaced with noRefresh.

- Changed SetPanelExPageBackground, now has an extra noRefesh parameter.

- Changed AddRebarGadget and InsertRebarGadget, now return -1 for failure.

- Changed GetToolBarExButtonWidth to ToolBarExButtonWidth and GetToolBarExHeight to ToolBarExHeight.

- Changed ImageButtonExToolTip to ButtonExToolTip, ChangeImageButtonEx to ChangeButtonEx, DisableImageButtonEx to DisableButtonEx, ImageButtonExID to ButtonExID and FreeImageButtonEx to FreeButtonEx.

- Added new Skin subsystem!

- Added new skinned ButtonEx control!

- Added new ButtonEx command.

- Added new SetButtonExSkin command.

- Added new GetButtonExSkin command.

- Added new CreateSkin command.

- Added new SetSkinPath command.

- Added new LoadSkin command.

- Added new SaveSkin command.

- Added new GetSkinName command.

- Added new SetSkinProperty command.

- Added new GetSkinProperty command.

- Added new GetSkinPropertyParam command.

- Added new GetSkinPropertySubParam command.

- Added new CountSkinPropertySubParams command.

- Added new GetSkinPropertyColour command.

- Added new GetSkinPropertySubParamColour command.

- Added new GetSkinPropertyData command.

- Added new GetSkinPropertyDataSize command.

- Added new SetSkinPropertyData command.

- Added new SetSkinPropertyDataSize command.

- Added new FreeSkin command.

- Added new RefreshPanelEx command.

- Added new SaveRebarLayout command.

- Added new LoadRebarLayout command.

- Added new RebarBandID command.

- Added new MoveRebarBand command.

- Added new SetRebarUserCallback command.

- Updated examples.

- Updated docs.

29 March 2011 : Version 1.18

- Fixed bug with menu drop shadows rendering more than once if contents of menu changed while open.

- Fixed background rendering bug when static control inside nested PanelEx.

- Fixed background alignment bug with static controls in PanelEx.

- Significantly Improved rendering performance of background behind static controls in PanelEx.

- Mutexed up a lot of thread critical code with automatic anti-deadlock recovery.

- Changed MenuExID, now returns handle to menu's title toolbar window or HMENU handle if PopupMenuEx.

- Changed ImgBlend and ImgHueBlend, can now also automatically handle a basic transparency mask (no alpha channel) in the source icon.

- Added SetPanelExPageScrolling command, allows automatic scrolling support of PanelEx pages (fully nestable) when content is outside viewable area.

- Updated examples.

- Updated docs.

09 January 2011 : Version 1.17

- Fixed multiple ImageButtonEx posting wrong ID when clicked.

- Fixed bug in SetPanelExPageBackground and SetPanelExPageBorder where PanelEx wasn't updated/re-drawn on change.

- Fixed nasty GDI handle leak bug with TextControlEx inside PanelEx.

- Fixed incorrect ToolBarEx height in Office Example in Windows XP due to bug in DisableToolBarExButtonFade.

- Changed SetUIColour, passing a "default" colour scheme constant will automatically select the corresponding custom colour slot.

- Added new #UISTYLE_IMAGE style constant to ToolBarEx.

- Added new SetGradient command.

- Added new DCC Manager User Interface example.

- Added new PDF version of documentation for printing.

- Updated examples.

- Updated docs.

02 January 2011 : Version 1.16

- Fixed negative desktops bug (reported by Poshu).

- Fixed menu tracking drop shadow flickering in desktop composite mode (Aero).

- Fixed menu scrolling flickering in desktop composite mode (Aero).

- Fixed/Significantly improved menu tracking flickering in desktop composite mode (Aero).

- Fixed/Removed delayed drop shadow "feature" in desktop composite mode (Aero).

- Fixed small bug in key-code decoding subroutines which might surface under unusual circumstances due to Mandarin Unicode character set.

- Fixed TextControlEx redraw on change bug in PanelEx.

- Fixed TextControlEx hyper links sending duplicate messages to message queue.

- Fixed various alignment, padding and hyper link bugs in TextControlEx.

- Fixed IMA when TextControlEx has #TCX_BK_GRADIENT flag set and no gradient has been set before with SetTextControlExGradient.

- Fixed ImageButtonEx redraw on change bug in PanelEx.

- Fixed small bug in MenuEx item selection.

- Fixed small alignment bug with upside down menu on ToolBarDropdownImageButtonEx.

- Fixed default MenuEx disabled icon rendering in Office 2003 style on 64bit machines.

- Fixed bug with hot display of menu item images under Windows 7/Vista classic style menus.

- Fixed small resize rendering bug with Rebar under Windows 7/Vista.

- Fixed GetUIColour and SetUIColour, now working with #UISTYLE_WHIDBEY.

- Fixed bug in DisableMenuItemEx whereby an item with submenu was being ignored.

- Fixed rendering of disabled item submenu arrow, now uses #disabledColor.

- Fixed bug in GetMenuItemExText whereby an item with submenu was being ignored.

- Fixed bug with SetMenuItemEx deleting old submenu when new submenu specified (coded a workaround due to undocumented behaviour of Windows API SetMenuItemInfo, bloody Microsoft grr!).

- Improved default disabled state icons/handling in visual styles.

- Added new Office 2007 visual style!

- Added escape-code effects to ToolBarEx button text.

- Added drop-shadows to ToolBarDropdownImageButtonEx when menu active in Office 2003 style.

- Added new #toolbarSeparator, #toolbarSeparatorShadow, #toolbarHotGradientColor1, #toolbarHotGradientColor2, #StickySelectBorderColor, #toolbarButtonTextColor, #toolbarButtonHotTextColor and #toolbarButtonDisabledTextColor colour constants to Office 2003/2007 styles.


- Added new Office 2003/2007 visual styles to ComboBoxes when inserted into a ToolBarEx with ToolBarExGadget/InsertToolBarExGadget.

- Added #TBSTYLE_WRAPABLE support/functionality to ToolBarEx inside Rebars.

- Added new PanelExWidth command.

- Added new PanelExHeight command.

- Added new ImgBlend command.

- Added new ImgHueBlend command.

- Added new ToolBarExGadget command.

- Added new DisableToolBarExButtonFade command.

- Added new RemoveToolBarExButton command.

- Added new HideToolBarExButton command.

- Added new InsertToolBarButtonEx command.

- Added new InsertToolBarImageButtonEx command.

- Added new InsertToolBarSeparatorEx command.

- Added new InsertToolBarDropdownImageButtonEx command.

- Added new InsertToolBarExGadget command.

- Added new GetToolBarExButtonWidth command.

- Added new SetToolBarExButtonWidth command.

- Added new SetToolBarExHeight command.

- Added new ToolBarExGadgetID command.

- Added new DisableImageButtonEx command.

- Added new SetTextControlExDimensions command.

- Added new TextControlExWidth command.

- Added new TextControlExHeight command.

- Changed behaviour of MenuEx bar when main window resized too small, menu titles now wrap onto separate rows.

- Changed SetUIColour, now has an extra "noUpdate" parameter.

- Changed FreeMenuEx, now accepts -1 to free all menus and returns True for success.

- Updated examples.

- Updated docs.

11 November 2010 : Version 1.14

- Fixed Window close/re-open memory access violation (reported by GG and Poshu).

- Fixed thread collision IMA with internal track window code. (reported by Joaquin Fernandez)

- Fixed Office 2003 style rendering bug on Windows 7 (reported by Soner Boztas).

- Fixed PureBasic Userlib version compiler errors with threadsafe/unicode.

- Updated examples.

- Updated docs.

02 October 2010 : Version 1.13

- Fixed PanelEx no background bug.

- Fixed mouse tracking bug with ButtonEx and window border overlap.

- Fixed mouse tracking bug with hyperlink in TextControlEx and window border overlap.

- Fixed hover rendering bug with same ID hyperlinks in TextControlEx.

- Fixed PanelEx inside PanelEx background re-draw bug.

- Fixed bug with ToolBarEx when ToolBarButtonEx created before ImageButtonEx.

- Fixed/Improved Rebar rendering.

- Fixed Rebar double-buffer rendering bug with Office 2003 style.

- Fixed bug with MenuEx cached buffer not re-rendering on Windows theme change.

- Fixed bug with internal Rebar and ToolbarEx callback code when no menu attached/created.

- Fixed rendering bug with ToolBarEx inside PanelEx.

- Fixed various Windows Messages not being sent to PanelEx Usercallback.

- Hugely optimized PanelEx/Nested PanelEx rendering and masked border rendering.

- Added new 64 bit version of ProGUI!

- Added/fixed PNG, JPG and other image format support to MenuEx.

- Added/fixed PNG, JPG and other image format support to ToolbarEx.

- Added #PB_Any to ToolBarButtonEx, ToolBarImageButtonEx and CreatePanelEx.

- Changed StartProGUI, now requires 7 key codes.

- Changed ChangeToolbarExButton, if normalImageID, hotImageID or disabledImageID are set to -1 the parameter is ignored and the original image is kept.

- Changed CreateRebar, can now accept image as parameter for custom background rendering of Rebar.

- Changed AddRebarGadget, can now accept image as parameter for custom background rendering of band.

- Changed InsertRebarGadget, can now accept image as parameter for custom background rendering of band.

- Updated examples.

- Updated docs.

18 September 2009 : Version 1.12

- Fixed ToolbarEx not displaying tooltip bug with DLL version and none Unicode executable.

- Fixed missing #VerticalGRADIENT constant in res and include.

- Fixed bug in SetTextControlExText where dimensions were calculated incorrectly.

- Fixed AddPanelExImagePage auto calculated image dimensions when icon passed as image.

- Fixed displaying of popup menus when no main toolbar or menu.

- Fixed md5 check bug with incorrect path to ProGUI DLL.

- Added double '$' escape code in MenuItemEx.

- Added multi-line support to TextControlEx as escape code.

- Added hyperlink support to TextControlEx as escape code.

- Added new #TCX_LINK_HOVER window event notification.

- Added new #TCX_LINK_CLICK window event notification.


- Added new command SetTextControlExStyle.

- Added new command SetTextControlExLinePadding.

- Added new command TextControlExID.

- Added new command FreeTextControlEx.

- Added new command ImageButtonEx.

- Added new command ChangeImageButtonEx.

- Added new command ImageButtonExToolTip.

- Added new command ImageButtonExID.

- Added new command FreeImageButtonEx.

- Added new command ToolBarExToolTipDelay.

- Added new command ToolBarExID.

- Added new command SetPanelExPageBorder.

- Added new command SetPanelExPageBackground.

- Added new command InsertPanelExPage.

- Added new command InsertPanelExImagePage.

- Added new command FreePanelEx.

- Added new command FreePanelExPage.

- Added new command InsertRebarGadget.

- Added new command DeleteRebarBand.

- Added new command FreeRebar.

- Changed PanelEx, now double buffered, supports semi-transparent panels within panels and optional 2nd overlay background/image.

- Changed TextControlEx, now draws directly to panel's buffer if in panel.

- Changed PanelExID, if index is < 0 then returns handle to PanelEx

- Changed AddPanelExPage and AddPanelExImagePage, can now take gradient as background.

- Changed SetTextControlExPadding, now takes an ID as first parameter.

- Changed SetTextControlExFont, now takes an ID as first parameter.

- Changed SetTextControlExColour, now takes an ID as first parameter.

- Changed SetTextControlExGradient, now takes an ID as first parameter.

- Changed FreeToolBarEx, specifying toolbar.l as -1 will now free all ToolbarEx's.

- Updated examples.

- Updated docs.

22 May 2009 : Version 1.11

- Fixed all Vista/Windows 7 rendering bugs.

- Fixed memory access violation on Vista/Windows 7 in Office Example (due to forgetting to allocate space for terminating null doh!)

- Fixed bug with Unicode detection of theme colour scheme in Vista/Windows 7.

- Fixed DisplayPopupMenuEx menu width bug in Vista/Windows 7.

- Fixed DisplayPopupMenuEx edge of screen positioning bug.

- Added detection of desktop composite mode (Full Aero) and automatically reverts to composite optimized menu tracking if detected.

- Added auto Vista/Windows 7 visual style adoption for classic style menus if common controls greater than version 6 and themes enabled.

- Added auto buffering of whole menu window (speed optimization for menu tracking).

12 May 2009 : Version 1.1

- Fixed all memory leaks and various minor bugs.

- Fixed rendering bug with PanelEx static control background brushes on theme change.

- Fixed rendering bug with Whidbey style menus on Windows Classic theme.

- Fixed bug with Whidbey style keyboard navigation bellow separator bar when up cursor key pressed.

- Fixed bug with menu keyboard navigation when item selected by pressing enter.

- Fixed bug inside internal subroutine CalcMenuItemHeight.

- Fixed bug with menu tracking on edge of screen when classic style menu contains a separator bar.

- Fixed bug with clicking on same menu title re-activating menu when menu keyboard activated by Alt or F10.

- Fixed bug with submenu item staying selected when mouse moved into parent menu item (Windows menu bug/quirk).

- Fixed incorrect colours in #UISTYLE_OFFICE2003 classic grey rebar background.

- Fixed bug with menu item disabled selection with keyboard navigation.

- Fixed bug with double click and track mouse on menu bar.

- Fixed rendering vertical position rounding bug with ToolbarEx on classic theme with Office 2003 style.

- Fixed rendering position bugs with dropdown ToolbarEx button.

- Fixed menu tracking bug when mouse moved rapidly and across a drop down activating.

- Fixed hot MenuItemEx icon rendering, now working.

- Fixed bug with upside down menu tracking when mouse in submenu over menu bar activating menu title underneath.

- Fixed bug with different font sizes and menu at edge of screen positioning.

- Fixed accidentally exported procedures Attach Process/Thread in Userlib version.

- Fixed bug with Userlib version where dll's being opened with fixed library number.

- Fixed bug with toolbarEx not displaying tooltips properly with #TBSTYLE_WRAPABLE.

- Fixed bug with Vista menu tracking rendering.

- Heavily Optimized rendering including new internal caching engine and intelligent DoubleBuffering, rendering performance on par with original Microsoft Office! and certainly faster than any other competing product!

- Added new flicker free menu tracking code, something that Microsoft were unable to implement in Office.

- Added support for unicode: DLL version now all internally unicode and separate unicode Userlib version.

- Added UIColourMode/Colour Scheme support for Whidbey style.

- Added new component colour constants to UI Styles.

- Added new text rendering engine to MenuEx and TextControlEx: supporting escape code colours, bold, italic, underline and strike through effects.

- Added support for checkboxes and radiochecks in menus.

- Added automatic right aligned shortcuts to menus, identical to Office 2003.

- Added automatic scrolling of large menus that won't fit on screen, superior scrolling than Microsoft Office!

- Added new command SetMenuExItemState.

- Added new command GetMenuExItemState.

- Added new command DisplayPopupMenuEx.

- Added new command SetMenuItemEx.

- Added new command GetMenuItemExText.

- Added new command RemoveMenuItemEx.

- Added new command InsertMenuItemEx.

- Added new command SetMenuExStyle.

- Added new command SetMenuExFont.

- Added new command GetMenuExFont.

- Added new command GetMenuExBarHeight.

- Added new command SetToolBarExStyle.

- Added new command GetToolBarExHeight.

- Added new command SetRebarStyle.

- Added new command GetUIColourMode.

- Added new command GetCurrentColourScheme.

- Added new command GetFontName.

- Added new command GetFontSize.

- Added new command MenuExF10Disable.

- Changed/fixed rendering of menu item size in Whidbey and Office 2003 styles, now pixel perfect!

- Changed/fixed large font size issues, can now handle high DPI.

- Changed/fixed submenu aligning in Whidbey and Office 2003 styles, now like office 2003.

- Changed/fixed menu item selection fade in Whidbey and Office 2003 styles, now disabled like Office 2003.

- Changed/fixed drop-shadow sub-routines with custom colour/alpha support and internal caching, now identical to Microsoft Office.

- Changed/fixed menu item submenu arrow, now always rendered black in Whidbey and Office 2003 styles.

- Changed/fixed popup submenu's style now conforms to parent's style when created with a different style.

- Changed/fixed multi-monitor positioning of menus, now uses available workspace like Office.

- Changed rendering of Extended Menu's default disabled item icon in Office 2003 style to greyed icon.

- Changed all internal instances of Set/GetWindowLong and Set/GetClassLong to Ptr versions for 64bit compatiblity.

- Changed DisableMenuItemEx, can now also accept a returned handle from CreateMenuEx as input.

- Changed MenuItemEx, can now also accept a MenuEx ID as submenu as well as menu handle.

- Changed ShowRebarBand, can now also accept an ID as well as handle, band can also now be an index or ID.

- Changed RebarHeight, can now also accept a handle or ID as input.

- Changed ToolBarDropdownImageButtonEx, can now accept either menuEx handle or ID as menuID.

- Changed ToolBarExToolTip, can now replace an already associated tooltip with new text or remove the tooltip.

- Changed UIColourMode to SetUIColourMode.

- Changed default menu icon size to 16x16 pixels

- Improved classic style MenuEx rendering

- Improved ease of custom UI colour setup by copying defaults into custom slots at start-up.

- Corrected a few spelling typos on some of the commands and constants.

- Updated examples.

- Updated docs.

28 February 2009 : Version 1

- Fixed many minor bugs and rendering issues.

- Fixed hot-tracking bug with menu multi-monitor support.

- Added new Office 2003 style menus, Toolstrips and Rebars.

- Added full support for menu keyboard navigation and hotkey support.

- Added new command ToolBarSeperatorEx.

- Added new command ToolBarExToolTip.

- Added new command UIColourMode.

- Added new command GetUIColour.

- Added new command SetUIColour.

- Added new command MakeColour.

- Added new command CreateGradient.

- Added new command FreeGradient.

- Added new #REBAR_UPDATED window event notification.

- Updated setTextControlExGradient command, now functional.

- Updated CreateRebar command.

- Updated examples.

- Updated docs.

09 April 2008 : Version 0.60 Beta

- Fixed various minor bugs.

- Added new command ChangeToolbarExButton.

- Updated docs.


Last edited by PrincieD on Mon Sep 17, 2012 6:27 pm, edited 44 times in total.
Posts: 2736
Joined: Wed Aug 24, 2005 8:39 am
Location: Southwest OH - USA

Post by rsts »

Wow, looks great!

Well done and welcome back. :)

White Eagle
Posts: 215
Joined: Sun Jan 04, 2004 3:38 am
Location: Maryland

Post by White Eagle »

Looks nice, but none of the links are working for me.
User avatar
PureBasic Protozoa
PureBasic Protozoa
Posts: 4644
Joined: Fri Apr 25, 2003 3:08 pm
Location: Not Sydney!!! (Bad water, no goats)

Post by Fangbeast »

Links don't wok here either and I am just dying to try these out (pant, pant, dribble, drool, lust)
Amateur Radio, D-STAR/VK3HAF
Posts: 1981
Joined: Thu Nov 01, 2007 5:37 pm
Location: Germany

Post by c4s »

Links worked for me and I'm amazed because it looks really neat.
But what does this mean:
Will timeout at around 5 minutes per session, this is so you can test out your applications with ProGUI before deciding whether to purchase a license for the unrestricted version.
I compile a program with your dll and it will close after 5min?

Well, please correct your first post so it's clear that your program is no
freeware and a licence is needed to use it in any way - thank you!
Posts: 1250
Joined: Fri Apr 25, 2003 11:10 pm

Post by jack »

link just gives me a page with a lot of free hosting services but no download link :?
Posts: 2736
Joined: Wed Aug 24, 2005 8:39 am
Location: Southwest OH - USA

Post by rsts »

I've taken the liberty, PrincieD, let me know if you object.

edit - removed links - see below

Last edited by rsts on Wed Mar 11, 2009 4:04 am, edited 1 time in total.
User avatar
Always Here
Always Here
Posts: 5758
Joined: Thu Jun 24, 2004 2:44 pm
Location: Berlin - Germany

Post by ts-soft »

go to
and than to download and zip or rar downloadable
PureBasic 5.73 | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Old bugs good, new bugs bad! Updates are evil: might fix old bugs and introduce no new ones.
Posts: 1250
Joined: Fri Apr 25, 2003 11:10 pm

Post by jack »

thanks guys :)
Posts: 624
Joined: Wed Aug 10, 2005 2:08 pm
Location: Yorkshire, England

Post by PrincieD »

c4s: Oops! sorry, i've amended the main thread to mention that it is licenceware.

thank you rsts! and ts-soft :D it's nice to be back :)

User avatar
PureBasic Protozoa
PureBasic Protozoa
Posts: 4644
Joined: Fri Apr 25, 2003 3:08 pm
Location: Not Sydney!!! (Bad water, no goats)

Post by Fangbeast »

Just finished having a play with it all, very nice. Good to look at. Love the rebar stuff too.
Amateur Radio, D-STAR/VK3HAF
Posts: 1177
Joined: Wed Nov 12, 2008 5:01 pm
Location: Russia

Post by User_Russian »

at choice of the item menu or ToolBar see in taskmgr drain to memories! :shock:
PureBasic Expert
PureBasic Expert
Posts: 7581
Joined: Fri Apr 25, 2003 5:24 pm

Post by PB »

> I am just dying to try these out (pant, pant, dribble, drool, lust)

/me gets the mop with a sigh.
I compile using 5.31 (x86) on Win 7 Ultimate (64-bit).
"PureBasic won't be object oriented, period" - Fred.
User avatar
PureBasic Protozoa
PureBasic Protozoa
Posts: 4644
Joined: Fri Apr 25, 2003 3:08 pm
Location: Not Sydney!!! (Bad water, no goats)

Post by Fangbeast »

PB wrote:> I am just dying to try these out (pant, pant, dribble, drool, lust)

/me gets the mop with a sigh.
Amateur Radio, D-STAR/VK3HAF
PureBasic Expert
PureBasic Expert
Posts: 7581
Joined: Fri Apr 25, 2003 5:24 pm

Post by PB »

I compile using 5.31 (x86) on Win 7 Ultimate (64-bit).
"PureBasic won't be object oriented, period" - Fred.