-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathbigsurcenter.xm
44 lines (35 loc) · 1.28 KB
/
bigsurcenter.xm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#import "shared.h"
#import "ABSManager.h"
float oldBigSurSliderLevel;
ABSManager* bigSurManager;
%group BigSurCenter
%hook SCDisplaySliderModuleViewController
-(void)viewDidLoad {
%orig;
[bigSurManager setBigSurSliderController:self];
}
-(void)sliderValueChanged:(UIPanGestureRecognizer*)recognizer {
if ([recognizer state] == UIGestureRecognizerStateBegan)
oldBigSurSliderLevel = bigSurManager.currentSliderLevel;
[bigSurManager moveWithGestureRecognizer:recognizer withOldSliderLevel:oldBigSurSliderLevel withView:self.sliderView withYDirection:NO];
[self updateSliderValue];
}
-(void)updateSliderValue {
bigSurManager.whitePointShouldBeEnabled ? [self setImageForFraction:0.f] : [self setImageForFraction:1.f];
float width;
if ([self style] == 0) { // iOS slider
width = self.view.frame.size.width;
} else { // macOS Slider
width = self.knobView.superview.superview.frame.size.width - self.knobView.frame.size.width;
}
float newConstraintConstant = -width + bigSurManager.currentSliderLevel * width;
[self.sliderLeadingConstraint setConstant:newConstraintConstant];
[self.view setNeedsLayout];
}
%end
%end
extern "C" void initBigSurCenter() {
bigSurManager = [ABSManager shared];
oldBigSurSliderLevel = bigSurManager.currentSliderLevel;
%init(BigSurCenter);
}