[C++] Tooltip woes

Today I tried to implement a functionality where if the user hovers with the mouse over a control point, that the location of that control point is shown in world coordinates in the mouse cursor tooltip. This should work outside the context of a command.

The functionality works, using CRhinoMouseCallback::OnMouseMove and I can find if I’m hovering over a control point and which coordinates it has. Then I set the tooltip like so:

ON_wString grip("location of grip");
CRhinoApp::cursor_tooltip_pane p = CRhinoApp::cursor_tooltip_pane::point_pane;
RhinoApp().SetCursorToolTipPane(p, grip); 

The problem is that this method results in a brief flicker of the tooltip when the mouse hovers over the control point, as if it is immediately turned off after I set the location of the point.

I have tried all CRhinoApp::cursor_tooltip_pane options, and found that only the CRhinoApp::cursor_tooltip_pane::osnap_pane does not show the flickering behavior.

I have also tried CRhinoApp::SetCursorToolTipPointPane( ON_3dPoint point, const ON_Plane* plane = 0); but this did not show any message at all, even with all tooltip options enabled.

Is this a bug? Do I need to do this in a different way? Any help is appreciated.

@mikko, is this something you can help with?

It sounds like a bug, or a design limitation. I’ll investigate. feedback_pane and extra_pane were intended for custom use, but looks like they were never hooked up. They are now in V6, but it will only show in future WIPs.

For the time being the only solution may be managing your own Windows tracking tooltip object. That is what cursor tooltip internally is:

It is unfortunate that this is not working. I’ll try and see where I get with managing my own tracking tooltip.

I am also trying to do the same by using VB.net.
any help will be appreciated

In the end I decided to implement this differently. So I’m unable to help, I’m afraid…