API reference: Difference between revisions

From OLPC
Jump to navigation Jump to search
m (Add link to Etoys)
(Add sugar snippets and presence api)
Line 24: Line 24:
** [http://www.vrplumber.com/sugar-docs/sugar.chat.html Clipboard] -- activity's interface to the UI's clipboard interface
** [http://www.vrplumber.com/sugar-docs/sugar.chat.html Clipboard] -- activity's interface to the UI's clipboard interface
** [http://www.vrplumber.com/sugar-docs/sugar.datastore.datastore.html Datastore] -- activity's interface to the datastore service
** [http://www.vrplumber.com/sugar-docs/sugar.datastore.datastore.html Datastore] -- activity's interface to the datastore service
** [[Sugar Code Snippets|Code Snippets]] -- short fragments of code describing the canonical way to achieve various effects
* [http://www.pygtk.org/reference.html Gtk], [http://www.vrplumber.com/sugar-docs/gtk.html (PyDoc)] -- GUI library underlying the Sugar UI
* [http://www.pygtk.org/reference.html Gtk], [http://www.vrplumber.com/sugar-docs/gtk.html (PyDoc)] -- GUI library underlying the Sugar UI
** [http://www.pygtk.org/docs/pygtk/atk-class-reference.html Accessibility Toolkit (ATK)] [http://www.vrplumber.com/sugar-docs/atk.html (PyDoc)] -- tools for providing accessible interfaces
** [http://www.pygtk.org/docs/pygtk/atk-class-reference.html Accessibility Toolkit (ATK)] [http://www.vrplumber.com/sugar-docs/atk.html (PyDoc)] -- tools for providing accessible interfaces
Line 65: Line 66:
* [http://www.vrplumber.com/sugar-docs/urlgrabber.html UrlGrabber] -- url downloading library
* [http://www.vrplumber.com/sugar-docs/urlgrabber.html UrlGrabber] -- url downloading library
* [http://www.vrplumber.com/sugar-docs/olpc.html OLPC] -- the data-store implementation
* [http://www.vrplumber.com/sugar-docs/olpc.html OLPC] -- the data-store implementation
* [[Python Unicode|Unicode]] -- the laptop must provide internationalized software, as a result you will need to use Python's Unicode support


=== Extraneous Libraries ===
=== Extraneous Libraries ===
Line 78: Line 80:


== C Libraries ==
== C Libraries ==

== System Services ==

* [[Forth Lessons]] -- Series of tutorial-style lessons on the Forth language and the [[Open Firmware]] bios-replacement system on the laptop


== D-BUS Services ==
== D-BUS Services ==
Line 84: Line 90:
* [http://cvs.gnome.org/viewcvs/NetworkManager/docs/NetworkManager%20DBUS%20API.txt?rev=HEAD NetworkManager] -- network management service
* [http://cvs.gnome.org/viewcvs/NetworkManager/docs/NetworkManager%20DBUS%20API.txt?rev=HEAD NetworkManager] -- network management service
* [http://people.freedesktop.org/~david/hal-spec/hal-spec.html#interfaces Hardware Abstraction Layer Daemon (hald)] -- control of standard hardware functionality
* [http://people.freedesktop.org/~david/hal-spec/hal-spec.html#interfaces Hardware Abstraction Layer Daemon (hald)] -- control of standard hardware functionality
* [[Presence Service DBus API|Presence Service]] -- friend and shared-activity discovery service

Revision as of 05:37, 2 September 2007

The OLPC platform includes a large number of libraries and services. This page attempts to gather links to reference works which can be used when programming the XO laptops. This reference is primarily intended for Software Developers.

Platform Requirements

  • Software components is a somewhat old document describing the various pieces of software and libraries involved in the system.

Python Libraries

Where official reference documentation isn't available, PyDoc-generated documentation is provided. You can generate local copies of the PyDoc-generated documentation from a running official image. Script is available via bzr branch http://www.vrplumber.com/bzr/autodoc

GUI Libraries

Libraries for creating standard Windows-Icon-Menu-Pointer (WIMP) GUI applications.

High-Level Widgets

GUI (GTK) controls which expose the functionality of entire complex applications for use by other projects.

  • Abiword -- GTK widget embedding the Abiword Word-Processor
  • HulaHop -- embeds a Gecko 1.9 (Firefox 3.0 ocore) rendering widget XXX confirm that's what it really is
  • Evince -- PDF (and similar) document viewer as a GTK widget

Multimedia Libraries

Libraries that deal with multimedia and gaming functionality.

  • GStreamer (PyDoc) -- multimedia streaming library
  • CSound -- the CSound audio-generation library
  • OLPC Games -- PyGame wrapper that makes working within the OLPC-XO environment relatively straightforward (Strongly recommended for PyGame usage on the XO!)
  • PyGame -- GUI library suitable for Sprite-based 2D game development

Communications and Networking

Libraries for connecting to other processes, either on the local machine or across the network

  • D-BUS (PyDoc) -- desktop messaging (Remote Procedure Call (RPC) and Asynchronous Signalling) engine
  • Telepathy -- buddy and connection management including cross-machine RPC over D-BUS
  • PyXPCOM -- Library for controlling XPCOM applications (currently just XULRunner on the XO) XXX Should be available, but doesn't appear to be (that is, import xpcom doesn't work)

Support Libraries

Libraries which aren't neither GUI nor multi-media

  • SECore -- search engine implementation
  • JSON -- Javascript Object Notation parser/linearisation library
  • UrlGrabber -- url downloading library
  • OLPC -- the data-store implementation
  • Unicode -- the laptop must provide internationalized software, as a result you will need to use Python's Unicode support

Extraneous Libraries

Libraries which are present in the current builds, but not particularly "part" of the Sugar environment and which may be removed eventually.

  • Yum -- package manager for RPM-based distributions
  • RPM -- RPM manipulation library

Smalltalk Libraries

C Libraries

System Services

  • Forth Lessons -- Series of tutorial-style lessons on the Forth language and the Open Firmware bios-replacement system on the laptop

D-BUS Services