Sugar Architecture/API: Difference between revisions

From OLPC
Jump to navigation Jump to search
(→‎Third Party Packages: repoint "gstreamer" link to new wiki page)
m (Reverted edits by 222.255.31.82 (Talk); changed back to last version by Walter)
 
(8 intermediate revisions by 8 users not shown)
Line 41: Line 41:
</table>
</table>
</div>
</div>

''This page describes Sugar's Python programming environment. The API available to non-Python activities is described on the [[Low-level Activity API]] page.''

Sugar is written in Python and uses a variety of open source packages. Programming in the Sugar environment requires a basic understanding of the Sugar user interface, supporting third-party packages, and built-in Sugar packages.
Sugar is written in Python and uses a variety of open source packages. Programming in the Sugar environment requires a basic understanding of the Sugar user interface, supporting third-party packages, and built-in Sugar packages.


Line 52: Line 55:
*[[Software_components#Libraries_and_Plugins|Avahi]] - network service discovery system
*[[Software_components#Libraries_and_Plugins|Avahi]] - network service discovery system
*[[GTK for OLPC|GTK]] - GNOME Toolkit
*[[GTK for OLPC|GTK]] - GNOME Toolkit
*[[gstreamer]] - multimedia framework
*[[GStreamer]] - multimedia framework
*[[Cairo]] - 2-D graphics library
*[[Cairo]] - 2-D graphics library
*[[D-BUS]] - message bus service
*[[D-BUS]] - message bus service
*[[Evince]] - document viewer
*[[Evince]] - document viewer
*[[HippoCanvas]] - generic user interface widget
*[[HippoCanvas]] - generic user interface widget - ''now deprecated'' use GTK layout managers
*[[Software_components#Libraries_and_Plugins|Matchbox]] - graphical windows manager
*[[Software_components#Libraries_and_Plugins|Matchbox]] - graphical windows manager
*[[Software_components#Libraries_and_Plugins|Pango]] - GTK package for text rendering
*[[Software_components#Libraries_and_Plugins|Pango]] - GTK package for text rendering
Line 78: Line 81:
* sugar-install-bundle
* sugar-install-bundle
* sugar-presence-service
* sugar-presence-service
* sugar-presence-service2
* sugar-setup-activity
* sugar-setup-activity
* sugar-shell
* sugar-shell

Latest revision as of 16:53, 10 July 2008

Table of Contents
API Introduction
Third Party Packages AbiWord ATK Avahi GTK gstreamer Cairo D-Bus evince HippoCanvas
Sugar Packs Python Scripts Library Packages Shell Packages Services Package Activity APIs

This page describes Sugar's Python programming environment. The API available to non-Python activities is described on the Low-level Activity API page.

Sugar is written in Python and uses a variety of open source packages. Programming in the Sugar environment requires a basic understanding of the Sugar user interface, supporting third-party packages, and built-in Sugar packages.

Traditional software packages are built against application programming interfaces. Sugar runs Activities instead of applications, but from a developer's point of view, it's the same thing.

The platform API Reference includes a collection of pointers to documentation including automatically generated PyDoc documentation for Sugar and related libraries.

Third Party Packages

  • Abiword - Document writer
  • ATK - GNOME Accessibility Toolkit
  • Avahi - network service discovery system
  • GTK - GNOME Toolkit
  • GStreamer - multimedia framework
  • Cairo - 2-D graphics library
  • D-BUS - message bus service
  • Evince - document viewer
  • HippoCanvas - generic user interface widget - now deprecated use GTK layout managers
  • Matchbox - graphical windows manager
  • Pango - GTK package for text rendering
  • X Window System - the tried-and-true ancient X11 display libraries
  • Xul - XML User Interface Language

Sugar Packs

This details the contents and structure of OLPC Build 303.

Sugar Python Scripts

Several Python Scripts reside in /usr/bin

Scripts:

  • sugar-activity
  • sugar-activity-factory
  • sugar-clipboard
  • sugar-console
  • sugar-data-store
  • sugar-emulator
  • sugar-emulator-shutdown
  • sugar-install-bundle
  • sugar-presence-service
  • sugar-setup-activity
  • sugar-shell

Sugar Library Packages

Many Sugar library packages reside in /usr/lib/python*/site-packages/sugar

Modules:

  • TracebackUtils
  • date
  • emulator
  • env
  • logger
  • profile
  • simulator
  • util

Subpackages:

Package sugar.shell

Most of the Human Interface is implemented in the sugar.shell packages located in /usr/share/sugar/shell

Modules:

Subpackages:

Package sugar.services

Various services are provided in /usr/share/sugar/services

Modules: none

Subpackages:

Sugar Activity APIs

The previous API sections detail all Sugar interfaces. Here is an abbreviated list of the APIs most relevant for activity programming:

  • gtk
  • gobject
  • hippo
  • logging
  • os
  • pango
  • pygtk
  • sugar.activity.activity
  • sugar.graphics
  • sugar.date