Page 1 of 1

4.60B3: Canvas: #PB_EventType_MouseWheel does not work.

Posted: Wed Jul 27, 2011 8:35 am
by IceSoft
Canvas: #PB_EventType_MouseWheel does not work.

For tests source:
Replace on the canvas example source.

Code: Select all

          Select EventType()
            Case #PB_EventType_MouseWheel
              MessageRequester("Wheel","works now.")
          
            Case #PB_EventType_LeftButtonDown

Re: 4.60B3: Canvas: #PB_EventType_MouseWheel does not work.

Posted: Wed Jul 27, 2011 9:35 am
by atomo
You must use the flag #PB_Canvas_Keyboard on CanvasGadget creation to get MouseWheel events.

Re: 4.60B3: Canvas: #PB_EventType_MouseWheel does not work.

Posted: Wed Jul 27, 2011 10:21 am
by IceSoft
atomo wrote:You must use the flag #PB_Canvas_Keyboard on CanvasGadget creation to get MouseWheel events.
Have you tried it?
On my deployment (Windows 7 64bit) it is not working, also not with the #PB_Canvas_Keyboard flag.

Re: 4.60B3: Canvas: #PB_EventType_MouseWheel does not work.

Posted: Wed Jul 27, 2011 11:01 am
by atomo
This code works for me, the CanvasGadget must also have the focus :

Code: Select all

Window = OpenWindow(#PB_Any, 0, 0, 200, 200, "CanvasGadget", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
If Window
  CanvasGadget = CanvasGadget(#PB_Any, 0, 0, 200, 200, #PB_Canvas_Keyboard)
  Repeat
    Event = WaitWindowEvent(1)
    If Event = #PB_Event_Gadget
      If EventGadget() = CanvasGadget
        If EventType() = #PB_EventType_MouseWheel
          Debug "MouseWheel"
        EndIf
      EndIf
    EndIf    
  Until Event = #PB_Event_CloseWindow
EndIf

Re: 4.60B3: Canvas: #PB_EventType_MouseWheel does not work.

Posted: Wed Jul 27, 2011 1:00 pm
by IceSoft
@atome,
Your code works only if I pressed the mousebutton before.
=> that is the bug.

Re: 4.60B3: Canvas: #PB_EventType_MouseWheel does not work.

Posted: Wed Jul 27, 2011 1:20 pm
by bobobo
Focus !!
A SetActiveGadget(CanvasGadget) before Repeat will do

Re: 4.60B3: Canvas: #PB_EventType_MouseWheel does not work.

Posted: Wed Jul 27, 2011 1:21 pm
by STARGĂ…TE
Your code works only if I pressed the mousebutton before.
=> that is the bug.
No it is not, because the gadget must be activated first:

MouseWheel not "same" as MouseMove or so... it needs a focus

Code: Select all

Window = OpenWindow(#PB_Any, 0, 0, 400, 200, "CanvasGadget", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
If Window
  CanvasGadget1 = CanvasGadget(#PB_Any, 0, 0, 200, 200, #PB_Canvas_Keyboard|#PB_Canvas_DrawFocus)
  CanvasGadget2 = CanvasGadget(#PB_Any, 200, 0, 200, 200, #PB_Canvas_Keyboard|#PB_Canvas_DrawFocus)
  Repeat
    Event = WaitWindowEvent(1)
    If Event = #PB_Event_Gadget
      Select EventGadget()
        Case CanvasGadget1
          Select EventType()
            Case #PB_EventType_MouseWheel
              Debug "MouseWheel 1"
            Case #PB_EventType_MouseMove
              Debug "MouseMove 1"
          EndSelect
        Case CanvasGadget2
          Select EventType()
            Case #PB_EventType_MouseWheel
              Debug "MouseWheel 2"
            Case #PB_EventType_MouseMove
              Debug "MouseMove 2"
          EndSelect
      EndSelect
    EndIf    
  Until Event = #PB_Event_CloseWindow
EndIf