1
0
mirror of https://github.com/Toxblh/MTMR.git synced 2026-01-11 09:28:38 +00:00

Merge branch 'master' into align

This commit is contained in:
Serg 2018-04-14 03:00:58 +07:00
commit ccc3a2269b
3 changed files with 22 additions and 6 deletions

View File

@ -6,7 +6,7 @@ import CoreAudio
class BrightnessViewController: NSCustomTouchBarItem { class BrightnessViewController: NSCustomTouchBarItem {
private(set) var sliderItem: NSSlider! private(set) var sliderItem: NSSlider!
init(identifier: NSTouchBarItem.Identifier, image: NSImage? = nil) { init(identifier: NSTouchBarItem.Identifier, refreshInterval: Double, image: NSImage? = nil) {
super.init(identifier: identifier) super.init(identifier: identifier)
let brightness:Double = Double(getBrightness()) let brightness:Double = Double(getBrightness())
sliderItem = NSSlider(value: brightness*100.0, minValue: 0.0, maxValue: 100.0, target: self, action:#selector(BrightnessViewController.sliderValueChanged(_:))) sliderItem = NSSlider(value: brightness*100.0, minValue: 0.0, maxValue: 100.0, target: self, action:#selector(BrightnessViewController.sliderValueChanged(_:)))
@ -16,12 +16,21 @@ class BrightnessViewController: NSCustomTouchBarItem {
} }
self.view = sliderItem self.view = sliderItem
let timer = Timer.scheduledTimer(timeInterval: refreshInterval, target: self, selector: #selector(BrightnessViewController.updateBrightnessSlider), userInfo: nil, repeats: true)
RunLoop.current.add(timer, forMode: RunLoopMode.commonModes)
} }
required init?(coder: NSCoder) { required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented") fatalError("init(coder:) has not been implemented")
} }
@objc func updateBrightnessSlider() {
DispatchQueue.main.async {
self.sliderItem.floatValue = self.getBrightness() * 100
}
}
@objc func sliderValueChanged(_ sender: Any) { @objc func sliderValueChanged(_ sender: Any) {
if let sliderItem = sender as? NSSlider { if let sliderItem = sender as? NSSlider {
setBrightness(level: Float32(sliderItem.intValue)/100.0) setBrightness(level: Float32(sliderItem.intValue)/100.0)

View File

@ -80,6 +80,12 @@ class SupportedTypesHolder {
let item = ItemType.appleScriptTitledButton(source: Source(filePath: scriptPath), refreshInterval: interval ?? 1800.0) let item = ItemType.appleScriptTitledButton(source: Source(filePath: scriptPath), refreshInterval: interval ?? 1800.0)
return (item: item, action: .none, parameters: [:]) return (item: item, action: .none, parameters: [:])
}, },
"brightness": { decoder in
enum CodingKeys: String, CodingKey { case refreshInterval }
let container = try decoder.container(keyedBy: CodingKeys.self)
let interval = try container.decodeIfPresent(Double.self, forKey: .refreshInterval)
return (item: .brightness(refreshInterval: interval ?? 0.5), action: .none, parameters: [])
},
"battery": { decoder in "battery": { decoder in
enum CodingKeys: String, CodingKey { case refreshInterval } enum CodingKeys: String, CodingKey { case refreshInterval }
let container = try decoder.container(keyedBy: CodingKeys.self) let container = try decoder.container(keyedBy: CodingKeys.self)
@ -116,7 +122,7 @@ enum ItemType: Decodable {
case appleScriptTitledButton(source: SourceProtocol, refreshInterval: Double) case appleScriptTitledButton(source: SourceProtocol, refreshInterval: Double)
case timeButton(formatTemplate: String) case timeButton(formatTemplate: String)
case volume() case volume()
case brightness() case brightness(refreshInterval: Double)
private enum CodingKeys: String, CodingKey { private enum CodingKeys: String, CodingKey {
case type case type
@ -152,7 +158,8 @@ enum ItemType: Decodable {
case .volume: case .volume:
self = .volume() self = .volume()
case .brightness: case .brightness:
self = .brightness() let interval = try container.decodeIfPresent(Double.self, forKey: .refreshInterval) ?? 0.5
self = .brightness(refreshInterval: interval)
} }
} }
} }

View File

@ -25,7 +25,7 @@ extension ItemType {
return "com.toxblh.mtmr.timeButton." return "com.toxblh.mtmr.timeButton."
case .volume(): case .volume():
return "com.toxblh.mtmr.volume" return "com.toxblh.mtmr.volume"
case .brightness(): case .brightness(refreshInterval: _):
return "com.toxblh.mtmr.brightness" return "com.toxblh.mtmr.brightness"
} }
} }
@ -142,8 +142,8 @@ class TouchBarController: NSObject, NSTouchBarDelegate {
barItem = TimeTouchBarItem(identifier: identifier, formatTemplate: template) barItem = TimeTouchBarItem(identifier: identifier, formatTemplate: template)
case .volume: case .volume:
barItem = VolumeViewController(identifier: identifier) barItem = VolumeViewController(identifier: identifier)
case .brightness: case .brightness(refreshInterval: let interval):
barItem = BrightnessViewController(identifier: identifier) barItem = BrightnessViewController(identifier: identifier, refreshInterval: interval)
} }
if case .width(let value)? = item.additionalParameters[.width], let widthBarItem = barItem as? CanSetWidth { if case .width(let value)? = item.additionalParameters[.width], let widthBarItem = barItem as? CanSetWidth {
widthBarItem.setWidth(value: value) widthBarItem.setWidth(value: value)