highlight color fixes

This commit is contained in:
True Zhuanjia committed 2026-04-04 00:43:38 +08:00
1 parent 60e92c458e
commit 7cd857a38b
1 file changed
+36 -27
+36 -27
View File
@@ -267,7 +267,13 @@ import SVGKit
// border & visual effect // border & visual effect
private var minimumBorderAlpha: CGFloat = 0.19 private var minimumBorderAlpha: CGFloat = 0.19
private var defaultBorderColor: CGColor = UIColor(white: 0.2, alpha: 0.3).cgColor private var defaultBorderColor: CGColor = UIColor(white: 0.2, alpha: 0.3).cgColor
private let voidlinkPurple: CGColor = UIColor(red: 0.5, green: 0.5, blue: 1.0, alpha: 0.86).cgColor // private let voidlinkPurple: CGColor = UIColor(red: 0.5, green: 0.5, blue: 1.0, alpha: 0.86).cgColor
private let standardHighlightColor: UIColor = UIColor(
red: 0.46,
green: 0.74,
blue: 0.98,
alpha: 0.92
)
//slide buttons //slide buttons
private var capturedTouches: NSMutableSet private var capturedTouches: NSMutableSet
@@ -294,7 +300,7 @@ import SVGKit
@objc public var bulkMoveEnabled: Bool = false @objc public var bulkMoveEnabled: Bool = false
@objc public var sequenceSet: Set<Int16> = Set() @objc public var sequenceSet: Set<Int16> = Set()
@objc public var parentSequence: Int16 = -1 @objc public var parentSequence: Int16 = -1
private weak var capturer: OnScreenWidgetView? static weak var capturer: OnScreenWidgetView?
@objc init(cmdString: String, buttonLabel: String, shape:String, profile:OSCProfile) { @objc init(cmdString: String, buttonLabel: String, shape:String, profile:OSCProfile) {
@@ -644,7 +650,7 @@ import SVGKit
@objc public func tweakHighlightAlpha(alpha:CGFloat){ @objc public func tweakHighlightAlpha(alpha:CGFloat){
highlightAlpha = alpha highlightAlpha = alpha
self.buttonDownVisualEffectLayer.borderColor = UIColor(red: 0.5, green: 0.5, blue: 1.0, alpha: highlightAlpha).cgColor self.buttonDownVisualEffectLayer.borderColor = standardHighlightColor.withAlphaComponent(highlightAlpha).cgColor
self.l3r3Indicator.borderColor = self.buttonDownVisualEffectLayer.borderColor self.l3r3Indicator.borderColor = self.buttonDownVisualEffectLayer.borderColor
self.lrudIndicatorBall.borderColor = self.buttonDownVisualEffectLayer.borderColor self.lrudIndicatorBall.borderColor = self.buttonDownVisualEffectLayer.borderColor
self.upIndicator.borderColor = self.buttonDownVisualEffectLayer.borderColor self.upIndicator.borderColor = self.buttonDownVisualEffectLayer.borderColor
@@ -938,7 +944,7 @@ import SVGKit
let path = UIBezierPath(roundedRect: l3r3Indicator.bounds, cornerRadius: l3r3Indicator.cornerRadius) let path = UIBezierPath(roundedRect: l3r3Indicator.bounds, cornerRadius: l3r3Indicator.cornerRadius)
l3r3Indicator.path = path.cgPath l3r3Indicator.path = path.cgPath
l3r3Indicator.borderColor = voidlinkPurple l3r3Indicator.borderColor = standardHighlightColor.cgColor
self.l3r3Indicator.position = CGPointMake(self.bounds.width/2, self.bounds.height/2) self.l3r3Indicator.position = CGPointMake(self.bounds.width/2, self.bounds.height/2)
if !OnScreenWidgetView.isTweakingHighlight {l3r3Indicator.isHidden = true} if !OnScreenWidgetView.isTweakingHighlight {l3r3Indicator.isHidden = true}
@@ -1290,7 +1296,7 @@ import SVGKit
directionLayer.fillColor = UIColor.clear.cgColor directionLayer.fillColor = UIColor.clear.cgColor
let path = UIBezierPath(roundedRect: directionLayer.bounds, cornerRadius: directionLayer.cornerRadius) let path = UIBezierPath(roundedRect: directionLayer.bounds, cornerRadius: directionLayer.cornerRadius)
directionLayer.path = path.cgPath directionLayer.path = path.cgPath
directionLayer.borderColor = voidlinkPurple directionLayer.borderColor = standardHighlightColor.cgColor
directionLayer.position = CGPoint(x: self.bounds.width/2, y: self.bounds.height/2) directionLayer.position = CGPoint(x: self.bounds.width/2, y: self.bounds.height/2)
if directionLayer.superlayer == nil { if directionLayer.superlayer == nil {
self.layer.insertSublayer(directionLayer, below: lrudIndicatorBall) self.layer.insertSublayer(directionLayer, below: lrudIndicatorBall)
@@ -1637,7 +1643,7 @@ import SVGKit
// Set the frame to be larger than the view to expand outward // Set the frame to be larger than the view to expand outward
buttonDownVisualEffectLayer.borderWidth = CGFloat(Int(self.buttonDownVisualEffectStandardWidth * self.highlightSizeFactor / 2) * 2) // set this 0 to hide the visual effect first buttonDownVisualEffectLayer.borderWidth = CGFloat(Int(self.buttonDownVisualEffectStandardWidth * self.highlightSizeFactor / 2) * 2) // set this 0 to hide the visual effect first
buttonDownVisualEffectLayer.borderColor = voidlinkPurple buttonDownVisualEffectLayer.borderColor = standardHighlightColor.cgColor
buttonDownVisualEffectLayer.frame = self.bounds.insetBy(dx: -buttonDownVisualEffectLayer.borderWidth, dy: -buttonDownVisualEffectLayer.borderWidth) // Adjust the inset as needed buttonDownVisualEffectLayer.frame = self.bounds.insetBy(dx: -buttonDownVisualEffectLayer.borderWidth, dy: -buttonDownVisualEffectLayer.borderWidth) // Adjust the inset as needed
buttonDownVisualEffectLayer.cornerRadius = self.layer.cornerRadius + buttonDownVisualEffectLayer.borderWidth buttonDownVisualEffectLayer.cornerRadius = self.layer.cornerRadius + buttonDownVisualEffectLayer.borderWidth
buttonDownVisualEffectLayer.backgroundColor = UIColor.clear.cgColor; buttonDownVisualEffectLayer.backgroundColor = UIColor.clear.cgColor;
@@ -1947,20 +1953,22 @@ import SVGKit
let currentLocation: CGPoint let currentLocation: CGPoint
if OnScreenWidgetView.editMode { if OnScreenWidgetView.editMode {
// self.layer.borderColor = voidlinkPurple // self.layer.borderColor = voidlinkPurple
capturer = nil OnScreenWidgetView.capturer = nil
currentLocation = touch.location(in: superview) currentLocation = touch.location(in: superview)
forEachWidget { (widget) in forEachWidget { (widget) in
guard widget != self else {return} if widget == self {
if widget.isFolder { widget.highlightBorder(highlighted: true, color: standardHighlightColor.cgColor)
if isLocation(currentLocation, in: widget), !self.sequenceSet.contains(widget.sequence) {
// self.layer.borderColor = UIColor.systemYellow.cgColor
widget.highlightBorder(highlighted: true)
capturer = widget
return
}
else {widget.highlightBorder(highlighted: false)}
}
} }
else if widget.isFolder {
if isLocation(currentLocation, in: widget), !self.sequenceSet.contains(widget.sequence), !widget.isHidden {
// self.layer.borderColor = UIColor.systemYellow.cgColor
widget.highlightBorder(highlighted: true)
OnScreenWidgetView.capturer = widget
return
}
else {widget.highlightBorder(highlighted: false)}
}
}
} }
else { else {
currentLocation = touch.location(in: superview) currentLocation = touch.location(in: superview)
@@ -2742,14 +2750,14 @@ import SVGKit
layoutChanges.append(center) layoutChanges.append(center)
} }
if capturer != nil { if OnScreenWidgetView.capturer != nil {
if firstTouchMoved {undoRelocation()} if firstTouchMoved {undoRelocation()}
if let capturer = capturer { if let capturer = OnScreenWidgetView.capturer {
capturer.highlightBorder(highlighted: false) capturer.highlightBorder(highlighted: false)
OnScreenWidgetView.putWidget(self, into: capturer) OnScreenWidgetView.putWidget(self, into: capturer)
} }
} }
capturer = nil OnScreenWidgetView.capturer = nil
guard let superview = superview else { return } guard let superview = superview else { return }
@@ -2856,8 +2864,9 @@ import SVGKit
} }
} }
static private func setBorder(hilighted:Bool, in color:CGColor, for widget:OnScreenWidgetView){ static private func setBorder(highlighted:Bool, in color:CGColor, for widget:OnScreenWidgetView){
if hilighted { let highlighted = highlighted || widget == OnScreenWidgetView.capturer
if highlighted {
widget.layer.borderWidth = 3 widget.layer.borderWidth = 3
widget.layer.borderColor = color widget.layer.borderColor = color
} }
@@ -2869,16 +2878,16 @@ import SVGKit
private func highlightBorder(highlighted:Bool, color:CGColor? = nil) { private func highlightBorder(highlighted:Bool, color:CGColor? = nil) {
if self.isFolder { if self.isFolder {
OnScreenWidgetView.setBorder(hilighted: highlighted, in: UIColor.systemYellow.cgColor, for: self) OnScreenWidgetView.setBorder(highlighted: highlighted, in: UIColor.systemYellow.cgColor, for: self)
self.forEachWidget{ widget in self.forEachWidget{ widget in
if self.sequenceSet.contains(widget.sequence) { if self.sequenceSet.contains(widget.sequence) {
OnScreenWidgetView.setBorder(hilighted: highlighted, in: UIColor.systemYellow.cgColor, for: widget) OnScreenWidgetView.setBorder(highlighted: highlighted, in: UIColor.systemYellow.cgColor, for: widget)
} }
} }
return return
} }
OnScreenWidgetView.setBorder(hilighted: highlighted, in: color ?? voidlinkPurple, for: self) OnScreenWidgetView.setBorder(highlighted: highlighted, in: color ?? standardHighlightColor.cgColor, for: self)
} }
private func isPencilProEnabled() -> Bool { private func isPencilProEnabled() -> Bool {
@@ -3035,7 +3044,7 @@ import SVGKit
} }
private static func putWidget(_ widget:OnScreenWidgetView, into folder:OnScreenWidgetView){ private static func putWidget(_ widget:OnScreenWidgetView, into folder:OnScreenWidgetView){
guard !OnScreenWidgetView.getParentFolders(of: folder).contains(widget) else { return } guard !OnScreenWidgetView.getParentFolders(of: folder).contains(widget), !folder.isHidden else { return }
let parentFolder = OnScreenWidgetView.mapping[widget.parentSequence] let parentFolder = OnScreenWidgetView.mapping[widget.parentSequence]
if parentFolder != nil { if parentFolder != nil {
parentFolder?.sequenceSet.remove(widget.sequence) parentFolder?.sequenceSet.remove(widget.sequence)