Skip to content
This repository

Merge pull request #125 from enthought/cleanup/remove-dnd-print

Remove a print statement introduced by PR #115
latest commit 7417c536bd
John Wiggins jwiggins authored
Octocat-spinner-32 docs Update docs/Makefile December 29, 2012
Octocat-spinner-32 enable Remove a print statement introduced by PR #115 March 14, 2014
Octocat-spinner-32 examples Merge pull request #84 from enthought/feature/new-tools March 03, 2014
Octocat-spinner-32 integrationtests adjust kiva imports June 05, 2011
Octocat-spinner-32 kiva update docstring February 19, 2014
Octocat-spinner-32 .coveragerc add coverall to the travis ci builds February 04, 2014
Octocat-spinner-32 .gitignore Remove the old ATS font code and replace it with a CoreText renderer. June 17, 2012
Octocat-spinner-32 .travis.yml fix pip install command for PIL February 10, 2014
Octocat-spinner-32 .travis_before_install Add Travis CI config files. October 30, 2013
Octocat-spinner-32 .travis_before_install_noqt Make sure X11 gets started for Python 2.6 on TravisCI. November 19, 2013
Octocat-spinner-32 CHANGES.txt Add a changelog file. January 19, 2014
Octocat-spinner-32 LICENSE.txt * Egg-building infrastructure improvements (adding README.txt, LICENS… August 13, 2007
Octocat-spinner-32 README.rst add coverage status badge February 04, 2014
Octocat-spinner-32 TODO.txt adjust kiva imports June 05, 2011
Octocat-spinner-32 image_LICENSE.txt fixed imports to new locations April 21, 2011
Octocat-spinner-32 image_LICENSE_CP.txt Updating license files to match the format of the other projects. July 30, 2008
Octocat-spinner-32 image_LICENSE_Eclipse.txt converting to unix line endings and removing excess whitespace January 28, 2011
Octocat-spinner-32 image_LICENSE_Nuvola.txt converting to unix line endings and removing excess whitespace January 28, 2011
Octocat-spinner-32 image_LICENSE_OOo.txt converting to unix line endings and removing excess whitespace January 28, 2011
Octocat-spinner-32 Fix #101 Setup: Add necessary import for distutils.commands.clean November 12, 2013

enable: low-level drawing and interaction

Build status Coverage status

The Enable project provides two related multi-platform packages for drawing GUI objects.

  • Enable: An object drawing library that supports containment and event notification.
  • Kiva: A multi-platform DisplayPDF vector drawing engine.


The Enable package is a multi-platform object drawing library built on top of Kiva. The core of Enable is a container/component model for drawing and event notification. The core concepts of Enable are:

  • Component
  • Container
  • Events (mouse, drag, and key events)

Enable provides a high-level interface for creating GUI objects, while enabling a high level of control over user interaction. Enable is a supporting technology for the Chaco and BlockCanvas projects.


Kiva is a multi-platform DisplayPDF vector drawing engine that supports multiple output backends, including Windows, GTK, and Macintosh native windowing systems, a variety of raster image formats, PDF, and Postscript.

DisplayPDF is more of a convention than an actual specification. It is a path-based drawing API based on a subset of the Adobe PDF specification. Besides basic vector drawing concepts such as paths, rects, line sytles, and the graphics state stack, it also supports pattern fills, antialiasing, and transparency. Perhaps the most popular implementation of DisplayPDF is Apple's Quartz 2-D graphics API in Mac OS X.

Kiva Features

Kiva currently implements the following features:

  • paths and compiled paths; arcs, bezier curves, rectangles
  • graphics state stack
  • clip stack, disjoint rectangular clip regions
  • raster image blitting
  • arbitrary affine transforms of the graphics context
  • bevelled and mitered joins
  • line width, line dash
  • Freetype or native fonts
  • RGB, RGBA, or grayscale color depths
  • transparency


You must have the following libraries installed before building or installing the Enable project:

Something went wrong with that request. Please try again.