ProGUI V3 Alpha 3 Ready for testing!

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

Re: ProGUI V3 Alpha 3 Ready for testing!

Post by PrincieD »

Thanks Zach and Quin, yeah it's bugger to maintain / create - thankfully Gemini 2.5 pro experminental has generated the grunt of it, so it's just been a case of manually going through all the docs and correcting/refinining - which is no different to the auto doc generator in PB itself except the AI is smart enough to figure out the bulk of it and generate good examples. As a rough ratio for every code example the AI generates 1 will work flawlessly (without any kind of modification) the other will need tweaking a bit. So yep not long now until the first beta (which will be going on sale), I'm currently filling in some 'blanks' in the API such as WindowFree(), LayoutFree(), WidgetSetLayout(), LayoutInsertWidget() etc (which have been low priority but fairly essential lol) and then finishing of the skin API with a DrawSkinText() command (fairly straight forward with the rest of the architecture working well), so quite exciting! nearly 2 years in development!
ProGUI - Professional Graphical User Interface Library - http://www.progui.co.uk
PrincieD
Addict
Addict
Posts: 858
Joined: Wed Aug 10, 2005 2:08 pm
Location: Yorkshire, England
Contact:

Re: ProGUI V3 Alpha 3 Ready for testing!

Post by PrincieD »

So this is draft v2 of the docs (bare in mind Alpha 3 code may need some tweaking to work correctly with the current build) https://www.progui.co.uk/downloads/testhelp/index.html - the skinning section is also work in progress.

In the current build, CreateWIndow() just needs an x, y, width, height and the flags defaults to #PG_Window_Default which is #PG_Window_MinimizeWidget | #PG_Window_MaximizeWidget | #PG_Window_Sizeable), you don't need to specify a draw event handler now too, it will use a default. The same again with creating a widget, if you don't specify a draw event handler you'll now either get the yellow / black stripe WIP widget or if it has a skin class the rendered skin.
ProGUI - Professional Graphical User Interface Library - http://www.progui.co.uk
Quin
Addict
Addict
Posts: 1122
Joined: Thu Mar 31, 2022 7:03 pm
Location: Colorado, United States
Contact:

Re: ProGUI V3 Alpha 3 Ready for testing!

Post by Quin »

Chris,
Awesome work so far, I'll look over this documentation later today. Has there been any progress made on the accessibility front, like we talked about months ago? If not I'd be more than happy to be a tester/feedback reporter for such functionality. If interested just shoot me a PM. :)
PrincieD
Addict
Addict
Posts: 858
Joined: Wed Aug 10, 2005 2:08 pm
Location: Yorkshire, England
Contact:

Re: ProGUI V3 Alpha 3 Ready for testing!

Post by PrincieD »

Quin wrote: Sun Apr 06, 2025 11:57 pm Chris,
Awesome work so far, I'll look over this documentation later today. Has there been any progress made on the accessibility front, like we talked about months ago? If not I'd be more than happy to be a tester/feedback reporter for such functionality. If interested just shoot me a PM. :)
Thanks man, I've not thought too much about it to be honest Quin, it's in the back of my mind but yep just still concentrating on getting the core framework up and running, thanks I appreciate that and will do - once into the beta release!
ProGUI - Professional Graphical User Interface Library - http://www.progui.co.uk
PrincieD
Addict
Addict
Posts: 858
Joined: Wed Aug 10, 2005 2:08 pm
Location: Yorkshire, England
Contact:

Re: ProGUI V3 Alpha 3 Ready for testing!

Post by PrincieD »

Hi guys, quick update. V3 beta is inching ever closer, I've been fixing bugs (quite a few) and filling in the blanks of the API. One of the main features is layouts can now be swapped and interchanged "willy nilly" (including root window layouts) with the WindowSetLayout() and WidgetSetLayout() commands. This easily allows "docking" functionality in the future and "pages" for panel type widgets. There is also now a LayoutInsertWidget() command, again widgets can be moved and inserted to different layouts by an index. The scrollbar widgets now use the DrawSkinBackground() command with loaded (from the skin) arrow images (instead of the hard coded ones) - default Windows 10 skin. Some of the changes are:

