
IceDesign GUI designer
Re: IceDesign GUI designer
Hi Crish, Merry Cristmas, i have a feature request: please add option for create gadget with transparent background, for example right now I am struggling to get the transparent background in textgadgets, thank you 
p.s. check the code on this thread: viewtopic.php?p=624597&hilit=text+transparent#p624597
p.s. Another nice feature request: Please add the possibility to add in icedesign ini, custom flags for all gadget(it appear in icedesign gadget flags)

p.s. check the code on this thread: viewtopic.php?p=624597&hilit=text+transparent#p624597
p.s. Another nice feature request: Please add the possibility to add in icedesign ini, custom flags for all gadget(it appear in icedesign gadget flags)

Re: IceDesign GUI designer
Hi le_magn,
Back from 10 days in the mountains with little mobile network!
Rashad's code for making the background colors of static Gadgets transparent is nice with the null brush.
But well, in my opinion, it is too specific with the callback to be included in a Designer.
This is somewhat what is done in the ObjectTheme module for static controls, with a color brush rather than the null brush.
It could perhaps be an additional flag (eg: #PB_Transparent) to use in Themes, to see...
#
For your second feature request, there are already some windows flags added.
It would be better to tell me the missing flags that would be useful, to possibly integrate them.
Some flags can be integrated directly when creating the Gadget, while others must be set using SetWindowLongPtr #GWL_STYLE.
In addition, it could be a source of compiler errors for the preview and I don't want. One of its strengths is to have the code always operational.
Back from 10 days in the mountains with little mobile network!
Rashad's code for making the background colors of static Gadgets transparent is nice with the null brush.
But well, in my opinion, it is too specific with the callback to be included in a Designer.
This is somewhat what is done in the ObjectTheme module for static controls, with a color brush rather than the null brush.
It could perhaps be an additional flag (eg: #PB_Transparent) to use in Themes, to see...
#
For your second feature request, there are already some windows flags added.
It would be better to tell me the missing flags that would be useful, to possibly integrate them.
Some flags can be integrated directly when creating the Gadget, while others must be set using SetWindowLongPtr #GWL_STYLE.
In addition, it could be a source of compiler errors for the preview and I don't want. One of its strengths is to have the code always operational.
Code: Select all
CheckBoxGadget(#Check_1, 20, 10, 120, 22, "CheckBox", #BS_LeftText)
OptionGadget(#Opt_1, 20, 40, 120, 22, "Option_1")
SetWindowLongPtr_(GadgetID(#Opt_1), #GWL_STYLE, GetWindowLongPtr_(GadgetID(#Opt_1), #GWL_STYLE) | #BS_LeftText)
StringGadget(#String_1, 20, 70, 120, 24, "123", #PB_String_Numeric | #ES_Right)
SpinGadget(#Spin_1, 20, 100, 120, 24, 0, 100, #PB_Spin_Numeric)
SetWindowLongPtr_(GadgetID(#Spin_1), #GWL_STYLE, GetWindowLongPtr_(GadgetID(#Spin_1), #GWL_STYLE) | #ES_Number)
Re: IceDesign GUI designer
Hi chris, thank's for your answeer, for flags, for the time being I can think of these for stringgadgets that I used in my last project: #ES_AUTOVSCROLL|#ESB_DISABLE_LEFT|#ESB_DISABLE_RIGHT , then maybe as I come across more I'll point them out here and if you think it's appropriate, you'll put them in...
this is thank's to IceDesign:

this is thank's to IceDesign:


Re: IceDesign GUI designer
I could add #ES_AUTOVSCROLL as a constant for the StringGadget, Edit Control Styles
#ESB_DISABLE_LEFT And #ESB_DISABLE_RIGHT are flags of the EnableScrollBar fonction, it's specific to your use, I will not add them for the StringGadget.
Your interfaces are very pretty, nice work
#ESB_DISABLE_LEFT And #ESB_DISABLE_RIGHT are flags of the EnableScrollBar fonction, it's specific to your use, I will not add them for the StringGadget.
Your interfaces are very pretty, nice work

Re: IceDesign GUI designer
Hi Chris, the flags |#ESB_DISABLE_LEFT|#ESB_DISABLE_RIGHT are useful in stringgadgets because once the edge is reached the text will wrap automatically, without these flags no, try yourself withChrisR wrote: Tue Jan 07, 2025 12:56 am I could add #ES_AUTOVSCROLL as a constant for the StringGadget, Edit Control Styles
#ESB_DISABLE_LEFT And #ESB_DISABLE_RIGHT are flags of the EnableScrollBar fonction, it's specific to your use, I will not add them for the StringGadget.
Your interfaces are very pretty, nice work![]()
Code: Select all
String_1_Main = StringGadget(#PB_Any, 95, 190, 320, 210, “String_1”, #ES_MULTILINE|#ES_AUTOVSCROLL|#ESB_DISABLE_LEFT|#ESB_DISABLE_RIGHT)
Code: Select all
String_1_Main = StringGadget(#PB_Any, 95, 190, 320, 210, “String_1”, #ES_MULTILINE|#ES_AUTOVSCROLL)



Re: IceDesign GUI designer
IceDesign has been updated in version 2.3.0

- ResizeImagesHelper has been improved to resize Images even if they are changed with
The original changed image is saved during the first resize and is then used for further resizes.
Code: Select all
SetGadgetState(Gadget, ImageID(#NewImage)) Or SetGadgetAttribute(Gadget, #PB_Button_(Pressed)Image, ImageID(#NewPressedImage))
This was not the case before, the original image was hard-written in the Resize_Window() procedure, It's better now!
(*) Note: After changing the image, you must send "PostEvent(#PB_Event_SizeWindow, #Window, 0)"
To have the new images resized immediately to the gadget size
- ObjectTheme has been updated to allow a theme to be applied above the window background image
Static Gadgets will use a null brush to have a transparent background color to see the image behindCode: Select all
Use: SetObjectThemeAttribute(#PB_WindowType, #PB_Gadget_BrushBackground, #True) after SetObjectTheme() Or enable (#True) the #PB_Gadget_BrushBackground constant for your theme in DataSection
- Add 3 flags to the StringGadget: #ES_AutoVScroll | #ESB_Disable_Left | #ESB_Disable_Right
Combine with ES_MultiLine, for a cool MultiLine Gadget
- Add “State” property for Button, ButtonImage, CheckBox and Option Gadgets
With images matching the Gadget state in design and with SetGadgetSate(#Gadget, #True) in the created code

Re: IceDesign GUI designer
Congratz chris and the magn
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Portable LENOVO ideapad 110-17ACL 64 bits
Version de PB : 6.12LTS - 64 bits
Re: IceDesign GUI designer
I silently updated for a little change, to save the latest image path used.
It is then used as the default folder for the image requester if no input image is specified.
It is then used as the default folder for the image requester if no input image is specified.
Re: IceDesign GUI designer
Hello Chris,
finally got through Gumroad (Setting up a new account and purchasing IceDesign again).
I am designing the form as required using Windows. Finally transferring it to Linux.
But all the Win extension #ESxxx #BSxxx resulting in syntax errors and it is a tedious job
to remove them.
Is it possible, to add a switch "Clean Purebasic" which switches all non Purebasic extensions off?
Don't forget: The main benefit of Purebasic is the cross platform ability.
Yes I know that all beautiful extension will be missing - but despite Windows they are totally useless.
One more item:
When I use strings, IceDesign provides left click tests. Won't work.
Should be any of
#PB_EventType_Change : The text has been modified by the user.
#PB_EventType_Focus : The StringGadget got the focus.
#PB_EventType_LostFocus : The StringGadget lost the focus.
Nevertheless IceDesign is a must when designing more complex programs.
Regards and have a healthy and successful 2025
wolf
finally got through Gumroad (Setting up a new account and purchasing IceDesign again).
I am designing the form as required using Windows. Finally transferring it to Linux.
But all the Win extension #ESxxx #BSxxx resulting in syntax errors and it is a tedious job
to remove them.
Is it possible, to add a switch "Clean Purebasic" which switches all non Purebasic extensions off?
Don't forget: The main benefit of Purebasic is the cross platform ability.
Yes I know that all beautiful extension will be missing - but despite Windows they are totally useless.
One more item:
When I use strings, IceDesign provides left click tests. Won't work.
Should be any of
#PB_EventType_Change : The text has been modified by the user.
#PB_EventType_Focus : The StringGadget got the focus.
#PB_EventType_LostFocus : The StringGadget lost the focus.
Nevertheless IceDesign is a must when designing more complex programs.
Regards and have a healthy and successful 2025
wolf
Re: IceDesign GUI designer
Surely Chris will answer your questions, but personally I don't see the problem, icedesign since it was conceived has incorporated features exclusive to Windows, and I suppose it was designed to use certain Windows api's as well, so by buying it I was aware that it was created specifically for Windows and to be honest even a little happy, since often to maintain compatibility even with Linux one has to make compromises, so if it is a painless and technically possible thing to do that I welcome the possibility of optionally turning off all the additions, although at this point I might as well use the form designer built into purebasic, but the important thing is that it doesn't go to affect all the functionality of icedesign otherwise better to avoid downgrading in favor of Linux. .

Re: IceDesign GUI designer
Hi wro,
But there's more now. There are also options ending in "*" in settings : "ObjectTheme*", "Keep Window Size and Position*" and I'll add the star also for "Background Image*" and "String Tip*" in String property.
Without these options, the generated code should be cross-platform.
Let me know if there are other adjustments that could be made for OSX and Linux.
You are right for #PB_EventType_Change, this is just one example, but I'll add it.
This remains true for constantsChrisR wrote: Mon Aug 22, 2022 9:24 am IceDesign runs only under Windows but the generated code is written in native PB code without OS specific code, API... It should be 100% compatible with OSX or Linux.
But this, as long as some Windows styles are not selected to stay Cross-Platform.
They are well marked in the properties constants list for this. They are at the bottom and they start with a # (ex for buttons: #BS_Bottom, #BS_Top).
But there's more now. There are also options ending in "*" in settings : "ObjectTheme*", "Keep Window Size and Position*" and I'll add the star also for "Background Image*" and "String Tip*" in String property.
Without these options, the generated code should be cross-platform.
Yes, it's a good idea to make things easier, I'm going to add an option in settings ex: “Cross-Platform compatibilty”, to hide the above options reserved for windows only and to eliminate any confusion.wro wrote: Mon Jan 13, 2025 10:00 am Is it possible, to add a switch "Clean Purebasic" which switches all non Purebasic extensions off?
Let me know if there are other adjustments that could be made for OSX and Linux.
You are right for #PB_EventType_Change, this is just one example, but I'll add it.
Re: IceDesign GUI designer
If you test working on Linux together with Wine, you can designate the program as almost cross-platform.ChrisR wrote: Mon Jan 13, 2025 1:45 pm Let me know if there are other adjustments that could be made for OSX and Linux.
Re: IceDesign GUI designer
Thanks for the tip AZJIO, yes, it should be easier with wine for Linux design
I've never used it but I'll have to give it a try to see

I've never used it but I'll have to give it a try to see