Difference between revisions of "Development Team/Almanac/Code Snippets"
< Development Team | Almanac
Jump to navigation
Jump to search
(Added Entry and OptionMenu examples.) |
|||
Line 12: | Line 12: | ||
from sugar.graphics.toolbar import Toolbar | from sugar.graphics.toolbar import Toolbar | ||
from sugar.graphics.iconbutton import IconButton | 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): | class FooActivity(activity.Activity): | ||
+ | |||
+ | _ACTION_ANYTHING = 1 | ||
+ | _ACTION_APPLES = 2 | ||
+ | _ACTION_ORANGES = 3 | ||
+ | |||
def __init__(self, handle): | def __init__(self, handle): | ||
activity.Activity.__init__(self, handle) | activity.Activity.__init__(self, handle) | ||
Line 30: | Line 38: | ||
button.connect("activated", self._button_activated_cb) | button.connect("activated", self._button_activated_cb) | ||
toolbar.append(button) | 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) | ||
textViewWidget = hippo.CanvasWidget() | textViewWidget = hippo.CanvasWidget() |
Revision as of 08:11, 24 February 2007
Other snippets might be found on the development wiki.
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 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) canvas = hippo.Canvas() self.add(canvas) canvas.show() vbox = hippo.CanvasBox() canvas.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) textViewWidget = hippo.CanvasWidget() vbox.append(textViewWidget, hippo.PACK_EXPAND) textView = gtk.TextView() textView.get_buffer().set_text('Write here!', -1) textViewWidget.props.widget = textView def _button_activated_cb(self, button): logging.debug('FooActivity._button_activated_cb')
Files
This snippet shows how to get a path to files in the running Activity:
from sugar import env activity_path = env.get_bundle_path()
Profiling
- See Sugar Performance for a profiling snippet