mirror of
				https://github.com/SoPat712/YTLitePlus.git
				synced 2025-10-31 12:54:14 -04:00 
			
		
		
		
	added files via upload
This commit is contained in:
		| @@ -0,0 +1,92 @@ | ||||
| // | ||||
| //  FLEXRuntimeBrowserToolbar.m | ||||
| //  FLEX | ||||
| // | ||||
| //  Created by Tanner on 6/11/17. | ||||
| //  Copyright © 2017 Tanner Bennett. All rights reserved. | ||||
| // | ||||
|  | ||||
| #import "FLEXRuntimeBrowserToolbar.h" | ||||
| #import "FLEXRuntimeKeyPathTokenizer.h" | ||||
|  | ||||
| @interface FLEXRuntimeBrowserToolbar () | ||||
| @property (nonatomic, copy) FLEXKBToolbarAction tapHandler; | ||||
| @end | ||||
|  | ||||
| @implementation FLEXRuntimeBrowserToolbar | ||||
|  | ||||
| + (instancetype)toolbarWithHandler:(FLEXKBToolbarAction)tapHandler suggestions:(NSArray<NSString *> *)suggestions { | ||||
|     NSArray *buttons = [self | ||||
|         buttonsForKeyPath:FLEXRuntimeKeyPath.empty suggestions:suggestions handler:tapHandler | ||||
|     ]; | ||||
|  | ||||
|     FLEXRuntimeBrowserToolbar *me = [self toolbarWithButtons:buttons]; | ||||
|     me.tapHandler = tapHandler; | ||||
|     return me; | ||||
| } | ||||
|  | ||||
| + (NSArray<FLEXKBToolbarButton*> *)buttonsForKeyPath:(FLEXRuntimeKeyPath *)keyPath | ||||
|                                      suggestions:(NSArray<NSString *> *)suggestions | ||||
|                                          handler:(FLEXKBToolbarAction)handler { | ||||
|     NSMutableArray *buttons = [NSMutableArray new]; | ||||
|     FLEXSearchToken *lastKey = nil; | ||||
|     BOOL lastKeyIsMethod = NO; | ||||
|  | ||||
|     if (keyPath.methodKey) { | ||||
|         lastKey = keyPath.methodKey; | ||||
|         lastKeyIsMethod = YES; | ||||
|     } else { | ||||
|         lastKey = keyPath.classKey ?: keyPath.bundleKey; | ||||
|     } | ||||
|  | ||||
|     switch (lastKey.options) { | ||||
|         case TBWildcardOptionsNone: | ||||
|         case TBWildcardOptionsAny: | ||||
|             if (lastKeyIsMethod) { | ||||
|                 if (!keyPath.instanceMethods) { | ||||
|                     [buttons addObject:[FLEXKBToolbarButton buttonWithTitle:@"-" action:handler]]; | ||||
|                     [buttons addObject:[FLEXKBToolbarButton buttonWithTitle:@"+" action:handler]]; | ||||
|                 } | ||||
|                 [buttons addObject:[FLEXKBToolbarButton buttonWithTitle:@"*" action:handler]]; | ||||
|             } else { | ||||
|                 [buttons addObject:[FLEXKBToolbarButton buttonWithTitle:@"*" action:handler]]; | ||||
|                 [buttons addObject:[FLEXKBToolbarButton buttonWithTitle:@"*." action:handler]]; | ||||
|             } | ||||
|             break; | ||||
|  | ||||
|         default: { | ||||
|             if (lastKey.options & TBWildcardOptionsPrefix) { | ||||
|                 if (lastKeyIsMethod) { | ||||
|                     if (lastKey.string.length) { | ||||
|                         [buttons addObject:[FLEXKBToolbarButton buttonWithTitle:@"*" action:handler]]; | ||||
|                     } | ||||
|                 } else { | ||||
|                     if (lastKey.string.length) { | ||||
|                         [buttons addObject:[FLEXKBToolbarButton buttonWithTitle:@"*." action:handler]]; | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|  | ||||
|             else if (lastKey.options & TBWildcardOptionsSuffix) { | ||||
|                 if (!lastKeyIsMethod) { | ||||
|                     [buttons addObject:[FLEXKBToolbarButton buttonWithTitle:@"*" action:handler]]; | ||||
|                     [buttons addObject:[FLEXKBToolbarButton buttonWithTitle:@"*." action:handler]]; | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|      | ||||
|     for (NSString *suggestion in suggestions) { | ||||
|         [buttons addObject:[FLEXKBToolbarSuggestedButton buttonWithTitle:suggestion action:handler]]; | ||||
|     } | ||||
|  | ||||
|     return buttons; | ||||
| } | ||||
|  | ||||
| - (void)setKeyPath:(FLEXRuntimeKeyPath *)keyPath suggestions:(NSArray<NSString *> *)suggestions { | ||||
|     self.buttons = [self.class | ||||
|         buttonsForKeyPath:keyPath suggestions:suggestions handler:self.tapHandler | ||||
|     ]; | ||||
| } | ||||
|  | ||||
| @end | ||||
		Reference in New Issue
	
	Block a user
	 Balackburn
					Balackburn