This repository has been archived on 2022-05-13. You can view files and clone it, but cannot push or open issues or pull requests.
chronometrist/cl/manual.org

1.9 KiB

Explanation

This is a port of Chronometrist to Common Lisp.

Currently, it contains

  1. a read-only plist-group backend
  2. an incomplete SQLite backend
  3. 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 -

  1. The columns displayed in this table are controlled by *task-duration-table-spec*, which contains a list of column-specifier objects.
  2. Each column-specifier has two methods specializing on it, a cell-data method and a cell-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.