diff --git a/ui/basic.style b/ui/basic.style index 6073a2f..0c0417f 100644 --- a/ui/basic.style +++ b/ui/basic.style @@ -21,11 +21,17 @@ TextPalette { TextStyle { font: font; - linkFont: font; - linkFontOver: font; + linkUnderline: int; + blockPadding: margins; + blockOutline: pixels; + preScrollable: bool; lineHeight: pixels; } +kLinkUnderlineNever: 0; +kLinkUnderlineActive: 1; +kLinkUnderlineAlways: 2; + fsize: 13px; normalFont: font(fsize); semiboldFont: font(fsize semibold); @@ -50,14 +56,14 @@ defaultTextPalette: TextPalette { } defaultTextStyle: TextStyle { font: normalFont; - linkFont: normalFont; - linkFontOver: font(fsize underline); + linkUnderline: kLinkUnderlineActive; + blockPadding: margins(10px, 4px, 6px, 4px); + blockOutline: 3px; + preScrollable: true; lineHeight: 0px; } semiboldTextStyle: TextStyle(defaultTextStyle) { font: semiboldFont; - linkFont: semiboldFont; - linkFontOver: font(fsize semibold underline); } slideDuration: 240; @@ -69,7 +75,7 @@ fadeWrapDuration: 200; linkCropLimit: 360px; linkFont: normalFont; -linkOverFont: font(fsize underline); +linkFontOver: font(fsize underline); roundRadiusLarge: 6px; roundRadiusSmall: 3px; diff --git a/ui/layers/layers.style b/ui/layers/layers.style index 1f7f897..8da1f07 100644 --- a/ui/layers/layers.style +++ b/ui/layers/layers.style @@ -82,8 +82,6 @@ boxTitle: FlatLabel(defaultFlatLabel) { maxHeight: 24px; style: TextStyle(defaultTextStyle) { font: boxTitleFont; - linkFont: boxTitleFont; - linkFontOver: font(16px semibold underline); } } boxTitlePosition: point(24px, 18px); @@ -187,8 +185,6 @@ separatePanelTitle: FlatLabel(defaultFlatLabel) { maxHeight: 26px; style: TextStyle(defaultTextStyle) { font: separatePanelTitleFont; - linkFont: separatePanelTitleFont; - linkFontOver: font(18px semibold underline); } } separatePanelTitleTop: 18px; diff --git a/ui/platform/mac/ui_window_title_mac.mm b/ui/platform/mac/ui_window_title_mac.mm index be22393..4b1100b 100644 --- a/ui/platform/mac/ui_window_title_mac.mm +++ b/ui/platform/mac/ui_window_title_mac.mm @@ -88,8 +88,6 @@ void TitleWidget::init(int height) { const auto setFromFont = [&](const style::font &font) { _textStyle = std::make_unique(style::TextStyle{ .font = font, - .linkFont = font, - .linkFontOver = font, }); }; diff --git a/ui/text/text_renderer.cpp b/ui/text/text_renderer.cpp index 121d611..83fd50a 100644 --- a/ui/text/text_renderer.cpp +++ b/ui/text/text_renderer.cpp @@ -1410,11 +1410,14 @@ void Renderer::eSetFont(const AbstractBlock *block) { const auto flags = block->flags(); const auto usedFont = [&] { if (const auto index = block->linkIndex()) { - const auto active = (_palette && _palette->linkAlwaysActive) - || ClickHandler::showAsActive(_t->_links.at(index - 1)); - return active - ? _t->_st->linkFontOver - : _t->_st->linkFont; + const auto underline = _t->_st->linkUnderline; + const auto underlined = (underline == st::kLinkUnderlineNever) + ? false + : (underline == st::kLinkUnderlineActive) + ? ((_palette && _palette->linkAlwaysActive) + || ClickHandler::showAsActive(_t->_links.at(index - 1))) + : true; + return underlined ? _t->_st->font->underline() : _t->_st->font; } return _t->_st->font; }(); diff --git a/ui/widgets/widgets.style b/ui/widgets/widgets.style index 8b90876..0a9624b 100644 --- a/ui/widgets/widgets.style +++ b/ui/widgets/widgets.style @@ -641,7 +641,7 @@ defaultLinkButton: LinkButton { color: windowActiveTextFg; overColor: windowActiveTextFg; font: linkFont; - overFont: linkOverFont; + overFont: linkFontOver; } defaultRippleAnimation: RippleAnimation { @@ -1145,8 +1145,6 @@ defaultImportantTooltip: ImportantTooltip { defaultImportantTooltipLabel: FlatLabel(defaultFlatLabel) { style: TextStyle(defaultTextStyle) { font: font(11px); - linkFont: font(11px); - linkFontOver: font(11px underline); } textFg: importantTooltipFg; palette: TextPalette(defaultTextPalette) { @@ -1252,11 +1250,7 @@ defaultPeerListItem: PeerListItem { height: 58px; photoPosition: point(12px, 6px); namePosition: point(68px, 11px); - nameStyle: TextStyle(defaultTextStyle) { - font: semiboldFont; - linkFont: semiboldFont; - linkFontOver: semiboldFont; - } + nameStyle: semiboldTextStyle; nameFg: contactsNameFg; nameFgChecked: windowActiveTextFg; statusPosition: point(68px, 31px); @@ -1271,8 +1265,6 @@ defaultPeerListItem: PeerListItem { boxTextStyle: TextStyle(defaultTextStyle) { font: font(boxFontSize); - linkFont: font(boxFontSize); - linkFontOver: font(boxFontSize underline); } defaultPeerListAbout: FlatLabel(defaultFlatLabel) { @@ -1437,8 +1429,6 @@ defaultWindowTitle: WindowTitle { fgActive: titleFgActive; style: TextStyle(defaultTextStyle) { font: font(semibold 12px); - linkFont: font(semibold 12px); - linkFontOver: font(semibold 12px underline); } minimize: IconButton(windowTitleButton) { icon: icon {