]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/hyperlink.cpp
Don't eliminate text completely in Ellipsize().
[wxWidgets.git] / src / msw / hyperlink.cpp
index 0e4f5009f5409d7d135a6777e62880d81b0cd2d1..de729770fd53bf3853bae9b10fc64fa8b1b4b317 100644 (file)
 #include "wx/hyperlink.h"
 
 #ifndef WX_PRECOMP
+    #include "wx/app.h"
     #include "wx/stattext.h"
+    #include "wx/msw/wrapcctl.h" // include <commctrl.h> "properly"
+    #include "wx/msw/private.h"
+    #include "wx/msw/missing.h"
 #endif
 
 // ----------------------------------------------------------------------------
@@ -51,7 +55,10 @@ namespace
 {
     bool HasNativeHyperlinkCtrl()
     {
-        return wxGetWinVersion() >= wxWinVersion_XP;
+        // Notice that we really must test comctl32.dll version and not the OS
+        // version here as even under Vista/7 we could be not using the v6 e.g.
+        // if the program doesn't have the correct manifest for some reason.
+        return wxApp::GetComCtl32Version() >= 600;
     }
 
     wxString GetLabelForSysLink(const wxString& text, const wxString& url)
@@ -147,7 +154,7 @@ wxSize wxHyperlinkCtrl::DoGetBestClientSize() const
 {
     // LM_GETIDEALSIZE only exists under Vista so use the generic version even
     // when using the native control under XP
-    if ( wxGetWinVersion() < wxWinVersion_6 )
+    if ( !HasNativeHyperlinkCtrl() || (wxGetWinVersion() < wxWinVersion_6) )
         return wxGenericHyperlinkCtrl::DoGetBestClientSize();
 
     SIZE idealSize;