[M1 Mac, Big Sur 11.7.2, clang 13.0.0, wxWidgets 3.2.0, NO IDE]
ちょうどいいサンプルをGitHubに見つけ、早速活用させていただきました。見にくいですが青字部分がリンクになっています。
wxWidgetsに対する興味が増してきたので自分のFLTKアプリを移植しようか考えたものの、wxButtonの色設定ができないのであきらめました。OSのLook&Feelに依存している分、自由度は低いようです。
となるとFLTKにHyperLink機能実装となりますが、Fl_Widgetよりさらに上の概念を構築する必要がありハードルはかなり高そうです。
#include <wx/debug.h>
#include <wx/app.h>
#include <wx/frame.h>
#include <wx/hyperlink.h>
#include <wx/panel.h>
#include <wx/sizer.h>
#include <wx/stattext.h>
namespace Examples {
class Frame : public wxFrame {
public:
Frame() : wxFrame(nullptr, wxID_ANY, "HyperlinkCtrl example") {
panel->SetSizer(boxSizerLinks);
boxSizerLinks->Add(staticText1, 0, wxSTRETCH_NOT, 0);
boxSizerLinks->Add(hyperlinkCtrl1, 0, wxSTRETCH_NOT, 0);
boxSizerLinks->Add(staticText2, 0, wxSTRETCH_NOT, 0);
boxSizerLinks->Add(hyperlinkCtrl2, 0, wxSTRETCH_NOT, 0);
}
private:
wxPanel* panel = new wxPanel(this);
wxBoxSizer* boxSizerLinks = new wxBoxSizer(wxVERTICAL);
wxStaticText* staticText1 = new wxStaticText(panel, wxID_ANY, " Googleへのリンク");
wxHyperlinkCtrl* hyperlinkCtrl1 = new wxHyperlinkCtrl(panel, wxID_ANY, "Google", "https://www.google.com/");
wxStaticText* staticText2 = new wxStaticText(panel, wxID_ANY, " Yahoo!へのリンク");
wxHyperlinkCtrl* hyperlinkCtrl2 = new wxHyperlinkCtrl(panel, wxID_ANY, "Yahoo!", "https://www.yahoo.co.jp/");
};
class Application : public wxApp {
bool OnInit() override {
(new Frame())->Show();
return true;
}
};
}
wxIMPLEMENT_APP(Examples::Application);