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
       calendarDir 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 mes-
       sage 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  sepa-
       rated by a tab.  Currently there is no wildcarding done.


MISSING FEATURES

       One  can  imagine  many useful features. For example auto-
       matic parsing of the  current  day  entry  in  search  for
       appointments to trigger alarms (reminders) at the approri-
       ate time.  Actually, there is a perl script called xcalen-
       dar+ that will do this sort of thing.  Maybe one day xcal-
       endar will do it internally.
            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);
                                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:

            !
            *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
            *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 \n\
                 Meta<Key>q: set() notify() reset() \n

            *Form*quitButton*accelerators: #override \n\
                 <Key>q: set() notify() \n


            ! Motif text translations to make it work like emacs

            *XmText.translations: #override\n\
                     Ctrl <Key>b:            backward-character()\n\
                     Alt <Key>b:             backward-word()\n\
                     Meta <Key>b:            backward-word()\n\
                     Shift Alt <Key>b:       backward-word(extend)\n\
                     Shift Meta <Key>b:      backward-word(extend)\n\
                     Alt <Key>[:             backward-paragraph()\n\
                     Meta <Key>[:            backward-paragraph()\n\
                     Shift Alt <Key>[:       backward-paragraph(extend)\n\
                     Shift Meta <Key>[:      backward-paragraph(extend)\n\
                     Alt <Key><:             beginning-of-file()\n\
                     Meta <Key><:            beginning-of-file()\n\
                     Ctrl <Key>a:            beginning-of-line()\n\
                     Shift Ctrl <Key>a:      beginning-of-line(extend)\n\
                     Ctrl <Key>osfInsert:    copy-clipboard()\n\
                     Shift <Key>osfDelete:   cut-clipboard()\n\
                     Shift <Key>osfInsert:   paste-clipboard()\n\
                     Alt <Key>>:             end-of-file()\n\
                     Meta <Key>>:            end-of-file()\n\
                     Ctrl <Key>e:            end-of-line()\n\
                     Shift Ctrl <Key>e:      end-of-line(extend)\n\
                     Ctrl <Key>f:            forward-character()\n\
                     Alt <Key>]:             forward-paragraph()\n\
                     Meta <Key>]:            forward-paragraph()\n\
                     Shift Alt <Key>]:       forward-paragraph(extend)\n\
                     Shift Meta <Key>]:      forward-paragraph(extend)\n\
                     Ctrl Alt <Key>f:        forward-word()\n\
                     Ctrl Meta <Key>f:       forward-word()\n\
                     Ctrl <Key>d:            kill-next-character()\n\
                     Alt <Key>BackSpace:     kill-previous-word()\n\
                     Meta <Key>BackSpace:    kill-previous-word()\n\
                     Ctrl <Key>w:            key-select() kill-selection()\n\
                     Ctrl <Key>y:            unkill()\n\
                     Ctrl <Key>k:            kill-to-end-of-line()\n\
                     Alt <Key>Delete:        kill-to-start-of-line()\n\
                     Meta <Key>Delete:       kill-to-start-of-line()\n\
                     Ctrl <Key>o:            newline-and-backup()\n\
                     Ctrl <Key>j:            newline-and-indent()\n\
                     Ctrl <Key>n:            next-line()\n\
                     Ctrl <Key>osfLeft:      page-left()\n\
                     Ctrl <Key>osfRight:     page-right()\n\
                     Ctrl <Key>p:            previous-line()\n\
                     Ctrl <Key>g:            process-cancel()\n\
                     Ctrl <Key>l:            redraw-display()\n\
                     Ctrl <Key>osfDown:      next-page()\n\
                     Ctrl <Key>osfUp:        previous-page()\n\

       gle@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.

X Version 11               6 June 1994                          7