mirror of
				https://github.com/SoPat712/YTLitePlus.git
				synced 2025-10-31 04:44:14 -04:00 
			
		
		
		
	added files via upload
This commit is contained in:
		| @@ -0,0 +1,160 @@ | ||||
| // | ||||
| //  FLEXKBToolbarButton.m | ||||
| //  FLEX | ||||
| // | ||||
| //  Created by Tanner on 6/11/17. | ||||
| //  Copyright © 2017 Tanner Bennett. All rights reserved. | ||||
| // | ||||
|  | ||||
| #import "FLEXKBToolbarButton.h" | ||||
| #import "UIFont+FLEX.h" | ||||
| #import "FLEXUtility.h" | ||||
| #import "CALayer+FLEX.h" | ||||
|  | ||||
| @interface FLEXKBToolbarButton () | ||||
| @property (nonatomic      ) NSString *title; | ||||
| @property (nonatomic, copy) FLEXKBToolbarAction buttonPressBlock; | ||||
| /// YES if appearance is set to `default` | ||||
| @property (nonatomic, readonly) BOOL useSystemAppearance; | ||||
| /// YES if the current trait collection is set to dark mode and \c useSystemAppearance is YES | ||||
| @property (nonatomic, readonly) BOOL usingDarkMode; | ||||
| @end | ||||
|  | ||||
| @implementation FLEXKBToolbarButton | ||||
|  | ||||
| + (instancetype)buttonWithTitle:(NSString *)title { | ||||
|     return [[self alloc] initWithTitle:title]; | ||||
| } | ||||
|  | ||||
| + (instancetype)buttonWithTitle:(NSString *)title action:(FLEXKBToolbarAction)eventHandler forControlEvents:(UIControlEvents)controlEvent { | ||||
|     FLEXKBToolbarButton *newButton = [self buttonWithTitle:title]; | ||||
|     [newButton addEventHandler:eventHandler forControlEvents:controlEvent]; | ||||
|     return newButton; | ||||
| } | ||||
|  | ||||
| + (instancetype)buttonWithTitle:(NSString *)title action:(FLEXKBToolbarAction)eventHandler { | ||||
|     return [self buttonWithTitle:title action:eventHandler forControlEvents:UIControlEventTouchUpInside]; | ||||
| } | ||||
|  | ||||
| - (id)initWithTitle:(NSString *)title { | ||||
|     self = [super init]; | ||||
|     if (self) { | ||||
|         _title = title; | ||||
|         self.layer.shadowOffset = CGSizeMake(0, 1); | ||||
|         self.layer.shadowOpacity = 0.35; | ||||
|         self.layer.shadowRadius  = 0; | ||||
|         self.layer.cornerRadius  = 5; | ||||
|         self.clipsToBounds       = NO; | ||||
|         self.titleLabel.font     = [UIFont systemFontOfSize:18.0]; | ||||
|         self.layer.flex_continuousCorners = YES; | ||||
|         [self setTitle:self.title forState:UIControlStateNormal]; | ||||
|         [self sizeToFit]; | ||||
|          | ||||
|         if (@available(iOS 13, *)) { | ||||
|             self.appearance = UIKeyboardAppearanceDefault; | ||||
|         } else { | ||||
|             self.appearance = UIKeyboardAppearanceLight; | ||||
|         } | ||||
|          | ||||
|         CGRect frame = self.frame; | ||||
|         frame.size.width  += title.length < 3 ? 30 : 15; | ||||
|         frame.size.height += 10; | ||||
|         self.frame = frame; | ||||
|     } | ||||
|      | ||||
|     return self; | ||||
| } | ||||
|  | ||||
| - (void)addEventHandler:(FLEXKBToolbarAction)eventHandler forControlEvents:(UIControlEvents)controlEvent { | ||||
|     self.buttonPressBlock = eventHandler; | ||||
|     [self addTarget:self action:@selector(buttonPressed) forControlEvents:controlEvent]; | ||||
| } | ||||
|  | ||||
| - (void)buttonPressed { | ||||
|     self.buttonPressBlock(self.title, NO); | ||||
| } | ||||
|  | ||||
| - (void)setAppearance:(UIKeyboardAppearance)appearance { | ||||
|     _appearance = appearance; | ||||
|      | ||||
|     UIColor *titleColor = nil, *backgroundColor = nil; | ||||
|     UIColor *lightColor = [UIColor colorWithRed:253.0/255.0 green:253.0/255.0 blue:254.0/255.0 alpha:1]; | ||||
|     UIColor *darkColor = [UIColor colorWithRed:101.0/255.0 green:102.0/255.0 blue:104.0/255.0 alpha:1]; | ||||
|      | ||||
|     switch (_appearance) { | ||||
|         default: | ||||
|         case UIKeyboardAppearanceDefault: | ||||
|             if (@available(iOS 13, *)) { | ||||
|                 titleColor = UIColor.labelColor; | ||||
|                  | ||||
|                 if (self.usingDarkMode) { | ||||
|                     // style = UIBlurEffectStyleSystemUltraThinMaterialLight; | ||||
|                     backgroundColor = darkColor; | ||||
|                 } else { | ||||
|                     // style = UIBlurEffectStyleSystemMaterialLight; | ||||
|                     backgroundColor = lightColor; | ||||
|                 } | ||||
|                 break; | ||||
|             } | ||||
|         case UIKeyboardAppearanceLight: | ||||
|             titleColor = UIColor.blackColor; | ||||
|             backgroundColor = lightColor; | ||||
|             // style = UIBlurEffectStyleExtraLight; | ||||
|             break; | ||||
|         case UIKeyboardAppearanceDark: | ||||
|             titleColor = UIColor.whiteColor; | ||||
|             backgroundColor = darkColor; | ||||
|             // style = UIBlurEffectStyleDark; | ||||
|             break; | ||||
|     } | ||||
|      | ||||
|     self.backgroundColor = backgroundColor; | ||||
|     [self setTitleColor:titleColor forState:UIControlStateNormal]; | ||||
| } | ||||
|  | ||||
| - (BOOL)isEqual:(id)object { | ||||
|     if ([object isKindOfClass:[FLEXKBToolbarButton class]]) { | ||||
|         return [self.title isEqualToString:[object title]]; | ||||
|     } | ||||
|  | ||||
|     return NO; | ||||
| } | ||||
|  | ||||
| - (NSUInteger)hash { | ||||
|     return self.title.hash; | ||||
| } | ||||
|  | ||||
| - (BOOL)useSystemAppearance { | ||||
|     return self.appearance == UIKeyboardAppearanceDefault; | ||||
| } | ||||
|  | ||||
| - (BOOL)usingDarkMode { | ||||
|     if (@available(iOS 12, *)) { | ||||
|         return self.useSystemAppearance && self.traitCollection.userInterfaceStyle == UIUserInterfaceStyleDark; | ||||
|     } | ||||
|      | ||||
|     return self.appearance == UIKeyboardAppearanceDark; | ||||
| } | ||||
|  | ||||
| - (void)traitCollectionDidChange:(UITraitCollection *)previous { | ||||
|     if (@available(iOS 12, *)) { | ||||
|         // Was darkmode toggled? | ||||
|         if (previous.userInterfaceStyle != self.traitCollection.userInterfaceStyle) { | ||||
|             if (self.useSystemAppearance) { | ||||
|                 // Recreate the background view with the proper colors | ||||
|                 self.appearance = self.appearance; | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| @end | ||||
|  | ||||
|  | ||||
| @implementation FLEXKBToolbarSuggestedButton | ||||
|  | ||||
| - (void)buttonPressed { | ||||
|     self.buttonPressBlock(self.title, YES); | ||||
| } | ||||
|  | ||||
| @end | ||||
		Reference in New Issue
	
	Block a user
	 Balackburn
					Balackburn