Re: IceDesign GUI designer
Posted: Fri May 10, 2024 1:28 pm
@ChrisR
Price 19,39$ - How long does this software license last ?
How to donate ?
Price 19,39$ - How long does this software license last ?
How to donate ?
http://www.purebasic.com
https://www.purebasic.fr/english/
Code: Select all
;- Top
; -----------------------------------------------------------------------------
; Name:
; Description:
; Author:
; Date: 2024-05-13
; Version:
; PB-Version:
; OS:
; Credit:
; Forum:
; Created by: IceDesign
; -----------------------------------------------------------------------------
CompilerIf #PB_Compiler_IsMainFile
EnableExplicit
CompilerEndIf
;- Enumerations
Enumeration Window
#MAIN_WINDOW
EndEnumeration
Enumeration MenuToolStatusBar
#StatusBar
EndEnumeration
Enumeration Gadgets
#Btn1_OK_MAIN_WINDOW
#Check1_CALL_SECOND_WINDOW
#Check1_CALL_THREE_WINDOW
#Combo1_MAIN_WINDOW
#Cont1_MAIN_WINDOW
#frame1_MAIN_WINDOW
#image1_LEFT_MAIN_WINDOW
#image2_HEADER_MAIN_WINDOW
#panel1_MAIN_WINDOW
#text1_MAIN_WINDOW
#text2_MAIN_WINDOW
EndEnumeration
Enumeration Images
#Imag_logo_MAIN_WINDOW
#Imag_left_MAIN_WINDOW
EndEnumeration
Enumeration Fonts
#Font_Arial_14
#Font_Arial_16
#Font_Arial_16_B
#Font_Arial_18_B
EndEnumeration
CompilerIf Not Defined(GadgetImages, #PB_Structure)
Structure GadgetImages
Image.i
PressedImage.i
Width.i
Height.i
EndStructure
CompilerEndIf
;- Load Images
UseJPEGImageDecoder()
CatchImage(#Imag_logo_MAIN_WINDOW, ?Imag_logo_MAIN_WINDOW)
CatchImage(#Imag_left_MAIN_WINDOW, ?Imag_left_MAIN_WINDOW)
;- Load Fonts
LoadFont(#Font_Arial_14, "Arial", 14)
LoadFont(#Font_Arial_16, "Arial", 16)
LoadFont(#Font_Arial_16_B, "Arial", 16, #PB_Font_Bold)
LoadFont(#Font_Arial_18_B, "Arial", 18, #PB_Font_Bold)
;- Declare
CompilerIf Not Defined(GadgetImages, #PB_Structure)
Declare ResizeGadgetImage(Gadget, OriginalImage, OriginalPressedImage = #PB_Ignore)
CompilerEndIf
Declare Resize_MAIN_WINDOW()
Declare StatusBar_MAIN_WINDOW()
Declare Open_MAIN_WINDOW(X = 0, Y = 0, Width = 1000, Height = 700)
Macro SetTabOrder(Gadget)
CompilerIf #PB_Compiler_OS = #PB_OS_Windows : SetWindowPos_(GadgetID(Gadget), #HWND_BOTTOM, 0, 0, 0, 0, #SWP_NOMOVE | #SWP_NOSIZE) : CompilerEndIf
EndMacro
CompilerIf Not Defined(ResizeGadgetImage, #PB_Procedure)
Procedure ResizeGadgetImage(Gadget, OriginalImage, OriginalPressedImage = #PB_Ignore)
Protected Image, Width, Height
Static NewMap GadgetImage.GadgetImages()
If IsGadget(Gadget) And IsImage(OriginalImage)
Width = DesktopScaledX(GadgetWidth(Gadget)) : Height = DesktopScaledY(GadgetHeight(Gadget))
If Width > 0 And Height > 0
If GadgetImage(Str(Gadget))\Width <> Width Or GadgetImage(Str(Gadget))\Height <> Height
GadgetImage()\Width = Width : GadgetImage()\Height = Height
Image = CopyImage(OriginalImage, #PB_Any)
If Image
ResizeImage(Image, Width, Height)
Select GadgetType(Gadget)
Case #PB_GadgetType_ButtonImage
SetGadgetAttribute(Gadget, #PB_Button_Image, ImageID(Image))
Case #PB_GadgetType_Image
SetGadgetState(Gadget, ImageID(Image))
EndSelect
If GadgetImage()\Image And IsImage(GadgetImage()\Image)
FreeImage(GadgetImage()\Image)
EndIf
GadgetImage()\Image = Image
EndIf
If GadgetType(Gadget) = #PB_GadgetType_ButtonImage And IsImage(OriginalPressedImage)
Image = CopyImage(OriginalPressedImage, #PB_Any)
If Image
ResizeImage(Image, Width, Height)
SetGadgetAttribute(Gadget, #PB_Button_PressedImage, ImageID(Image))
If GadgetImage()\PressedImage And IsImage(GadgetImage()\PressedImage)
FreeImage(GadgetImage()\PressedImage)
EndIf
GadgetImage()\PressedImage = Image
EndIf
EndIf
EndIf ; If GadgetImage(Str(Gadget))\Width <> Width Or GadgetImage(Str(Gadget))\Height <> Height
EndIf ; If Width > 0 And Height > 0
EndIf ; If IsGadget(Gadget) And IsImage(OriginalImage)
EndProcedure
CompilerEndIf
Procedure Resize_MAIN_WINDOW()
Static StatusBarHeight
Protected MAIN_WINDOW_WidthIni = 1000, MAIN_WINDOW_HeightIni = 700
Protected panel1_MAIN_WINDOW_WidthIni = 677, panel1_MAIN_WINDOW_HeightIni = 542 ; #PB_Panel_ItemWidth(Height) Attribute
Protected ScaleX.f, ScaleY.f
If StatusBarHeight = 0
StatusBarHeight = StatusBarHeight(#StatusBar)
EndIf
MAIN_WINDOW_HeightIni - StatusBarHeight
ScaleX = WindowWidth(#MAIN_WINDOW) / MAIN_WINDOW_WidthIni : ScaleY = (WindowHeight(#MAIN_WINDOW) - StatusBarHeight) / MAIN_WINDOW_HeightIni
ResizeGadget(#image1_LEFT_MAIN_WINDOW, ScaleX * 0, ScaleY * 0, ScaleX * 300, ScaleY * 675)
ResizeGadgetImage(#image1_LEFT_MAIN_WINDOW, #Imag_left_MAIN_WINDOW)
ResizeGadget(#Cont1_MAIN_WINDOW, ScaleX * 310, ScaleY * 0, ScaleX * 685, ScaleY * 80)
ResizeGadget(#image2_HEADER_MAIN_WINDOW, ScaleX * 310, ScaleY * 0, ScaleX * 80, ScaleY * 80)
ResizeGadgetImage(#image2_HEADER_MAIN_WINDOW, #Imag_logo_MAIN_WINDOW)
ResizeGadget(#text1_MAIN_WINDOW, ScaleX * 460, ScaleY * 0, ScaleX * 460, ScaleY * 30)
ResizeGadget(#panel1_MAIN_WINDOW, ScaleX * 310, ScaleY * 90, ScaleX * 685, ScaleY * 580)
ScaleX = GetGadgetAttribute(#panel1_MAIN_WINDOW, #PB_Panel_ItemWidth) / panel1_MAIN_WINDOW_WidthIni : ScaleY = GetGadgetAttribute(#panel1_MAIN_WINDOW, #PB_Panel_ItemHeight) / panel1_MAIN_WINDOW_HeightIni
ResizeGadget(#frame1_MAIN_WINDOW, ScaleX * 10, ScaleY * 0, ScaleX * 665, ScaleY * 110)
ResizeGadget(#text2_MAIN_WINDOW, ScaleX * 20, ScaleY * 30, ScaleX * 220, ScaleY * 30)
ResizeGadget(#Combo1_MAIN_WINDOW, ScaleX * 250, ScaleY * 30, ScaleX * 410, ScaleY * 30)
ResizeGadget(#Check1_CALL_SECOND_WINDOW, ScaleX * 20, ScaleY * 70, ScaleX * 220, ScaleY * 30)
ResizeGadget(#Check1_CALL_THREE_WINDOW, ScaleX * 250, ScaleY * 70, ScaleX * 410, ScaleY * 30)
ResizeGadget(#Btn1_OK_MAIN_WINDOW, ScaleX * 430, ScaleY * 510, ScaleX * 240, ScaleY * 30)
EndProcedure
Procedure StatusBar_MAIN_WINDOW()
If CreateStatusBar(#StatusBar, WindowID(#MAIN_WINDOW))
AddStatusBarField(120)
AddStatusBarField(150)
AddStatusBarField(#PB_Ignore)
StatusBarText(#StatusBar, 0, "StatusBar")
StatusBarText(#StatusBar, 1, "Center", #PB_StatusBar_BorderLess | #PB_StatusBar_Center)
StatusBarText(#StatusBar, 2, "Right", #PB_StatusBar_Right | #PB_StatusBar_Raised)
EndIf
EndProcedure
Procedure Open_MAIN_WINDOW(X = 0, Y = 0, Width = 1000, Height = 700)
If OpenWindow(#MAIN_WINDOW, X, Y, Width, Height, "MAIN WINDOW", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget | #PB_Window_ScreenCentered)
SetWindowLongPtr_(WindowID(#MAIN_WINDOW), #GWL_EXSTYLE, GetWindowLongPtr_(WindowID(#MAIN_WINDOW), #GWL_EXSTYLE) | #WS_EX_LAYERED)
SetLayeredWindowAttributes_(WindowID(#MAIN_WINDOW), 0, 230, #LWA_ALPHA)
SetWindowColor(#MAIN_WINDOW, RGB(0, 0, 0))
StatusBar_MAIN_WINDOW()
ImageGadget(#image1_LEFT_MAIN_WINDOW, 0, 0, 300, 675, ImageID(#Imag_left_MAIN_WINDOW))
ContainerGadget(#Cont1_MAIN_WINDOW, 310, 0, 685, 80)
SetGadgetColor(#Cont1_MAIN_WINDOW, #PB_Gadget_BackColor, RGB(0, 128, 255))
CloseGadgetList() ; #Cont1_MAIN_WINDOW
ImageGadget(#image2_HEADER_MAIN_WINDOW, 310, 0, 80, 80, ImageID(#Imag_logo_MAIN_WINDOW))
TextGadget(#text1_MAIN_WINDOW, 460, 0, 460, 30, "text1 on MAIN_WINDOW", #PB_Text_Center | #SS_CENTERIMAGE)
SetGadgetColor(#text1_MAIN_WINDOW, #PB_Gadget_BackColor, RGB(255, 255, 255))
SetGadgetColor(#text1_MAIN_WINDOW, #PB_Gadget_FrontColor, RGB(255, 128, 0))
SetGadgetFont(#text1_MAIN_WINDOW, FontID(#Font_Arial_18_B))
PanelGadget(#panel1_MAIN_WINDOW, 310, 90, 685, 580)
SetGadgetFont(#panel1_MAIN_WINDOW, FontID(#Font_Arial_16_B))
AddGadgetItem(#panel1_MAIN_WINDOW, -1, "Tab0 MAIN_WINDOW")
FrameGadget(#frame1_MAIN_WINDOW, 10, 0, 665, 110, "frame1 MAIN_WINDOW")
SetGadgetFont(#frame1_MAIN_WINDOW, FontID(#Font_Arial_16))
TextGadget(#text2_MAIN_WINDOW, 20, 30, 220, 30, "text2 MAIN_WINDOW", #SS_CENTERIMAGE)
SetGadgetFont(#text2_MAIN_WINDOW, FontID(#Font_Arial_14))
ComboBoxGadget(#Combo1_MAIN_WINDOW, 250, 30, 410, 30)
AddGadgetItem(#Combo1_MAIN_WINDOW, -1, "Combo1_MAIN_WINDOW")
SetGadgetState(#Combo1_MAIN_WINDOW, 0)
SetGadgetFont(#Combo1_MAIN_WINDOW, FontID(#Font_Arial_14))
CheckBoxGadget(#Check1_CALL_SECOND_WINDOW, 20, 70, 220, 30, "Show second Window")
SetGadgetFont(#Check1_CALL_SECOND_WINDOW, FontID(#Font_Arial_14))
CheckBoxGadget(#Check1_CALL_THREE_WINDOW, 250, 70, 410, 30, "Show three Window...")
SetGadgetFont(#Check1_CALL_THREE_WINDOW, FontID(#Font_Arial_14))
ButtonGadget(#Btn1_OK_MAIN_WINDOW, 430, 510, 240, 30, "OK!")
SetGadgetFont(#Btn1_OK_MAIN_WINDOW, FontID(#Font_Arial_14))
AddGadgetItem(#panel1_MAIN_WINDOW, -1, "Tab1 MAIN_WINDOW")
CloseGadgetList() ; #panel1_MAIN_WINDOW
SetTabOrder(#Btn1_OK_MAIN_WINDOW)
BindEvent(#PB_Event_SizeWindow, @Resize_MAIN_WINDOW(), #MAIN_WINDOW)
PostEvent(#PB_Event_SizeWindow, #MAIN_WINDOW, 0)
ProcedureReturn #True
EndIf
EndProcedure
XIncludeFile "second-win.pb"
Open_SECOND_WINDOW()
CompilerIf #PB_Compiler_IsMainFile
;- Main Program
If Open_MAIN_WINDOW()
;- Event Loop
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Break
;-> Event Gadget
Case #PB_Event_Gadget
Select EventGadget()
Case #Check1_CALL_SECOND_WINDOW
If GetGadgetState(#Check1_CALL_SECOND_WINDOW) = #PB_Checkbox_Checked
Open_SECOND_WINDOW()
CloseWindow(#MAIN_WINDOW)
EndIf
Case #Btn1_SAVE_AND_RETURN_TO_MAIN_WINDOW
If GetGadgetState(#Btn1_SAVE_AND_RETURN_TO_MAIN_WINDOW) = #PB_Checkbox_Checked
Open_MAIN_WINDOW()
CloseWindow(#SECOND_WINDOW)
EndIf
Case #Check1_CALL_THREE_WINDOW
MessageRequester("Information", "CheckBox Name : #Check1_CALL_THREE_WINDOW" +#CRLF$+#CRLF$+ "State : " + GetGadgetState(EventGadget()))
Case #Btn1_OK_MAIN_WINDOW ; OK!
MessageRequester("Information", "Button Name : #Btn1_OK_MAIN_WINDOW" +#CRLF$+#CRLF$+ "Text : " + GetGadgetText(EventGadget()))
EndSelect
EndSelect
ForEver
EndIf
CompilerEndIf
;- DataSection
DataSection
Imag_logo_MAIN_WINDOW: : IncludeBinary "H:\logo.jpg"
Imag_left_MAIN_WINDOW: : IncludeBinary "H:\left.jpg"
EndDataSection
; IDE Options
; EnableXP
; DPIAware
Code: Select all
;- Top
; -----------------------------------------------------------------------------
; Name:
; Description:
; Author:
; Date: 2024-05-13
; Version:
; PB-Version:
; OS:
; Credit:
; Forum:
; Created by: IceDesign
; -----------------------------------------------------------------------------
CompilerIf #PB_Compiler_IsMainFile
EnableExplicit
CompilerEndIf
;- Enumerations
Enumeration Images_SECOND_WINDOW
#Imag_logo_SECOND_WINDOW
#Imag_left_SECOND_WINDOW
EndEnumeration
Enumeration Window_SECOND_WINDOW
#SECOND_WINDOW
EndEnumeration
Enumeration Gadgets_SECOND_WINDOW
#Btn1_SAVE_AND_RETURN_TO_MAIN_WINDOW
#Btn2_RETURN_TO_MAIN_WINDOW
#Combo1_SECOND_WINDOW
#Cont1_SECOND_WINDOW
#frame1_SECOND_WIN
#image1_LEFT_SECOND_WINDOW
#image2_HEADER_SECOND_WINDOW
#panel1_SECOND_WINDOW
#text1_SECOND_WINDOW
#text2_SECOND_WINDOW
EndEnumeration
CompilerIf Not Defined(GadgetImages, #PB_Structure)
Structure GadgetImages
Image.i
PressedImage.i
Width.i
Height.i
EndStructure
CompilerEndIf
;- Load Images
UseJPEGImageDecoder()
CatchImage(#Imag_logo_SECOND_WINDOW, ?FILE_Imag_logo_SECOND_WINDOW)
CatchImage(#Imag_left_SECOND_WINDOW, ?FILE_Imag_left_SECOND_WINDOW)
;- DataSection
DataSection
FILE_Imag_logo_SECOND_WINDOW: : IncludeBinary "H:\logo.jpg"
FILE_Imag_left_SECOND_WINDOW: : IncludeBinary "H:\left.jpg"
EndDataSection
;- Load Fonts
LoadFont(#Font_Arial_14, "Arial", 14)
LoadFont(#Font_Arial_16, "Arial", 16)
LoadFont(#Font_Arial_16_B, "Arial", 16, #PB_Font_Bold)
LoadFont(#Font_Arial_18_B, "Arial", 18, #PB_Font_Bold)
;- Declare
CompilerIf Not Defined(GadgetImages, #PB_Structure)
Declare ResizeGadgetImage(Gadget, OriginalImage, OriginalPressedImage = #PB_Ignore)
CompilerEndIf
Declare Resize_SECOND_WINDOW()
Declare StatusBar_SECOND_WINDOW()
Declare Open_SECOND_WINDOW(X = 0, Y = 0, Width = 1000, Height = 700)
CompilerIf Not Defined(ResizeGadgetImage, #PB_Procedure)
Procedure ResizeGadgetImage(Gadget, OriginalImage, OriginalPressedImage = #PB_Ignore)
Protected Image, Width, Height
Static NewMap GadgetImage.GadgetImages()
If IsGadget(Gadget) And IsImage(OriginalImage)
Width = DesktopScaledX(GadgetWidth(Gadget)) : Height = DesktopScaledY(GadgetHeight(Gadget))
If Width > 0 And Height > 0
If GadgetImage(Str(Gadget))\Width <> Width Or GadgetImage(Str(Gadget))\Height <> Height
GadgetImage()\Width = Width : GadgetImage()\Height = Height
Image = CopyImage(OriginalImage, #PB_Any)
If Image
ResizeImage(Image, Width, Height)
Select GadgetType(Gadget)
Case #PB_GadgetType_ButtonImage
SetGadgetAttribute(Gadget, #PB_Button_Image, ImageID(Image))
Case #PB_GadgetType_Image
SetGadgetState(Gadget, ImageID(Image))
EndSelect
If GadgetImage()\Image And IsImage(GadgetImage()\Image)
FreeImage(GadgetImage()\Image)
EndIf
GadgetImage()\Image = Image
EndIf
If GadgetType(Gadget) = #PB_GadgetType_ButtonImage And IsImage(OriginalPressedImage)
Image = CopyImage(OriginalPressedImage, #PB_Any)
If Image
ResizeImage(Image, Width, Height)
SetGadgetAttribute(Gadget, #PB_Button_PressedImage, ImageID(Image))
If GadgetImage()\PressedImage And IsImage(GadgetImage()\PressedImage)
FreeImage(GadgetImage()\PressedImage)
EndIf
GadgetImage()\PressedImage = Image
EndIf
EndIf
EndIf ; If GadgetImage(Str(Gadget))\Width <> Width Or GadgetImage(Str(Gadget))\Height <> Height
EndIf ; If Width > 0 And Height > 0
EndIf ; If IsGadget(Gadget) And IsImage(OriginalImage)
EndProcedure
CompilerEndIf
Procedure Resize_SECOND_WINDOW()
Static StatusBarHeight
Protected SECOND_WINDOW_WidthIni = 1000, SECOND_WINDOW_HeightIni = 700
Protected panel1_SECOND_WINDOW_WidthIni = 677, panel1_SECOND_WINDOW_HeightIni = 542 ; #PB_Panel_ItemWidth(Height) Attribute
Protected ScaleX.f, ScaleY.f
If StatusBarHeight = 0
StatusBarHeight = StatusBarHeight(#StatusBar)
EndIf
SECOND_WINDOW_HeightIni - StatusBarHeight
ScaleX = WindowWidth(#SECOND_WINDOW) / SECOND_WINDOW_WidthIni : ScaleY = (WindowHeight(#SECOND_WINDOW) - StatusBarHeight) / SECOND_WINDOW_HeightIni
ResizeGadget(#image1_LEFT_SECOND_WINDOW, ScaleX * 0, ScaleY * 0, ScaleX * 300, ScaleY * 675)
ResizeGadgetImage(#image1_LEFT_SECOND_WINDOW, #Imag_left_SECOND_WINDOW)
ResizeGadget(#Cont1_SECOND_WINDOW, ScaleX * 310, ScaleY * 0, ScaleX * 685, ScaleY * 80)
ResizeGadget(#image2_HEADER_SECOND_WINDOW, ScaleX * 310, ScaleY * 0, ScaleX * 80, ScaleY * 80)
ResizeGadgetImage(#image2_HEADER_SECOND_WINDOW, #Imag_logo_SECOND_WINDOW)
ResizeGadget(#text1_SECOND_WINDOW, ScaleX * 460, ScaleY * 0, ScaleX * 460, ScaleY * 30)
ResizeGadget(#panel1_SECOND_WINDOW, ScaleX * 310, ScaleY * 90, ScaleX * 685, ScaleY * 580)
ScaleX = GetGadgetAttribute(#panel1_SECOND_WINDOW, #PB_Panel_ItemWidth) / panel1_SECOND_WINDOW_WidthIni : ScaleY = GetGadgetAttribute(#panel1_SECOND_WINDOW, #PB_Panel_ItemHeight) / panel1_SECOND_WINDOW_HeightIni
ResizeGadget(#frame1_SECOND_WIN, ScaleX * 10, ScaleY * 0, ScaleX * 665, ScaleY * 70)
ResizeGadget(#text2_SECOND_WINDOW, ScaleX * 20, ScaleY * 30, ScaleX * 170, ScaleY * 30)
ResizeGadget(#Combo1_SECOND_WINDOW, ScaleX * 220, ScaleY * 30, ScaleX * 420, ScaleY * 30)
ResizeGadget(#Btn1_SAVE_AND_RETURN_TO_MAIN_WINDOW, ScaleX * 250, ScaleY * 510, ScaleX * 160, ScaleY * 30)
ResizeGadget(#Btn2_RETURN_TO_MAIN_WINDOW, ScaleX * 430, ScaleY * 510, ScaleX * 240, ScaleY * 30)
EndProcedure
Procedure StatusBar_SECOND_WINDOW()
If CreateStatusBar(#StatusBar, WindowID(#SECOND_WINDOW))
AddStatusBarField(120)
AddStatusBarField(150)
AddStatusBarField(#PB_Ignore)
StatusBarText(#StatusBar, 0, "StatusBar")
StatusBarText(#StatusBar, 1, "Center", #PB_StatusBar_BorderLess | #PB_StatusBar_Center)
StatusBarText(#StatusBar, 2, "Right", #PB_StatusBar_Right | #PB_StatusBar_Raised)
EndIf
EndProcedure
Procedure Open_SECOND_WINDOW(X = 0, Y = 0, Width = 1000, Height = 700)
If OpenWindow(#SECOND_WINDOW, X, Y, Width, Height, "SECOND WINDOW", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget | #PB_Window_ScreenCentered)
SetWindowColor(#SECOND_WINDOW, RGB(0, 0, 0))
StatusBar_SECOND_WINDOW()
ImageGadget(#image1_LEFT_SECOND_WINDOW, 0, 0, 300, 675, ImageID(#Imag_left_SECOND_WINDOW))
GadgetToolTip(#image1_LEFT_SECOND_WINDOW, "NeMu MuMu from CuuMay.win")
ContainerGadget(#Cont1_SECOND_WINDOW, 310, 0, 685, 80)
SetGadgetColor(#Cont1_SECOND_WINDOW, #PB_Gadget_BackColor, RGB(0, 128, 255))
CloseGadgetList() ; #Cont1_SECOND_WINDOW
ImageGadget(#image2_HEADER_SECOND_WINDOW, 310, 0, 80, 80, ImageID(#Imag_logo_SECOND_WINDOW))
GadgetToolTip(#image2_HEADER_SECOND_WINDOW, "NeMu MuMu from CuuMay.win")
TextGadget(#text1_SECOND_WINDOW, 460, 0, 460, 30, "text1 on SECOND WINDOW", #PB_Text_Center | #SS_CENTERIMAGE)
SetGadgetColor(#text1_SECOND_WINDOW, #PB_Gadget_BackColor, RGB(255, 255, 255))
SetGadgetColor(#text1_SECOND_WINDOW, #PB_Gadget_FrontColor, RGB(255, 128, 0))
SetGadgetFont(#text1_SECOND_WINDOW, FontID(#Font_Arial_18_B))
PanelGadget(#panel1_SECOND_WINDOW, 310, 90, 685, 580)
SetGadgetFont(#panel1_SECOND_WINDOW, FontID(#Font_Arial_16_B))
GadgetToolTip(#panel1_SECOND_WINDOW, "Chọn thao tác")
AddGadgetItem(#panel1_SECOND_WINDOW, -1, "Tab0 SECOND")
FrameGadget(#frame1_SECOND_WIN, 10, 0, 665, 70, "frame1 SECOND")
SetGadgetFont(#frame1_SECOND_WIN, FontID(#Font_Arial_16))
TextGadget(#text2_SECOND_WINDOW, 20, 30, 170, 30, "text2 SECOND", #SS_CENTERIMAGE)
SetGadgetFont(#text2_SECOND_WINDOW, FontID(#Font_Arial_14))
ComboBoxGadget(#Combo1_SECOND_WINDOW, 220, 30, 420, 30)
AddGadgetItem(#Combo1_SECOND_WINDOW, -1, "Combo1_SECOND_WINDOW")
SetGadgetState(#Combo1_SECOND_WINDOW, 0)
SetGadgetFont(#Combo1_SECOND_WINDOW, FontID(#Font_Arial_14))
ButtonGadget(#Btn1_SAVE_AND_RETURN_TO_MAIN_WINDOW, 250, 510, 160, 30, "Save and return")
SetGadgetFont(#Btn1_SAVE_AND_RETURN_TO_MAIN_WINDOW, FontID(#Font_Arial_14))
ButtonGadget(#Btn2_RETURN_TO_MAIN_WINDOW, 430, 510, 240, 30, "<-- Return to Main window")
SetGadgetFont(#Btn2_RETURN_TO_MAIN_WINDOW, FontID(#Font_Arial_14))
AddGadgetItem(#panel1_SECOND_WINDOW, -1, "Tab1 SECOND")
CloseGadgetList() ; #panel1_SECOND_WINDOW
SetTabOrder(#Btn1_SAVE_AND_RETURN_TO_MAIN_WINDOW) : SetTabOrder(#Btn2_RETURN_TO_MAIN_WINDOW)
BindEvent(#PB_Event_SizeWindow, @Resize_SECOND_WINDOW(), #SECOND_WINDOW)
PostEvent(#PB_Event_SizeWindow, #SECOND_WINDOW, 0)
ProcedureReturn #True
EndIf
EndProcedure
; IDE Options
; EnableXP
; DPIAware
Hi hoangdiemtinh, do not rename enumeration names in second-win.pb.
Code: Select all
Enumeration Images_SECOND_WINDOW
Enumeration Window_SECOND_WINDOW
Enumeration Gadgets_SECOND_WINDOW
==> must remain
Enumeration Images
Enumeration Window
Enumeration Gadgets
#A name can be set to identify an enumeration and allow to continue it later. It is useful to group objects altogether while declaring them in different code place.
Code: Select all
Case #Btn1_SAVE_AND_RETURN_TO_MAIN_WINDOW, #Btn2_RETURN_TO_MAIN_WINDOW
;If GetGadgetState(#Btn1_SAVE_AND_RETURN_TO_MAIN_WINDOW) = #PB_Checkbox_Checked ; <==
Open_MAIN_WINDOW()
CloseWindow(#SECOND_WINDOW)
;EndIf ; <==
The license is just like Purebasic, with no subscriptions or additional costs for updateshoangdiemtinh wrote: Fri May 10, 2024 1:28 pm Price 19,39$ - How long does this software license last ?
How to donate ?
Hi Michael, ThanksMichael Vogel wrote: Mon May 06, 2024 6:56 pm Chris, I like your IceDesigner, thank you for your work.
I would be able to write a list of thousand feature requests:
- a zoom 200%-function for precise editing
- a configurable offset for duplicate/paste (or additional duplicate below and duplicate right functions)
- editable default prefixes instead of the static #Window_, #Txt_, #Edit_, #String_,...
- and 997 more![]()
I also think you can do it through a Container as suggested by Caronte3D hereMichael Vogel wrote: Mon May 06, 2024 6:56 pm I'd like to lock the height of all buttons and button #1 should also keep it's width. Only the width of button #2 and #3 should be resized to fill the space when changing the window size.
Not much can be done on the Designer side, too many different cases, unfortunately it's WindowsMichael Vogel wrote: Mon May 06, 2024 6:56 pm Some flickering is given, not sure, if this could be done a little bit better when using the IceDesigner only.
Code: Select all
[ControlsShortName]
Button = Bouton
CheckBox = Check
...
Yes, I'm a bit confused about that.
You are not authorised to read private messages that are on hold.