mirror of
https://github.com/Toxblh/MTMR.git
synced 2026-01-11 17:38:38 +00:00
Merge branch 'master' into align
This commit is contained in:
commit
ccc3a2269b
@ -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)
|
||||||
|
|||||||
@ -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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user