- graph bugfixes [skip ci]

This commit is contained in:
overtake
2020-03-16 18:33:34 +04:00
parent 015d3de3a5
commit 8de2cdb11b
3 changed files with 12 additions and 7 deletions

View File

@@ -13,14 +13,16 @@ import Cocoa
import UIKit import UIKit
#endif #endif
struct ChartVisibilityItem { public struct ChartVisibilityItem {
var title: String public var title: String
var color: GColor public var color: GColor
public init(title: String, color: GColor) {
static func generateItemsFrames(for chartWidth: CGFloat, items: [ChartVisibilityItem]) -> [CGRect] { self.title = title
self.color = color
}
public static func generateItemsFrames(for chartWidth: CGFloat, items: [ChartVisibilityItem]) -> [CGRect] {
var previousPoint = CGPoint(x: ChatVisibilityItemConstants.insets.left, y: ChatVisibilityItemConstants.insets.top) var previousPoint = CGPoint(x: ChatVisibilityItemConstants.insets.left, y: ChatVisibilityItemConstants.insets.top)
var frames: [CGRect] = [] var frames: [CGRect] = []
for item in items { for item in items {
let labelSize = textSize(with: item.title, font: ChatVisibilityItemConstants.textFont) let labelSize = textSize(with: item.title, font: ChatVisibilityItemConstants.textFont)
let width = (labelSize.width + ChatVisibilityItemConstants.labelTextApproxInsets).rounded(.up) let width = (labelSize.width + ChatVisibilityItemConstants.labelTextApproxInsets).rounded(.up)
@@ -35,7 +37,7 @@ struct ChartVisibilityItem {
} }
previousPoint.x += width + ChatVisibilityItemConstants.itemSpacing previousPoint.x += width + ChatVisibilityItemConstants.itemSpacing
} }
return frames return frames
} }

View File

@@ -128,6 +128,7 @@ public class BaseChartController: ChartThemeContainer {
return ChartVisibilityItem(title: value.name, color: value.color) return ChartVisibilityItem(title: value.name, color: value.color)
} }
let frames = ChartVisibilityItem.generateItemsFrames(for: width, items: items) let frames = ChartVisibilityItem.generateItemsFrames(for: width, items: items)
guard let lastFrame = frames.last else { return height } guard let lastFrame = frames.last else { return height }
height += lastFrame.maxY height += lastFrame.maxY

View File

@@ -26,11 +26,13 @@ extension NSAttributedString {
} }
func textSize(with string: String, font: NSFont) -> CGSize { func textSize(with string: String, font: NSFont) -> CGSize {
let attributedString:NSAttributedString = NSAttributedString(string: string, attributes: [.font : font]) let attributedString:NSAttributedString = NSAttributedString(string: string, attributes: [.font : font])
let layout = LabelNode.layoutText(attributedString, CGSize(width: CGFloat.greatestFiniteMagnitude, height: CGFloat.greatestFiniteMagnitude)) let layout = LabelNode.layoutText(attributedString, CGSize(width: CGFloat.greatestFiniteMagnitude, height: CGFloat.greatestFiniteMagnitude))
var size:CGSize = layout.0.size var size:CGSize = layout.0.size
size.width = ceil(size.width) size.width = ceil(size.width)
size.height = ceil(size.height) size.height = ceil(size.height)
return size return size
} }