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