Sugar Code Snippets: Difference between revisions
Jump to navigation
Jump to search
m (→Toolbar: Fixed code formatting) |
(Moved snippets (contributed by Leejc) from discussion page into article.) |
||
Line 68: | Line 68: | ||
from sugar.activity import activity |
from sugar.activity import activity |
||
bundle_path = activity.get_bundle_path() |
bundle_path = activity.get_bundle_path() |
||
= Not yet sorted = |
|||
* [http://mailman.laptop.org/pipermail/sugar/2007-February/001528.html Loading an SVG file onto a surface with a transparent background]: |
|||
target = ctx.get_target() |
|||
buf = target.create_similar(cairo.CONTENT_COLOR_ALPHA, w, h) |
|||
* [http://mailman.laptop.org/pipermail/sugar/2007-February/001547.html Measuring an SVG file's original dimensions] |
|||
dimensions = handle.get_dimension_data() |
|||
width = dimensions[0] |
|||
height = dimensions[1] |
|||
* [http://mailman.laptop.org/pipermail/sugar/2007-March/002028.html Getting a unique ID for the XO user]: |
|||
from sugar import profile |
|||
key = profile.get_pubkey() |
|||
# If you want a shorter key, you can hash that like: |
|||
from sugar import util |
|||
key_hash = util._sha_data(key) |
|||
hashed_key = util.printable_hash(key_hash) |
|||
[[Category:HowTo]] |
[[Category:HowTo]] |
Revision as of 10:49, 10 May 2007
This page is monitored by the OLPC team.
Toolbar
This snippet shows how an activity would have a toolbar with a button and a gtk.TextView widget embedded in a hippo Canvas:
import logging import hippo import gtk from gettext import gettext as _ from sugar.activity import activity from sugar.graphics.toolbar import Toolbar from sugar.graphics.iconbutton import IconButton from sugar.graphics.entry import Entry from sugar.graphics.optionmenu import OptionMenu from sugar.graphics.menu import MenuItem class FooActivity(activity.Activity): _ACTION_ANYTHING = 1 _ACTION_APPLES = 2 _ACTION_ORANGES = 3 def __init__(self, handle): activity.Activity.__init__(self, handle) vbox = hippo.CanvasBox() self.set_root(vbox) toolbar = Toolbar() vbox.append(toolbar) button = IconButton(icon_name='theme:stock-close') button.connect("activated", self._button_activated_cb) toolbar.append(button) entry = Entry() button.connect("activated", self._entry_activated_cb) toolbar.append(entry) option_menu = OptionMenu() option_menu.add_item(MenuItem(self._ACTION_ANYTHING, _('Anything'))) option_menu.add_item(MenuItem(self._ACTION_APPLES, _('Apples'), 'theme:stock-close')) option_menu.add_item(MenuItem(self._ACTION_ORANGES, _('Oranges'))) option_menu.add_separator() toolbar.append(option_menu) text_view_widget = hippo.CanvasWidget() vbox.append(text_view_widget, hippo.PACK_EXPAND) text_view = gtk.TextView() text_view.get_buffer().set_text('Write here!', -1) text_view_widget.props.widget = text_view def _button_activated_cb(self, button): logging.debug('FooActivity._button_activated_cb') def _entry_activated_cb(self, entry): logging.debug('FooActivity._entry_activated_cb')
Files
This snippet shows how to get a path to files in the running Activity:
from sugar.activity import activity bundle_path = activity.get_bundle_path()
Not yet sorted
target = ctx.get_target() buf = target.create_similar(cairo.CONTENT_COLOR_ALPHA, w, h)
dimensions = handle.get_dimension_data() width = dimensions[0] height = dimensions[1]
from sugar import profile key = profile.get_pubkey() # If you want a shorter key, you can hash that like: from sugar import util key_hash = util._sha_data(key) hashed_key = util.printable_hash(key_hash)