What is it ?
pyCDK is a Python binding to the CDK library. CDK, written by Mike Glover,
provides a set of high level curses widgets. CDK is great, it really makes 
building complex curses applications much easier. I have used it before 
from C and Perl but no Python binding existed - that I could find anyway.
So I was playing around with Pyrex (which is too cool for words) and decided
it would be educational to generate a Pyrex wrapper for the cdk lib.

pyCDK is strictly a text interface module, if you are looking to write a full
fledged GUI in python then I highly recommend wxPython and wxGlade.

Where are the Screenshots ?
calendar widget
matrix (table) widget
viewer widget

How do I get it ?
1. Make sure you have Pyrex installed (version 0.82+).

2. Download and install CDK from Thomas Dickey's site
   * untar/gz the source archive
   * cd into it
   * ./configure
   * ./make
   * ./make install
3. Download the pycdk package from here

4. If necessary, modify by adding the include and lib directories for CDK. The relevant portion is:

    include_dirs = ['/usr/local/include/cdk', '/usr/include']
    library_dirs = ['/usr/local/lib', '/usr/lib']
    (I installed CDK with the default prefix of /usr/local.)

5. Run install (as root)
6. Every widget has a minimal example under pycdk/examples

7. Consult the man pages for CDK if you have a question that the examples don't make clear.
    Also, it may be that what you are after just isn't wrapped yet. In that case send me a note or
    better yet, send me a patch !

1. Test on more platforms/Python versions.

2. Some of the widgets accept C callbacks, need to get these working with Python callbacks.

3. Wrap additional widget functionality.

4. Marquee widget doesn't end gracefully.

1. (Q) Why does this web site suck so bad. 
   (A) Cause this is a spare time deal and I'm a programmer not a graphic artist.
2. (Q) Who uses CDK ?
   (A) Good question - I don't know which programs out in the wild use cdk.
       If you know email me and I'll post it here. 
       I use it mainly for server monitoring utilities.
3. (Q) What platforms are supported ?
   (A) I'm working on RH9/x86. When I get time I'm going to test on Cygwin.
       Let me know if you get it working somewhere else.
Richard Lawson
lawson89 AT Logo