StopAnimation(Object, ID, Flags = #Null) -> new #PG_Animation_Kill and #PG_Any for ID
WidgetFree -> FreeWidget
FreeLayout
FreeWindow
WidgetSetLayout -> updated
WindowSetLayout
LayoutInsertWidget
WidgetGetLayoutIndex
WidgetGetParentLayout
WidgetGetParentWidget
LayoutGetParentWindow
LayoutGetParentWidget
LayoutGetParentLayout
SaveImg
LoadImg -> upgraded to handle multiple altSize imgs in path and snaptosize e.g. "Icons\arrowSmall.png; arrowMedium.png; arrowBig.png; snaptosize"
new dark theme for scrollbars
CreateText uses default system font and point size if not specified
TextSetFontName
TextSetPointSize
DrawSkinText

DrawSkinText() is almost complete supporting most CSS properties and transition animations (more will come later). I'm currently implementing automatic inheritance for text properties and a new "root" class, so for example setting the root classs (CSS) for "font-family" will change the font for all widgets/windows unless specifically overridden (in a cascading fashion). Which makes it super easy to change the font for your app.
ProGUI - Professional Graphical User Interface Library - http://www.progui.co.uk
PrincieD
Addict
Addict
Posts: 858
Joined: Wed Aug 10, 2005 2:08 pm
Location: Yorkshire, England
Contact:

Re: ProGUI V3 Alpha 3 Ready for testing!

Post by PrincieD »

There was a nice anecdote my auntie said today about in-laws making the garden look nice without pulling any of the weeds - you absolutely need a solid foundation in anything you build, otherwise the weeds will grow and forever haunt you. Hopefully I've created a solid foundation without any weeds.
ProGUI - Professional Graphical User Interface Library - http://www.progui.co.uk
PrincieD
Addict
Addict
Posts: 858
Joined: Wed Aug 10, 2005 2:08 pm
Location: Yorkshire, England
Contact:

Re: ProGUI V3 Alpha 3 Ready for testing!

Post by PrincieD »

Hi Guys,

There's now a ":root" pseudo class for the CSS engine (the same as Web CSS) and the engine now supports inheritence with the "inherit" keyword for property values, also the engine now supports individual widget styling by name/id (#myWidgetName) with WidgetSetName() as well as class with missing properties inherited from the widget class (if set). The CSS engine automatically inherits font and text properties (if missing).

There's also now 2 new commands added to GFX API: DrawImgShadow() and DrawImgShadowInset() - I think you can see where this is going ;) (very important for the borderless window mode - with full window skinning).

Chris.
ProGUI - Professional Graphical User Interface Library - http://www.progui.co.uk
Quin
Addict
Addict
Posts: 1122
Joined: Thu Mar 31, 2022 7:03 pm
Location: Colorado, United States
Contact:

Re: ProGUI V3 Alpha 3 Ready for testing!

Post by Quin »

Very cool! Looking forward to the release!
PrincieD
Addict
Addict
Posts: 858
Joined: Wed Aug 10, 2005 2:08 pm
Location: Yorkshire, England
Contact:

Re: ProGUI V3 Alpha 3 Ready for testing!

Post by PrincieD »

Quin wrote: Sat Apr 26, 2025 1:51 am Very cool! Looking forward to the release!
Thanks mate! yup me too :)
ProGUI - Professional Graphical User Interface Library - http://www.progui.co.uk
PrincieD
Addict
Addict
Posts: 858
Joined: Wed Aug 10, 2005 2:08 pm
Location: Yorkshire, England
Contact:

Re: ProGUI V3 Alpha 3 Ready for testing!

Post by PrincieD »

Hi guys quick update! CSS box-shadow is working for widgets now :)

https://www.youtube.com/shorts/9MA2Zn5SaWs

Current list of new stuff:

Code: Select all

