; Module/File: TG_AddNotifyEvent2.pb ; Function: Add notify event on entering and leaving a TextGadget - Linux ; Author: Omi ; Date: Aug. 14, 2017 ; Version: 0.1 ; Target Compiler: PureBasic 5.22/5.31/5.4/5.5/5.6 ; Target OS: Linux: (X/K/L)ubuntu, Mint, 32/64, Ascii/Uni ;-------------------------------------------------------------- EnableExplicit ImportC "" g_signal_connect(*instance, detailed_signal.p-utf8, *c_handler, *data, destroy= 0, flags= 0) As "g_signal_connect_data" EndImport ; Object constants #MainWin = 1 #Txt1 = 0 #Txt2 = 1 Global.i gEvent, gQuit Global *eventbox.GtkEventBox ProcedureC Callback_LabelNotify(*widget.GtkWidget, *event.GdkEventCrossing, user_data); callback for notify on label ;*widget gets the values in user_data. don't know why Protected *window= gtk_widget_get_toplevel_(GadgetID(*widget)) If *widget= #Txt1 If *event\type = #GDK_ENTER_NOTIFY Debug "notify enter on #1" ElseIf *event\type = #GDK_LEAVE_NOTIFY Debug "notify leave on #1" EndIf EndIf If *widget= #Txt2 If *event\type = #GDK_ENTER_NOTIFY Debug "notify enter on #2" ElseIf *event\type = #GDK_LEAVE_NOTIFY Debug "notify leave on #2" EndIf EndIf EndProcedure If OpenWindow(#MainWin, 300, 200, 250, 200, "TextGadget notify-signal", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) TextGadget(#Txt1, 5, 5, 190, 22, "Try Mouseover #1") TextGadget(#Txt2, 5, 50, 190, 22, "Try Mouseover #2") *eventbox= gtk_widget_get_parent_(GadgetID(#Txt1)); get TextGadget-EventBox ; gtk_widget_add_events_(*eventbox, #GDK_ENTER_NOTIFY_MASK); add notify event, not necessary g_signal_connect(*eventbox, "enter-notify-event", @Callback_LabelNotify(), #Txt1, #Null, #G_CONNECT_SWAPPED) g_signal_connect(*eventbox, "leave-notify-event", @Callback_LabelNotify(), #Txt1, #Null, #G_CONNECT_SWAPPED) *eventbox= gtk_widget_get_parent_(GadgetID(#Txt2)); get TextGadget-EventBox ; gtk_widget_add_events_(*eventbox, #GDK_ENTER_NOTIFY_MASK); add notify event, not necessary g_signal_connect(*eventbox, "enter-notify-event", @Callback_LabelNotify(), #Txt2, #Null, #G_CONNECT_SWAPPED) g_signal_connect(*eventbox, "leave-notify-event", @Callback_LabelNotify(), #Txt2, #Null, #G_CONNECT_SWAPPED) Repeat gEvent= WaitWindowEvent() Select gEvent Case #PB_Event_CloseWindow gQuit= #True EndSelect Until gQuit EndIf ; IDE Options = PureBasic 5.61 (Linux - x86) ; CursorPosition = 53 ; Folding = - ; EnableXP ; EnableUnicode