Page 1 of 4

ProGUI V3 Alpha Sneak Peek!

Posted: Mon Mar 18, 2024 6:46 pm
by PrincieD
Hi guys! This is a sneak peek of the new ProGUI V3 alpha which I've spent the past 7 months or so developing and is a total re-write from the ground-up.

https://www.youtube.com/shorts/joYegMLUxyc

More dev diary videos: https://www.youtube.com/channel/UCBcx4x ... R0b_uQ4Cwg

Core features implemented:

* Cross platform, currently Windows and Linux (although the Linux code is a little behind at the moment).
* Unified GFX API - DirectX 11/ Direct2D / DirectWrite on Windows and Cairo / Pango on Linux.
* Automatic per monitor DPI scaling using Device Independant Pixels.
* Advanced layout engines including Basic, Flex and Grid which can handle updating tens of thousands of items without breaking a sweat.
* Overflow and dynamic bucket system for virtual scrolling in layouts.
* Event handler engine that can be easily subclassed with many handlers per event.
* Animation with all rendering synced to the animation and render threads.
* Easily create custom widgets using the GFX API.

Windows specific features:

* Super fast rendering and glitch-free window resizing with direct integration with the Desktop Window Manager.
* Diverted rendering of all Win32 common controls (also includes PB Canvas and Scintilla) directly onto the Direct2D bitmaps (including UXTheme animation), allowing alpha transparency and masking.
* Native WebView2 widget with rendering diverted directly onto the Direct2D bitmaps.

Layout features:

All layouts support padding and item margins along with overflow and scrolling.
Layouts support automatic 'fit-to-content' and can be nested.

Layout Items:
#PG_Layout_Item_Visiblity
#PG_Layout_Item_MinWidth
#PG_Layout_Item_MinHeight
#PG_Layout_Item_IdealWidth
#PG_Layout_Item_IdealHeight
#PG_Layout_Item_Margin
#PG_Layout_Item_MarginTop
#PG_Layout_Item_MarginLeft
#PG_Layout_Item_MarginBottom
#PG_Layout_Item_MarginRight
#PG_Layout_Item_Justify
#PG_Layout_Item_Align

#PG_Layout_Item_Justify_Start
#PG_Layout_Item_Justify_Center
#PG_Layout_Item_Justify_End
#PG_Layout_Item_Align_Start
#PG_Layout_Item_Align_Center
#PG_Layout_Item_Align_End

Flex:
#PG_Flex_Direction
#PG_Flex_Wrap
#PG_Flex_Justify
#PG_Flex_AlignItems
#PG_Flex_AlignContent

#PG_Flex_Direction_Row
#PG_Flex_Direction_RowReverse
#PG_Flex_Direction_Column
#PG_Flex_Direction_ColumnReverse

#PG_Flex_Justify_Start
#PG_Flex_Justify_Center
#PG_Flex_Justify_End
#PG_Flex_Justify_SpaceAround
#PG_Flex_Justify_SpaceBetween

#PG_Flex_AlignContent_Start
#PG_Flex_AlignContent_Center
#PG_Flex_AlignContent_End
#PG_Flex_AlignContent_SpaceAround
#PG_Flex_AlignContent_SpaceBetween
#PG_Flex_AlignContent_Stretch

Grid:
#PG_Layout_Item_RowStart
#PG_Layout_Item_RowSpan
#PG_Layout_Item_ColumnStart
#PG_Layout_Item_ColumnSpan

#PG_Grid_TemplateColumnSize
#PG_Grid_TemplateColumnMinSize
#PG_Grid_TemplateColumnMaxSize
#PG_Grid_TemplateRowSize
#PG_Grid_TemplateRowMinSize
#PG_Grid_TemplateRowMaxSize
#PG_Grid_GapSize
#PG_Grid_GapSizeColumns
#PG_Grid_GapSizeRows
#PG_Grid_JustifyContent
#PG_Grid_AlignContent
#PG_Grid_JustifyItems
#PG_Grid_AlignItems
#PG_Grid_Flow
#PG_Grid_DefaultColumnSize
#PG_Grid_DefaultColumnMinSize
#PG_Grid_DefaultColumnMaxSize
#PG_Grid_DefaultRowSize
#PG_Grid_DefaultRowMinSize
#PG_Grid_DefaultRowMaxSize
#PG_Grid_SpanMode
#PG_Grid_SpanModeColumns
#PG_Grid_SpanModeRows

#PG_Grid_JustifyContent_Start
#PG_Grid_JustifyContent_Center
#PG_Grid_JustifyContent_End
#PG_Grid_JustifyContent_SpaceAround
#PG_Grid_JustifyContent_SpaceBetween
#PG_Grid_JustifyContent_SpaceEvenly

#PG_Grid_AlignContent_Start
#PG_Grid_AlignContent_Center
#PG_Grid_AlignContent_End
#PG_Grid_AlignContent_SpaceAround
#PG_Grid_AlignContent_SpaceBetween
#PG_Grid_AlignContent_SpaceEvenly

#PG_Grid_JustifyItems_Start
#PG_Grid_JustifyItems_Center
#PG_Grid_JustifyItems_End

#PG_Grid_AlignItems_Start
#PG_Grid_AlignItems_Center
#PG_Grid_AlignItems_End

#PG_Grid_Flow_Row
#PG_Grid_Flow_RowDense

#PG_Grid_SpanMode_Tight
#PG_Grid_SpanMode_Even

#PG_Grid_MaxContent
#PG_Grid_Auto
#PG_Grid_Default
#PG_Grid_Percent

Hopefully I'll have the first alpha version ready for you guys to test soon, it's not quite ready yet.

Cheers! Chris.

Re: ProGUI V3 Alpha Sneak Peek!

