1/** <title>NSDatePickerCell</title> 2 3 <abstract>The date picker cell class</abstract> 4 5 Copyright (C) 2020 Free Software Foundation, Inc. 6 7 Author: Nikolaus Schaller <hns@computer.org> 8 Date: April 2006 9 10 Author: Fred Kiefer <fredkiefer@gmx.de> 11 Date: January 2020 12 13 This file is part of the GNUstep GUI Library. 14 15 This library is free software; you can redistribute it and/or 16 modify it under the terms of the GNU Lesser General Public 17 License as published by the Free Software Foundation; either 18 version 2 of the License, or (at your option) any later version. 19 20 This library is distributed in the hope that it will be useful, 21 but WITHOUT ANY WARRANTY; without even the implied warranty of 22 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 23 Lesser General Public License for more details. 24 25 You should have received a copy of the GNU Lesser General Public 26 License along with this library; see the file COPYING.LIB. 27 If not, see <http://www.gnu.org/licenses/> or write to the 28 Free Software Foundation, 51 Franklin Street, Fifth Floor, 29 Boston, MA 02110-1301, USA. 30*/ 31 32#import <Foundation/NSString.h> 33#import <Foundation/NSDateFormatter.h> 34#import "AppKit/NSDatePickerCell.h" 35#import "AppKit/NSColor.h" 36 37@implementation NSDatePickerCell 38 39- (id) initTextCell: (NSString*)aString 40{ 41 if ((self = [super initTextCell: aString])) 42 { 43 NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 44 45 [self setFormatter: formatter]; 46 RELEASE(formatter); 47 } 48 49 return self; 50} 51 52- (NSColor *) backgroundColor 53{ 54 return _backgroundColor; 55} 56 57- (void) setBackgroundColor: (NSColor *)color 58{ 59 ASSIGN(_backgroundColor, color); 60} 61 62- (NSCalendar *) calendar 63{ 64 return [[self formatter] calendar]; 65} 66 67- (void) setCalendar: (NSCalendar *)calendar 68{ 69 [[self formatter] setCalendar: calendar]; 70} 71 72- (NSDatePickerElementFlags) datePickerElements 73{ 74 return _datePickerElements; 75} 76 77- (void) setDatePickerElements: (NSDatePickerElementFlags)flags 78{ 79 _datePickerElements = flags; 80} 81 82- (NSDatePickerMode) datePickerMode 83{ 84 return _datePickerMode; 85} 86 87- (void) setDatePickerMode: (NSDatePickerMode)mode 88{ 89 _datePickerMode = mode; 90} 91 92- (NSDatePickerStyle) datePickerStyle 93{ 94 return _datePickerStyle; 95} 96 97- (void) setDatePickerStyle: (NSDatePickerStyle)style 98{ 99 _datePickerStyle = style; 100} 101 102- (NSDate *) dateValue 103{ 104 return (NSDate *)[self objectValue]; 105} 106 107- (void) setDateValue: (NSDate *)date 108{ 109 [self setObjectValue: date]; 110} 111 112- (id) delegate 113{ 114 return _delegate; 115} 116 117- (void) setDelegate: (id)obj 118{ 119 _delegate = obj; 120} 121 122- (BOOL) drawsBackground 123{ 124 return _drawsBackground; 125} 126 127- (void) setDrawsBackground: (BOOL)flag 128{ 129 _drawsBackground = flag; 130} 131 132- (NSLocale *) locale 133{ 134 return [[self formatter] locale]; 135} 136 137- (void) setLocale: (NSLocale *)locale 138{ 139 [[self formatter] setLocale: locale]; 140} 141 142- (NSDate *) maxDate 143{ 144 return _maxDate; 145} 146 147- (void) setMaxDate: (NSDate *)date 148{ 149 ASSIGN(_maxDate, date); 150} 151 152- (NSDate *) minDate 153{ 154 return _minDate; 155} 156 157- (void) setMinDate: (NSDate *)date 158{ 159 ASSIGN(_minDate, date); 160} 161 162- (NSColor *) textColor 163{ 164 return _textColor; 165} 166 167- (void) setTextColor: (NSColor *)color 168{ 169 ASSIGN(_textColor, color); 170} 171 172- (NSTimeInterval) timeInterval 173{ 174 return _timeInterval; 175} 176 177- (void) setTimeInterval: (NSTimeInterval)interval 178{ 179 _timeInterval = interval; 180} 181 182- (NSTimeZone *) timeZone 183{ 184 return [[self formatter] timeZone]; 185} 186 187- (void) setTimeZone: (NSTimeZone *)zone 188{ 189 [[self formatter] setTimeZone: zone]; 190} 191 192- (void) encodeWithCoder: (NSCoder *)aCoder 193{ 194 if ([aCoder allowsKeyedCoding]) 195 { 196 [aCoder encodeDouble: [self timeInterval] forKey: @"NSTimeInterval"]; 197 [aCoder encodeInt: [self datePickerElements] forKey: @"NSDatePickerElements"]; 198 [aCoder encodeInt: [self datePickerStyle] forKey: @"NSDatePickerType"]; 199 [aCoder encodeObject: [self backgroundColor] forKey: @"NSBackgroundColor"]; 200 } 201 else 202 { 203 } 204} 205 206- (id) initWithCoder: (NSCoder *)aDecoder 207{ 208 if ((self = [super initWithCoder: aDecoder])) 209 { 210 if ([aDecoder allowsKeyedCoding]) 211 { 212 [self setTimeInterval: [aDecoder decodeDoubleForKey: @"NSTimeInterval"]]; 213 [self setDatePickerElements: [aDecoder decodeIntForKey: @"NSDatePickerElements"]]; 214 [self setDatePickerStyle: [aDecoder decodeIntForKey: @"NSDatePickerType"]]; 215 [self setBackgroundColor: [aDecoder decodeObjectForKey: @"NSBackgroundColor"]]; 216 } 217 else 218 { 219 } 220 } 221 222 return self; 223} 224 225@end 226