1.9 KiB
1.9 KiB
Explanation
This is a port of Chronometrist to Common Lisp.
Currently, it contains
- a read-only plist-group backend
- an incomplete SQLite backend
- an incomplete CLIM frontend
Source code overview
CLIM frontend
The CLIM frontend uses CLIM panes for each view of data Chronometrist provides. Each pane has a display-pane
method to display its contents.
Currently, only one CLIM pane has been implemented, called the task-duration table. By default, it displays a list of tasks, and each of their durations for today.
Tables
The tables in the CLIM frontend are designed with ease of extensibility in mind. Thus -
- The columns displayed in this table are controlled by
*task-duration-table-spec*
, which contains a list ofcolumn-specifier
objects. - Each
column-specifier
has two methods specializing on it, acell-data
method and acell-print
method. These determine the data contained by the cells of the column, and how that data is printed in the CLIM pane.
The function task-duration-table-function
uses the cell-data
methods to return the data of the table as a list of lists. This data is used by display-pane
in conjunction with cell-print
methods to display the data in the pane.