Page 42 of 49
Re: IceDesign GUI designer
Posted: Sun Jun 09, 2024 2:47 am
by le_magn
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.

Re: IceDesign GUI designer
Posted: Sun Jun 09, 2024 5:16 am
by dibor
Hi.
Can not download program

Got "Page not found" from gumroad.com
Re: IceDesign GUI designer
Posted: Sun Jun 09, 2024 9:53 am
by ChrisR
@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.
Re: IceDesign GUI designer
Posted: Sun Jun 09, 2024 11:56 am
by Caronte3D
le_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
Start the window hide, then resize and show it again
Re: IceDesign GUI designer
Posted: Sun Jun 09, 2024 12:59 pm
by le_magn
@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:
Code: Select all
CompilerIf #PB_Compiler_IsMainFile
;- Main Program
SetObjectTheme(#ObjectTheme_DarkBlue)
And please if is possible add in future version the possibility to free resize the window at design time, thank you.
Re: IceDesign GUI designer
Posted: Tue Jun 11, 2024 11:14 am
by ChrisR
Late reply, I was busy
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
Yes, but if you include multiple forms, SetObjectTheme() would be called several times, which isn't really necessary.
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.
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.
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.
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!
Re: IceDesign GUI designer
Posted: Tue Jun 11, 2024 8:18 pm
by dibor
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.
Hello.
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.
Re: IceDesign GUI designer
Posted: Tue Jun 11, 2024 9:19 pm
by ChrisR
I didn't know it could be made like that, thanks for letting me know

Re: IceDesign GUI designer
Posted: Mon Jun 17, 2024 2:38 pm
by ChrisR
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.
Re: IceDesign GUI designer
Posted: Mon Jun 17, 2024 4:07 pm
by blueb
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?
Re: IceDesign GUI designer
Posted: Mon Jun 17, 2024 8:30 pm
by le_magn
Thank's for the update Chris!!!
64bit version ok
x86 antivirus don't allow to download it

Re: IceDesign GUI designer
Posted: Mon Jun 17, 2024 10:25 pm
by ChrisR
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.
Re: IceDesign GUI designer
Posted: Mon Jun 17, 2024 10:43 pm
by ChrisR
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 don't know if it's suitable for everyone, but maybe there's something I could add.
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
Posted: Mon Jun 17, 2024 10:56 pm
by blueb
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

Re: IceDesign GUI designer
Posted: Tue Jun 18, 2024 2:00 pm
by Distorted Pixel
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.
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.
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.