Code: Select all
If GetGadgetAttribute(0, #PB_Canvas_Buttons) & #PB_Canvas_LeftButton
EndIf
Code: Select all
If GetGadgetAttribute(0, #PB_OpenGL_Buttons) & #PB_OpenGL_LeftButton
EndIf
Code: Select all
If GetGadgetAttribute(0, #PB_Canvas_Buttons) & #PB_Canvas_LeftButton
EndIf
Code: Select all
If GetGadgetAttribute(0, #PB_OpenGL_Buttons) & #PB_OpenGL_LeftButton
EndIf
Code: Select all
Enumeration
#Window
#Gadget
EndEnumeration
OpenWindow(#Window, 0, 0, 800, 450, "Vector Canvas Gadget", #PB_Window_MaximizeGadget|#PB_Window_MaximizeGadget|#PB_Window_SizeGadget|#PB_Window_ScreenCentered)
CanvasGadget(#Gadget, 100, 100, WindowWidth(#Window)-200, WindowHeight(#Window)-100, #PB_Canvas_Keyboard)
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Break
Case #PB_Event_Gadget
Select EventGadget()
Case #Gadget
Select EventType()
Case #PB_EventType_MouseEnter
Debug GetGadgetAttribute(#Gadget, #PB_Canvas_Buttons)
Case #PB_EventType_MouseLeave
Debug GetGadgetAttribute(#Gadget, #PB_Canvas_Buttons)
EndSelect
EndSelect
EndSelect
ForEver
End
Code: Select all
Case #PB_EventType_MouseEnter
Debug "enter : " +
" " + Str(GetGadgetAttribute(#Gadget, #PB_Canvas_Buttons) & #PB_Canvas_LeftButton) +
", " + Str(GetGadgetAttribute(#Gadget, #PB_Canvas_Buttons) & #PB_Canvas_MiddleButton) +
", " + Str(GetGadgetAttribute(#Gadget, #PB_Canvas_Buttons) & #PB_Canvas_RightButton)
Case #PB_EventType_MouseLeave
Debug "leave : " +
" " + Str(GetGadgetAttribute(#Gadget, #PB_Canvas_Buttons) & #PB_Canvas_LeftButton) +
", " + Str(GetGadgetAttribute(#Gadget, #PB_Canvas_Buttons) & #PB_Canvas_MiddleButton) +
", " + Str(GetGadgetAttribute(#Gadget, #PB_Canvas_Buttons) & #PB_Canvas_RightButton)
Code: Select all
EnableExplicit
ImportC ""
gdk_device_get_seat_(dv.i) As "gdk_device_get_seat"
gdk_seat_ungrab_(st.i) As "gdk_seat_ungrab"
EndImport
Structure _GdkEvent Align #PB_Structure_AlignC
StructureUnion
type.l
any.GdkEventAny
expose.GdkEventExpose
no_expose.GdkEventNoExpose
visibility.GdkEventVisibility
motion.GdkEventMotion
button.GdkEventButton
scroll.GdkEventScroll
key.GdkEventKey
crossing.GdkEventCrossing
focus_change.GdkEventFocus
configure.GdkEventConfigure
property.GdkEventProperty
selection.GdkEventSelection
proximity.GdkEventProximity
client.GdkEventClient
dnd.GdkEventDND
window_state.GdkEventWindowState
setting.GdkEventSetting
EndStructureUnion
EndStructure
Enumeration
#Window
#Gadget
EndEnumeration
ProcedureC winEventHandler(*event._GdkEvent, dat.i)
Define.GdkEventButton *evBtn
Select *event\type
Case #GDK_BUTTON_PRESS
;remove grab
*evBtn = *event
gdk_seat_ungrab_(gdk_device_get_seat_(*evBtn\device))
EndSelect
gtk_main_do_event_(*event)
EndProcedure
OpenWindow(#Window, 0, 0, 800, 450, "Vector Canvas Gadget", #PB_Window_MaximizeGadget|#PB_Window_MaximizeGadget|#PB_Window_SizeGadget|#PB_Window_ScreenCentered)
gdk_event_handler_set_(@winEventHandler(), 0, 0)
CanvasGadget(#Gadget, 100, 100, WindowWidth(#Window)-200, WindowHeight(#Window)-100, #PB_Canvas_Keyboard)
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Break
Case #PB_Event_Gadget
Select EventGadget()
Case #Gadget
Select EventType()
Case #PB_EventType_MouseEnter
Debug GetGadgetAttribute(#Gadget, #PB_Canvas_Buttons)
Case #PB_EventType_MouseLeave
Debug GetGadgetAttribute(#Gadget, #PB_Canvas_Buttons)
EndSelect
EndSelect
EndSelect
ForEver