This is MiscCalendarView.rtf in view mode; [Download] [Up]
Version 1.01, Copyright © 1994 by Jon Kutemeier. All Rights Reserved.
Jon Kutemeier (jkute@mcs.com) -- December 8, 1994
MiscCalendarView
Inherits From: View : Object
Adopted Protocols: TextDelegate, Drag and Drop
Declared In: MiscKit/MiscCalendarView.h
Class Description
MiscCalendarView is a general calendar that supports the selection of days, months, and years. MiscCalendarView supports customizable header styles, colors, text delegation, and date delegation.
The palette view works fully under InterfaceBuilder. Its fully functional in test mode, and conforms to standard InterfaceBuilder usage. It also accepts drag-and-drop of color, just like textfield objects. Color can be dragged onto any of the displayed headers (month, year, inline month and year, or any of the day-of-the-week headers), and the text will change to that color. The day cells accept color as well. In the inspector panel you select which attribute you want to affect (cell background color, cell text color, cell background color when highlighted, cell text color when highlighted), and drag a color swatch onto any part of the matrix. You can also affect the color with the color well.
MiscCalendarView can use a custom date object for custom date behaviour. The date delegate can be set via IB, or programatically. MiscCalendarView uses a simple date object that works between the years of 1970 and 2037. Any custom date object must conform to the DateDelegate protocol, specified in the Protocols section.
MiscCalendarView can be set up as a text delegate. In turn, MiscCalendarView can be connected up to another object for text delegation. MiscCalendarView will pass through the text delegate messages, and on the textDidEnd:endChar: method, will update it's date.
MiscCalendarView can also be set up to accept drag-and-drop color when running in an application, so users can customize their colors if they wish.
External objects that respond to setStringValue: (such as textfields) can be attached to a MiscCalendarView. MiscCalendarView can display the month, year, and the full date in external objects. These connections can be made via IB, or programatically.
Library Dependencies
The MiscCalendarView depends on the MiscClockView library and palette.
<<More could be said here, but I'm not sure what... "Dammit Jim, I'm a programmer, not a technical writer!">>
Instance Variables
id monthField;
id yearField;
id dateField;
id dateDelegate;
id textDelegate;
monthField An external object that responds to setStringValue: for displaying the month.
yearField An external object that responds to setStringValue: for displaying the year.
dateField An external object that responds to setStringValue: for displaying the date.
dateDelegate An object that conforms to the DateDelegate protocol and provide date information.
textDelegate An object that can provide text delegation to any text fields connected to the calendar via text delegation.
Method Types
Creating and freeing instances ±€initFrame:
Calendar properties - setHighlightMode:
- highlightMode
- forHeader:display:
- isHeaderDisplayed:
- cellAt::lock:
- forRow:lock:
- forColumn:lock:
- calendarMatrix
Working with color - preserveCellColors:
- cellColorsPreserved
- setColorOf:to:forCellAt::
- colorOf:forCellAt::
- setColorOf:to:
- colorOf:
- setColorTo:forDay:
- colorForDay:
- allowColorDragAndDrop:
- canDragAndDropColor
Working with dates - setDateDelegate:
- dateDelegate
- displayDate:
- updateDate:
- incrementMonth:
- decrementMonth:
- incrementYear:
- decrementYear:
Instance Methods
allowColorDragAndDrop:
± allowColorDragAndDrop:(BOOL)yn
Enables or disables the ability to drag and drop color into headers to set their color. Returns self.
See also: ± canDragAndDropColor
calendarMatrix
± calendarMatrix
Returns the underlying matrix used for the calendar.
canDragAndDropColor
± (BOOL)canDragAndDropColor
Returns YES if the headers can accept drag-and-drop color, otherwise returns NO.
See also: ± allowColorDragAndDrop:
cellAt::lock:
± cellAt:(int)xPos :(int)yPos lock:(BOOL)yn
Disables the cell at the specified xPos and yPos coordinates. Returns self.
See also: ± forRow:lock:, ± forColumn:lock:
cellColorsPreserved
± (BOOL)cellColorsPreserved
Returns YES or NO if individual cells that have had their colors changed (i.e. their background color) inherit global changes (i.e. the color of all cell backgrounds) set via a method like ± setColorOf:to:.
See also: ± preserveCellColors:
colorForDay:
± (NXColor)colorForDay:(MiscCVDays)aDay
Returns the color of the header for the specified day.
See also: ± setColorTo:forDay:
colorOf:forCellAt::
± (NXColor)colorOf:(int)element forCellAt:(int)xPos :(int)yPos
Return the color of the specified element for the cell at the matrix coordinates xPos,yPos. The argument element can be one of the following constants:
MISC_CV_CELLBACKGROUND
MISC_CV_CELLTEXT
MISC_CV_CELLHIGHLIGHT
MISC_CV_CELLTEXTHIGHLIGHT
See the section Constants and Defined Types for a description of the constants.
Returns NX_COLORBLACK if none of the elements above are specified.
See also: ± setColorOf:to:forCellAt::, ± setColorOf:to:, ± preserveCellColors:, ± colorOf:
colorOf:
± (NXColor)colorOf:(int)element
Returns the color of the specified element. In the cases where element specifies a cell color, the returned value is the default global color used. Individual cells may have different color values from the global ones. See colorOf:forCellAt:: for information on how to get individual cell color attributes.
The argument element can be one of the following constants:
MISC_CV_CELLBACKGROUND
MISC_CV_CELLTEXT
MISC_CV_CELLHIGHLIGHT
MISC_CV_CELLTEXTHIGHLIGHT
MISC_CV_MONTHHEADER
MISC_CV_YEARHEADER
MISC_CV_INLINEMONTHHEADER
MISC_CV_INLINEYEARHEADER
See the section Constants and Defined Types for a description of the constants.
Returns NX_COLORBLACK if none of the elements above are specified.
See also: ± setColorOf:to:forCellAt::, ± setColorOf:to:, ± preserveCellColors:, ± colorOf:cellAt::
dateDelegate
± dateDelegate
Returns the date object used for day, date, and year calculations. Conforms to the DateDelegate protocol.
See also: ± setDateDelegate:, ± updateDate:, ± displayDate:
decrementMonth:
± decrementMonth:sender
Sends the message decrementMonth to the date delegate and then calls updateDate: to display the new date. See the DateDelegate protocol for more information. Returns self.
See also: ± incrementMonth:,± setDateDelegate:, ± updateDate:, ± displayDate:
decrementYear:
± decrementYear:sender
Sends the message decrementYear to the date delegate and then calls updateDate: to display the new date. See the DateDelegate protocol for more information. Returns self.
See also: ± incrementYear:,± setDateDelegate:, ± updateDate:, ± displayDate:
displayDate:
± displayDate:sender
Causes the current date in the date object to be displayed. Returns self.
See also:± setDateDelegate:, ±dateDelegate, ± updateDate:
forColumn:lock:
± forColumn:(int)col lock:(BOOL)yn
Locks or unlocks the matrix column col, based on the value of yn. Returns self.
See also: ± forRow:lock:, ± cellAt::lock:
forHeader:display:
± forHeader:(int)aHeader display:(BOOL)doDisplay
Turns on or off the displaying of the specified header, based on the value of doDisplay. Returns self.
The argument aHeader can be one of the following constants:
MISC_CV_DOWHEADER
MISC_CV_MONTHHEADER
MISC_CV_YEARHEADER
MISC_CV_MONTHANDYEARHEADER
See the section Constants and Defined Types for a description of the constants.
See also: ± isHeaderDisplayed:
forRow:lock:
± forRow:(int)col lock:(BOOL)yn
Locks or unlocks the matrix column row, based on the value of yn. Returns self.
See also: ± forColumn:lock:, ± cellAt::lock:
highlightMode
± (int)highlightMode
Returns the highlight mode of the matrix. See documentation on Matrix for a description of what modes are available.
See also: ± setHighlightMode:, mode(Matrix)
incrementMonth:
± incrementMonth:sender
Sends the message incrementMonth to the date delegate and then calls updateDate: to display the new date. See the DateDelegate protocol for more information. Returns self.
See also: ± decrementMonth:,± setDateDelegate:, ± updateDate:, ± displayDate:
incrementYear:
± incrementYear:sender
Sends the message incrementYear to the date delegate and then calls updateDate: to display the new date. See the DateDelegate protocol for more information. Returns self.
See also: ± decrementYear:,± setDateDelegate:, ± updateDate:, ± displayDate:
initFrame:
± initFrame:(NXRect *)aRect
Initializes the view. This method is responsible for creating the underlying matrix, the header views, and the default date delegate object. Returns self.
isHeaderDisplayed:
± (BOOL)isHeaderDisplayed:(int)aHeader
Returns YES or NO, based on whether or not aHeader is being displayed.
The argument aHeader can be one of the following constants:
MISC_CV_DOWHEADER
MISC_CV_MONTHHEADER
MISC_CV_YEARHEADER
MISC_CV_MONTHANDYEARHEADER
See the section Constants and Defined Types for a description of the constants.
See also: ±forHeader:display:
preserveCellColors:
± preserveCellColors:(BOOL)yn
If yn is set to YES, then any cell that has had any of its color parameters (text color, background color, highlight color, or text highlight color) changed will not be affected by a global color change (see setColorOf:). If yn is set to NO, any global color change will affect all cells. Default behavior is NO. Returns self.
See also: ± cellColorsPreserved
setColorOf:to:
± setColorOf:(int)element to:(NXColor)aColor
Sets the color of the specified element. In the cases where element specifies a cell color, all matrix cells are affected, unless preserveCellColors: has been set to YES. Individual cells may have different color values from the global ones. See setColorOf:to:forCell:: for information on how to set individual cell color attributes.
The argument element can be one of the following constants:
MISC_CV_CELLBACKGROUND
MISC_CV_CELLTEXT
MISC_CV_CELLHIGHLIGHT
MISC_CV_CELLTEXTHIGHLIGHT
MISC_CV_MONTHHEADER
MISC_CV_YEARHEADER
MISC_CV_INLINEMONTHHEADER
MISC_CV_INLINEYEARHEADER
See the section Constants and Defined Types for a description of the constants. Returns self.
See also: ± colorOf:forCellAt::, ± colorOf:, ± preserveCellColors:, ± setColorOf:to:forCellAt::
setColorOf:to:forCellAt::
± setColorOf:(int)element to:(NXColor)aColor forCellAt:(int)xPos :(int)yPos
Sets the color of the specified element for the cell at the matrix coordinates xPos,yPos. The argument element can be one of the following constants:
MISC_CV_CELLBACKGROUND
MISC_CV_CELLTEXT
MISC_CV_CELLHIGHLIGHT
MISC_CV_CELLTEXTHIGHLIGHT
See the section Constants and Defined Types for a description of the constants. Returns self.
See also: ± colorOf:forCellAt::, ± colorOf:, ± preserveCellColors:, ± setColorOf:to:
setColorTo:forDay:
± setColorTo:(NXColor)aColor forDay:(MiscCVDays)aDay
Sets the color of the header for the specified day. Returns self.
See also: ± colorForDay:
setDateDelegate:
± setDateDelegate:aDateObject
Sets the date object used for day, date, and year calculations. It must conform to the DateDelegate protocol. Returns self.
See also: ± dateDelegate, ± updateDate:, ± displayDate:
setHighlightMode:
± setHighlightMode:(int)mode
Sets the highlight mode of the matrix. See documentation on Matrix for a description of what modes are available. Returns self.
See also: ± highlightMode:, setMode:(Matrix)
updateDate:
± updateDate:sender
Updates the date stored in the date delegate by reading the day from matrix, and then redisplays the view. Returns self.
See also:± setDateDelegate:, ±dateDelegate, ± displayDate:
Protocols
The following protocol is necessary for any date delegate object:
@protocol DateDelegate
- (int)day;
- (int)month;
- (int)year;
- setYear:(int)year month:(int)month day:(int)day;
- (int)numberOfDaysInMonth;
- (int)startDayOfMonth;
- incrementMonth;
- decrementMonth;
- incrementYear;
- decrementYear;
- (const char *)monthStringValue;
- (const char *)dateStringValue;
@end
Constants and Defined Types
/* The days of the week */
enum MiscCVDaysEnum
{
SUNDAY = 0,
MONDAY,
TUESDAY,
WEDNESDAY,
THURSDAY,
FRIDAY,
SATURDAY
}
MISC_CV_CELLBACKGROUND /* cell background color */
MISC_CV_CELLTEXT /* cell text color */
MISC_CV_CELLHIGHLIGHT /* cell background color when highlighted */
MISC_CV_CELLTEXTHIGHLIGHT /* cell text color when highlighted */
MISC_CV_DOWHEADER /* days of the week headers (S, M, T, ...) */
MISC_CV_MONTHHEADER /* month header */
MISC_CV_YEARHEADER /* year header */
MISC_CV_MONTHANDYEARHEADER /* inline month and year header */
MISC_CV_INLINEMONTHHEADER /* inline month header */
MISC_CV_INLINEYEARHEADER /* inline year header */
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.