]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/treectrl.cpp
Applied patch #886192: "Minor fix to XRC contrib"; Minor cosmetic cleanups.
[wxWidgets.git] / src / msw / treectrl.cpp
index eb177d058ec4980d00d4c447d66ca10c3b7678fb..26ba49eea1da9a195d8a79f00d94bf5a2766833f 100644 (file)
@@ -674,6 +674,11 @@ bool wxTreeCtrl::Create(wxWindow *parent,
         wstyle |= TVS_CHECKBOXES;
 #endif // wxUSE_CHECKBOXES_IN_MULTI_SEL_TREE
 
+#ifndef __WXWINCE__
+    // Need so that TVN_GETINFOTIP messages will be sent
+    wstyle |= TVS_INFOTIP;
+#endif
+    
     // Create the tree control.
     if ( !MSWCreateControl(WC_TREEVIEW, wstyle) )
         return false;
@@ -2459,6 +2464,30 @@ bool wxTreeCtrl::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result)
                 break;
             }
 
+#ifndef __WXWINCE__
+        // These *must* not be removed or TVN_GETINFOTIP will
+        // not be processed each time the mouse is moved
+        // and the tooltip will only ever update once.
+        case TTN_NEEDTEXTA:
+        case TTN_NEEDTEXTW:
+            {
+                *result = 0;
+
+                break;
+            }
+
+        case TVN_GETINFOTIP:
+            {
+                eventType = wxEVT_COMMAND_TREE_ITEM_GETTOOLTIP;
+                NMTVGETINFOTIP *info = (NMTVGETINFOTIP*)lParam;
+
+                // Which item are we trying to get a tooltip for?
+                event.m_item = info->hItem;
+
+                break;
+            }
+#endif
+        
         case TVN_GETDISPINFO:
             eventType = wxEVT_COMMAND_TREE_GET_INFO;
             // fall through
@@ -2805,6 +2834,18 @@ bool wxTreeCtrl::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result)
             DeleteTextCtrl();
             break;
 
+#ifndef __WXWINCE__
+         case TVN_GETINFOTIP:
+            {
+                // If the user permitted a tooltip change, change it
+                if (event.IsAllowed())
+                {
+                    SetToolTip(event.m_label);
+                }
+            }
+            break;
+#endif
+        
         case TVN_SELCHANGING:
         case TVN_ITEMEXPANDING:
             // return true to prevent the action from happening