Page 1 of 1
Scrollarea doesn't scroll!
Posted: Mon Jun 05, 2006 4:44 pm
by Trond
Code: Select all
OpenWindow(0, 0, 0, 640, 480, "", #PB_Window_ScreenCentered | #PB_Window_SystemMenu)
CreateGadgetList(WindowID(0))
ScrollAreaGadget(0, 0, 0, 640, 480, 600, 800, 80)
ImageGadget(1, 0, 0, 600, 800, 0)
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Break
EndSelect
ForEver
Yes, I know it's an image there. How else am I supposed to be able to draw anything in there?
And an annoyance: when it does scroll, it does not follow the system settings on scroll speed.
Posted: Mon Jun 05, 2006 9:35 pm
by srod
Trond, I don't understand, it seems to scroll okay here.
Posted: Tue Jun 06, 2006 1:09 pm
by Trond
I forgot something vital: Try again with the scroll wheel on your mouse.
Posted: Tue Jun 06, 2006 1:23 pm
by srod
Sorry, I don't have a scroll wheel! (Laptop!)
...now it scrolls...
Posted: Tue Jun 06, 2006 1:54 pm
by sverson
...now it scrolls... THX to Danilo
Code: Select all
;/ sverson 2006
#WM_MOUSEWHEEL = $20A
Procedure.w MouseWheelDelta()
; German forum: http://robsite.de/php/pureboard/viewtopic.php?t=2289&postdays=0&postorder=asc&start=10
; Author: Danilo
; Date: 14. September 2003
;CodeArchiv: CheckMouseWheel.pb
x.w = ((EventwParam()>>16)&$FFFF)
Debug x
ProcedureReturn -(x / 120)
EndProcedure
Global Wheelstep.l=10
OpenWindow(0, 0, 0, 640, 480, "", #PB_Window_ScreenCentered | #PB_Window_SystemMenu)
CreateGadgetList(WindowID(0))
ScrollAreaGadget(0, 0, 0, 640, 480, 600, 800, 80)
ImageGadget(1, 0, 0, 600, 800, 0)
Repeat
Select WaitWindowEvent()
Case #WM_MOUSEWHEEL
SetGadgetAttribute(0,#PB_ScrollArea_Y,GetGadgetAttribute(0,#PB_ScrollArea_Y)+(MouseWheelDelta()*Wheelstep))
Case #PB_Event_CloseWindow
Break
EndSelect
ForEver

sverson
Posted: Tue Jun 06, 2006 2:00 pm
by utopiomania
It scrolls if you focus it?
Posted: Tue Jun 06, 2006 2:14 pm
by sverson
@utopiomania: works! - THX!
utopiomania wrote:It scrolls if you focus it?
here some updated code to scroll X or Y...
Code: Select all
;/ sverson 2006
;/ ScrollArea MouseWheel.pb
#WM_MOUSEWHEEL = $20A
#WM_MBUTTONUP = $208
Procedure.w MouseWheelDelta()
; German forum: http://robsite.de/php/pureboard/viewtopic.php?t=2289&postdays=0&postorder=asc&start=10
; Author: Danilo
; Date: 14. September 2003
; CodeArchiv: CheckMouseWheel.pb
x.w = ((EventwParam()>>16)&$FFFF)
Debug x
ProcedureReturn -(x / 120)
EndProcedure
Procedure.l GadgetUnderCursor()
Protected WinPoint.POINT
GetCursorPos_(@WinPoint)
ProcedureReturn WindowFromPoint_(WinPoint\x,WinPoint\y)
EndProcedure
Global Wheelstep.l=10
Global HorVer.b=1
OpenWindow(0, 0, 0, 640, 480, "click MouseWheel (MButton) to switch X/Y scroll", #PB_Window_ScreenCentered | #PB_Window_SystemMenu)
CreateGadgetList(WindowID(0))
ScrollAreaGadget(0, 0, 0, 640, 480, 800, 800, 80)
ImageGadget(1, 0, 0, 800, 800, 0)
Repeat
Select WaitWindowEvent()
Case #WM_MOUSEWHEEL
If GadgetUnderCursor()=GadgetID(1)
If HorVer
SetGadgetAttribute(0,#PB_ScrollArea_Y,GetGadgetAttribute(0,#PB_ScrollArea_Y)+(MouseWheelDelta()*Wheelstep))
Else
SetGadgetAttribute(0,#PB_ScrollArea_X,GetGadgetAttribute(0,#PB_ScrollArea_X)+(MouseWheelDelta()*Wheelstep))
EndIf
EndIf
Case #WM_MBUTTONUP
HorVer=HorVer!1
Case #PB_Event_CloseWindow
Break
EndSelect
ForEver

sverson
Posted: Tue Jun 06, 2006 2:49 pm
by Trond
Thanks.