Difference between revisions of "Development Team/Almanac/Code Snippets"

From Sugar Labs
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