You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
84 lines
2.7 KiB
84 lines
2.7 KiB
// |
|
// 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]; |
|
CLTimezoneData *dataObject = panelController.defaultPreferences[cellView.rowNumber]; |
|
CLTimezoneData *newDataObject = [dataObject mutableCopy]; |
|
|
|
for (CLTimezoneData *object in panelController.defaultPreferences) { |
|
if ([object.formattedAddress isEqualToString:customLabelValue]) { |
|
return; |
|
} |
|
} |
|
newDataObject.customLabel = (customLabelValue.length > 0) ? customLabelValue : CLEmptyString; |
|
[panelController.defaultPreferences replaceObjectAtIndex:cellView.rowNumber withObject:newDataObject]; |
|
[[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; |
|
cell.sunTime.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
|
|
|