StopAnimation(Object, ID, Flags = #Null) -> new #PG_Animation_Kill and #PG_Any for ID
WidgetFree -> FreeWidget
FreeLayout
FreeWindow
WidgetSetLayout -> updated
WindowSetLayout
LayoutInsertWidget
WidgetGetLayoutIndex
WidgetGetParentLayout
WidgetGetParentWidget
LayoutGetParentWindow
LayoutGetParentWidget
LayoutGetParentLayout
SaveImg
LoadImg -> upgraded to handle multiple altSize imgs in path and snaptosize
dark theme for scrollbars
CreateText uses default system font and point size if not specified
TextSetFontName
TextSetPointSize
DrawSkinText
New root CSS class
CSS engine now supports inheritence with "inherit" keyword for property value
CSS engine automatically inherits font and text properties
CSS engine now supports individual widget styling by name/id (#myWidgetName) as well as class with missing properties inherited from the class if set
DrawImgShadow
DrawImgShadowEx
DrawImgShadowInset
DrawImgShadowInsetEx
DrawSkinBoxShadow
CSS "box-shadow" property now working complete with animation transitions, additional none standard CSS flags "inside" (shadow is rendered from inside the border radius), "outside" (shadow is rendered from the outside border radius), "background" (inset shadow is rendered on top of the background), "above" (inset shadow is rendered on top of the draw event rendering), "infront" (inset shadow is rendered on top of all widgets in the widget's layout), "ontop" (inset shadow is rendered on top of widgets and scrollbars)
Widgets now handle rendering the skin background and box-shadow automatically (as well as borders) so a draw event handler isn't always needed (only for rendering specific parts/elements inside the widget).
DrawBorder now has extra #PG_DrawBorder_MaskInside, #PG_DrawBorder_MaskOutside flags
Cheers!

Chris.
ProGUI - Professional Graphical User Interface Library - http://www.progui.co.uk
Zach
Addict
Addict
Posts: 1675
Joined: Sun Dec 12, 2010 12:36 am
Location: Somewhere in the midwest
Contact:

Re: ProGUI V3 Alpha 3 Ready for testing!

Post by Zach »

that looks really cool
PrincieD
Addict
Addict
Posts: 858
Joined: Wed Aug 10, 2005 2:08 pm
Location: Yorkshire, England
Contact:

Re: ProGUI V3 Alpha 3 Ready for testing!

Post by PrincieD »

Zach wrote: Tue May 20, 2025 12:45 am that looks really cool
Cheers mate! nearly there now, I'm currently working on getting full window skinning working (progressing well)

Image
ProGUI - Professional Graphical User Interface Library - http://www.progui.co.uk
PrincieD
Addict
Addict
Posts: 858
Joined: Wed Aug 10, 2005 2:08 pm
Location: Yorkshire, England
Contact:

Re: ProGUI V3 Alpha 3 Ready for testing!

Post by PrincieD »

ProGUI - Professional Graphical User Interface Library - http://www.progui.co.uk
PrincieD
Addict
Addict
Posts: 858
Joined: Wed Aug 10, 2005 2:08 pm
Location: Yorkshire, England
Contact:

Re: ProGUI V3 Alpha 3 Ready for testing!

Post by PrincieD »

Image

Hi guys could you test out the following full window skinning demo for me please? :-

https://www.progui.co.uk/downloads/Wind ... ngTest.zip

Window resizing should behave identically to a system window and Aero Snapping/resizing should work.
The resizing should be silky smooth without any glitching or artifacts (bare in mind these are DirectX 11 Windows!)

Thanks!

Chris.

P.s hopefully if I've done a good job it should look like nothing spectacular (apart from the red drop-shadow and super fast glitch free rendering when resizing) - everything is custom code even down to the mouse cursor changing at the edge of the window which is why I need to know if it's working how it should or if there are any bugs! so yep cheers!
ProGUI - Professional Graphical User Interface Library - http://www.progui.co.uk
Zach
Addict
Addict
Posts: 1675
Joined: Sun Dec 12, 2010 12:36 am
Location: Somewhere in the midwest
Contact:

Re: ProGUI V3 Alpha 3 Ready for testing!

Post by Zach »

The resizing works smooth and looks pretty good. I do not see any snapping functionality, so I'm not sure what is supposed to happen there, but it opened two windows I assume they were supposed to snap to each other when hovered near.

Windows 10 Pro, 22H2
Build 19045.4894
Windows Feature Experience Pack 1000.19060.1000.0
Post Reply