83de4abed2
From Soren Jacobsen in PR 20730.
445 lines
18 KiB
Groff
445 lines
18 KiB
Groff
.de It
|
|
.br
|
|
.ie \\n(.$>=3 .ne \\$3
|
|
.el .ne 3
|
|
.IP "\\$1" \\$2
|
|
..
|
|
.TH cdk_calendar 3 "24 April 1997"
|
|
.SH NAME
|
|
newCDKCalendar, activateCDKCalendar, injectCDKCalendar, setCDKCalendar,
|
|
setCDKCalendarDate, getCDKCalendarDate,
|
|
setCDKCalendarDayAttribute, getCDKCalendarDayAttribute,
|
|
setCDKCalendarMonthAttribute, getCDKCalendarMonthAttribute,
|
|
setCDKCalendarYearAttribute, getCDKCalendarYearAttribute,
|
|
setCDKCalendarHighlight, getCDKCalendarHighlight,
|
|
setCDKCalendarBox, getCDKCalendarBox,
|
|
setCDKCalendarMarker, removeCDKCalendarMarker,
|
|
drawCDKCalendar, eraseCDKCalendar, destroyCDKCalendar,
|
|
setCDKCalendarPreProcess, setCDKCalendarPostProcess
|
|
\- Creates a managed curses calendar widget.
|
|
.SH SYNOPSIS
|
|
.LP
|
|
.B cc
|
|
.RI "[ " "flag" " \|.\|.\|. ] " "file" " \|.\|.\|."
|
|
.B \-lcdk
|
|
.RI "[ " "library" " \|.\|.\|. ]"
|
|
.LP
|
|
.LP
|
|
.BI "CDKCALENDAR *newCDKCalendar (CDKSCREEN *" "cdkscreen",
|
|
.BI "int " "xpos",
|
|
.BI "int " "ypos",
|
|
.BI "char *" "title",
|
|
.BI "int " "day",
|
|
.BI "int " "month",
|
|
.BI "int " "year",
|
|
.BI "chtype " "dayAttrib",
|
|
.BI "chtype " "monthAttrib",
|
|
.BI "chtype " "yearAttrib",
|
|
.BI "chtype " "highlight",
|
|
.BI "boolean " "box",
|
|
.BI "boolean " "shadow");
|
|
.LP
|
|
.BI "time_t activateCDKCalendar (CDKCALENDAR *" "calendar",
|
|
.BI "chtype " "*actions");
|
|
.LP
|
|
.BI "time_t injectCDKCalendar (CDKCALENDAR *" "calendar",
|
|
.BI "chtype " "input");
|
|
.LP
|
|
.BI "int setCDKCalendar (CDKCALENDAR *" "calendar",
|
|
.BI "int " "day",
|
|
.BI "int " "month",
|
|
.BI "int " "year",
|
|
.BI "chtype " "dayAttrib",
|
|
.BI "chtype " "monthAttrib",
|
|
.BI "chtype " "yearAttrib",
|
|
.BI "boolean " "box");
|
|
.LP
|
|
.BI "void setCDKCalendarDate (CDKCALENDAR *" "calendar",
|
|
.BI "int " "day",
|
|
.BI "int " "month",
|
|
.BI "int " "year");
|
|
.LP
|
|
.BI "void getCDKCalendarDate (CDKCALENDAR *" "calendar",
|
|
.BI "int *" "day",
|
|
.BI "int *" "month",
|
|
.BI "int *" "year");
|
|
.LP
|
|
.BI "void setCDKCalendarDayAttribute (CDKCALENDAR *" "calendar",
|
|
.BI "chtype " "attribute");
|
|
.LP
|
|
.BI "chtype getCDKCalendarDayAttribute (CDKCALENDAR *" "calendar");
|
|
.LP
|
|
.BI "void setCDKCalendarMonthAttribute (CDKCALENDAR *" "calendar",
|
|
.BI "chtype " "attribute");
|
|
.LP
|
|
.BI "chtype getCDKCalendarMonthAttribute (CDKCALENDAR *" "calendar");
|
|
.LP
|
|
.BI "void setCDKCalendarYearAttribute (CDKCALENDAR *" "calendar",
|
|
.BI "chtype " "attribute");
|
|
.LP
|
|
.BI "chtype getCDKCalendarYearAttribute (CDKCALENDAR *" "calendar");
|
|
.LP
|
|
.BI "void setCDKCalendarHighlight (CDKCALENDAR *" "calendar",
|
|
.BI "chtype " "attribute");
|
|
.LP
|
|
.BI "chtype getCDKCalendarHighlight (CDKCALENDAR *" "calendar");
|
|
.LP
|
|
.BI "void setCDKCalendarBox (CDKCALENDAR *" "calendar",
|
|
.BI "boolean " "box");
|
|
.LP
|
|
.BI "boolean getCDKCalendarBox (CDKCALENDAR *" "calendar");
|
|
.LP
|
|
.BI "void setCDKCalendarMarker (CDKCALENDAR *" "calendar",
|
|
.BI "int " "day",
|
|
.BI "int " "month",
|
|
.BI "int " "year",
|
|
.BI "chtype " "marker");
|
|
.LP
|
|
.BI "void removeCDKCalendarMarker (CDKCALENDAR *" "calendar",
|
|
.BI "int " "day",
|
|
.BI "int " "month",
|
|
.BI "int " "year");
|
|
.LP
|
|
.BI "void moveCDKCalendar (CDKCALENDAR *" "calendar",
|
|
.BI "int " "box",
|
|
.BI "int " "box",
|
|
.BI "boolean " "relative",
|
|
.BI "boolean " "refresh");
|
|
.LP
|
|
.BI "void positionCDKCalendar (CDKCALENDAR *" "calendar");
|
|
.LP
|
|
.BI "void drawCDKCalendar (CDKCALENDAR *" "calendar",
|
|
.BI "boolean " "box");
|
|
.LP
|
|
.BI "void eraseCDKCalendar (CDKCALENDAR *" "calendar");
|
|
.LP
|
|
.BI "void destroyCDKCalendar (CDKCALENDAR *" "calendar");
|
|
.LP
|
|
.BI "void setCDKCalendarPreProcess (CDKCALENDAR *" "calendar",
|
|
.BI "PROCESSFN " "callback",
|
|
.BI "void * " "data");
|
|
.LP
|
|
.BI "void setCDKCalendarPostProcess (CDKCALENDAR *" "calendar",
|
|
.BI "PROCESSFN " "callback",
|
|
.BI "void * " "data");
|
|
.LP
|
|
.BI "void bindCDKObject (EObjectType " "widgetType",
|
|
.BI "void *" "object",
|
|
.BI "chtype " "key",
|
|
.BI "BINDFN " "function",
|
|
.BI "void *" "data");
|
|
.SH DESCRIPTION
|
|
The Cdk calendar widget creates a pop-up calendar. The calendar widget allows
|
|
the user to traverse through months/years using the cursor keys.
|
|
|
|
.SH AVAILABLE FUNCTIONS
|
|
CDKCALENDAR *newCDKCalendar (CDKSCREEN *\f2screen\f1, int \f2xpos\f1, int \f2ypos\f1, char *\f2title\f1, int \f2day\f1, int \f2month\f1, int \f2year\f1, chtype \f2dayAttrib\f1, chtype \f2monthAttrib\f1, chtype \f2yearAttrib\f1, chtype \f2highlight\f1, boolean \f2box\f1, boolean \f2shadow\f1);
|
|
.RS 3
|
|
This function creates a pointer to a calendar widget. The \f2screen\f1
|
|
parameter is the screen you wish this widget to be placed in. The parameter
|
|
\f2xpos\f1 controls the placement of the object along the horizontal axis.
|
|
This parameter can take integer value or one of the pre-defined values of
|
|
\f4LEFT\f1, \f4RIGHT\f1, and \f4CENTER\f1. The parameter \f2ypos\f1 controls
|
|
the placement of the object along the vertical axis. This parameter can accept
|
|
an integer value or a pre-defined value of \f4TOP\f1, \f4BOTTOM\f1, and
|
|
\f4CENTER\f1. The \f2title\f1 parameter is the string which will be displayed
|
|
at the top of the widget. The title can be more than one line; just
|
|
provide a carriage return character at the line break. The parameters \f2year\f1,
|
|
\f2month\f1, and \f2day\f1 set the initial date of the calendar. The three
|
|
parameters following \f2yearAttrib\f1, \f2monthAttrib\f1, and \f2dayAttrib\f1
|
|
represent the attributes of the year, month, and day respectfully. The
|
|
\f2highlight\f1 parameter sets the highlight of the currently selected day.
|
|
The \f2box\f1 parameter states whether the widget will be drawn with a box
|
|
around it or not. The \f2shadow\f1 parameter accepts a boolean value to turn
|
|
the shadow on or off around this widget. If the widget could not be created
|
|
then a \f4NULL\f1 pointer is returned.
|
|
.RE
|
|
|
|
time_t activateCDKCalendar (CDKCALENDAR *\f2calendar\f1, chtype *\f2actions\f1);
|
|
.RS 3
|
|
This function activates the calendar widget and lets the user interact with the
|
|
widget. The \f2calendar\f1 widget is a pointer to a non-NULL calendar widget.
|
|
If the \f2actions\f1 parameter is passed with a non-NULL value, the characters
|
|
in the array will be injected into the widget. To activate the widget
|
|
interactively pass in a \f4NULL\f1 pointer for \f2actions\f1. If the character
|
|
entered into this widget is \f4RETURN\f1 then this function will return a type
|
|
of \f4time_t\f1. The \f4time_t\f1 type is used in the functions defined in the
|
|
time.h header file. (do a man on \f4localtime\f1 or \f4ctime\f1 for more
|
|
information). If the character entered into this widget was \f4ESCAPE\f1 or
|
|
\f4TAB\f1 then this function will return a value of (time_t)-1 and the structure
|
|
member \f4exitType\f1 will be set to \f4vESCAPE_HIT\f1.
|
|
.RE
|
|
|
|
time_t injectCDKCalendar (CDKCALENDAR *\f2calendar\f1, chtype \f2character\f1);
|
|
.RS 3
|
|
This function injects a single character into the widget. The parameter
|
|
\f2calendar\f1 is a pointer to a non-NULL calendar widget. The parameter
|
|
\f2character\f1 is the character to inject into the widget. If the character
|
|
entered into this widget is \f4RETURN\f1 then this function will return a type
|
|
of \f4time_t\f1. The \f4time_t\f1 type is used in the functions defined in the
|
|
time.h header file. (do a man on \f4localtime\f1 or \f4ctime\f1 for more
|
|
information). If the character entered into this widget was \f4ESCAPE\f1 or
|
|
\f4TAB\f1 then this function will return a value of (time_t)-1 and the structure
|
|
member \f4exitType\f1 will be set to \f4vESCAPE_HIT\f1. Any other character
|
|
injected into the widget will set the structure member \f4exitType\f1 to
|
|
\f4vEARLY_EXIT\f1 and the function will return (time_t)-1.
|
|
.RE
|
|
|
|
void setCDKCalendar (CDKCALENDAR *\f2calendar\f1, int \f2day\f1, int \f2month\f1, int \f2year\f1, chtype \f2dayAttrib\f1, chtype \f2monthAttrib\f1, chtype \f2yearAttrib\f1, chtype \f2highlight\f1, boolean \f2box\f1);
|
|
.RS 3
|
|
This function lets the programmer modify certain elements of an already defined
|
|
calendar widget. The \f2calendar\f1 parameter represents an already defined calendar
|
|
pointer. The other parameter names correspond to the same parameter names listed
|
|
in the \f4newCDKCalendar\f1 function.
|
|
.RE
|
|
|
|
void setCDKCalendarDate (CDKCALENDAR *\f2calendar\f1, int \f2day\f1, int \f2month\f1, int \f2year\f1);
|
|
.RS 3
|
|
This sets the current date the calendar displays.
|
|
.RE
|
|
|
|
void getCDKCalendarDate (CDKCALENDAR *\f2calendar\f1, int *\f2day\f1, int *\f2month\f1, int *\f2year\f1);
|
|
.RS 3
|
|
This returns the current date the calendar is displaying.
|
|
.RE
|
|
|
|
void setCDKCalendarDayAttribute (CDKCALENDAR *\f2calendar\f1, chtype \f2attribute\f1);
|
|
.RS 3
|
|
This sets the attribute of the day in the calendar.
|
|
.RE
|
|
|
|
chtype getCDKCalendarDayAttribute (CDKCALENDAR *\f2calendar\f1);
|
|
.RS 3
|
|
This returns the attribute of the day attribute of the calendar.
|
|
.RE
|
|
|
|
void setCDKCalendarMonthAttribute (CDKCALENDAR *\f2calendar\f1, chtype \f2attribute\f1);
|
|
.RS 3
|
|
This sets the attribute of the month in the calendar.
|
|
.RE
|
|
|
|
chtype getCDKCalendarMonthAttribute (CDKCALENDAR *\f2calendar\f1);
|
|
.RS 3
|
|
This returns the attribute of the month attribute of the calendar.
|
|
.RE
|
|
|
|
void setCDKCalendarYearAttribute (CDKCALENDAR *\f2calendar\f1, chtype \f2attribute\f1);
|
|
.RS 3
|
|
This sets the attribute of the year in the calendar.
|
|
.RE
|
|
|
|
chtype getCDKCalendarYearAttribute (CDKCALENDAR *\f2calendar\f1);
|
|
.RS 3
|
|
This returns the attribute of the year attribute of the calendar.
|
|
.RE
|
|
|
|
void setCDKCalendarHighlight (CDKCALENDAR *\f2calendar\f1, chtype \f2highlight\f1);
|
|
.RS 3
|
|
This function sets the attribute of the highlight bar of the scrolling
|
|
list portion of the widget.
|
|
.RE
|
|
|
|
chtype getCDKCalendarHighlight (CDKCALENDAR *\f2calendar\f1);
|
|
.RS 3
|
|
This returns the attribute of the highlight bar of the scrolling
|
|
list portion of the widget.
|
|
.RE
|
|
|
|
void setCDKCalendarBox (CDKCALENDAR *\f2calendar\f1, boolean \f2boxWidget\f1);
|
|
.RS 3
|
|
This sets whether or not the widget will be draw with a box around it.
|
|
.RE
|
|
|
|
boolean getCDKCalendarBox (CDKCALENDAR *\f2calendar\f1);
|
|
.RS 3
|
|
This returns whether or not the widget will be drawn with a box around it.
|
|
.RE
|
|
|
|
void setCDKCalendarMarker (CDKCALENDAR *\f2calendar\f1, int \f2day\f1, int \f2month\f1, int \f2year\f1, chtype \f2marker\f1);
|
|
.RS 3
|
|
This allows the user to set a marker which will be displayed when the month is
|
|
drawn. The \f2marker\f1 parameter is the attribute to use when drawing the
|
|
marker. If more than one marker is set on a single day, then the day will blink
|
|
with the original marker attribute.
|
|
.RE
|
|
|
|
void removeCDKCalendarMarker (CDKCALENDAR *\f2calendar\f1, int \f2day\f1, int \f2month\f1, int \f2year\f1);
|
|
.RS 3
|
|
This function removes a marker from the calendar.
|
|
.RE
|
|
|
|
void setCDKCalendarDate (CDKCALENDAR *\f2calendar\f1, int \f2day\f1, int \f2month\f1, int \f2year\f1);
|
|
.RS 3
|
|
This function sets the calendar to the given date. If the value of the \f2day\f1,
|
|
\f2month\f1, or \f2year\f1 parameters is -1 then the current day, month, or year
|
|
is used to set the date.
|
|
.RE
|
|
|
|
void moveCDKCalendar (CDKCALENDAR *\f2calendar\f1, int \f2xpos\f1, int \f2ypos\f1, boolean \f2relative\f1, boolean \f2refresh\f1);
|
|
.RS 3
|
|
This function moves the given widget to the given position. The parameters
|
|
\f2xpos\f1 and \f2ypos\f1 is the new position of the widget. The parameter
|
|
\f2xpos\f1 can accept an integer value or one of the pre-defined values of
|
|
\f4TOP\f1, \f4BOTTOM\f1, and \f4CENTER\f1. The parameter \f2ypos\f1 can
|
|
accept an integer value or one of the pre-defined values of \f4LEFT\f1,
|
|
\f4RIGHT\f1, and \f4CENTER\f1. The parameter \f2relative\f1 states whether
|
|
the \f2xpos\f1/\f2ypos\f1 pair is a relative move or an absolute move. For
|
|
example if \f2xpos\f1 = 1 and \f2ypos\f1 = 2 and \f2relative\f1 = \f2TRUE\f1,
|
|
then the widget would move one row down and two columns right. If the value
|
|
of \f2relative\f1 was \f2FALSE\f1 then the widget would move to the position
|
|
(1,2). Do not use the values of \f4TOP\f1, \f4BOTTOM\f1, \f4LEFT\f1,
|
|
\f4RIGHT\f1, or \f4CENTER\f1 when \f2relative\f1 = \f4TRUE\f1. (weird things
|
|
may happen). The final parameter \f2refresh\f1 is a boolean value which
|
|
states whether the widget will get refreshed after the move or not.
|
|
.RE
|
|
|
|
void positionCDKCalendar (CDKCALENDAR *\f2calendar\f1);
|
|
.RS 3
|
|
This function allows the user to move the widget around the screen via the
|
|
cursor/keypad keys. The following key bindings can be used to move the
|
|
widget around the screen.
|
|
.LP
|
|
.nf
|
|
\f4Key Bindings\f1
|
|
.RS 3
|
|
\f2Key Action\f1
|
|
Up Arrow Moves the widget up one line.
|
|
Down Arrow Moves the widget down one line.
|
|
Left Arrow Moves the widget left one column
|
|
Right Arrow Moves the widget right one column
|
|
Keypad-1 Moves the widget down one line
|
|
and left one column.
|
|
Keypad-2 Moves the widget down one line.
|
|
Keypad-3 Moves the widget down one line
|
|
and right one column.
|
|
Keypad-4 Moves the widget left one column
|
|
Keypad-5 Centers the widget both vertically
|
|
and horizontally.
|
|
Keypad-6 Moves the widget right one column
|
|
Keypad-7 Moves the widget up one line
|
|
and left one column.
|
|
Keypad-8 Moves the widget up one line.
|
|
Keypad-9 Moves the widget up one line
|
|
and right one column.
|
|
t Moves the widget to the top of the screen.
|
|
b Moves the widget to the bottom of the screen.
|
|
l Moves the widget to the left of the screen.
|
|
r Moves the widget to the right of the screen.
|
|
c Centers the widget between the left and
|
|
right of the window.
|
|
C Centers the widget between the top and
|
|
bottom of the window.
|
|
Escape Returns the widget to its original position.
|
|
Return Exits the function and leaves the widget
|
|
where it was.
|
|
.fi
|
|
.RE
|
|
.RS 3
|
|
.LP
|
|
Keypad means that if the keyboard you are using has a keypad, then the
|
|
Num-Lock light has to be on in order to use the keys as listed. (The
|
|
numeric keys at the top of the keyboard will work as well.)
|
|
.LP
|
|
void drawCDKCalendar (CDKCALENDAR *\f2calendar\f1, boolean \f2box\f1);
|
|
.RS 3
|
|
This function draws the label widget on the screen. The \f2box\f1 option
|
|
draws the widget with or without a box.
|
|
.RE
|
|
|
|
void eraseCDKCalendar (CDKCALENDAR *\f2calendar\f1);
|
|
.RS 3
|
|
This function removes the widget from the screen. This does \f4NOT\f1 destroy
|
|
the widget.
|
|
.RE
|
|
|
|
void destroyCDKCalendar (CDKCALENDAR *\f2calendar\f1);
|
|
.RS 3
|
|
This function removes the widget from the screen and frees up any memory the
|
|
object may be using.
|
|
.RE
|
|
|
|
void setCDKCalendarPreProcess (CDKCALENDAR *\f2calendar\f1, PROCESSFN \f2function\f1, void *\f2data\f1);
|
|
.RS 3
|
|
This function allows the user to have the widget call a function after a key
|
|
is hit and before the key is applied to the widget. The parameter \f2function\f1
|
|
if of type \f4PROCESSFN\f1. The parameter \f2data\f1 is a pointer to
|
|
\f4void\f1. To learn more about pre-processing read the \f4cdk_process\f1
|
|
manual page.
|
|
.RE
|
|
|
|
void setCDKCalendarPostProcess (CDKCALENDAR *\f2calendar\f1, PROCESSFN \f2function\f1, void *\f2data\f1);
|
|
.RS 3
|
|
This function allows the user to have the widget call a function after the
|
|
key has been applied to the widget. The parameter \f2function\f1 if of type
|
|
\f4PROCESSFN\f1. The parameter \f2data\f1 is a pointer to \f4void\f1. To
|
|
learn more about post-processing read the \f4cdk_process\f1 manual page.
|
|
.RE
|
|
|
|
void bindCDKObject (EObjectType \f2widgetType\f1, void *\f2object\f1, char \f2key\f1, BINDFN \f2function\f1, void *\f2data\f1);
|
|
.RS 3
|
|
This function allows the user to create special key bindings. The
|
|
\f2widgetType\f1 parameter is a defined type which states what Cdk object
|
|
type is being used. The \f2object\f1 parameter is the pointer to the widget
|
|
object. The \f2widgetType\f1 parameter is a defined type which states what
|
|
Cdk object type is being used. To learn more about the type \f4EObjectType\f1
|
|
read the \f4cdk_binding\f1 manual page. The \f2object\f1 parameter is the
|
|
pointer to the widget object. The \f2key\f1 is the character to bind. The
|
|
\f2function\f1 is the function type. To learn more about the key binding
|
|
callback function types read the \f4cdk_binding\f1 manual page. The last
|
|
parameter \f2data\f1 is a pointer to any data that needs to get passed to
|
|
the callback function.
|
|
.RE
|
|
|
|
.SH KEY BINDINGS
|
|
When the widget is activated there are several default key bindings which will
|
|
help the user enter or manipulate the information quickly. The following table
|
|
outlines the keys and their actions for this widget.
|
|
.LP
|
|
.RS 3
|
|
.nf
|
|
\f2Key Action\f1
|
|
Left Arrow Moves the cursor to the previous day.
|
|
Right Arrow Moves the cursor to the next day.
|
|
Up Arrow Moves the cursor to the next week.
|
|
Down Arrow Moves the cursor to the previous week.
|
|
t Sets the calendar to the current date.
|
|
T Sets the calendar to the current date.
|
|
n Advances the calendar one month ahead.
|
|
N Advances the calendar six months ahead.
|
|
p Advances the calendar one month back.
|
|
P Advances the calendar six months back.
|
|
- Advances the calendar one year ahead.
|
|
+ Advances the calendar one year back.
|
|
Return Exits the widget and returns a value of
|
|
\f4time_t\f1 which represents the day selected
|
|
at 1 second after midnight. This also sets
|
|
the member \f4exitType\f1 in the widget
|
|
structure to the value of \f4vNORMAL\f1.
|
|
Tab Exits the widget and returns a value of
|
|
\f4time_t\f1 which represents the day
|
|
selected at 1 second after midnight.
|
|
This also sets the member \f4exitType\f1
|
|
in the widget structure to the value of
|
|
\f4vNORMAL\f1.
|
|
Escape Exits the widget and returns (time_)-1.
|
|
This also sets the structure member
|
|
\f4exitType\f1 to the value of \f4vESCAPE_HIT\f1.
|
|
Ctrl-L Refreshes the screen.
|
|
.fi
|
|
.RE
|
|
.SH SEE ALSO
|
|
.BR cdk (3),
|
|
.BR cdk_binding (3),
|
|
.BR cdk_display (3),
|
|
.BR cdk_screen (3)
|
|
.SH NOTES
|
|
.PP
|
|
The header file \f4<cdk.h>\f1 automatically includes the header files
|
|
\f4<curses.h>\f1, \f4<stdlib.h>\f1, \f4<string.h>\f1, \f4<ctype.h>\f1,
|
|
\f4<unistd.h>\f1, \f4<dirent.h>\f1, \f4<time.h>\f1, \f4<errno.h>\f1,
|
|
\f4<pwd.h>\f1, \f4<grp.h>\f1, \f4<sys/stat.h>\f1, and \f4<sys/types.h>\f1.
|
|
The \f4<curses.h>\f1 header file includes \f4<stdio.h>\f1 and \f4<unctrl.h>\f1.
|
|
.PP
|
|
If you have \f4Ncurses\f1 installed on your machine add -DNCURSES to the
|
|
compile line to include the Ncurses header files instead.
|