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