18class Hyperlink :
public NodeDecorator {
20 Hyperlink(
Element child, std::string link)
21 : NodeDecorator(std::move(child)),
link_(std::move(link)) {}
23 void Render(Screen& screen)
override {
24 const uint8_t hyperlink_id = screen.RegisterHyperlink(link_);
25 for (
int y = box_.y_min;
y <= box_.y_max; ++
y) {
26 for (
int x = box_.x_min; x <= box_.x_max; ++x) {
27 screen.CellAt(x,
y).hyperlink = hyperlink_id;
30 NodeDecorator::Render(screen);
53 return std::make_shared<Hyperlink>(std::move(child), std::string(link));
72 return [link = std::string(link)](
Element child) {
Element hyperlink(std::string_view link, Element child)
使渲染區域可點擊並使用網路瀏覽器開啟。 當用戶點擊時,連結將被開啟。 此功能僅在有限的終端模擬器中受支援。 List: https://github.com/Alhadis/OSC8-Adoption/
std::shared_ptr< Node > Element
std::function< Element(Element)> Decorator
void Render(Screen &screen, Node *node, Selection &selection)