; Module/File: SysTray_ExtendedTooltipGtk3.pb ; Function: Set extended SysTray tooltip - Linux Gtk3 ; Author: Omi ; Date: Dec. 27, 2016 ; Version: 0.1 ; Target Compiler: PureBasic 5.22/5.3/5.4/5.5 ; Target OS: Linux: (X/K/L)ubuntu, Mint, 32/64, Ascii/Uni ;-------------------------------------------------------------- EnableExplicit ImportC "" gtk_tooltip_set_text(*tooltip, text.p-utf8) gtk_tooltip_set_markup(*tooltip, markup.p-utf8) gtk_tooltip_set_icon_from_stock(*tooltip, icon_name.p-utf8, size); gtk2 gtk_tooltip_set_icon_from_icon_name(*tooltip, icon_name.p-utf8, size); gtk3 g_type_check_instance_is_a(*instance.GTypeInstance, *type.GTypeClass) g_signal_connect(*instance, detailed_signal.p-utf8, *c_handler, *pdata, destroy= 0, flags= 0) As "g_signal_connect_data" EndImport Macro G_TYPE_MAKE_FUNDAMENTAL(x) ((x) << 2) EndMacro ;GType ... #G_TYPE_OBJECT = G_TYPE_MAKE_FUNDAMENTAL(20) ; Object constants #Win_Main = 0 #SysTrayEntry1= 0 Global.i gEvent, gQuit Global *gScreen.GdkScreen, gArea.GdkRectangle, *gOrientation Global *gSysTrayEntry Global.s gSysTrayIcon1= #PB_Compiler_Home + "examples/sources/Data/Drive.bmp" ProcedureC Callback_SysTrayQueryTooltip(*status_icon, x, y, keyboard_mode, *tooltip, user_data) ; gtk_tooltip_set_text(*tooltip, "This is a pimped SysTray-tooltip!") gtk_tooltip_set_markup(*tooltip, ~"This is a pimped SysTray-tooltip\nwith a markedup word,\n" + ~"and some line wraps.") gtk_tooltip_set_icon_from_icon_name(*tooltip, "dialog-information", #GTK_ICON_SIZE_BUTTON) ProcedureReturn #True EndProcedure ; Procedure SysTray_IdIsValid(*object) ; ProcedureReturn g_type_check_instance_is_a(*object, #G_TYPE_OBJECT) ; EndProcedure Procedure Create_WinMain() If OpenWindow(#Win_Main, 300, 200, 500, 100, "SysTray icon enhanced tooltip", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) TextGadget(#PB_Any, 5, 5, 490, 40, "Hold mouse on new SysTray icon w. Tooltip 'PureBasic icon' to get Tooltip.") *gSysTrayEntry= AddSysTrayIcon(#SysTrayEntry1, WindowID(#Win_Main), LoadImage(0, gSysTrayIcon1)); Return is GtkStatusIcon -> NOT DOCUMENTED SysTrayIconToolTip(#SysTrayEntry1, "PureBasic icon") g_signal_connect(*gSysTrayEntry, "query-tooltip", @Callback_SysTrayQueryTooltip(), #SysTrayEntry1) EndIf EndProcedure Create_WinMain() Repeat gEvent= WaitWindowEvent() Select gEvent Case #PB_Event_CloseWindow gQuit= #True EndSelect Until gQuit ; IDE Options = PureBasic 5.70 beta 1 (Linux - x64) ; CursorPosition = 37 ; Folding = - ; EnableXP ; EnableUnicode