Page 38 of 49

Re: IceDesign GUI designer

Posted: Sat Mar 16, 2024 11:50 pm
by ChrisR
Hi storck,
I didn't have time to look at it before but with your icef file, I reproduced the error, I'll fix it.
Thanks

Re: IceDesign GUI designer

Posted: Mon Mar 18, 2024 1:21 pm
by ChrisR
IceDesign has been updated in version 2.0.6
  • Fix the above bug reported by Storck.
    In procedure Resize_Window(), with a Menu, ToolBar or StatusBar, the line:
    WindowName_HeightIni - MenuHeight - ToolBarHeight - StatusBarHeight
    Must be written Only if at least one of the child gadgets has a proportional property.
  • ButtonImageGadget in ObjectTheme.pbi now accepts transparent images, I mean DrawAlphaImage() vs DrawImage()...

Re: IceDesign GUI designer

Posted: Wed Mar 20, 2024 2:37 am
by williamvanhoecke
Hello Chris,

I recompiled all my forms with version 206 and I get alert from my code that a lot of items are not found in my Language MAP
I don't know which version changed if but it seems that
checkboxgadget
stringgadget
textgadget
and maybe others
now generate language data on empty textfields too.

Example
I can see following 5 lines in IceDesign
StringGadget(#WinKast_String_Zek_MARKERING_1, 765, 675, 372, 25, "")
StringGadget(#WinKast_String_Zek_MARKERING_2, 765, 700, 372, 25, "")
StringGadget(#WinKast_String_Zek_MARKERING_3, 765, 725, 372, 25, "")
StringGadget(#WinKast_String_Zek_MARKERING_4, 765, 750, 372, 25, "")
StringGadget(#WinKast_String_Zek_MARKERING_5, 765, 775, 372, 25, "Operators should not use this field")

The generated code then is
StringGadget(#WinKast_String_Zek_MARKERING_1, 765, 675, 372, 25, GetInterfaceLang("Gadget_WinKastZekeringen_String_Zek_MARKERING_1"))
StringGadget(#WinKast_String_Zek_MARKERING_2, 765, 700, 372, 25, GetInterfaceLang("Gadget_WinKastZekeringen_String_Zek_MARKERING_2"))
StringGadget(#WinKast_String_Zek_MARKERING_3, 765, 725, 372, 25, GetInterfaceLang("Gadget_WinKastZekeringen_String_Zek_MARKERING_3"))
StringGadget(#WinKast_String_Zek_MARKERING_4, 765, 750, 372, 25, GetInterfaceLang("Gadget_WinKastZekeringen_String_Zek_MARKERING_4"))
StringGadget(#WinKast_String_Zek_MARKERING_5, 765, 775, 372, 25,GetInterfaceLang("Gadget_WinKastZekeringen_String_Zek_MARKERING_5"))

The generated data for my language map then is (note that only the last line should be there)
Data.s "Gadget_WinKast_String_Zek_MARKERING_1",""
Data.s "Gadget_WinKast_String_Zek_MARKERING_2",""
Data.s "Gadget_WinKast_String_Zek_MARKERING_3",""
Data.s "Gadget_WinKast_String_Zek_MARKERING_4", ""
Data.s "Gadget_WinKast_String_Zek_MARKERING_5", "Operators should not use this field"

My language MAP is therefore suddenly missing a lot of ... empty fields ???
IceDesign used NOT to do that before.
Is it possible to correct this so the empty fields are not replaced by GetInterfaceLang()
Thanks

Re: IceDesign GUI designer

Posted: Wed Mar 20, 2024 11:59 am
by ChrisR
Hi William,
I'm not sure I understand, the change you had with a previous version.
I haven't had any changes in this part for a while now !
For me, empty texts were always included, but I agree, they shouldn't be. There's little chance of an empty text being translated in another things.
Just 2 lines to change, I'm ready to update, not much, but not much in my Todo too.
Is this enough or is there something else I haven't seen?

Re: IceDesign GUI designer

Posted: Fri Mar 22, 2024 2:29 pm
by ChrisR
IceDesign has been updated in version 2.0.7

Minor updates:
  • Useless empty texts are no longer included in the Multi-Language module.
  • ObjectTheme version 1.5.2 updated, Dpi aware ComboBox drop-down list.

Re: IceDesign GUI designer

Posted: Fri Mar 22, 2024 9:10 pm
by williamvanhoecke
Many thanks Chris.

Re: IceDesign GUI designer

Posted: Sat Mar 23, 2024 5:24 pm
by williamvanhoecke
Hello Chris,
If I need more than 2 tabs on a PanelGadget, I am currently adding the 3th tab manually in the xxxx.icef file.
Not urgent, but In the future version, an option to select the number of tabs would be great.
Thanks

Re: IceDesign GUI designer

Posted: Sat Mar 23, 2024 7:10 pm
by ChrisR
Hi, you can add, delete, move tabs from the context menu (right click) from the panel opened.
To let you know if I don't answer, I'm on a ski vacation for a week, without my computer.

Re: IceDesign GUI designer

Posted: Sat Mar 23, 2024 7:46 pm
by williamvanhoecke
Yes... found it.
Sorry, didn't know that.

Re: IceDesign GUI designer

Posted: Mon Apr 01, 2024 8:52 am
by radsoft
Thank you @ChrisR for your updates to IceDesign, which I'm enjoying a lot.

I'm wondering if there is a way to set the tab order of controls. I'm not meaning tabs on the PanelGadget, I'm meaning the tab order of gadgets like ButtonGadget and StringGadget etc on a window .

Thanks in advance for any help.

Re: IceDesign GUI designer

Posted: Mon Apr 01, 2024 7:52 pm
by ChrisR
Hi Radsoft,
I'm glad you like it :)
The tab order is defined by the order in which Gadgets are created.
And IceDesign automatically uses the natural order, level, position Y then position X, which should be correct in 90% of cases.
But sorry, nothing is currently developed to change this order.

Re: IceDesign GUI designer

Posted: Mon Apr 01, 2024 8:40 pm
by le_magn
ChrisR wrote: Mon Apr 01, 2024 7:52 pm But sorry, nothing is currently developed to change this order.
Hi Chris, i hope this is added in future version of IceDesign, is nice to have the full control of what i want, also regarding being able to choose the tab order..

Re: IceDesign GUI designer

Posted: Fri Apr 05, 2024 12:23 am
by williamvanhoecke
Chris
Tab-order control would indeed be nice.
I do a lot of loops like For gad.i = #img_0 to #img_19. tab order has to be correct in this case.
I experienced that for some reason adding gadgets, even in correct sequens, does not always end up with correct tab-order.

Re: IceDesign GUI designer

Posted: Fri Apr 05, 2024 2:23 pm
by ChrisR
Yes, yes, I understand the need for the Tab Order, I've made a note of it in my Todo.
I haven't really thought yet about how to do it, how to present it... I'll take a look but I'll let it mature, no rush, slowly, slowly :wink:

For now, it's pretty easy to do it with a macro and SetWindowPos() Api, ex:

Code: Select all

EnableExplicit

Enumeration Window
  #Window_0
EndEnumeration

Enumeration Gadgets
  #Txt_1
  #String_1
  #Btn_OK
  #Txt_2
  #String_2
  #Txt_3
  #String_3
EndEnumeration

Macro SetTabOrder(_Gadget_)
  SetWindowPos_(GadgetID(_Gadget_), #HWND_BOTTOM, 0, 0, 0, 0, #SWP_NOMOVE | #SWP_NOSIZE)
EndMacro
    
Procedure Open_Window_0(X = 0, Y = 0, Width = 300, Height = 140)
  If OpenWindow(#Window_0, X, Y, Width, Height, "Tab order", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget | #PB_Window_ScreenCentered)
    TextGadget(#Txt_1, 20, 22, 60, 22, "Text_1")
    StringGadget(#String_1, 80, 20, 120, 24, "String_1")
    ButtonGadget(#Btn_OK, 220, 24, 60, 96, "OK")
    TextGadget(#Txt_2, 20, 62, 60, 22, "Text_2")
    StringGadget(#String_2, 80, 60, 120, 24, "String_2")
    TextGadget(#Txt_3, 20, 102, 60, 22, "Text_3")
    StringGadget(#String_3, 80, 100, 120, 24, "String_3")
    ; Comment/uncomment to use the Gadget creation order or the one defined below
    SetTabOrder(#String_1) : SetTabOrder(#String_2) : SetTabOrder(#String_3) : SetTabOrder(#Btn_OK)
    SetActiveGadget(#String_1)
    ProcedureReturn #True
  EndIf
EndProcedure

If Open_Window_0()
  Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf

Re: IceDesign GUI designer

Posted: Fri Apr 05, 2024 10:10 pm
by VB6_to_PBx
very nice example ChrisR,
thanks !