diff --git a/Kit/Widgets/NetworkChart.swift b/Kit/Widgets/NetworkChart.swift index 7cdb7d98..4a2f7ac2 100644 --- a/Kit/Widgets/NetworkChart.swift +++ b/Kit/Widgets/NetworkChart.swift @@ -53,6 +53,8 @@ public class NetworkChart: WidgetWrapper { private var boxSettingsView: NSView? = nil private var frameSettingsView: NSView? = nil + public var NSLabelCharts: [NSAttributedString] = [] + public init(title: String, config: NSDictionary?, preview: Bool = false) { var widgetTitle: String = title if let config = config { @@ -98,6 +100,19 @@ public class NetworkChart: WidgetWrapper { } self.chart.points = list } + + let style = NSMutableParagraphStyle() + style.alignment = .center + let stringAttributes = [ + NSAttributedString.Key.font: NSFont.systemFont(ofSize: 7, weight: .regular), + NSAttributedString.Key.foregroundColor: isDarkMode ? NSColor.white : NSColor.textColor, + NSAttributedString.Key.paragraphStyle: style + ] + + for char in String(title.prefix(3)).uppercased().reversed() { + let str = NSAttributedString.init(string: "\(char)", attributes: stringAttributes) + self.NSLabelCharts.append(str) + } } required init?(coder: NSCoder) { @@ -116,22 +131,13 @@ public class NetworkChart: WidgetWrapper { var width = self.width + (Constants.Widget.margin.x*2) if self.labelState { - let style = NSMutableParagraphStyle() - style.alignment = .center - let stringAttributes = [ - NSAttributedString.Key.font: NSFont.systemFont(ofSize: 7, weight: .regular), - NSAttributedString.Key.foregroundColor: NSColor.textColor, - NSAttributedString.Key.paragraphStyle: style - ] - let letterHeight = self.frame.height / 3 let letterWidth: CGFloat = 6.0 var yMargin: CGFloat = 0 - for char in String(self.title.prefix(3)).uppercased().reversed() { + for char in self.NSLabelCharts { let rect = CGRect(x: x, y: yMargin, width: letterWidth, height: letterHeight) - let str = NSAttributedString.init(string: "\(char)", attributes: stringAttributes) - str.draw(with: rect) + char.draw(with: rect) yMargin += letterHeight }