|
|
|
//
|
|
|
|
// CLTimezoneCellView.m
|
|
|
|
// Clocker
|
|
|
|
//
|
|
|
|
// Created by Abhishek Banthia on 12/13/15.
|
|
|
|
//
|
|
|
|
//
|
|
|
|
|
|
|
|
#import "CLTimezoneCellView.h"
|
|
|
|
#import "PanelController.h"
|
|
|
|
#import "CommonStrings.h"
|
|
|
|
#import "CLTimezoneData.h"
|
|
|
|
|
|
|
|
@implementation CLTimezoneCellView
|
|
|
|
|
|
|
|
- (void)drawRect:(NSRect)dirtyRect {
|
|
|
|
[super drawRect:dirtyRect];
|
|
|
|
|
|
|
|
// Drawing code here.
|
|
|
|
}
|
|
|
|
|
|
|
|
- (IBAction)labelDidChange:(id)sender
|
|
|
|
{
|
|
|
|
NSTextField *customLabelCell = (NSTextField*) sender;
|
|
|
|
PanelController *panelController;
|
|
|
|
|
|
|
|
for (NSWindow *window in [[NSApplication sharedApplication] windows])
|
|
|
|
{
|
|
|
|
if ([window.windowController isMemberOfClass:[PanelController class]])
|
|
|
|
{
|
|
|
|
panelController = window.windowController;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
NSString *originalValue = customLabelCell.stringValue;
|
|
|
|
NSString *customLabelValue = [originalValue stringByTrimmingCharactersInSet:
|
|
|
|
[NSCharacterSet whitespaceCharacterSet]];
|
|
|
|
|
|
|
|
|
|
|
|
if ([[sender superview] isKindOfClass:[self class]]) {
|
|
|
|
CLTimezoneCellView *cellView = (CLTimezoneCellView *)[sender superview];
|
|
|
|
NSData *dataObject = panelController.defaultPreferences[cellView.rowNumber];
|
|
|
|
CLTimezoneData *timezoneObject = [CLTimezoneData getCustomObject:dataObject];
|
|
|
|
|
|
|
|
for (NSData *object in panelController.defaultPreferences)
|
|
|
|
{
|
|
|
|
CLTimezoneData *timeObject = [CLTimezoneData getCustomObject:object];
|
|
|
|
if ([timeObject.formattedAddress isEqualToString:customLabelValue]) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
timezoneObject.customLabel = (customLabelValue.length > 0) ? customLabelValue : CLEmptyString;
|
|
|
|
NSData *newObject = [NSKeyedArchiver archivedDataWithRootObject:timezoneObject];
|
|
|
|
[panelController.defaultPreferences replaceObjectAtIndex:cellView.rowNumber withObject:newObject];
|
|
|
|
[[NSUserDefaults standardUserDefaults] setObject:panelController.defaultPreferences forKey:CLDefaultPreferenceKey];
|
|
|
|
|
|
|
|
[panelController updateDefaultPreferences];
|
|
|
|
[panelController.mainTableview reloadData];
|
|
|
|
|
|
|
|
[[NSNotificationCenter defaultCenter]
|
|
|
|
postNotificationName:CLCustomLabelChangedNotification
|
|
|
|
object:nil];
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
- (void)updateTextColorWithColor:(NSColor *)color andCell:(CLTimezoneCellView*)cell
|
|
|
|
{
|
|
|
|
cell.relativeDate.textColor = color;
|
|
|
|
cell.customName.textColor = color;
|
|
|
|
cell.time.textColor = color;
|
|
|
|
}
|
|
|
|
|
|
|
|
- (void)setUpAutoLayoutWithCell:(CLTimezoneCellView *)cell
|
|
|
|
{
|
|
|
|
CGFloat width = [cell.relativeDate.stringValue
|
|
|
|
sizeWithAttributes: @{NSFontAttributeName:cell.relativeDate.font}].width;
|
|
|
|
|
|
|
|
for (NSLayoutConstraint *constraint in cell.relativeDate.constraints)
|
|
|
|
{
|
|
|
|
if (constraint.constant > 20)
|
|
|
|
{
|
|
|
|
constraint.constant = width+8;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@end
|