
IceDesign GUI designer
Re: IceDesign GUI designer
Hi Chris, i have a little problem, i created a windows of 860x450, but i want to resize to 540x450 the windows to hide editorgadget on the right, but Icedesign does not allow me, is there any option for free resize the window? I dont want to use resizewindow() from source because for a fraction of time the windows show at full size, i want to do this at design time, thank you.


Last edited by le_magn on Sun Jun 09, 2024 1:02 pm, edited 1 time in total.

-
- Enthusiast
- Posts: 160
- Joined: Wed May 20, 2020 5:19 pm
- Location: The 3rd planet in the Solar System
- Contact:
Re: IceDesign GUI designer
Hi.
Can not download program
Got "Page not found" from gumroad.com
Can not download program

Got "Page not found" from gumroad.com
Mac Studio M1Max, PB 6.12 Arm64 and x64.
Macbook Air M2, PB 6.12 Arm64 and x64.
Windows 10, PB 6.12 x64 and x86.
Macbook Air M2, PB 6.12 Arm64 and x64.
Windows 10, PB 6.12 x64 and x86.
Re: IceDesign GUI designer
@le_magn
You can't, you can't reduce in IceDesign beyond the rightmost child gadget (your log editor here) and the bottommost gadget included.
The minimum size is checked to ensure that all gadgets remain visible and there's no option to reduce beyond that
You have to move or reduce the child gadgets to have the space to resize the window afterwards.
@dibor
There is no download link in the update emails.
To download, you have to use the “Download” button in the 1st e-mail you receive, the invoice. I can resend you this e-mail if you've lost it.
I have no other way with Gumroad.
You can't, you can't reduce in IceDesign beyond the rightmost child gadget (your log editor here) and the bottommost gadget included.
The minimum size is checked to ensure that all gadgets remain visible and there's no option to reduce beyond that
You have to move or reduce the child gadgets to have the space to resize the window afterwards.
@dibor
There is no download link in the update emails.
To download, you have to use the “Download” button in the 1st e-mail you receive, the invoice. I can resend you this e-mail if you've lost it.
I have no other way with Gumroad.
Re: IceDesign GUI designer
Start the window hide, then resize and show it againle_magn wrote: Sun Jun 09, 2024 2:47 am ...I dont want to use resizewindow() from source because for a fraction of time the windows show at full size
Re: IceDesign GUI designer
@Chris another little bug, if i use objecttheme icedesign put the command after compilerif in gui source, and if the gui is loaded as include by main source objecttheme not load, i have to put the command in main source manually
this is what icedesign do:
And please if is possible add in future version the possibility to free resize the window at design time, thank you.
this is what icedesign do:
Code: Select all
CompilerIf #PB_Compiler_IsMainFile
;- Main Program
SetObjectTheme(#ObjectTheme_DarkBlue)
Last edited by le_magn on Sun Jun 09, 2024 11:26 pm, edited 2 times in total.

Re: IceDesign GUI designer
Late reply, I was busy
It's probably better to add SetObjectTheme() in the main source, which allows you to do it only once and avoid reloading the theme several times.
When a window or container is resized, but also when a gadget is selected, resized or moved with keyboard, mouse or from properties, also when copying, importing....
Here, for example, if I remove the 1st control and reduce the window, the gadgets on the outside would automatically be moved to the left and upwards to ensure that they were fully visible.
You can probably do it as Caronte3D suggests, Start the window hide (#PB_Window_Invisible), then resize and show it again.
#
Otherwise, in response to Distorted Pixel for background image, the message GCL_HBRBACKGROUND does not make the window transparent.
To display a transparent background image, you can look at c4s code here: [Windows] Skin Window with PNG -> Alpha channel support!
Yes, but if you include multiple forms, SetObjectTheme() would be called several times, which isn't really necessary.le_magn wrote: Sun Jun 09, 2024 12:59 pm @Chris another little bug, if i use objecttheme icedesign put the command after compilerif in gui source, and if the gui is loaded as include by main source objecttheme not load, i have to put the command in main source manually
It's probably better to add SetObjectTheme() in the main source, which allows you to do it only once and avoid reloading the theme several times.
I'm not going to do it, sorry but It would be difficult to do, because the controls are done just about everywhere to ensure that gadgets are fully included, visible.le_magn wrote: Sun Jun 09, 2024 12:59 pm And please if is possible add in future version the possibility to free resize the window at design time, thank you.
When a window or container is resized, but also when a gadget is selected, resized or moved with keyboard, mouse or from properties, also when copying, importing....
Here, for example, if I remove the 1st control and reduce the window, the gadgets on the outside would automatically be moved to the left and upwards to ensure that they were fully visible.
You can probably do it as Caronte3D suggests, Start the window hide (#PB_Window_Invisible), then resize and show it again.
#
Otherwise, in response to Distorted Pixel for background image, the message GCL_HBRBACKGROUND does not make the window transparent.
To display a transparent background image, you can look at c4s code here: [Windows] Skin Window with PNG -> Alpha channel support!
-
- Enthusiast
- Posts: 160
- Joined: Wed May 20, 2020 5:19 pm
- Location: The 3rd planet in the Solar System
- Contact:
Re: IceDesign GUI designer
Hello.ChrisR wrote: Sun Jun 09, 2024 9:53 am @dibor
There is no download link in the update emails.
To download, you have to use the “Download” button in the 1st e-mail you receive, the invoice. I can resend you this e-mail if you've lost it.
I have no other way with Gumroad.
Not exact.
In every update mails U can click on "IceDesign GUI Designer Info!" and will redirect to the gumroad page, then click on "IceDesign GUI Designer Info" or picture and will get download page where U can choose to download x64 or x86 version.
Did it today.
Mac Studio M1Max, PB 6.12 Arm64 and x64.
Macbook Air M2, PB 6.12 Arm64 and x64.
Windows 10, PB 6.12 x64 and x86.
Macbook Air M2, PB 6.12 Arm64 and x64.
Windows 10, PB 6.12 x64 and x86.
Re: IceDesign GUI designer
I didn't know it could be made like that, thanks for letting me know 

Re: IceDesign GUI designer
IceDesign has been updated in version 2.2.0
Add Undo / Redo functions
It had been written for a while in my Todo but I couldn't see how to do it easily, given the number of Undo actions to deal with.
Finally, to get around, the complete IceDesign list of Gadgets is saved in an Undo/Redo list for each modification.
During Undo/Redo operations, the previous or next lists are then reloaded with a complete redisplay (current selections are lost).
So it's not really immediate, with a bit of processing for reloading, but it does the job
To prevent the Undo/Redo list from being too large, the maximum number of undo operations can be modified in the settings. I've set it to 99 by default but it could be higher.
Add Undo / Redo functions
It had been written for a while in my Todo but I couldn't see how to do it easily, given the number of Undo actions to deal with.
Finally, to get around, the complete IceDesign list of Gadgets is saved in an Undo/Redo list for each modification.
During Undo/Redo operations, the previous or next lists are then reloaded with a complete redisplay (current selections are lost).
So it's not really immediate, with a bit of processing for reloading, but it does the job

To prevent the Undo/Redo list from being too large, the maximum number of undo operations can be modified in the settings. I've set it to 99 by default but it could be higher.
Re: IceDesign GUI designer
Thanks for this Chris.. I'm sure this will help a lot!
Quick question....
I've been using your settings flags:
- Proportional Size For All Gadgets
- ObjectTheme*
I found that everything works very well for resizing (Forms, Buttons, etc)
except the font sizes on the buttons, etc. which remain the same.
I have to anticipate the text size before I design the form, which is a little odd.
You would think that the button text size should double when I double the size of the form (the button height and width scales properly)
The button font looks too large when I reduce the form size.
I have a 4k monitor, so what looks good to me, looks painfully ugly on a regular monitor after the user has adjusted the form size to suit their monitor.
Is there any way to 'resize' the font in the Resize_Window procedure?
Quick question....
I've been using your settings flags:
- Proportional Size For All Gadgets
- ObjectTheme*
I found that everything works very well for resizing (Forms, Buttons, etc)
except the font sizes on the buttons, etc. which remain the same.
I have to anticipate the text size before I design the form, which is a little odd.
You would think that the button text size should double when I double the size of the form (the button height and width scales properly)
The button font looks too large when I reduce the form size.
I have a 4k monitor, so what looks good to me, looks painfully ugly on a regular monitor after the user has adjusted the form size to suit their monitor.
Is there any way to 'resize' the font in the Resize_Window procedure?
- It was too lonely at the top.
System : PB 6.21(x64) and Win 11 Pro (x64)
Hardware: AMD Ryzen 9 5900X w/64 gigs Ram, AMD RX 6950 XT Graphics w/16gigs Mem
System : PB 6.21(x64) and Win 11 Pro (x64)
Hardware: AMD Ryzen 9 5900X w/64 gigs Ram, AMD RX 6950 XT Graphics w/16gigs Mem
Re: IceDesign GUI designer
Thank's for the update Chris!!!
64bit version ok
x86 antivirus don't allow to download it
64bit version ok
x86 antivirus don't allow to download it


Re: IceDesign GUI designer
I don't know which AV you use but yes, the x86 version has more false positives than the x64 version.
Unfortunately, there's not much I can do to combat these f*cking antivirus that do their job so poorly
That's why I've separated the 2 versions. The x86 version isn't really necessary, as most computers are 64-bit these days.
Unfortunately, there's not much I can do to combat these f*cking antivirus that do their job so poorly

That's why I've separated the 2 versions. The x86 version isn't really necessary, as most computers are 64-bit these days.
Re: IceDesign GUI designer
I don't know if it's suitable for everyone, but maybe there's something I could add.blueb wrote: Mon Jun 17, 2024 4:07 pm I found that everything works very well for resizing (Forms, Buttons, etc)
except the font sizes on the buttons, etc. which remain the same.
I'm saving the idea for after the summer vacation which is closer for me.
If you use the same font for all Gadgets, you can probably do it with something like this
Code: Select all
EnableExplicit
Enumeration Window
#Window_Main
EndEnumeration
Enumeration Gadgets
#Button
#String
#Text
EndEnumeration
; ----- Begin Scale Font -----
#EnumerationGadgets = #PB_Compiler_EnumerationValue -1
Structure FontAttrib
FontName.s
FontSize.i
FontStyle.i
EndStructure
; ----- End Scale Font -----
Enumeration Fonts
#Font_Tahoma_10_B
EndEnumeration
;LoadFont(#Font_Tahoma_10_B, "Tahoma", 10, #PB_Font_Bold)
Declare Resize_Window_Main()
Declare Open_Window_Main(X = 0, Y = 0, Width = 260, Height = 120)
; ----- Begin Scale Font -----
Declare GetDefaultFont(*DefaultFont.FontAttrib)
Procedure GetDefaultFont(*DefaultFont.FontAttrib)
Protected TempGadget, FontID
Protected hDC, LogFont.LOGFONT
TempGadget = TextGadget(#PB_Any, -10, -10, 0, 0, "Abc123")
If TempGadget
FontID = GetGadgetFont(TempGadget)
GetObject_(FontID, SizeOf(LogFont), @LogFont)
*DefaultFont\FontName = PeekS(@LogFont\lfFaceName[0])
hDC = GetDC_(GadgetID(TempGadget))
*DefaultFont\FontSize = Int(Round((-LogFont \ lfHeight * 72 / GetDeviceCaps_(hDC, #LOGPIXELSY)), #PB_Round_Down))
*DefaultFont\FontStyle = 0
If LogFont\lfWeight > #FW_NORMAL : *DefaultFont\FontStyle | #PB_Font_Bold : EndIf ; Bold
If LogFont\lfItalic : *DefaultFont\FontStyle | #PB_Font_Italic : EndIf ; Italic
If LogFont\lfStrikeOut : *DefaultFont\FontStyle | #PB_Font_StrikeOut : EndIf ; StrikeOut
If LogFont\lfUnderline : *DefaultFont\FontStyle | #PB_Font_Underline : EndIf ; Underline
If LogFont\lfQuality <> #DEFAULT_QUALITY : *DefaultFont\FontStyle | #PB_Font_HighQuality : EndIf ; High Quality
FreeGadget(TempGadget)
EndIf
EndProcedure
; ----- End Scale Font -----
Procedure Resize_Window_Main()
Protected Window_Main_WidthIni = 260, Window_Main_HeightIni = 120
Protected ScaleX.f, ScaleY.f
; ----- Begin Scale Font -----
Protected I
Static IDWindow, DefaultFont.FontAttrib, LoadedFont, ScaleFont.f
If IDWindow = 0
LoadedFont = #PB_Default
ScaleFont.f = 1.0
IDWindow = WindowID(#Window_Main)
GetDefaultFont(@DefaultFont)
EndIf
; ----- End Scale Font -----
ScaleX = WindowWidth(#Window_Main) / Window_Main_WidthIni : ScaleY = WindowHeight(#Window_Main) / Window_Main_HeightIni
; ----- Begin Scale Font -----
If ScaleFont <> ScaleY
ScaleFont = ScaleY
If IsFont(LoadedFont) : FreeFont(LoadedFont) : EndIf
LoadedFont = LoadFont(#PB_Any, DefaultFont\FontName, DefaultFont\FontSize * ScaleFont, DefaultFont\FontStyle)
For I = 0 To #EnumerationGadgets
If IsGadget(I) And GetAncestor_(GadgetID(I), #GA_ROOT) = IDWindow
SetGadgetFont(I, FontID(LoadedFont))
EndIf
Next
EndIf
; ----- End Scale Font -----
ResizeGadget(#String, ScaleX * 120, ScaleY * 20, ScaleX * 120, ScaleY * 24)
ResizeGadget(#Text, ScaleX * 20, ScaleY * 22, ScaleX * 100, ScaleY * 22)
ResizeGadget(#Button, ScaleX * 20, ScaleY * 60, ScaleX * 220, ScaleY * 40)
EndProcedure
Procedure Open_Window_Main(X = 0, Y = 0, Width = 260, Height = 120)
If OpenWindow(#Window_Main, X, Y, Width, Height, "Title", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget | #PB_Window_ScreenCentered)
;SetGadgetFont(#PB_Default, FontID(#Font_Tahoma_10_B))
TextGadget(#Text, 20, 22, 100, 22, "Text")
StringGadget(#String, 120, 20, 120, 24, "String")
ButtonGadget(#Button, 20, 60, 220, 40, "Button")
BindEvent(#PB_Event_SizeWindow, @Resize_Window_Main(), #Window_Main)
PostEvent(#PB_Event_SizeWindow, #Window_Main, 0)
ProcedureReturn #True
EndIf
EndProcedure
If Open_Window_Main()
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
Re: IceDesign GUI designer
Thanks for the comprehensive answer!
I think it should be automatically included in the resize procedure, that'd be the smoothest, but for now... I can make this work.
Blueb
I think it should be automatically included in the resize procedure, that'd be the smoothest, but for now... I can make this work.
Blueb

- It was too lonely at the top.
System : PB 6.21(x64) and Win 11 Pro (x64)
Hardware: AMD Ryzen 9 5900X w/64 gigs Ram, AMD RX 6950 XT Graphics w/16gigs Mem
System : PB 6.21(x64) and Win 11 Pro (x64)
Hardware: AMD Ryzen 9 5900X w/64 gigs Ram, AMD RX 6950 XT Graphics w/16gigs Mem
- Distorted Pixel
- Enthusiast
- Posts: 303
- Joined: Sun Aug 29, 2021 4:34 am
Re: IceDesign GUI designer
Just to let you know, I have Panda Dome Anti-virus and security on my system and I have Windows 10 64 bit. I use the 64 bit version of IceDesign.ChrisR wrote: Mon Jun 17, 2024 10:25 pm I don't know which AV you use but yes, the x86 version has more false positives than the x64 version.
Unfortunately, there's not much I can do to combat these f*cking antivirus that do their job so poorly![]()
That's why I've separated the 2 versions. The x86 version isn't really necessary, as most computers are 64-bit these days.
Panda Dome allows me to download it, but when I try to use the IceDesign exe to run IceDesign it puts it in quarantine. I have to add an exclude to allow it to run. I do understand that it isn't easy to combat.
To be popular is way to much work. I just want to be me, myself and I. Oh no, does that mean I'm bipolar? 
No one cares how much you know until they know how much you care

No one cares how much you know until they know how much you care