@@ -48,13 +48,12 @@ int main() {
4848 std::cout << " Tray icon ID: " << event.GetTrayIconId () << std::endl;
4949 });
5050
51- trayIcon->AddListener <TrayIconRightClickedEvent>(
52- [trayIcon](const TrayIconRightClickedEvent& event) {
53- std::cout << " *** TRAY ICON RIGHT CLICKED! ***" << std::endl;
54- std::cout << " This is the right click handler working!" << std::endl;
55- std::cout << " Tray icon ID: " << event.GetTrayIconId () << std::endl;
56- trayIcon->OpenContextMenu ();
57- });
51+ trayIcon->AddListener <TrayIconRightClickedEvent>([](const TrayIconRightClickedEvent& event) {
52+ std::cout << " *** TRAY ICON RIGHT CLICKED! ***" << std::endl;
53+ std::cout << " This is the right click handler working!" << std::endl;
54+ std::cout << " Tray icon ID: " << event.GetTrayIconId () << std::endl;
55+ // Note: Context menu will be auto-triggered by SetContextMenuTrigger below
56+ });
5857
5958 trayIcon->AddListener <TrayIconDoubleClickedEvent>([](const TrayIconDoubleClickedEvent& event) {
6059 std::cout << " *** TRAY ICON DOUBLE CLICKED! ***" << std::endl;
@@ -105,6 +104,29 @@ int main() {
105104 // Set the context menu to the tray icon
106105 trayIcon->SetContextMenu (context_menu);
107106
107+ // Set context menu trigger to automatically show menu on right click
108+ // This is the common behavior on Windows and most desktop environments
109+ trayIcon->SetContextMenuTrigger (ContextMenuTrigger::RightClicked);
110+
111+ // Get and display the current trigger mode
112+ ContextMenuTrigger currentTrigger = trayIcon->GetContextMenuTrigger ();
113+ std::cout << " Context menu trigger mode: " ;
114+ switch (currentTrigger) {
115+ case ContextMenuTrigger::None:
116+ std::cout << " None (manual control)" ;
117+ break ;
118+ case ContextMenuTrigger::Clicked:
119+ std::cout << " Left Click" ;
120+ break ;
121+ case ContextMenuTrigger::RightClicked:
122+ std::cout << " Right Click" ;
123+ break ;
124+ case ContextMenuTrigger::DoubleClicked:
125+ std::cout << " Double Click" ;
126+ break ;
127+ }
128+ std::cout << std::endl;
129+
108130 // Show the tray icon
109131 if (trayIcon->SetVisible (true )) {
110132 std::cout << " Tray icon is now visible!" << std::endl;
@@ -121,10 +143,15 @@ int main() {
121143 std::cout << " ========================================" << std::endl;
122144 std::cout << " Tray icon example is now running!" << std::endl;
123145 std::cout << " Try clicking on the tray icon:" << std::endl;
124- std::cout << " - Left click: Single click" << std::endl;
125- std::cout << " - Right click: Opens context menu" << std::endl;
126- std::cout << " - Double click: Quick double click" << std::endl;
146+ std::cout << " - Left click: Single click event " << std::endl;
147+ std::cout << " - Right click: Auto-opens context menu (via SetContextMenuTrigger) " << std::endl;
148+ std::cout << " - Double click: Quick double click event " << std::endl;
127149 std::cout << " - Context menu: Right-click to see options including Exit" << std::endl;
150+ std::cout << std::endl;
151+ std::cout << " Note: The context menu is automatically shown on right-click" << std::endl;
152+ std::cout << " because we set ContextMenuTrigger::RightClicked." << std::endl;
153+ std::cout << " You can also use Clicked, DoubleClicked, or None for manual control." << std::endl;
154+ std::cout << std::endl;
128155 std::cout << " Use the Exit menu item to quit the application." << std::endl;
129156 std::cout << " ========================================" << std::endl;
130157
0 commit comments