Page 1 of 1

Mouse LeftClick

Posted: Fri May 02, 2025 3:17 am
by rndrei
Why doesn't the left mouse button not work? System: Linux Ubuntu

Code: Select all

OpenWindow(0,0,0,600,600,"") 
ScintillaGadget(1,0,0,600,500,#Null) 
Repeat 
  event=WaitWindowEvent() 
 Select Event   
         Case #PB_Event_Gadget
           Select EventGadget()
             Case 1
               Select EventType()
                 Case #PB_EventType_LeftClick        : Debug "Click with left mouse button"
                 Case #PB_EventType_RightClick       : Debug "Click with right mouse button"
               EndSelect
           EndSelect   
       EndSelect
 Until event=#PB_Event_CloseWindow 
End

Re: Mouse LeftClick

Posted: Fri May 02, 2025 6:27 am
by normeus
Scintilla does not respond to left click?
PureBasic's help file is really a must read:

https://www.purebasic.com/documentation ... adget.html


Norm

Re: Mouse LeftClick

Posted: Fri May 02, 2025 6:47 am
by Blue
rndrei is right.
Tested in Windows 11 X64 with PB 6.21 beta 7, PB 6.21 beta 6, PB 6.20

However, the PB Help file only mentions right-click as an event type for this gadget...

Re: Mouse LeftClick

Posted: Fri May 02, 2025 11:06 am
by mk-soft
Actually, you don't need that with a ScintillaGadget.
But you can query the buttons on all widgets.

Code: Select all

;-TOP by mk-soft

ProcedureC _signal_button_press_event_cb(*Widget, *Event.GdkEventButton, UserData)
  If *Event\button = 1
    PostEvent(#PB_Event_Gadget, GetActiveWindow(), UserData, #PB_EventType_LeftButtonDown)
  EndIf
  ProcedureReturn 0 ; Button process continue
EndProcedure

ProcedureC _signal_button_release_event_cb(*Widget, *Event.GdkEventButton, UserData)
  If *Event\button = 1
    PostEvent(#PB_Event_Gadget, GetActiveWindow(), UserData, #PB_EventType_LeftClick)
  EndIf
  ProcedureReturn 0 ; Button process continue
EndProcedure

OpenWindow(0,0,0,600,600,"") 
ScintillaGadget(1,0,0,600,500,#Null)

signal_button_press_event_1 = g_signal_connect_(GadgetID(1), "button-press-event", @_signal_button_press_event_cb(), 1) ; <- UserData = gadget number
signal_button_relase_event_1 = g_signal_connect_(GadgetID(1), "button-release-event", @_signal_button_release_event_cb(), 1) ; <- UserData = gadget number

Repeat 
  event=WaitWindowEvent() 
  Select Event   
    Case #PB_Event_Gadget
      Select EventGadget()
        Case 1
          Select EventType()
            Case #PB_EventType_LeftButtonDown   : Debug "Down with left mouse button"
            Case #PB_EventType_LeftClick        : Debug "Click with left mouse button"
            Case #PB_EventType_RightClick       : Debug "Click with right mouse button"
          EndSelect
      EndSelect   
  EndSelect
Until event=#PB_Event_CloseWindow 

If g_signal_handler_is_connected_(GadgetID(1), signal_button_press_event_1)
  g_signal_handler_disconnect_(GadgetID(1), signal_button_press_event_1)
EndIf

If g_signal_handler_is_connected_(GadgetID(1), signal_button_relase_event_1)
  g_signal_handler_disconnect_(GadgetID(1), signal_button_relase_event_1)
EndIf

End