After a couple of tests, I have to say this is truely an amazing work.
These are what I found problematic yet:
strange mousewheel + listview behavior:
Code: Select all
;-ERROR Description
;mousewheel triggers events, also weird behavior when mouseovered a listview gadget
InitSprite()
InitKeyboard():InitMouse()
Global lw.i,ps.i,p1.i,mw.i
Define c.i = 0
ExamineDesktops():dx=DesktopWidth(0)*0.9:dy=DesktopHeight(0)*0.9
OpenWindow(0, 0, 0, DesktopUnscaledX(dx),DesktopUnscaledY(dy), "[Escape] to quit", #PB_Window_BorderLess | #PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(0), 0, 0, dx, dy, 0, 0, 0)
; Create the Screen UI
InitScreenGadgets()
mw=OpenScreenWindow(#PB_Any, 200, 10, 300, 650, "Mywindow")
ps=PanelScreenGadget(#PB_Any,10,30,280,610)
p1=AddScreenGadgetItem(ps,-1,"panel-1")
lw=ListViewScreenGadget(#PB_Any,5,10,268,563)
ExamineHIDs()
While NextHID()
c+1
OpenHID(c,Val(HIDInfo(#PB_HID_VendorId)),Val(HIDInfo(#PB_HID_ProductId)))
AddScreenGadgetItem(lw,-1,HIDInfo(#PB_HID_Product,c))
Wend
Repeat
While WindowEvent() : Wend
ClearScreen(RGB(0,0,0))
ExamineMouse()
ExamineKeyboard()
If ScreenWindowEvent() = #PB_Event_Gadget
eg = EventScreenGadget()
Select eg
Case lw
Debug GetScreenGadgetText(lw)
SetScreenGadgetText(MW,GetScreenGadgetText(lw))
EndSelect
EndIf
RenderScreenGadgets()
FlipBuffers()
Delay(0)
Until KeyboardReleased(#PB_Key_Escape) Or MouseButton(3)
A minor problem here: renaming things changes string value of some gadgets, but does not rebuild the GUi graphics (yet)
And a major, probably library builder problem ( or I did not see something )
Seemingly one of my variable (mb) loses its scope for a while in this loop...
Code: Select all
;-ERROR Description
;Variable scope error
;setscreengadgettext not working with windows,panels
InitSprite()
InitKeyboard():InitMouse()
Global lw.i,ps.i,p1.i,mw.i
Global mb.i
ExamineDesktops():dx=DesktopWidth(0)*0.9:dy=DesktopHeight(0)*0.9
OpenWindow(0, 0, 0, DesktopUnscaledX(dx),DesktopUnscaledY(dy), "[Escape] to quit", #PB_Window_BorderLess | #PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(0), 0, 0, dx, dy, 0, 0, 0)
; Create the Screen UI
InitScreenGadgets()
mw=OpenScreenWindow(#PB_Any, 200, 10, 300, 650, "Mywindow")
ps=PanelScreenGadget(#PB_Any,10,30,280,610)
p1=AddScreenGadgetItem(ps,-1,"panel-1")
lw=ListViewScreenGadget(#PB_Any,5,10,268,563)
ExamineHIDs()
While NextHID()
c+1
OpenHID(c,Val(HIDInfo(#PB_HID_VendorId)),Val(HIDInfo(#PB_HID_ProductId)))
AddScreenGadgetItem(lw,-1,HIDInfo(#PB_HID_Product,c))
Wend
Repeat
While WindowEvent() : Wend
ClearScreen(RGB(0,0,0))
ExamineMouse()
ExamineKeyboard()
;-THIS TRIGGERS if leftmouse
If mb = 1 : Debug "Before":EndIf
If ScreenWindowEvent() = #PB_Event_Gadget
eg = EventScreenGadget()
Select eg
Case lw
Debug GetScreenGadgetText(lw)
;-THIS TRIGGERS NOT if leftmouse (seems to be an error of scopes)
If mb = 1 : Debug "Inbetween" : EndIf
;-I can set the text of the window, but GUI graphics does not changes
SetScreenGadgetText(MW,GetScreenGadgetText(lw))
Debug GetScreenGadgetText(mw)
Default
SetScreenGadgetText(MW," ")
EndSelect
EndIf
RenderScreenGadgets()
mb = 0
If MouseButton(1) : mb = 1 : EndIf
;-THIS TRIGGERS if leftmouse
If mb = 1 : Debug "After": EndIf
FlipBuffers()
Delay(0)
Until KeyboardReleased(#PB_Key_Escape) Or MouseButton(3)