From 9fb1b2f9f237ecba5c198037dad65157e8436268 Mon Sep 17 00:00:00 2001 From: Dmitry Vedenko Date: Fri, 23 Jul 2021 15:48:03 +0300 Subject: [PATCH] Change the link color to the default color of wxHyperlinkCtrl --- src/ui/AccessibleLinksFormatter.cpp | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/ui/AccessibleLinksFormatter.cpp b/src/ui/AccessibleLinksFormatter.cpp index 9274eed6e..3f6534c61 100644 --- a/src/ui/AccessibleLinksFormatter.cpp +++ b/src/ui/AccessibleLinksFormatter.cpp @@ -14,10 +14,11 @@ #include #include +#include -#ifndef __WXGTK__ #include -#else + +#ifdef __WXGTK__ #include #endif @@ -73,6 +74,16 @@ void AccessibleLinksFormatter::Populate(ShuttleGui& S) const return; } +#ifdef __WXGTK__ + // Non empty label is required, as wxHyperlinkCtrl would assert otherwise + std::unique_ptr tempHyperlink + = std::make_unique(S.GetParent(), wxID_ANY, wxT("temp"), wxString()); + + const wxColour hyperlinkColour = tempHyperlink->GetNormalColour(); + + tempHyperlink.reset(); +#endif + wxString translated = mMessage.Translation(); std::vector processedArguments = @@ -129,7 +140,9 @@ void AccessibleLinksFormatter::Populate(ShuttleGui& S) const wxStaticText* hyperlink = S.AddVariableText(argument->Value); hyperlink->SetFont(hyperlink->GetFont().Underlined()); + hyperlink->SetForegroundColour(hyperlinkColour); hyperlink->SetCursor(wxCURSOR_HAND); + hyperlink->Bind(wxEVT_LEFT_UP, [handler = argument->Handler, url = argument->TargetURL](wxEvent&) { if (handler) handler();