Abhishek Banthia
9 years ago
10 changed files with 301 additions and 300 deletions
@ -0,0 +1,32 @@ |
|||||||
|
//
|
||||||
|
// CLParentPanelController.h
|
||||||
|
// Clocker
|
||||||
|
//
|
||||||
|
// Created by Abhishek Banthia on 4/4/16.
|
||||||
|
//
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <Cocoa/Cocoa.h> |
||||||
|
#import "CLOneWindowController.h" |
||||||
|
|
||||||
|
@interface CLParentPanelController : NSWindowController<NSWindowDelegate, NSTableViewDataSource, NSTableViewDelegate> |
||||||
|
|
||||||
|
|
||||||
|
@property (nonatomic, strong) NSMutableArray *defaultPreferences; |
||||||
|
@property (nonatomic, strong) NSDateFormatter *dateFormatter; |
||||||
|
@property (nonatomic, assign) NSInteger futureSliderValue; |
||||||
|
@property (nonatomic) BOOL showReviewCell; |
||||||
|
|
||||||
|
@property (weak) IBOutlet NSButton *shutdownButton; |
||||||
|
@property (weak) IBOutlet NSButton *preferencesButton; |
||||||
|
@property (weak) IBOutlet NSSlider *futureSlider; |
||||||
|
@property (weak) IBOutlet NSTableView *mainTableview; |
||||||
|
@property (weak) IBOutlet NSLayoutConstraint *scrollViewHeight; |
||||||
|
@property (nonatomic, strong) CLOneWindowController *oneWindow; |
||||||
|
|
||||||
|
- (void)updateDefaultPreferences; |
||||||
|
- (void)showOptions:(BOOL)value; |
||||||
|
- (void)removeContextHelpForSlider; |
||||||
|
- (void)updatePanelColor; |
||||||
|
|
||||||
|
@end |
@ -0,0 +1,165 @@ |
|||||||
|
// |
||||||
|
// CLParentPanelController.m |
||||||
|
// Clocker |
||||||
|
// |
||||||
|
// Created by Abhishek Banthia on 4/4/16. |
||||||
|
// |
||||||
|
// |
||||||
|
|
||||||
|
#import "CLParentPanelController.h" |
||||||
|
#import "CLRatingCellView.h" |
||||||
|
#import "CLTimezoneData.h" |
||||||
|
#import "CommonStrings.h" |
||||||
|
#import "CLOneWindowController.h" |
||||||
|
|
||||||
|
@interface CLParentPanelController () |
||||||
|
|
||||||
|
@end |
||||||
|
|
||||||
|
@implementation CLParentPanelController |
||||||
|
|
||||||
|
- (void)awakeFromNib |
||||||
|
{ |
||||||
|
[super awakeFromNib]; |
||||||
|
|
||||||
|
if ([[[NSUserDefaults standardUserDefaults] objectForKey:CLThemeKey] isKindOfClass:[NSString class]]) { |
||||||
|
[[NSUserDefaults standardUserDefaults] setObject:@0 forKey:CLThemeKey]; |
||||||
|
} |
||||||
|
|
||||||
|
NSNumber *theme = [[NSUserDefaults standardUserDefaults] objectForKey:CLThemeKey]; |
||||||
|
|
||||||
|
if (theme.integerValue == 1) |
||||||
|
{ |
||||||
|
self.shutdownButton.image = [NSImage imageNamed:@"PowerIcon-White"]; |
||||||
|
self.preferencesButton.image = [NSImage imageNamed:@"Settings-White"]; |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
self.shutdownButton.image = [NSImage imageNamed:@"PowerIcon"]; |
||||||
|
self.preferencesButton.image = [NSImage imageNamed:NSImageNameActionTemplate]; |
||||||
|
} |
||||||
|
|
||||||
|
self.mainTableview.selectionHighlightStyle = NSTableViewSelectionHighlightStyleNone; |
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
- (void) updateDefaultPreferences |
||||||
|
{ |
||||||
|
|
||||||
|
NSArray *defaultZones = [[NSUserDefaults standardUserDefaults] objectForKey:CLDefaultPreferenceKey]; |
||||||
|
|
||||||
|
self.defaultPreferences = self.defaultPreferences == nil ? [[NSMutableArray alloc] initWithArray:defaultZones] : [NSMutableArray arrayWithArray:defaultZones]; |
||||||
|
|
||||||
|
self.scrollViewHeight.constant = self.showReviewCell ? |
||||||
|
(self.defaultPreferences.count+1)*55+40 : self.defaultPreferences.count*55 + 30; |
||||||
|
|
||||||
|
if (self.defaultPreferences.count == 1) { |
||||||
|
self.futureSlider.hidden = YES; |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
self.futureSlider.hidden = NO; |
||||||
|
} |
||||||
|
|
||||||
|
[self updatePanelColor]; |
||||||
|
} |
||||||
|
|
||||||
|
- (void)updatePanelColor |
||||||
|
{ |
||||||
|
NSNumber *theme = [[NSUserDefaults standardUserDefaults] objectForKey:CLThemeKey]; |
||||||
|
if (theme.integerValue == 1) |
||||||
|
{ |
||||||
|
[self.mainTableview setBackgroundColor:[NSColor blackColor]]; |
||||||
|
self.window.alphaValue = 0.90; |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
[self.mainTableview setBackgroundColor:[NSColor whiteColor]]; |
||||||
|
self.window.alphaValue = 1; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
- (void)showOptions:(BOOL)value |
||||||
|
{ |
||||||
|
|
||||||
|
if (self.defaultPreferences.count == 0) |
||||||
|
{ |
||||||
|
value = YES; |
||||||
|
} |
||||||
|
|
||||||
|
dispatch_async(dispatch_get_main_queue(), ^{ |
||||||
|
self.shutdownButton.hidden = !value; |
||||||
|
self.preferencesButton.hidden = !value; |
||||||
|
|
||||||
|
}); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
- (IBAction)sliderMoved:(id)sender |
||||||
|
{ |
||||||
|
NSCalendar *currentCalendar = [NSCalendar autoupdatingCurrentCalendar]; |
||||||
|
NSDate *newDate = [currentCalendar dateByAddingUnit:NSCalendarUnitMinute |
||||||
|
value:self.futureSliderValue |
||||||
|
toDate:[NSDate date] |
||||||
|
options:kNilOptions]; |
||||||
|
|
||||||
|
self.dateFormatter.dateStyle = kCFDateFormatterNoStyle; |
||||||
|
self.dateFormatter.timeStyle = kCFDateFormatterShortStyle; |
||||||
|
|
||||||
|
NSString *relativeDate = [currentCalendar isDateInToday:newDate] ? @"Today" : @"Tomorrow"; |
||||||
|
|
||||||
|
NSString *helper = [self.dateFormatter stringFromDate:newDate]; |
||||||
|
|
||||||
|
NSHelpManager *helpManager = [NSHelpManager sharedHelpManager]; |
||||||
|
|
||||||
|
NSPoint pointInScreen = [NSEvent mouseLocation]; |
||||||
|
pointInScreen.y -= 5; |
||||||
|
NSAttributedString *attributedString = [[NSAttributedString alloc] initWithString:[NSString stringWithFormat:@"%@ %@", relativeDate, helper]]; |
||||||
|
[NSHelpManager setContextHelpModeActive:YES]; |
||||||
|
[helpManager setContextHelp:attributedString forObject:self.futureSlider]; |
||||||
|
[helpManager showContextHelpForObject:self.futureSlider locationHint:pointInScreen]; |
||||||
|
|
||||||
|
[self.mainTableview reloadData]; |
||||||
|
} |
||||||
|
|
||||||
|
- (void)removeContextHelpForSlider |
||||||
|
{ |
||||||
|
NSEvent *newEvent = [NSEvent mouseEventWithType:NSLeftMouseDown |
||||||
|
location:self.window.mouseLocationOutsideOfEventStream |
||||||
|
modifierFlags:0 |
||||||
|
timestamp:0 |
||||||
|
windowNumber:self.window.windowNumber |
||||||
|
context:self.window.graphicsContext |
||||||
|
eventNumber:0 |
||||||
|
clickCount:1 |
||||||
|
pressure:0]; |
||||||
|
[NSApp postEvent:newEvent atStart:NO]; |
||||||
|
newEvent = [NSEvent mouseEventWithType:NSLeftMouseUp |
||||||
|
location:self.window.mouseLocationOutsideOfEventStream |
||||||
|
modifierFlags:0 |
||||||
|
timestamp:0 |
||||||
|
windowNumber:self.window.windowNumber |
||||||
|
context:self.window.graphicsContext |
||||||
|
eventNumber:0 |
||||||
|
clickCount:1 |
||||||
|
pressure:0]; |
||||||
|
|
||||||
|
[NSApp postEvent:newEvent atStart:NO]; |
||||||
|
} |
||||||
|
|
||||||
|
#pragma mark - |
||||||
|
#pragma mark Preferences Target-Action |
||||||
|
#pragma mark - |
||||||
|
|
||||||
|
- (IBAction)openPreferences:(id)sender |
||||||
|
{ |
||||||
|
self.oneWindow = [CLOneWindowController sharedWindow]; |
||||||
|
[self.oneWindow showWindow:nil]; |
||||||
|
[NSApp activateIgnoringOtherApps:YES]; |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@end |
Loading…
Reference in new issue