Canvas (GUI)


In computer science and visualization, a canvas is a container that holds various drawing elements. It takes its name from the canvas used in visual arts. It is sometimes called a scene graph because it arranges the logical representation of a user interface or graphical scene. Some implementations also define the spatial representation and allow the user to interact with the elements via a graphical user interface.

Library support

Various free and open-source canvas or scene-graph libraries allow developers to construct a user interface and/or user-interface elements for their computer programs.
Examples of free and open-source scene-graph canvas options include:
Some canvas modules within various libraries do not provide the power of a full scene-graph - they operate at a lower level which requires programmers to provide code such as mapping mouse-clicks to objects in the canvas. Examples of libraries which include such a canvas module include:
  • in C++, KDE Plasma Workspaces canvas
  • the Canvas element in HTML5
  • for Java, the AWT library
  • for Java, the Java FX library
  • for Java, the Swing library
  • for Java, the SWT library , associated with Eclipse
  • for Java-like JavaScript, the GWT library
  • in C++, the which renders using the Cairo library
  • in C, , a GTK canvas widget which renders using the Cairo library
  • in C, , a GTK canvas widget which renders using the Cairo library
Proprietary canvas libraries include, for example: