mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-22 14:20:20 +00:00
Charts improvements
This commit is contained in:
@@ -23,173 +23,179 @@ public typealias GColor = NSColor
|
||||
typealias NSEdgeInsets = UIEdgeInsets
|
||||
#endif
|
||||
|
||||
public protocol GColorModeContainer {
|
||||
func apply(colorMode: GColorMode, animated: Bool)
|
||||
public protocol ChartThemeContainer {
|
||||
func apply(theme: ChartTheme, animated: Bool)
|
||||
}
|
||||
|
||||
public enum GColorMode {
|
||||
case day
|
||||
case night
|
||||
}
|
||||
|
||||
extension GColorMode {
|
||||
public var chartTitleColor: GColor { // Текст с датой на чарте
|
||||
switch self {
|
||||
case .day: return .black
|
||||
case .night: return .white
|
||||
}
|
||||
}
|
||||
|
||||
public var actionButtonColor: GColor { // Кнопка Zoom Out/ Смена режима день/ночь
|
||||
switch self {
|
||||
case .day: return GColor(red: 53/255.0, green: 120/255.0, blue: 246/255.0, alpha: 1.0)
|
||||
case .night: return GColor(red: 84/255.0, green: 164/255.0, blue: 247/255.0, alpha: 1.0)
|
||||
}
|
||||
}
|
||||
|
||||
public var tableBackgroundColor: GColor {
|
||||
switch self {
|
||||
case .day: return GColor(red: 239/255.0, green: 239/255.0, blue: 244/255.0, alpha: 1.0)
|
||||
case .night: return GColor(red: 24/255.0, green: 34/255.0, blue: 45/255.0, alpha: 1.0)
|
||||
}
|
||||
public class ChartTheme {
|
||||
public let chartTitleColor: GColor
|
||||
public let actionButtonColor: GColor
|
||||
public let tableBackgroundColor: GColor
|
||||
public let chartBackgroundColor: GColor
|
||||
public let tableSeparatorColor: GColor
|
||||
public let chartLabelsColor: GColor
|
||||
public let chartHelperLinesColor: GColor
|
||||
public let chartStrongLinesColor: GColor
|
||||
public let barChartStrongLinesColor: GColor
|
||||
public let chartDetailsTextColor: GColor
|
||||
public let chartDetailsArrowColor: GColor
|
||||
public let chartDetailsViewColor: GColor
|
||||
public let descriptionActionColor: GColor
|
||||
public let rangeViewFrameColor: GColor
|
||||
public let rangeViewTintColor: GColor
|
||||
public let rangeViewMarkerColor: GColor
|
||||
|
||||
public init(chartTitleColor: GColor, actionButtonColor: GColor, tableBackgroundColor: GColor, chartBackgroundColor: GColor, tableSeparatorColor: GColor, chartLabelsColor: GColor, chartHelperLinesColor: GColor, chartStrongLinesColor: GColor, barChartStrongLinesColor: GColor, chartDetailsTextColor: GColor, chartDetailsArrowColor: GColor, chartDetailsViewColor: GColor, descriptionActionColor: GColor, rangeViewFrameColor: GColor, rangeViewTintColor: GColor, rangeViewMarkerColor: GColor) {
|
||||
self.chartTitleColor = chartTitleColor
|
||||
self.actionButtonColor = actionButtonColor
|
||||
self.tableBackgroundColor = tableBackgroundColor
|
||||
self.chartBackgroundColor = chartBackgroundColor
|
||||
self.tableSeparatorColor = tableSeparatorColor
|
||||
self.chartLabelsColor = chartLabelsColor
|
||||
self.chartHelperLinesColor = chartHelperLinesColor
|
||||
self.chartStrongLinesColor = chartStrongLinesColor
|
||||
self.barChartStrongLinesColor = barChartStrongLinesColor
|
||||
self.chartDetailsTextColor = chartDetailsTextColor
|
||||
self.chartDetailsArrowColor = chartDetailsArrowColor
|
||||
self.chartDetailsViewColor = chartDetailsViewColor
|
||||
self.descriptionActionColor = descriptionActionColor
|
||||
self.rangeViewFrameColor = rangeViewFrameColor
|
||||
self.rangeViewTintColor = rangeViewTintColor
|
||||
self.rangeViewMarkerColor = rangeViewMarkerColor
|
||||
}
|
||||
|
||||
public var chartBackgroundColor: GColor {
|
||||
switch self {
|
||||
case .day: return GColor(red: 254/255.0, green: 254/255.0, blue: 254/255.0, alpha: 1.0)
|
||||
case .night: return GColor(red: 34/255.0, green: 47/255.0, blue: 63/255.0, alpha: 1.0)
|
||||
}
|
||||
}
|
||||
public static var defaultDayTheme = ChartTheme(chartTitleColor: GColor.black, actionButtonColor: GColor(red: 53/255.0, green: 120/255.0, blue: 246/255.0, alpha: 1.0), tableBackgroundColor: GColor(red: 239/255.0, green: 239/255.0, blue: 244/255.0, alpha: 1.0), chartBackgroundColor: GColor(red: 254/255.0, green: 254/255.0, blue: 254/255.0, alpha: 1.0), tableSeparatorColor: GColor(red: 200/255.0, green: 199/255.0, blue: 204/255.0, alpha: 1.0), chartLabelsColor: GColor(red: 37/255.0, green: 37/255.0, blue: 41/255.0, alpha: 0.5), chartHelperLinesColor: GColor(red: 24/255.0, green: 45/255.0, blue: 59/255.0, alpha: 0.1), chartStrongLinesColor: GColor(red: 24/255.0, green: 45/255.0, blue: 59/255.0, alpha: 0.35), barChartStrongLinesColor: GColor(red: 37/255.0, green: 37/255.0, blue: 41/255.0, alpha: 0.2), chartDetailsTextColor: GColor(red: 109/255.0, green: 109/255.0, blue: 114/255.0, alpha: 1.0), chartDetailsArrowColor: GColor(red: 197/255.0, green: 199/255.0, blue: 205/255.0, alpha: 1.0), chartDetailsViewColor: GColor(red: 245/255.0, green: 245/255.0, blue: 251/255.0, alpha: 1.0), descriptionActionColor: GColor(red: 1/255.0, green: 125/255.0, blue: 229/255.0, alpha: 1.0), rangeViewFrameColor: GColor(red: 202/255.0, green: 212/255.0, blue: 222/255.0, alpha: 1.0), rangeViewTintColor: GColor(red: 239/255.0, green: 239/255.0, blue: 244/255.0, alpha: 0.5), rangeViewMarkerColor: GColor.white)
|
||||
|
||||
public var sectionTitleColor: GColor {
|
||||
switch self {
|
||||
case .day: return GColor(red: 109/255.0, green: 109/255.0, blue: 114/255.0, alpha: 1.0)
|
||||
case .night: return GColor(red: 133/255.0, green: 150/255.0, blue: 171/255.0, alpha: 1.0)
|
||||
}
|
||||
}
|
||||
|
||||
public var tableSeparatorColor: GColor {
|
||||
switch self {
|
||||
case .day: return GColor(red: 200/255.0, green: 199/255.0, blue: 204/255.0, alpha: 1.0)
|
||||
case .night: return GColor(red: 18/255.0, green: 26/255.0, blue: 35/255.0, alpha: 1.0)
|
||||
}
|
||||
}
|
||||
|
||||
public var chartLabelsColor: GColor {
|
||||
switch self {
|
||||
case .day: return GColor(red: 37/255.0, green: 37/255.0, blue: 41/255.0, alpha: 0.5)
|
||||
case .night: return GColor(red: 186/255.0, green: 204/255.0, blue: 225/255.0, alpha: 0.6)
|
||||
}
|
||||
}
|
||||
|
||||
public var chartHelperLinesColor: GColor {
|
||||
switch self {
|
||||
case .day: return GColor(red: 24/255.0, green: 45/255.0, blue: 59/255.0, alpha: 0.1)
|
||||
case .night: return GColor(red: 133/255.0, green: 150/255.0, blue: 171/255.0, alpha: 0.20)
|
||||
}
|
||||
}
|
||||
|
||||
public var chartStrongLinesColor: GColor {
|
||||
switch self {
|
||||
case .day: return GColor(red: 24/255.0, green: 45/255.0, blue: 59/255.0, alpha: 0.35)
|
||||
case .night: return GColor(red: 186/255.0, green: 204/255.0, blue: 225/255.0, alpha: 0.45)
|
||||
}
|
||||
}
|
||||
|
||||
public var barChartStrongLinesColor: GColor {
|
||||
switch self {
|
||||
case .day: return GColor(red: 37/255.0, green: 37/255.0, blue: 41/255.0, alpha: 0.2)
|
||||
case .night: return GColor(red: 186/255.0, green: 204/255.0, blue: 225/255.0, alpha: 0.45)
|
||||
}
|
||||
}
|
||||
|
||||
public var chartDetailsTextColor: GColor {
|
||||
switch self {
|
||||
case .day: return GColor(red: 109/255.0, green: 109/255.0, blue: 114/255.0, alpha: 1.0)
|
||||
case .night: return GColor(red: 254/255.0, green: 254/255.0, blue: 254/255.0, alpha: 1.0)
|
||||
}
|
||||
}
|
||||
|
||||
public var chartDetailsArrowColor: GColor {
|
||||
switch self {
|
||||
case .day: return GColor(red: 197/255.0, green: 199/255.0, blue: 205/255.0, alpha: 1.0)
|
||||
case .night: return GColor(red: 76/255.0, green: 84/255.0, blue: 96/255.0, alpha: 1.0)
|
||||
}
|
||||
}
|
||||
|
||||
public var chartDetailsViewColor: GColor {
|
||||
switch self {
|
||||
case .day: return GColor(red: 245/255.0, green: 245/255.0, blue: 251/255.0, alpha: 1.0)
|
||||
case .night: return GColor(red: 25/255.0, green: 35/255.0, blue: 47/255.0, alpha: 1.0)
|
||||
}
|
||||
}
|
||||
|
||||
public var descriptionChatNameColor: GColor {
|
||||
switch self {
|
||||
case .day: return .black
|
||||
case .night: return GColor(red: 254/255.0, green: 254/255.0, blue: 254/255.0, alpha: 1.0)
|
||||
}
|
||||
}
|
||||
|
||||
public var descriptionActionColor: GColor {
|
||||
switch self {
|
||||
case .day: return GColor(red: 1/255.0, green: 125/255.0, blue: 229/255.0, alpha: 1.0)
|
||||
case .night: return GColor(red: 24/255.0, green: 145/255.0, blue: 255/255.0, alpha: 1.0)
|
||||
}
|
||||
}
|
||||
|
||||
public var rangeViewBackgroundColor: GColor {
|
||||
switch self {
|
||||
case .day: return GColor(red: 254/255.0, green: 254/255.0, blue: 254/255.0, alpha: 1.0)
|
||||
case .night: return GColor(red: 34/255.0, green: 47/255.0, blue: 63/255.0, alpha: 1.0)
|
||||
}
|
||||
}
|
||||
|
||||
public var rangeViewFrameColor: GColor {
|
||||
switch self {
|
||||
case .day: return GColor(red: 202/255.0, green: 212/255.0, blue: 222/255.0, alpha: 1.0)
|
||||
case .night: return GColor(red: 53/255.0, green: 70/255.0, blue: 89/255.0, alpha: 1.0)
|
||||
}
|
||||
}
|
||||
|
||||
public var rangeViewTintColor: GColor {
|
||||
switch self {
|
||||
case .day: return GColor(red: 239/255.0, green: 239/255.0, blue: 244/255.0, alpha: 0.5)
|
||||
case .night: return GColor(red: 24/255.0, green: 34/255.0, blue: 45/255.0, alpha: 0.5)
|
||||
}
|
||||
}
|
||||
|
||||
public var rangeViewMarkerColor: GColor {
|
||||
switch self {
|
||||
case .day: return GColor.white
|
||||
case .night: return GColor.white
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public var viewTintColor: GColor {
|
||||
switch self {
|
||||
case .day: return .black
|
||||
case .night: return GColor(red: 254/255.0, green: 254/255.0, blue: 254/255.0, alpha: 1.0)
|
||||
}
|
||||
}
|
||||
// public var actionButtonColor: GColor { // Кнопка Zoom Out/ Смена режима день/ночь
|
||||
// switch self {
|
||||
// case .day: return GColor(red: 53/255.0, green: 120/255.0, blue: 246/255.0, alpha: 1.0)
|
||||
// case .night: return GColor(red: 84/255.0, green: 164/255.0, blue: 247/255.0, alpha: 1.0)
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// public var tableBackgroundColor: GColor {
|
||||
// switch self {
|
||||
// case .day: return GColor(red: 239/255.0, green: 239/255.0, blue: 244/255.0, alpha: 1.0)
|
||||
// case .night: return GColor(red: 24/255.0, green: 34/255.0, blue: 45/255.0, alpha: 1.0)
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// public var chartBackgroundColor: GColor {
|
||||
// switch self {
|
||||
// case .day: return GColor(red: 254/255.0, green: 254/255.0, blue: 254/255.0, alpha: 1.0)
|
||||
// case .night: return GColor(red: 34/255.0, green: 47/255.0, blue: 63/255.0, alpha: 1.0)
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// public var tableSeparatorColor: GColor {
|
||||
// switch self {
|
||||
// case .day: return GColor(red: 200/255.0, green: 199/255.0, blue: 204/255.0, alpha: 1.0)
|
||||
// case .night: return GColor(red: 18/255.0, green: 26/255.0, blue: 35/255.0, alpha: 1.0)
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// public var chartLabelsColor: GColor {
|
||||
// switch self {
|
||||
// case .day: return GColor(red: 37/255.0, green: 37/255.0, blue: 41/255.0, alpha: 0.5)
|
||||
// case .night: return GColor(red: 186/255.0, green: 204/255.0, blue: 225/255.0, alpha: 0.6)
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// public var chartHelperLinesColor: GColor {
|
||||
// switch self {
|
||||
// case .day: return GColor(red: 24/255.0, green: 45/255.0, blue: 59/255.0, alpha: 0.1)
|
||||
// case .night: return GColor(red: 133/255.0, green: 150/255.0, blue: 171/255.0, alpha: 0.20)
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// public var chartStrongLinesColor: GColor {
|
||||
// switch self {
|
||||
// case .day: return GColor(red: 24/255.0, green: 45/255.0, blue: 59/255.0, alpha: 0.35)
|
||||
// case .night: return GColor(red: 186/255.0, green: 204/255.0, blue: 225/255.0, alpha: 0.45)
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// public var barChartStrongLinesColor: GColor {
|
||||
// switch self {
|
||||
// case .day: return GColor(red: 37/255.0, green: 37/255.0, blue: 41/255.0, alpha: 0.2)
|
||||
// case .night: return GColor(red: 186/255.0, green: 204/255.0, blue: 225/255.0, alpha: 0.45)
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// public var chartDetailsTextColor: GColor {
|
||||
// switch self {
|
||||
// case .day: return GColor(red: 109/255.0, green: 109/255.0, blue: 114/255.0, alpha: 1.0)
|
||||
// case .night: return GColor(red: 254/255.0, green: 254/255.0, blue: 254/255.0, alpha: 1.0)
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// public var chartDetailsArrowColor: GColor {
|
||||
// switch self {
|
||||
// case .day: return GColor(red: 197/255.0, green: 199/255.0, blue: 205/255.0, alpha: 1.0)
|
||||
// case .night: return GColor(red: 76/255.0, green: 84/255.0, blue: 96/255.0, alpha: 1.0)
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// public var chartDetailsViewColor: GColor {
|
||||
// switch self {
|
||||
// case .day: return GColor(red: 245/255.0, green: 245/255.0, blue: 251/255.0, alpha: 1.0)
|
||||
// case .night: return GColor(red: 25/255.0, green: 35/255.0, blue: 47/255.0, alpha: 1.0)
|
||||
// }
|
||||
// }
|
||||
//
|
||||
//
|
||||
// public var descriptionActionColor: GColor {
|
||||
// switch self {
|
||||
// case .day: return GColor(red: 1/255.0, green: 125/255.0, blue: 229/255.0, alpha: 1.0)
|
||||
// case .night: return GColor(red: 24/255.0, green: 145/255.0, blue: 255/255.0, alpha: 1.0)
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// public var rangeViewBackgroundColor: GColor {
|
||||
// switch self {
|
||||
// case .day: return GColor(red: 254/255.0, green: 254/255.0, blue: 254/255.0, alpha: 1.0)
|
||||
// case .night: return GColor(red: 34/255.0, green: 47/255.0, blue: 63/255.0, alpha: 1.0)
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// public var rangeViewFrameColor: GColor {
|
||||
// switch self {
|
||||
// case .day: return GColor(red: 202/255.0, green: 212/255.0, blue: 222/255.0, alpha: 1.0)
|
||||
// case .night: return GColor(red: 53/255.0, green: 70/255.0, blue: 89/255.0, alpha: 1.0)
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// public var rangeViewTintColor: GColor {
|
||||
// switch self {
|
||||
// case .day: return GColor(red: 239/255.0, green: 239/255.0, blue: 244/255.0, alpha: 0.5)
|
||||
// case .night: return GColor(red: 24/255.0, green: 34/255.0, blue: 45/255.0, alpha: 0.5)
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// public var rangeViewMarkerColor: GColor {
|
||||
// switch self {
|
||||
// case .day: return GColor.white
|
||||
// case .night: return GColor.white
|
||||
// }
|
||||
// }
|
||||
//
|
||||
//
|
||||
|
||||
public var rangeCropImage: GImage? {
|
||||
switch self {
|
||||
case .day:
|
||||
// case .day:
|
||||
let image = GImage(named: "selection_frame_light")
|
||||
#if os(macOS)
|
||||
image?.resizingMode = .stretch
|
||||
image?.capInsets = NSEdgeInsets(top: 15, left: 15, bottom: 15, right: 15)
|
||||
#endif
|
||||
return image
|
||||
case .night:
|
||||
let image = GImage(named: "selection_frame_dark")
|
||||
#if os(macOS)
|
||||
image?.resizingMode = .stretch
|
||||
image?.capInsets = NSEdgeInsets(top: 15, left: 15, bottom: 15, right: 15)
|
||||
#endif
|
||||
return image
|
||||
}
|
||||
// case .night:
|
||||
// let image = GImage(named: "selection_frame_dark")
|
||||
// #if os(macOS)
|
||||
// image?.resizingMode = .stretch
|
||||
// image?.capInsets = NSEdgeInsets(top: 15, left: 15, bottom: 15, right: 15)
|
||||
// #endif
|
||||
// return image
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user