Posted: Mon Mar 18, 2024 7:00 pm
by skywalk
Looks sleek. Curious why you decided against an html/css approach with the new webviewgadget?

Re: ProGUI V3 Alpha Sneak Peek!

Posted: Mon Mar 18, 2024 8:29 pm
by ChrisR
Sounds very interesting, impressive, can't wait to see more, will be better than a mobile capture :wink:
Good progress to the alpha version.

Re: ProGUI V3 Alpha Sneak Peek!

Posted: Mon Mar 18, 2024 9:17 pm
by jacdelad
Looks good. I just visited your website and the price seems to be good too. If I purchase it, will I get updates forever or will I (maybe) have to repurchase it again at one point?

Re: ProGUI V3 Alpha Sneak Peek!

Posted: Mon Mar 18, 2024 9:20 pm
by GG
I bought a few years ago a license for Progui 1.41.
Can't wait to see the next release...

Re: ProGUI V3 Alpha Sneak Peek!

Posted: Mon Mar 18, 2024 9:59 pm
by GoodNPlenty
I purchased the previous version and am looking forward to trying the new version.

Re: ProGUI V3 Alpha Sneak Peek!

Posted: Tue Mar 19, 2024 3:02 pm
by bembulak
Crossplatform intersts me as well. Nice!

Re: ProGUI V3 Alpha Sneak Peek!

Posted: Tue Mar 19, 2024 5:06 pm
by PrincieD
skywalk wrote: Mon Mar 18, 2024 7:00 pm Looks sleek. Curious why you decided against an html/css approach with the new webviewgadget?
Thanks! Versatility, speed and performance. The Webview uses a lot of memory so for a lot of apps it's kind of like cracking an egg with a sledge hammer. With the Direct2D backend you can mix and match ProGUI 'windowless' widgets with native OS controls as well as Webview widgets and control the compositing of them all. There's nothing stopping you from slapping a Webview into a one column/row grid layout though with the size set to auto (which is the default) and having all your UI web based.
ChrisR wrote: Mon Mar 18, 2024 8:29 pm Sounds very interesting, impressive, can't wait to see more, will be better than a mobile capture :wink:
Good progress to the alpha version.
Thanks! :) yes I need a better screen capture software that doesn't throttle the frame-rate :oops: :lol:
jacdelad wrote: Mon Mar 18, 2024 9:17 pm Looks good. I just visited your website and the price seems to be good too. If I purchase it, will I get updates forever or will I (maybe) have to repurchase it again at one point?
Thanks! So I'm thinking you'll recieve free updates for a year and then have to re-purchase with a discount. (bare in mind, the price for V3 will be going up)
GG wrote: Mon Mar 18, 2024 9:20 pm I bought a few years ago a license for Progui 1.41.
Can't wait to see the next release...
Thanks GG! :)
GoodNPlenty wrote: Mon Mar 18, 2024 9:59 pm I purchased the previous version and am looking forward to trying the new version.
Thanks GoodNPlenty! :)
bembulak wrote: Tue Mar 19, 2024 3:02 pm Crossplatform intersts me as well. Nice!
Thanks! :) yep it was one of the core features (that was requested a lot) and has been designed using a 'driver' like system.

Cheers guys, I appreciate the good feedback! :)

Re: ProGUI V3 Alpha Sneak Peek!

Posted: Tue Mar 19, 2024 9:30 pm
by wombats
Looks exciting! I look forward to seeing more.

Re: ProGUI V3 Alpha Sneak Peek!

Posted: Wed Mar 20, 2024 1:08 pm
by PrincieD
wombats wrote: Tue Mar 19, 2024 9:30 pm Looks exciting! I look forward to seeing more.
Thanks wombats! :)

Re: ProGUI V3 Alpha Sneak Peek!

Posted: Thu Mar 21, 2024 5:27 am
by idle
that looks amazing, you've spent a good seven months. :D

Re: ProGUI V3 Alpha Sneak Peek!

Posted: Thu Mar 21, 2024 9:42 am
by bembulak
So the application and the code it creates will be cross-platform? Mac is planned as well, and: if ProGUI won't run, would the generated code run?

Edit: will SpiderBasic still be supported?

Re: ProGUI V3 Alpha Sneak Peek!

Posted: Thu Mar 21, 2024 6:08 pm
by PrincieD
idle wrote: Thu Mar 21, 2024 5:27 am that looks amazing, you've spent a good seven months. :D
Thank you very much idle! :) it's been a lot of hard work getting the core tech up and running!
bembulak wrote: Thu Mar 21, 2024 9:42 am So the application and the code it creates will be cross-platform? Mac is planned as well, and: if ProGUI won't run, would the generated code run?

Edit: will SpiderBasic still be supported?
So the API will be the same on both Windows and Linux (Mac will come a bit later). For windows it's a DLL that you just import using the provided include and on Linux it's an SO (Shared Object). SpiderBasic should run fine inside the Webview widget.

Re: ProGUI V3 Alpha Sneak Peek!

Posted: Thu Apr 04, 2024 3:04 am
by Zach
Nice to see you resuming work on this. I'll be interested to see V3 when it's officially released.

Any plans for a richedit control (or something of similar functionality) ?

Re: ProGUI V3 Alpha Sneak Peek!

Posted: Sun Apr 07, 2024 9:49 pm
by PrincieD
Zach wrote: Thu Apr 04, 2024 3:04 am Nice to see you resuming work on this. I'll be interested to see V3 when it's officially released.

Any plans for a richedit control (or something of similar functionality) ?
Hi Zach, I've no immediate plans for a richedit replacement just yet as it's a lot of work replicating the functionality and you can just use a richedit (you can mix and match between the ProGUI widgets and OS controls) or Scintilla or the Webview widget (if you need alpha transparency). I'm concentrating on getting the core framework ready at the moment.