Sugar Architecture/API: Difference between revisions

From OLPC
Jump to navigation Jump to search
m (Reverted edits by 222.255.31.82 (Talk); changed back to last version by Walter)
 
(43 intermediate revisions by 10 users not shown)
Line 16: Line 16:
<tr style="background-color: #E2EDFF; padding-left: 3px; padding-right: 3px;">
<tr style="background-color: #E2EDFF; padding-left: 3px; padding-right: 3px;">
<td style="background-color: #C3D9FF; border: 1px #666 solid; padding: inherit;">[[Sugar_Architecture/API#Third_Party_Packages|Third Party Packages]]</td>
<td style="background-color: #C3D9FF; border: 1px #666 solid; padding: inherit;">[[Sugar_Architecture/API#Third_Party_Packages|Third Party Packages]]</td>
<td style="border: 1px #666 solid; padding: inherit;">[[GTK_for_OLPC|GTK]]</td>
<td style="border: 1px #666 solid; padding: inherit;">[[Software_projects#AbiWord|AbiWord]]</td>
<td style="border: 1px #666 solid; padding: inherit;">[[Software_projects#AbiWord|AbiWord]]</td>
<td style="border: 1px #666 solid; padding: inherit;">[[Sugar Architecture/API|Avahi]]</td>
<td style="border: 1px #666 solid; padding: inherit;">[[Sugar Architecture/API#Third Party Packages|ATK]]</td>
<td style="border: 1px #666 solid; padding: inherit;">[[Sugar Architecture/API#Third Party Packages|Avahi]]</td>
<td style="border: 1px #666 solid; padding: inherit;">[[GTK_for_OLPC|GTK]]</td>
<td style="border: 1px #666 solid; padding: inherit;">[[Sugar Architecture/API#Third Party Packages|gstreamer]]</td>
<td style="border: 1px #666 solid; padding: inherit;">[[Cairo]]</td>
<td style="border: 1px #666 solid; padding: inherit;">[[Cairo]]</td>
<td style="border: 1px #666 solid; padding: inherit;">[[Presence_Service_DBus_API|D-Bus]]</td>
<td style="border: 1px #666 solid; padding: inherit;">[[Presence_Service_DBus_API|D-Bus]]</td>
<td style="border: 1px #666 solid; padding: inherit;">[[evince]]</td>
<td style="border: 1px #666 solid; padding: inherit;">[[evince]]</td>
<td style="border: 1px #666 solid; padding: inherit;">[[Sugar Architecture/API|Hippo]]</td>
<td style="border: 1px #666 solid; padding: inherit;">[[HippoCanvas]]</td>
<td colspan="10" style="background-color: #f5f5f5;"></td>
<td colspan="10" style="background-color: #f5f5f5;"></td>
</tr>
</tr>
Line 29: Line 31:
<tr style="background-color: #E2EDFF; padding-left: 3px; padding-right: 3px;">
<tr style="background-color: #E2EDFF; padding-left: 3px; padding-right: 3px;">
<td style="background-color: #C3D9FF; border: 1px #666 solid; padding: inherit;">[[Sugar Architecture/API#Sugar_Packs|Sugar Packs]]</td>
<td style="background-color: #C3D9FF; border: 1px #666 solid; padding: inherit;">[[Sugar Architecture/API#Sugar_Packs|Sugar Packs]]</td>
<td style="border: 1px #666 solid; padding: inherit;">[[Sugar Architecture/API#Sugar Python Scripts|Python Scripts]]</td>
<td style="border: 1px #666 solid; padding: inherit;">[[Sugar Architecture/API#Sugar_Library_Packages|Library Packages]]</td>
<td style="border: 1px #666 solid; padding: inherit;">[[Sugar Architecture/API#Sugar_Library_Packages|Library Packages]]</td>
<td style="border: 1px #666 solid; padding: inherit;">[[Sugar Architecture/API#Package_sugar.shell|Shell Packages]]</td>
<td style="border: 1px #666 solid; padding: inherit;">[[Sugar Architecture/API#Package_sugar.shell|Shell Packages]]</td>
Line 38: Line 41:
</table>
</table>
</div>
</div>
Sugar is built in python with a variety of open source packages. Programing in the sugar environment requires a basic understanding of both the Sugar User Interface, supporting third party packages, and built in sugar packages.


''This page describes Sugar's Python programming environment. The API available to non-Python activities is described on the [[Low-level Activity API]] page.''
Traditional software packages are built against Application Program Intefaces. Sugar runs [[Activity | Activities]] instead of applications, but from a developers point of view, it's the same thing.

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 [[Activity | 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 [http://www.vrplumber.com/sugar-docs PyDoc] documentation for Sugar and related libraries.


== Third Party Packages ==
== Third Party Packages ==
*[[Abiword]]
*[[Abiword]] - Document writer
*[[Software_components#Libraries_and_Plugins|Avahi]]
*[[Software_components#Libraries_and_Plugins|ATK]] - GNOME Accessibility Toolkit
*[[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
*[http://www.cairographics.org/manual/ Cairo]
*[[Cairo]] - 2-D graphics library
*[[D-BUS]]
*[[D-BUS]] - message bus service
*[[Evince]]
*[[Evince]] - document viewer
*[[Sugar_Code_Snippets|Hippo]]
*[[HippoCanvas]] - generic user interface widget - ''now deprecated'' use GTK layout managers

*[[Software_components#Libraries_and_Plugins|Matchbox]] - graphical windows manager
*[[Avahi]] - Network Discovery Service
*[[Software_components#Libraries_and_Plugins|Pango]] - GTK package for text rendering
*[[Matchbox]] - Graphical Windows Manager
*[[Software_components#Libraries_and_Plugins|X Window System]] - the tried-and-true ancient X11 display libraries
*[[Xul]] - XML User Interface Language (aka gecko and other identity challenged projects)
*[[Software_components#Libraries_and_Plugins|Xul]] - XML User Interface Language
*[[Pango]] - GTK package for text rendering
*[[ATK]] - GNOME Accesibility Toolkit
*[[gstreamer]] - media player
*[[X windows]] - the tried and true ancient X11 display libraries (Shoulders on which much else stands).


== Sugar Packs ==
== Sugar Packs ==
This details the contents and structure of OLPC Build 303.

=== [[Sugar Architecture/API/Sugar Python Scripts|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 Architecture/API/Sugar Library Packages|Sugar Library Packages]] ===
=== [[Sugar Architecture/API/Sugar Library Packages|Sugar Library Packages]] ===
Many Sugar Library packages reside in /usr/lib/python*/site-packages/sugar
Many Sugar library packages reside in /usr/lib/python*/site-packages/sugar


Modules:
Modules:
* TracebackUtils
* TracebackUtils
* date
* emulator
* emulator
* env
* env
Line 74: Line 98:


Subpackages:
Subpackages:
* sugar.activity
* [[Sugar Architecture/API/sugar.activity|sugar.activity]]
* sugar.chat
* [[Sugar Architecture/API/sugar.chat|sugar.chat]]
* sugar.clipboard
* [[Sugar Architecture/API/sugar.clipboard|sugar.clipboard]]
* sugar.datastore
* [[Sugar Architecture/API/sugar.datastore|sugar.datastore]]
* sugar.graphics
* [[Sugar Architecture/API/sugar.graphics|sugar.graphics]]
* sugar.p2p
* [[Sugar Architecture/API/sugar.p2p|sugar.p2p]]
* sugar.presence
* [[Sugar Architecture/API/sugar.presence|sugar.presence]]


=== Package sugar.shell ===
=== Package [[Sugar Architecture/API/sugar.shell | sugar.shell]] ===
Most of the Human Interface is implemented in the sugar shell packages located in /usr/share/sugar/shell
Most of the Human Interface is implemented in the sugar.shell packages located in /usr/share/sugar/shell


Modules:
Modules:
* [[Sugar_Architecture/API/sugar.shell.HardwareManager]]
* [[Sugar Architecture/API/sugar.shell.shellservice | sugar.shell.shellservice]]


Subpackages:
Subpackages:
* [[Sugar Architecture/API/sugar.shell.Console|sugar.shell.Console]]
* [[Sugar Architecture/API/sugar.shell.console|sugar.shell.console]]
* [[Sugar Architecture/API/sugar.shell.Model|sugar.shell.Model]]
* [[Sugar Architecture/API/sugar.shell.hardware|sugar.shell.hardware]]
* [[Sugar Architecture/API/sugar.shell.View|sugar.shell.View]]
* [[Sugar Architecture/API/sugar.shell.intro|sugar.shell.intro]]
* [[Sugar Architecture/API/sugar.shell.model|sugar.shell.model]]
* [[Sugar Architecture/API/sugar.shell.view|sugar.shell.view]]


=== Package sugar.services ===
=== Package [[Sugar Architecture/API/sugar.services | sugar.services]]===
Various services are provided in /usr/share/sugar/services
Various services are provided in /usr/share/sugar/services


Line 100: Line 126:


Subpackages:
Subpackages:
* sugar.services.clipboard
* [[Sugar Architecture/API/sugar.services.clipboard |sugar.services.clipboard]]
* sugar.services.console
* [[Sugar Architecture/API/sugar.services.console |sugar.services.console]]
* sugar.services.datastore
* [[Sugar Architecture/API/sugar.services.datastore |sugar.services.datastore]]
* sugar.services.nm
* [[Sugar Architecture/API/sugar.services.presence |sugar.services.presence]]
* sugar.services.presence
* [[Sugar Architecture/API/sugar.services.presence2 |sugar.services.presence2]]


=== Sugar Activity APIs ===
=== [[Sugar Architecture/API/Sugar Activity APIs|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


[[Category:API]]
[[Category:API]]

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