NAME
xcalendar - calendar with a notebook for X11
SYNTAX
xcalendar [month [year]]
DESCRIPTION
xcalendar is a simple interactive calendar program with a
notebook capability. It is built on the X Toolkit and the
Athena or Motif Widgets (compile time option).
If month and year are not
provided on the command line they
are assumed to be current.
INTERACTIONS
Clicking the left mouse button on a day will start a text
editor. You can edit and save a text. This text will be
associated with the day. You can later on read and edit this
text when you open the editor for the same day. The text is
saved in a file in the directory specified by the calendar-
Dir resource (default ~/Calendar). The editor lets you also
clear an entry associated with a particular day. You can
also scroll through days while in the editor by clicking on
the arrows on either side of the date label. If an already
open day is scrolled to, an appropriate message is displayed
and the editor is brought upin read only mode.
It is also possible to scroll
through months in the main
window by clicking on the arrows on either side of the
current date label.
You can highlight all entries in
a month by invoking the
function ShowEntries. By default this function is called
when the left mouse button is pressed in the title window
(where month and a year are displayed). Pressing again the
same button will unhighlight the entries.
"Holidays" are shown
in a text widget near the bottom of the
day editor. Holidays are read from a holiday file (see
holidayFile below). The format of the file is mm/dd/yyyy
holidaytext where the date and text are separated by a tab.
Currently there is no wildcarding done.
MISSING FEATURES
One can imagine many useful features. For example automatic
parsing of the current day entry in search for appointments
to trigger alarms (reminders) at the approriate time. Actu-
ally, there is a perl script called xcalendar+ that will do
this sort of thing. Maybe one day xcalendar will do it
internally.
RESOURCES
The resource data base lets you alter the visual appearance
of the program. You can change fonts, border widths, labels,
and other resources used by widgets. One use of this facil-
ity is to change names of week days and months.
Here are the names of widgets
you can use to set various
resources:
XCalendar - class of the
application
xcalendar - top level pane
controls - control panel
quitButton - quit button
helpButton - help button
date - date label
calendar - calendar pane
daynumbers - day numbers frame
1-49 - day number buttons
daynames - day names frame
MON,TUE,WED,THU,FRI,SAT,SUN - day name buttons
helpWindow - help window
bcontrols - month buttons frame
prev - previous month button
succ - succeeding month button
cdate - current date widget
dayEditor - editor popup
editorFrame - editor frame
editorTitle - editor title
editor - editor
holiday - holiday text
daybuttons - day buttons frame
prevday - previous day button
succday - succeeding day button
editorControls - control panel
doneButton - done button
saveButton - save button
clearEntry - clear entry button
Application specific resources:
reverseVideoMark - if True the
entries are highlighted in reverse
video; default True for monochrome displays
and False for color displays;
setMarkBackground - if True and
reverseVideoMark is False the
entries are highlighted by setting
background to markBackground ;
markBackground - background color for highlighting entries;
setMarkForeground - analogous to setMarkBackground;
markForeground - foreground color for highlighting entries;
setMarkBackground and
setMarkForeground can take any
combination of values.
january,february,..,december -
these resources can be used for
changing names of months in the month label
(date) and for filename determination under
oldStyle (see below);
firstDay - an integer between
1-7, indicating the day to
start a week with, default: 7 (Sunday);
markOnStartup - if True mark the
entries upon startup,
default: False;
helpFile - full pathname of the
xcalendar.hlp file,
default: /usr/lib/X11/xcalendar/xcalendar.hlp;
textBufferSize - maximum size of
the text buffer in the day editor,
default: 2048;
calendarDir - path name of
directory to use for storing calendar
files instead of keeping them in $HOME/Calendar;
holidayFile - path name of file
to use for determining holiday,
default: /usr/lib/X11/xcalendar/xcalendar.hol;
oldStyle - uses version 3.0 and
prior file naming convention,
(xcDAYmonYEAR), where DAY and YEAR are numeric and
mon is the first three letters of the month,
instead of the "new style" (xcyyyymmdd),
default: True;
markCurrent - if True mark the
current day (if visible; useful
on color displays only), default: False;
updateCurrent - number of
seconds between attempts to update the
marking of the current day, default: 60;
currentForeground - foreground color for current day highlight;
markHoliday - if True mark
holidays (if visible; useful on
color displays only), default: False;
holidayForeground - foreground color for holiday highlight;
monthnames - string of
’/’ separated month names used for
formatting the date in cdate;
monthnms - string of
’/’ separated month abbreviations used
for formatting the date in cdate;
daynames - string of
’/’ separated day names used for
formatting the date in cdate;
daynms - string of
’/’ separated day abbreviations used
for formatting the date in cdate;
date - format string for date in
cdate. The formatting
characters that are understood are:
%W Full weekday name
%w Three-char weekday name
%M Full month name
%m Three-char abbreviation for that month
%d The date (numerical day number of the month)
%Y Full year (4 digits)
%y 2-digit year number
default: "%W, %M %d";
DEFAULT RESOURCE DATA BASE:
!
*showGrip: False
*calendar*internalBorderWidth: 0
*input: True
*resize: False
*resizable: True
*title: XCalendar v.4.0
*dayEditor.title: Day Editor
*helpWindow.title: XCalendar Help
*Font: 8x13
*FontList: 8x13
*helpFile:
/p/X11R6/lib/X11/xcalendar/xcalendar.hlp
*holidayFile: /p/X11R6/lib/X11/xcalendar/xcalendar.hol
*firstDay: 7
! bitmaps
*prev*bitmap:
/p/X11R6/lib/X11/xcalendar/larrow.xbm
*succ*bitmap: /p/X11R6/lib/X11/xcalendar/rarrow.xbm
*prevday*bitmap: /p/X11R6/lib/X11/xcalendar/larrow.xbm
*succday*bitmap: /p/X11R6/lib/X11/xcalendar/rarrow.xbm
*helpButton*bitmap: /p/X11R6/lib/X11/xcalendar/qmark.xbm
*quitButton*bitmap: /p/X11R6/lib/X11/xcalendar/quit.xbm
*prev*labelType: XmPIXMAP
*prev*labelPixmap:
/usr/local/X11R5/lib/X11/xcalendar/larrow.xbm
*succ*labelType: XmPIXMAP
*succ*labelPixmap:
/usr/local/X11R5/lib/X11/xcalendar/rarrow.xbm
*prevday*labelType: XmPIXMAP
*prevday*labelPixmap:
/usr/local/X11R5/lib/X11/xcalendar/larrow.xbm
*succday*labelType: XmPIXMAP
*succday*labelPixmap:
/usr/local/X11R5/lib/X11/xcalendar/rarrow.xbm
*quitButton*labelType: XmPIXMAP
*quitButton*labelPixmap:
/usr/local/X11R5/lib/X11/xcalendar/quit.xbm
*helpButton*labelType: XmPIXMAP
*helpButton*labelPixmap:
/usr/local/X11R5/lib/X11/xcalendar/qmark.xbm
! colors
! Note: These may cause problems using the -rv option on
monochrome displays
*Background: lightgray
*markBackground: gray
*daynames*Background: lightgray
*daynames.SUN*Foreground: Red
*daynames.SAT*Foreground: Black
*daynumbers*Foreground: Black
*daynumbers.1*Foreground: Red
*daynumbers.8*Foreground: Red
*daynumbers.15*Foreground: Red
*daynumbers.22*Foreground: Red
*daynumbers.29*Foreground: Red
*daynumbers.36*Foreground: Red
*helpButton*Background: slategray
*helpButton*Foreground: White
*quitButton*Background: slategray
*quitButton*Foreground: White
*editorTitle*Background: lightgray
*editorTitle*Foreground: Black
*editorControls*Background: lightgray
*editorControls*Command.Background: slategray
*editorControls*Command.Foreground: White
*editorControls*XmPushButton.Background: slategray
*editorControls*XmPushButton.Foreground: White
*setMarkBackground: True
*markOnStartup: True
*markCurrent: True
*currentForeground: Blue
*markHoliday: True
*holidayForeground: Red
*holiday*fontList: 6x13
*BorderWidth: 2
*calendar.borderWidth: 1
*borderWidth: 0
*date*borderWidth: 0
*date*vertDistance: 5
*date*font: 8x13bold
*daynames*font: 8x13bold
*dayEditor*editorTitle*font: 8x13bold
*helpWindow*editorTitle*font: 8x13bold
*date*fontList: 8x13bold
*daynames*fontList: 8x13bold
*dayEditor*editorTitle*fontList: 8x13bold
*helpWindow*editorTitle*fontList: 8x13bold
*helpButton*vertDistance: 12
*quitButton*vertDistance: 12
*editorTitle*vertDistance: 5
*editorControls*doneButton*label:
Done
*editorControls*saveButton*label: Save
*editorControls*clearEntry*label: Clear Entry
*doneButton*labelString: Done
*saveButton*labelString: Save
*clearEntry*labelString: Clear Entry
*helpWindow*editorTitle*label:
Help
*helpWindow*editorTitle*labelString: Help
*helpWindow*rows: 15
*helpWindow*columns: 80
*rows:7
*columns: 30
*dayEditor*Paned*editor.width:
300
*dayEditor*Paned*editor.height: 150
*helpWindow*Paned*editor.width: 600
*helpWindow*Paned*editor.height: 350
*bcontrols*borderWidth: 0
*prev*highlightThickness: 0
*succ*highlightThickness: 0
*prevday*highlightThickness: 0
*succday*highlightThickness: 0
*daybuttons*borderWidth: 0
*Scrollbar.borderWidth: 1
*Text*scrollVertical: whenNeeded
*scrollHorizontal: False
*helpWindow*scrollHorizontal: True
*holiday*cursorPositionVisible: False
*holiday*displayCaret: False
*helpWindow*cursorPositionVisible: False
*helpWindow*displayCaret: False
!! Keyboard accelerators for Athena version
*Box*doneButton*accelerators:
#override Meta<Key>q: set() notify() reset()
*Box*saveButton*accelerators: #override Meta<Key>s:
set() notify() reset()
*Box*clearEntry*accelerators: #override Meta<Key>c:
set() notify() reset()
*Form*prevday*accelerators:
#override Meta<Key>p: set() notify() reset()
*Form*succday*accelerators: #override Meta<Key>n:
set() notify() reset()
*Form*prev*accelerators:
#override <Key>p: set() notify() reset()
*Form*succ*accelerators: #override <Key>n: set()
notify() reset()
*Form*quitButton*accelerators: #override <Key>q: set()
notify()
! Motif text translations to make it work like emacs
*XmText.translations: #override Ctrl <Key>b: backward-character() Alt <Key>b: backward-word() Meta <Key>b: backward-word() Shift Alt <Key>b: backward-word(extend) Shift Meta <Key>b: backward-word(extend) Alt <Key>[: backward-paragraph() Meta <Key>[: backward-paragraph() Shift Alt <Key>[: backward-paragraph(extend) Shift Meta <Key>[: backward-paragraph(extend) Alt <Key><: beginning-of-file() Meta <Key><: beginning-of-file() Ctrl <Key>a: beginning-of-line() Shift Ctrl <Key>a: beginning-of-line(extend) Ctrl <Key>osfInsert: copy-clipboard() Shift <Key>osfDelete: cut-clipboard() Shift <Key>osfInsert: paste-clipboard() Alt <Key>>: end-of-file() Meta <Key>>: end-of-file() Ctrl <Key>e: end-of-line() Shift Ctrl <Key>e: end-of-line(extend) Ctrl <Key>f: forward-character() Alt <Key>]: forward-paragraph() Meta <Key>]: forward-paragraph() Shift Alt <Key>]: forward-paragraph(extend) Shift Meta <Key>]: forward-paragraph(extend) Ctrl Alt <Key>f: forward-word() Ctrl Meta <Key>f: forward-word() Ctrl <Key>d: kill-next-character() Alt <Key>BackSpace: kill-previous-word() Meta <Key>BackSpace: kill-previous-word() Ctrl <Key>w: key-select() kill-selection() Ctrl <Key>y: unkill() Ctrl <Key>k: kill-to-end-of-line() Alt <Key>Delete: kill-to-start-of-line() Meta <Key>Delete: kill-to-start-of-line() Ctrl <Key>o: newline-and-backup() Ctrl <Key>j: newline-and-indent() Ctrl <Key>n: next-line() Ctrl <Key>osfLeft: page-left() Ctrl <Key>osfRight: page-right() Ctrl <Key>p: previous-line() Ctrl <Key>g: process-cancel() Ctrl <Key>l: redraw-display() Ctrl <Key>osfDown: next-page() Ctrl <Key>osfUp: previous-page() Ctrl <Key>space: set-anchor()
FILES
$HOME/Calendar/*, /usr/lib/X11/xcalendar/xcalendar.hlp,
/usr/lib/X11/xcalendar/xcalendar.hol
SEE ALSO
xrdb(1), xcalendar+(1)
BUGS
I’m sure there are some.
If you find any, let me
(bingle@cs.purdue.edu) know.
AUTHORS
Copyright 1988 by Massachusetts Institute of Technology
Roman J. Budzianowski, MIT Project Athena
Copyright 1990-1994 by Purdue
University
Richard Bingle, Department of Computer Sciences
Enhancements/Suggestions by:
Beth Chaney
Purdue University, Department of Computer Sciences
Mike Urban
Jet Propulsion Labs, NASA
Joel Neisen
Minnesota Supercomputer Center
Hiroshi Kuribayashi
Omron Corp.