IceDesign GUI designer

Applications, Games, Tools, User libs and useful stuff coded in PureBasic
storck
User
User
Posts: 83
Joined: Sat Oct 18, 2003 4:56 pm
Location: Sweden

Re: IceDesign GUI designer

Post by storck »

@ChrisR

Thank you for the new update. It's getting better and better. At the moment one of my projects have two GUI versions. One with IceDesign and one with DialogDesign0R. Like them both. A lot.

/ Storck
punak
User
User
Posts: 63
Joined: Tue Sep 07, 2021 12:08 pm

Re: IceDesign GUI designer

Post by punak »

Hi Chris
two ideas for your designer, add them to your software if you like.
1- plugins selector.
2- project resource management.
with respect
good luck.
Last edited by punak on Sat Jan 21, 2023 7:52 am, edited 1 time in total.
User avatar
ChrisR
Addict
Addict
Posts: 1127
Joined: Sun Jan 08, 2017 10:27 pm
Location: France

Re: IceDesign GUI designer

Post by ChrisR »

Thanks Kuron, storck :)

@punak
Thanks for your offer, I don't know your tools, they are probably fine as another tool, for project management.
But here I don't really see the need to add plugins or resources, it's only a Designer, not a Rad! what would be the bonus?
For the fonts or images, they are managed internally and only those used in the gadgets are kept without the need to go through a manager.
punak
User
User
Posts: 63
Joined: Tue Sep 07, 2021 12:08 pm

Re: IceDesign GUI designer

Post by punak »

yes that's right, it's just a designer, not a rad. I don't know why I felt it had the potential to be upgraded to a rad. :D
your designer has made good progress so far. do you have an idea for easier design of bars? or
can you add "recent projects" to the file menu ?
Last edited by punak on Tue Jan 31, 2023 8:52 pm, edited 1 time in total.
pamen
Enthusiast
Enthusiast
Posts: 173
Joined: Sat Dec 31, 2022 12:24 pm
Location: Cyprus
Contact:

Re: IceDesign GUI designer

Post by pamen »

Hi Chris
Thank you for the great work, I enjoy your work ,was happy to purchase it and try to use it in a bigger project.

Sorely missing though are some things, which make design changes possible:
1. Splitter - yes, I understand this is a bit more complex. But there is no way to do it after the generation as all resizing obviously goes sideways, all has to be rewritten and the whole advantage of designer is gone. Splitters are common (you use them :-) ) and important for any sort-of modern UI.
2. Creation of the gadgets is done now using fixed numbers, so there is no way to change the initial size of the window without regenerating all and incorporating back into project - this can be very complicated, if there is a code, for example for conditional text or content on the created elements.
Solution would be to define all x.y.w.h as percentages of the width / height so after setting a window to, let's say 1.5 * initial size, the gadgets would be still in the right position and resizing would still work
3. resizing of the height of gadgets like combo or text / string makes sense only horizontal, unless they are multiline - otherwise the gadgets look very off form is bigger.
4. Minor: Dark mode does crash from time to time, enumeration is done at start, not at form creation (I have dynamic forms - any number of them, so they will not repaint)
5. Dark mode does not work on menus / popup menus, so application looks inconsistent, do you have a solution for menu colors?

I hope you will get there as well for all of us who use your product, wishing you best
Pawel
S.T.V.B.E.E.V.
User avatar
ChrisR
Addict
Addict
Posts: 1127
Joined: Sun Jan 08, 2017 10:27 pm
Location: France

Re: IceDesign GUI designer

Post by ChrisR »

Thanks for your extended feedback pamen :)

1) Yes, the splitter is a bit complicated and it would require a lot of changes in the current engine.
Unfortunately I didn't plan it from the beginning.
I don't promise anything but maybe one day, just like Undo\Redo but in any case it will be after my 6 months trip.

2) If you change the size of the window or the containers, it must be a bit special indeed when resizing.
The easiest way is probably to resize it in the designer and regenerate the source but it's not ideal
I have to study for the %, I don't know.

3) I agree that in most cases combos, text or string should have a fixed height. Also CheckBox, Option or HyperLink Gadget.
But I think it's better to keep it open for resizing, it depends on the chosen font or also some constants like #SS_CenterImage for the textGadget
Eventually, those Gadgets could be automatically resized, when changing font but I'm not sure that's a good idea.

4) I will look for the automatic colors of Gadgets (Dark mode) if I can improve it to add new windows after the initial listing.

5) I don't know about the color for the menus/popup menus, toolbar or statusbar how it could be done.
To see if I can find things on the forum, any help is welcome.
lesserpanda
User
User
Posts: 65
Joined: Tue Feb 11, 2020 7:50 am

Re: IceDesign GUI designer

Post by lesserpanda »

@ChrisR, apologies for a basic question like this. I am trying to build a form and find that string, text and button, seems not to be aligned as in the picture here.

Image

What would you suggest to make it the same centred? I'm sure it's just me not getting this right. Tried to make the font size the same, height the same etc. But the textgadget seems to be problem.
User avatar
ChrisR
Addict
Addict
Posts: 1127
Joined: Sun Jan 08, 2017 10:27 pm
Location: France

Re: IceDesign GUI designer

Post by ChrisR »

If your app is for Windows, for the TextGadget, use the constant #SS_CenterImage so that the text will be in the middle.
Then select your 3 gadgets and use the option Align > Align Middle of the Context Menu (right click).

Otherwise, for a Cross-Platform application, it will be better to draw at 100% scale in Windows, the gadgets will be created at the minimum required size. So, without the need to center the Text. Then the same, select the 3 Gadgets and align them to the middle.
I don't know if the text is automatically centered vertically on Linux or MacOS, or how to do it.
lesserpanda
User
User
Posts: 65
Joined: Tue Feb 11, 2020 7:50 am

Re: IceDesign GUI designer

Post by lesserpanda »

ChrisR wrote: Mon Jan 23, 2023 4:36 pm If your app is for Windows, for the TextGadget, use the constant #SS_CenterImage so that the text will be in the middle.
Then select your 3 gadgets and use the option Align > Align Middle of the Context Menu (right click).

Otherwise, for a Cross-Platform application, it will be better to draw at 100% scale in Windows, the gadgets will be created at the minimum required size. So, without the need to center the Text. Then the same, select the 3 Gadgets and align them to the middle.
I don't know if the text is automatically centered vertically on Linux or MacOS, or how to do it.
Thank you much appreciated. I'm using IceDesign for UI to SpiderBasic. Anything I should take into consideration? There's a bit of mucking around after the code is generated but it's ok at the moment.
User avatar
ChrisR
Addict
Addict
Posts: 1127
Joined: Sun Jan 08, 2017 10:27 pm
Location: France

Re: IceDesign GUI designer

Post by ChrisR »

I can't help you here, I don't use SpiderBasic.
However, I'm interested if you have some indications to avoid tinkering after the code generation.
User avatar
ChrisR
Addict
Addict
Posts: 1127
Joined: Sun Jan 08, 2017 10:27 pm
Location: France

Re: IceDesign GUI designer

Post by ChrisR »

IceDesign has been updated in version 1.8.8
  • The Resize_Window procedure use directly X, Y, With and Height in the calculations.
    I mean with a With=144, the center will be written 144/2 rather than 72.
    Not a big deal but it should make it easier to change in the code when changing the position or size manually for a Gadget. Ex:

    Code: Select all

    ButtonGadget(#Btn_1, 20, 20, 160, 80, "Button_1") 
    ResizeGadget(#Btn_1, ScaleX * (20 + 160/2) - 160/2, 20, 160, ScaleY * 80)   ; and not for X: ScaleX * (100) - 80 or ScaleX * (20 + 80) - 80
    With:
    Proportional X:        New X      = ScaleX * (X + Width/2) - Width/2
    Lock Top:              Y          = Y
    No Proportional Width: Width      = Width
    Proportional Height:   New Height = ScaleY * Height
  • Draw FrameGadget related to the contants used: None or #PB_Frame_Single, Double, Flat
    To be closer to the truth one, this is the only Gadget Drawn, for the others, the real image is captured.
  • ObjectColor updated to v1.3.0 - Thank you Fred for your kind comment 8)
    Supports as many SetObjectColor() calls as desired, when opening a new window, even with dynamic Windows.
    ex: OpenWindow(#Window_1) : OpenWindow(#Window_2) :SetObjectColor() ; All child gadgets of Window_1 and 2 will have the background color defined for each windows
    And later, on an event: OpenWindow(#Window_3) : SetObjectColor(#Window_3, #PB_All, #Black, #Red) ; to apply black background and red text for all child gadgets in window 3

    The theme Light: "Explorer" or Dark:" DarkMode_Explorer" (Windows 10 and up) is automatically applied according to the OS version and Background Color of each Gadget.
    If you want, you can change it with the 2 macros: SetDarkTheme(Gadget) and SetExplorerTheme(Gadget)
User avatar
Cruster
User
User
Posts: 96
Joined: Fri Jan 23, 2004 12:05 am

Re: IceDesign GUI designer

Post by Cruster »

ChrisR I just wanted to say -thank you so much- for the wonderful work you're doing! :D :D
PureBasic 4.3 registered user
User avatar
Kuron
Addict
Addict
Posts: 1626
Joined: Sat Oct 17, 2009 10:51 pm
Location: Pacific Northwest

Re: IceDesign GUI designer

Post by Kuron »

As an FYI, I downloaded the demo of this and played around with it. That was yesterday morning. Late last night, I was working on something and realized I still had the demo running with my half finished design. It had been running for just over 18 hours. No crashes, no apparent memory leaks crashing the system. Just a rock-solid stable product! Impressed beyond belief as with an app like this, it is so easy to have nasty memory leaks.

Extremely well-done work, Chris!!!

I have always thought the weak part of PB was GUI design and I have never got along with any of the GUI designers before. This one I like and I can wrap my brain around it. Very well-done!
Best wishes to the PB community. Thank you for the memories. ♥️
User avatar
ChrisR
Addict
Addict
Posts: 1127
Joined: Sun Jan 08, 2017 10:27 pm
Location: France

Re: IceDesign GUI designer

Post by ChrisR »

Thank you very much Cruster, Kuron. It is really appreciated and you do more than I can do to highlight it 8)
If it was the same for PureBasic, on other forums or social networks, it would be good for PB and probably good for me too :lol:
User avatar
Kuron
Addict
Addict
Posts: 1626
Joined: Sat Oct 17, 2009 10:51 pm
Location: Pacific Northwest

Re: IceDesign GUI designer

Post by Kuron »

Very happily just ordered it! Awesome product!
Best wishes to the PB community. Thank you for the memories. ♥️
Post Reply