[kit] Pass colorStyle through too!
This commit is contained in:
parent
b73e4c7af1
commit
88c97d4bf5
3 changed files with 46 additions and 15 deletions
|
@ -259,6 +259,11 @@ public class Field {
|
|||
func preferencesDidChange(note: Notification) {
|
||||
guard let userInfo = note.userInfo else { return }
|
||||
var didChange = false
|
||||
if let style = userInfo["colorStyle"] as? ColorStyle {
|
||||
parameters.colorStyle = style
|
||||
defaults.colorStyle = style
|
||||
didChange = true
|
||||
}
|
||||
if let color = userInfo["color0"] as? NSColor {
|
||||
let cf = Float4(color: color)
|
||||
parameters.color0 = cf
|
||||
|
|
|
@ -9,7 +9,24 @@
|
|||
import Cocoa
|
||||
|
||||
extension UserDefaults {
|
||||
var color0: Float4? {
|
||||
public var colorStyle: ColorStyle? {
|
||||
get {
|
||||
let value = integer(forKey: "colorStyle")
|
||||
if let colorStyle = ColorStyle(rawValue: UInt16(value)) {
|
||||
return colorStyle
|
||||
}
|
||||
return nil
|
||||
}
|
||||
set {
|
||||
if let style = newValue {
|
||||
set(style.rawValue, forKey: "colorStyle")
|
||||
} else {
|
||||
set(nil as Any?, forKey: "colorStyle")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public var color0: Float4? {
|
||||
get {
|
||||
return float4(forKey: "color0")
|
||||
}
|
||||
|
@ -18,7 +35,7 @@ extension UserDefaults {
|
|||
}
|
||||
}
|
||||
|
||||
var color1: Float4? {
|
||||
public var color1: Float4? {
|
||||
get {
|
||||
return float4(forKey: "color1")
|
||||
}
|
||||
|
@ -27,7 +44,7 @@ extension UserDefaults {
|
|||
}
|
||||
}
|
||||
|
||||
var color2: Float4? {
|
||||
public var color2: Float4? {
|
||||
get {
|
||||
return float4(forKey: "color2")
|
||||
}
|
||||
|
@ -36,7 +53,7 @@ extension UserDefaults {
|
|||
}
|
||||
}
|
||||
|
||||
var color3: Float4? {
|
||||
public var color3: Float4? {
|
||||
get {
|
||||
return float4(forKey: "color3")
|
||||
}
|
||||
|
|
|
@ -118,20 +118,18 @@ class PreferencesViewController: NSViewController {
|
|||
// MARK: - Actions
|
||||
|
||||
func colorPanelDidUpdateValue(_ colorPanel: NSColorPanel) {
|
||||
var info = [String:NSColor]()
|
||||
for (idx, cv) in colorViews.enumerated() {
|
||||
if cv.colorWell.isActive {
|
||||
info["color\(idx)"] = colorPanel.color
|
||||
} else {
|
||||
info["color\(idx)"] = cv.colorWell.color
|
||||
}
|
||||
}
|
||||
NotificationCenter.default.post(name: PreferencesDidChange_Color, object: nil, userInfo: info)
|
||||
postColorNotification()
|
||||
}
|
||||
|
||||
func styleDidUpdate(sender: NSMenuItem) {
|
||||
guard let menu = styleMenu.menu else { return }
|
||||
let idx = menu.index(of: sender)
|
||||
updateColorViewVisibility()
|
||||
postColorNotification()
|
||||
}
|
||||
|
||||
// MARK: - Private
|
||||
|
||||
func updateColorViewVisibility() {
|
||||
let idx = styleMenu.indexOfSelectedItem
|
||||
guard idx != -1 && idx < PreferencesViewController.styleItems.count else { return }
|
||||
let styleItem = PreferencesViewController.styleItems[idx]
|
||||
for (idx, colorView) in colorViews.enumerated() {
|
||||
|
@ -143,6 +141,17 @@ class PreferencesViewController: NSViewController {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
func postColorNotification() {
|
||||
var info = [String:Any]()
|
||||
if let item = styleMenu.selectedItem {
|
||||
info["colorStyle"] = ColorStyle(rawValue: UInt16(item.tag))
|
||||
}
|
||||
for (idx, cv) in colorViews.enumerated() {
|
||||
info["color\(idx)"] = cv.colorWell.color
|
||||
}
|
||||
NotificationCenter.default.post(name: PreferencesDidChange_Color, object: nil, userInfo: info)
|
||||
}
|
||||
}
|
||||
|
||||
class ColorView: NSView {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue