functional button fixes

This commit is contained in:
True Zhuanjia committed 2026-02-09 16:41:48 +08:00
1 parent 0152f48886
commit c3fcff8d29
2 files changed
+13 -12

No files matched your search

+10 -9
View File
@@ -157,7 +157,7 @@ import SVGKit
@objc public var hasAutoTap: Bool = false @objc public var hasAutoTap: Bool = false
@objc public var isMousePadWithButtonActions: Bool = false @objc public var isMousePadWithButtonActions: Bool = false
@objc public var hasInertia: Bool = false @objc public var hasInertia: Bool = false
@objc public var isFuncationalButton: Bool = false @objc public var isFunctionalButton: Bool = false
@objc public var hasHapticFeedback: Bool = false @objc public var hasHapticFeedback: Bool = false
@objc public var isDirectionPad: Bool = false @objc public var isDirectionPad: Bool = false
@objc public var hasL3R3Indicator: Bool = false @objc public var hasL3R3Indicator: Bool = false
@@ -392,16 +392,16 @@ import SVGKit
if !self.motionControlButtonString.isEmpty { if !self.motionControlButtonString.isEmpty {
self.buttonMode = .tapToToggle self.buttonMode = .tapToToggle
} }
if !self.functionalButtonString.isEmpty {
self.buttonMode = .movable
if self.functionalButtonString == "PENCILHOVER" {self.buttonMode = .regular}
}
if self.cmdString.contains("BRUSH"){ if self.cmdString.contains("BRUSH"){
self.functionalButtonString = "BRUSH" self.functionalButtonString = "BRUSH"
} }
if self.cmdString.contains("ERASER"){ if self.cmdString.contains("ERASER"){
self.functionalButtonString = "ERASER" self.functionalButtonString = "ERASER"
} }
if !self.functionalButtonString.isEmpty {
self.buttonMode = .movable
if self.functionalButtonString == "PENCILHOVER" {self.buttonMode = .regular}
}
} }
if self.widgetType == WidgetTypeEnum.touchPad { if self.widgetType == WidgetTypeEnum.touchPad {
@@ -460,7 +460,7 @@ import SVGKit
self.hasAutoTap = self.widgetType == WidgetTypeEnum.button && self.functionalButtonString == "" && self.motionControlButtonString == "" self.hasAutoTap = self.widgetType == WidgetTypeEnum.button && self.functionalButtonString == "" && self.motionControlButtonString == ""
self.isMousePadWithButtonActions = CommandManager.mousePadWithButtonActions.contains(self.touchPadString) && widgetType == WidgetTypeEnum.touchPad self.isMousePadWithButtonActions = CommandManager.mousePadWithButtonActions.contains(self.touchPadString) && widgetType == WidgetTypeEnum.touchPad
self.hasInertia = CommandManager.inertialTouchPads.contains(self.touchPadString) self.hasInertia = CommandManager.inertialTouchPads.contains(self.touchPadString)
self.isFuncationalButton = self.functionalButtonString != "" self.isFunctionalButton = self.functionalButtonString != ""
self.hasHapticFeedback = !self.comboButtonStrings.isEmpty || CommandManager.directionPads.contains(self.touchPadString) self.hasHapticFeedback = !self.comboButtonStrings.isEmpty || CommandManager.directionPads.contains(self.touchPadString)
self.isDirectionPad = self.widgetType == WidgetTypeEnum.touchPad && CommandManager.directionPads.contains(self.touchPadString) self.isDirectionPad = self.widgetType == WidgetTypeEnum.touchPad && CommandManager.directionPads.contains(self.touchPadString)
self.isStickWheel = self.widgetType == WidgetTypeEnum.touchPad && CommandManager.stickWheels.contains(self.touchPadString) self.isStickWheel = self.widgetType == WidgetTypeEnum.touchPad && CommandManager.stickWheels.contains(self.touchPadString)
@@ -2028,7 +2028,7 @@ import SVGKit
if !captured || !isSlidableButton {return} if !captured || !isSlidableButton {return}
// print("UIButton: \(widget.buttonLabel) out test, \(widget.touchPadString), \(CACurrentMediaTime())") // print("UIButton: \(widget.buttonLabel) out test, \(widget.touchPadString), \(CACurrentMediaTime())")
if(widget.buttonMode == .slideToToggle || widget.buttonMode == .movable){ if(widget.buttonMode == .slideToToggle || widget.buttonMode == .movable){
widget.handleFingerUpOrSlideout(leaveFunctionalButtonAlone: widget.isFuncationalButton) widget.handleFingerUpOrSlideout(leaveFunctionalButtonAlone: widget.isFunctionalButton)
setLock.lock() setLock.lock()
widget.capturedTouches.remove(touch) widget.capturedTouches.remove(touch)
setLock.unlock() setLock.unlock()
@@ -2874,9 +2874,10 @@ import SVGKit
widget.parentSequence = folder.sequence widget.parentSequence = folder.sequence
folder.sequenceSet.insert(widget.sequence) folder.sequenceSet.insert(widget.sequence)
widget.isHidden = folder.folded widget.isHidden = folder.folded
if folder.buttonMode == .slideAndHold, widget.isFuncationalButton { /*
if folder.buttonMode == .slideAndHold, widget.isFunctionalButton {
widget.buttonMode = .slideToToggle widget.buttonMode = .slideToToggle
} } */
} }
@objc static func setFree(widget:OnScreenWidgetView){ @objc static func setFree(widget:OnScreenWidgetView){
@@ -1114,11 +1114,11 @@ typedef NS_ENUM(NSUInteger, DecelerationRateSliderMode) {
self.buttonModeStack.hidden = selectedWidgetView.widgetType != WidgetTypeEnumButton; self.buttonModeStack.hidden = selectedWidgetView.widgetType != WidgetTypeEnumButton;
// bool slideToToggleEnabled = !selectedWidgetView.isFuncationalButton || selectedWidgetView.isFolder; // bool slideToToggleEnabled = !selectedWidgetView.isFuncationalButton || selectedWidgetView.isFolder;
// [self.buttonModeSelector setEnabled:!selectedWidgetView.isFuncationalButton forSegmentAtIndex:0]; // [self.buttonModeSelector setEnabled:!selectedWidgetView.isFuncationalButton forSegmentAtIndex:0];
[self.buttonModeSelector setEnabled:true forSegmentAtIndex:slideToToggle]; [self.buttonModeSelector setEnabled:!selectedWidgetView.isFunctionalButton forSegmentAtIndex:slideToToggle];
bool slideAndHoldEnabled = !selectedWidgetView.isFuncationalButton || selectedWidgetView.isFolder; bool slideAndHoldEnabled = !selectedWidgetView.isFunctionalButton || selectedWidgetView.isFolder;
[self.buttonModeSelector setEnabled:slideAndHoldEnabled forSegmentAtIndex:slideAndHold]; [self.buttonModeSelector setEnabled:slideAndHoldEnabled forSegmentAtIndex:slideAndHold];
[self.buttonModeSelector setEnabled:!selectedWidgetView.isFolder forSegmentAtIndex:regular]; [self.buttonModeSelector setEnabled:!selectedWidgetView.isFolder forSegmentAtIndex:regular];
[self.buttonModeSelector setEnabled:!selectedWidgetView.isFuncationalButton [self.buttonModeSelector setEnabled:!selectedWidgetView.isFunctionalButton
|| [selectedWidgetView.functionalButtonString containsString:@"ABSTCHDRAG"] || [selectedWidgetView.functionalButtonString containsString:@"ABSTCHDRAG"]
forSegmentAtIndex:tapToToggle]; forSegmentAtIndex:tapToToggle];
[self.buttonModeSelector setSelectedSegmentIndex:selectedWidgetView.buttonMode]; [self.buttonModeSelector setSelectedSegmentIndex:selectedWidgetView.buttonMode];