Page 1 of 1
PB 6.30 Beta 3 - ScreenGadget library - bug report
Posted: Mon Oct 06, 2025 11:14 am
by STARGÅTE
Fred wrote: Mon Oct 06, 2025 8:26 am
2025-10-06: beta 3 is out, with one big new library: ScreenGadget, thanks to pf-shadoko ! It's also the first official library 100% written in PureBasic. The Window3D and Gadget3D lib based on CEGUI will be deprecated. The examples for the new lib can be found in the Examples/Sources/ScreenGadget.pb and Examples/3D/ScreenGadgetMultipleWindow.pb files. Don't hesitate to send your feedback as the lib is very new.
I'm happy to see that you are also include user libraries into an official PureBasic release.
I hope, other published libraries will follow.
The ScreenGadget library is a good start, but it still needs a lot of work.
Here is my bug report to the ScreenGadget library:
- When I click on a button, other gadgets or window titles, these events is also triggered when I click somewhere else into the empty space, after the button was clicked ones.
- ButtonScreenGadget events are triggered, even if the button is pressed but the mouse button is released somewhere else. Usual behavior (e.g. under windows) is that the event is not triggered. To trigger an event, the mouse button must be released over the gadget.
- Mouse wheel action is inverted on a TrackBarScreenGadget(). The value decreases, when the mouse wheel is rotated up.
- The TrackBarScreenGadget can be changed by mouse wheel even if it is in the background of an other window, hiding the gadget. Same for scroll areas.
- IMA on RenderScreenGadgets() when the splitter of the splitter gadget is moved to the far right or far left.
- You can't select the last item of a ListViewScreenGadget(). Probably, because the invisible scroll bar blocks the event.
- The rendered image of the ProgressBarScreenGadget is incorrect, when the progress value is very small. The edges a clipped wrongly.
Re: PB 6.30 Beta 3 - ScreenGadget library - bug report
Posted: Tue Oct 07, 2025 7:29 pm
by STARGÅTE
Here are some more bugs:
- IMA at the second call of OpenScreenWindow() when using #PB_Any:
Code: Select all
Enumeration
#Window
EndEnumeration
InitSprite()
InitKeyboard()
InitMouse()
OpenWindow(#Window, 0, 0, 800, 450, "ScreenGadgets", #PB_Window_BorderLess | #PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(#Window), 0, 0, 800, 450)
InitScreenGadgets()
Window1 = OpenScreenWindow(#PB_Any, 100, 100, 200, 100, "Window 1")
Window2 = OpenScreenWindow(#PB_Any, 500, 100, 200, 100, "Window 2")
Repeat
While WindowEvent()
Wend
ExamineMouse()
ExamineKeyboard()
If KeyboardPushed(#PB_Key_Escape)
Break
EndIf
Select ScreenWindowEvent()
EndSelect
ClearScreen(RGB(0,0,0))
RenderScreenGadgets()
FlipBuffers()
ForEver
- Text in the StringScreenGadget can't be selected, the selection always vanishes immediately
Code: Select all
Enumeration
#Window
#ScreenWindow1
#StringScreenGadget1
EndEnumeration
InitSprite()
InitKeyboard()
InitMouse()
OpenWindow(#Window, 0, 0, 800, 450, "ScreenGadgets", #PB_Window_BorderLess | #PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(#Window), 0, 0, 800, 450)
InitScreenGadgets()
OpenScreenWindow(#ScreenWindow1, 100, 100, 200, 200, "Window A")
StringScreenGadget(#StringScreenGadget1, 10, 30, 180, 24, "Hello World !")
Repeat
While WindowEvent()
Wend
ExamineMouse()
ExamineKeyboard()
If KeyboardPushed(#PB_Key_Escape)
Break
EndIf
Select ScreenWindowEvent()
Case #PB_Event_Gadget
EndSelect
ClearScreen(RGB(0,0,0))
RenderScreenGadgets()
FlipBuffers()
ForEver
- HideScreenGadget() is inverted, HideScreenGadget(Gadget, 1) shows a gadget and HideScreenGadget(Gadget, 0) hides it, but should be opposite.
Code: Select all
Enumeration
#Window
#ScreenWindow1
#ButtonScreenGadget1
#ButtonScreenGadget2
EndEnumeration
InitSprite()
InitKeyboard()
InitMouse()
OpenWindow(#Window, 0, 0, 800, 450, "ScreenGadgets", #PB_Window_BorderLess | #PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(#Window), 0, 0, 800, 450)
InitScreenGadgets()
OpenScreenWindow(#ScreenWindow1, 100, 100, 200, 200, "Window A")
ButtonScreenGadget(#ButtonScreenGadget1, 10, 30, 100, 30, "Button Hidden")
ButtonScreenGadget(#ButtonScreenGadget2, 10, 70, 100, 30, "Button Visible")
HideScreenGadget(#ButtonScreenGadget1, 1)
HideScreenGadget(#ButtonScreenGadget2, 0)
Repeat
While WindowEvent()
Wend
ExamineMouse()
ExamineKeyboard()
If KeyboardPushed(#PB_Key_Escape)
Break
EndIf
Select ScreenWindowEvent()
Case #PB_Event_Gadget
EndSelect
ClearScreen(RGB(0,0,0))
RenderScreenGadgets()
FlipBuffers()
ForEver
- IMA at, RenderScreenGadgets(), when I click on an empty ListViewScreenGadget()
Code: Select all
Enumeration
#Window
#ScreenWindow1
#ListViewScreenGadget1
EndEnumeration
InitSprite()
InitKeyboard()
InitMouse()
OpenWindow(#Window, 0, 0, 800, 450, "ScreenGadgets", #PB_Window_BorderLess | #PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(#Window), 0, 0, 800, 450)
InitScreenGadgets()
OpenScreenWindow(#ScreenWindow1, 100, 100, 200, 200, "Window A")
ListViewScreenGadget(#ListViewScreenGadget1, 10, 30, 180, 160)
Repeat
While WindowEvent()
Wend
ExamineMouse()
ExamineKeyboard()
If KeyboardPushed(#PB_Key_Escape)
Break
EndIf
Select ScreenWindowEvent()
Case #PB_Event_Gadget
EndSelect
ClearScreen(RGB(0,0,0))
RenderScreenGadgets()
FlipBuffers()
ForEver
- Wrong argument tool tip for CloseScreenGadgetList(#ScreenGadget [, GadgetItem]), should be CloseScreenGadgetList()
- Wrong argument tool tip for DisableScreenGadget(#ScreenGadget), should be DisableScreenGadget(#ScreenGadget, State)
- Wrong argument tool tip for HideScreenGadget(#ScreenGadget), should be HideScreenGadget(#ScreenGadget, State)
Re: PB 6.30 Beta 3 - ScreenGadget library - bug report
Posted: Sun Oct 12, 2025 9:50 am
by STARGÅTE
I continued to try everything and noticed some more bugs:
- When I change the state of an OptionScreenGadget group with SetScreenGadgetState() the old selection is not removed and multiple options are selected.
Code: Select all
Enumeration
#Window
#ScreenWindow1
#OptionScreenGadget1
#OptionScreenGadget2
#OptionScreenGadget3
EndEnumeration
InitSprite()
InitKeyboard()
InitMouse()
OpenWindow(#Window, 0, 0, 800, 450, "ScreenGadgets", #PB_Window_BorderLess | #PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(#Window), 0, 0, 800, 450)
InitScreenGadgets()
OpenScreenWindow(#ScreenWindow1, 100, 100, 200, 200, "Window A")
OptionScreenGadget(#OptionScreenGadget1, 10, 30, 100, 30, "Option 1")
OptionScreenGadget(#OptionScreenGadget2, 10, 70, 100, 30, "Option 2")
OptionScreenGadget(#OptionScreenGadget3, 10, 110, 100, 30, "Option 3")
SetScreenGadgetState(#OptionScreenGadget2, #True)
SetScreenGadgetState(#OptionScreenGadget3, #True)
Repeat
While WindowEvent()
Wend
ExamineMouse()
ExamineKeyboard()
If KeyboardPushed(#PB_Key_Escape)
Break
EndIf
Select ScreenWindowEvent()
Case #PB_Event_Gadget
EndSelect
ClearScreen(RGB(0,0,0))
RenderScreenGadgets()
FlipBuffers()
ForEver
- IMA at RenderScreenGadgets() when a ComboBoxScreenGadget() has no item.
Code: Select all
Enumeration
#Window
#ScreenWindow1
#ComboBoxScreenGadget
EndEnumeration
InitSprite()
InitKeyboard()
InitMouse()
OpenWindow(#Window, 0, 0, 800, 450, "ScreenGadgets", #PB_Window_BorderLess | #PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(#Window), 0, 0, 800, 450)
InitScreenGadgets()
OpenScreenWindow(#ScreenWindow1, 100, 100, 200, 200, "Window A")
ComboBoxScreenGadget(#ComboBoxScreenGadget, 10, 30, 100, 30)
Repeat
While WindowEvent()
Wend
ExamineMouse()
ExamineKeyboard()
If KeyboardPushed(#PB_Key_Escape)
Break
EndIf
Select ScreenWindowEvent()
Case #PB_Event_Gadget
EndSelect
ClearScreen(RGB(0,0,0))
RenderScreenGadgets()
FlipBuffers()
ForEver
- Wrong item order, when using explicit position index (0, 1, 2) in AddScreenGadgetItem():
Code: Select all
Enumeration
#Window
#ScreenWindow1
#ListViewScreenGadget
EndEnumeration
InitSprite()
InitKeyboard()
InitMouse()
OpenWindow(#Window, 0, 0, 800, 450, "ScreenGadgets", #PB_Window_BorderLess | #PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(#Window), 0, 0, 800, 450)
InitScreenGadgets()
OpenScreenWindow(#ScreenWindow1, 100, 100, 200, 200, "Window A")
ListViewScreenGadget(#ListViewScreenGadget, 120, 30, 70, 100)
AddScreenGadgetItem(#ListViewScreenGadget, 0, "Item 1")
AddScreenGadgetItem(#ListViewScreenGadget, 1, "Item 2")
AddScreenGadgetItem(#ListViewScreenGadget, 2, "Item 3")
Repeat
While WindowEvent()
Wend
ExamineMouse()
ExamineKeyboard()
If KeyboardPushed(#PB_Key_Escape)
Break
EndIf
Select ScreenWindowEvent()
Case #PB_Event_Gadget
EndSelect
ClearScreen(RGB(0,0,0))
RenderScreenGadgets()
FlipBuffers()
ForEver
- The state of a ComboBoxScreenGadget() is not changed, if an item was selected by SetScreenGadgetText().
Obviously SetScreenGadgetText() just "overwrites" the visual text.
Code: Select all
Enumeration
#Window
#ScreenWindow1
#ComboBoxScreenGadget
EndEnumeration
InitSprite()
InitKeyboard()
InitMouse()
OpenWindow(#Window, 0, 0, 800, 450, "ScreenGadgets", #PB_Window_BorderLess | #PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(#Window), 0, 0, 800, 450)
InitScreenGadgets()
OpenScreenWindow(#ScreenWindow1, 100, 100, 600, 200, "Window A")
ComboBoxScreenGadget(#ComboBoxScreenGadget, 20, 30, 160, 30)
AddScreenGadgetItem(#ComboBoxScreenGadget, -1, "Item 0")
AddScreenGadgetItem(#ComboBoxScreenGadget, -1, "Item 1")
AddScreenGadgetItem(#ComboBoxScreenGadget, -1, "Item 2")
SetScreenGadgetText(#ComboBoxScreenGadget, "Item 2")
Debug GetScreenGadgetState(#ComboBoxScreenGadget) ; Should be 2
Repeat
While WindowEvent()
Wend
ExamineMouse()
ExamineKeyboard()
If KeyboardPushed(#PB_Key_Escape)
Break
EndIf
Select ScreenWindowEvent()
Case #PB_Event_Gadget
Debug GetScreenGadgetText(#ComboBoxScreenGadget)
EndSelect
ClearScreen(RGB(0,0,0))
RenderScreenGadgets()
FlipBuffers()
ForEver
- When an item is removed with RemoveScreenGadgetItem() in front of an item with was selected, the selected item is changed. But in such case the selection (status value) must be adjusted by -1.
Code: Select all
Enumeration
#Window
#ScreenWindow1
#ListViewScreenGadget
EndEnumeration
InitSprite()
InitKeyboard()
InitMouse()
OpenWindow(#Window, 0, 0, 800, 450, "ScreenGadgets", #PB_Window_BorderLess | #PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(#Window), 0, 0, 800, 450)
InitScreenGadgets()
OpenScreenWindow(#ScreenWindow1, 100, 100, 200, 200, "Window A")
ListViewScreenGadget(#ListViewScreenGadget, 120, 30, 70, 100)
AddScreenGadgetItem(#ListViewScreenGadget, -1, "Item 0")
AddScreenGadgetItem(#ListViewScreenGadget, -1, "Item 1")
AddScreenGadgetItem(#ListViewScreenGadget, -1, "Item 2")
AddScreenGadgetItem(#ListViewScreenGadget, -1, "Item 3")
AddScreenGadgetItem(#ListViewScreenGadget, -1, "Item 4")
SetScreenGadgetState(#ListViewScreenGadget, 2)
RemoveScreenGadgetItem(#ListViewScreenGadget, 1)
Repeat
While WindowEvent()
Wend
ExamineMouse()
ExamineKeyboard()
If KeyboardPushed(#PB_Key_Escape)
Break
EndIf
Select ScreenWindowEvent()
Case #PB_Event_Gadget
EndSelect
ClearScreen(RGB(0,0,0))
RenderScreenGadgets()
FlipBuffers()
ForEver
- Wrong argument tool tip for RemoveScreenGadgetItem(#ScreenGadget, Position, Test$), should be RemoveScreenGadgetItem(#ScreenGadget, Position)
Re: PB 6.30 Beta 3 - ScreenGadget library - bug report
Posted: Sun Oct 12, 2025 10:42 am
by HeX0R
If I ever need a beta tester, I might reach out to STARGÅTE

Re: PB 6.30 Beta 3 - ScreenGadget library - bug report
Posted: Sun Oct 12, 2025 10:59 am
by STARGÅTE
HeX0R wrote: Sun Oct 12, 2025 10:42 am
If I ever need a beta tester, I might reach out to STARGÅTE
Bug hunter since 2008
Maybe I just find more bugs because I'm looking for them as a programmer not as a user

.
If you have written a similar library yourself, you know what you are looking for.
Forgive me, pf shadoko, I know writing a GUI like this is a shitty job.
Re: PB 6.30 Beta 3 - ScreenGadget library - bug report
Posted: Tue Oct 14, 2025 4:16 pm
by Piero
STARGÅTE wrote: Sun Oct 12, 2025 10:59 amForgive me, pf shadoko
If """criticizing""" is a form of disrespect you need to apologize for, why didn't Fred ban me since my 1st post?
Edit/Note: my 1st post here was a BIG WARNING to EVERYONE about runprogram MALFUNCTIONING

Re: PB 6.30 Beta 3 - ScreenGadget library - bug report
Posted: Thu Oct 16, 2025 7:44 am
by pf shadoko
@STARGÅTE
I didn't see your bug report.
Professional work!
I'll try to fix it today.
Re: PB 6.30 Beta 3 - ScreenGadget library - bug report
Posted: Sat Oct 25, 2025 9:34 am
by pf shadoko
Do not post here anymore.
Go to:
viewtopic.php?t=87771