mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-22 22:25:57 +00:00
Code highlight improvements
This commit is contained in:
@@ -191,6 +191,55 @@ final class CustomEmojiContainerView: UIView {
|
||||
}
|
||||
}
|
||||
|
||||
private func makeTextInputTheme(context: AccountContext, interfaceState: ChatPresentationInterfaceState) -> ChatInputTextView.Theme {
|
||||
let lineStyle: ChatInputTextView.Theme.Quote.LineStyle
|
||||
let authorNameColor: UIColor
|
||||
|
||||
if let peer = interfaceState.renderedPeer?.peer as? TelegramChannel, case .broadcast = peer.info, let nameColor = peer.nameColor {
|
||||
let colors = context.peerNameColors.get(nameColor)
|
||||
authorNameColor = colors.main
|
||||
|
||||
if let secondary = colors.secondary, let tertiary = colors.tertiary {
|
||||
lineStyle = .tripleDashed(mainColor: colors.main, secondaryColor: secondary, tertiaryColor: tertiary)
|
||||
} else if let secondary = colors.secondary {
|
||||
lineStyle = .doubleDashed(mainColor: colors.main, secondaryColor: secondary)
|
||||
} else {
|
||||
lineStyle = .solid(color: colors.main)
|
||||
}
|
||||
} else if let accountPeerColor = interfaceState.accountPeerColor {
|
||||
authorNameColor = interfaceState.theme.list.itemAccentColor
|
||||
|
||||
switch accountPeerColor.style {
|
||||
case .solid:
|
||||
lineStyle = .solid(color: authorNameColor)
|
||||
case .doubleDashed:
|
||||
lineStyle = .doubleDashed(mainColor: authorNameColor, secondaryColor: .clear)
|
||||
case .tripleDashed:
|
||||
lineStyle = .tripleDashed(mainColor: authorNameColor, secondaryColor: .clear, tertiaryColor: .clear)
|
||||
}
|
||||
} else {
|
||||
lineStyle = .solid(color: interfaceState.theme.list.itemAccentColor)
|
||||
authorNameColor = interfaceState.theme.list.itemAccentColor
|
||||
}
|
||||
|
||||
let codeBackgroundColor: UIColor
|
||||
if interfaceState.theme.overallDarkAppearance {
|
||||
codeBackgroundColor = UIColor(white: 1.0, alpha: 0.05)
|
||||
} else {
|
||||
codeBackgroundColor = UIColor(white: 0.0, alpha: 0.05)
|
||||
}
|
||||
|
||||
return ChatInputTextView.Theme(
|
||||
quote: ChatInputTextView.Theme.Quote(
|
||||
background: authorNameColor.withMultipliedAlpha(interfaceState.theme.overallDarkAppearance ? 0.2 : 0.1),
|
||||
foreground: authorNameColor,
|
||||
lineStyle: lineStyle,
|
||||
codeBackground: codeBackgroundColor,
|
||||
codeForeground: authorNameColor
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
public class AttachmentTextInputPanelNode: ASDisplayNode, TGCaptionPanelView, ASEditableTextNodeDelegate, ChatInputTextNodeDelegate {
|
||||
private let context: AccountContext
|
||||
|
||||
@@ -499,6 +548,7 @@ public class AttachmentTextInputPanelNode: ASDisplayNode, TGCaptionPanelView, AS
|
||||
private func loadTextInputNode() {
|
||||
let textInputNode = CaptionEditableTextNode()
|
||||
textInputNode.initialPrimaryLanguage = self.presentationInterfaceState?.interfaceState.inputLanguage
|
||||
|
||||
var textColor: UIColor = .black
|
||||
var tintColor: UIColor = .blue
|
||||
var baseFontSize: CGFloat = 17.0
|
||||
@@ -508,6 +558,8 @@ public class AttachmentTextInputPanelNode: ASDisplayNode, TGCaptionPanelView, AS
|
||||
tintColor = presentationInterfaceState.theme.list.itemAccentColor
|
||||
baseFontSize = max(minInputFontSize, presentationInterfaceState.fontSize.baseDisplaySize)
|
||||
keyboardAppearance = presentationInterfaceState.theme.rootController.keyboardColor.keyboardAppearance
|
||||
|
||||
textInputNode.textView.theme = makeTextInputTheme(context: self.context, interfaceState: presentationInterfaceState)
|
||||
}
|
||||
|
||||
let paragraphStyle = NSMutableParagraphStyle()
|
||||
@@ -1536,11 +1588,21 @@ public class AttachmentTextInputPanelNode: ASDisplayNode, TGCaptionPanelView, AS
|
||||
}
|
||||
|
||||
if hasSpoilers {
|
||||
children.insert(UIAction(title: self.strings?.TextFormat_Quote ?? "Quote", image: nil) { [weak self] (action) in
|
||||
if let strongSelf = self {
|
||||
strongSelf.formatAttributesQuote(strongSelf)
|
||||
}
|
||||
}, at: 0)
|
||||
children.append(UIAction(title: self.strings?.TextFormat_Spoiler ?? "Spoiler", image: nil) { [weak self] (action) in
|
||||
if let strongSelf = self {
|
||||
strongSelf.formatAttributesSpoiler(strongSelf)
|
||||
}
|
||||
})
|
||||
children.append(UIAction(title: self.strings?.TextFormat_Code ?? "Code", image: nil) { [weak self] (action) in
|
||||
if let strongSelf = self {
|
||||
strongSelf.formatAttributesCodeBlock(strongSelf)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
let formatMenu = UIMenu(title: self.strings?.TextFormat_Format ?? "Format", image: nil, children: children)
|
||||
|
||||
Reference in New Issue
Block a user