GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - enthought/enable: Enable: low-level drawing and interaction

BranchesTags
Open more actions menu

Latest commit

 

History

2,208 Commits
2,208 Commits

Folders and files

NameName
Last commit message
Last commit date
.github
.github
 
 
ci
ci
 
 
docs
docs
 
 
enable
enable
 
 
kiva
kiva
 
 
.coveragerc
.coveragerc
 
 
.gitignore
.gitignore
 
 
CHANGES.txt
CHANGES.txt
 
 
CONTRIBUTING.rst
CONTRIBUTING.rst
 
 
LICENSE.txt
LICENSE.txt
 
 
MANIFEST.in
MANIFEST.in
 
 
README.rst
README.rst
 
 
font_LICENSE.txt
font_LICENSE.txt
 
 
fonttools_LICENSE.txt
fonttools_LICENSE.txt
 
 
image_LICENSE.txt
image_LICENSE.txt
 
 
image_LICENSE_CP.txt
image_LICENSE_CP.txt
 
 
image_LICENSE_Eclipse.txt
image_LICENSE_Eclipse.txt
 
 
image_LICENSE_Nuvola.txt
image_LICENSE_Nuvola.txt
 
 
image_LICENSE_OOo.txt
image_LICENSE_OOo.txt
 
 
pyproject.toml
pyproject.toml
 
 
setup.py
setup.py
 
 
tox.ini
tox.ini
 
 

Repository files navigation

enable: low-level drawing and interaction

https://docs.enthought.com/enable

Build 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.

Enable

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

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

Prerequisites

You must have the following libraries installed before building the Enable/Kiva project:

  • Setuptools
  • Numpy
  • SWIG
  • fonttools
  • (on Linux) X11-devel (development tools for X11)
  • (on Mac OS X) Cython

Enable/Kiva also have the following requirements:

Runtime:

  • Numpy
  • PIL or preferably pillow
  • traits
  • traitsui
  • pyface

Optional:

  • apptools
  • (Qt backend) PySide2, PySide6 or PyQt5
  • (WX backend) WxPython
  • (SVG backend) PyParsing
  • (PDF backend) ReportLab Toolkit
  • (Cairo backend) PyCairo
  • (Constrained layout) kiwisolver

About

Enable: low-level drawing and interaction

Resources

Readme

Contributing

Contributing
Activity
Custom properties

Stars

98 stars

Watchers

51 watching

Forks

45 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.