Development Team/Almanac/Code Snippets: Difference between revisions
FIELD_OTHER |
|||
| (12 intermediate revisions by 8 users not shown) | |||
| Line 1: | Line 1: | ||
{{Translations}} | {{Translations}} | ||
The [[ | The [[Development_Team/Almanac|Sugar Almanac]] also has lots of code snippets. | ||
== Smooth animation == | == Smooth animation == | ||
| Line 8: | Line 7: | ||
[[PyGTK/Smooth_Animation_with_PyGTK]] | [[PyGTK/Smooth_Animation_with_PyGTK]] | ||
== WebView == | == WebKit WebView == | ||
import | from gi.repository import WebKit | ||
import | from gi.repository import Gtk | ||
WINDOW_WIDTH, WINDOW_HEIGHT = 700, 500 | |||
# create window: | |||
def _destroy_cb(widget, data=None): | |||
Gtk.main_quit() | |||
window = Gtk.Window() | |||
window.resize(WINDOW_WIDTH, WINDOW_HEIGHT) | |||
window.connect("destroy", _destroy_cb) | |||
window.show() | |||
# create and add scrolled window: | |||
s = Gtk.ScrolledWindow() | |||
window.add(s) | |||
s.show() | |||
# create and add webview: | |||
v = WebKit.WebView() | |||
s.add(v) | |||
v.show() | |||
# load google page: | |||
v.load_uri('http://wiki.laptop.org') | |||
Gtk.main() | |||
== Toolbar == | == Toolbar == | ||
=== Toolbar icons === | |||
Setting a standard Sugar toolbar. | |||
from sugar.activity import activity | |||
... | |||
class MyActivity(activity.Activity): | |||
... | |||
toolbox = activity.ActivityToolbox(self) | |||
self.set_toolbox(toolbox) | |||
toolbox.show() | |||
Adding a custom toolbar and icons. | |||
from sugar.graphics.toolbutton import ToolButton | |||
from sugar.activity import activity | |||
... | |||
class MyActivity(activity.Activity): | |||
... | |||
mytoolbox = gtk.Toolbar() | |||
helpbut = ToolButton('help') #Stock help icon | |||
helpbut.set_tooltip(_("Get help")) | |||
helpbut.connect('clicked', self.help_button_pressed) | |||
mytoolbox.insert(helpbut, -1) | |||
helpbut.show() | |||
mytoolbox.show() | |||
toolbox = activity.ActivityToolbox(self) | |||
toolbox.add_toolbar("mytoolbar",mytoolbox) | |||
self.set_toolbox(toolbox) | |||
toolbox.show() | |||
In addition to the standard icons in /usr/share/icons/sugar/scalable/ (eg, "go-next"), you can create additional icons by putting an svg in your activity's icons/ directory. E.g., | |||
icons/my-icon.svg | |||
And then use it. | |||
mybut = ToolButton('my-icon')# without extension | |||
== Files == | |||
This snippet shows how to get a [http://mailman.laptop.org/pipermail/sugar/2007-February/001459.html path to files in the running Activity]: | |||
from sugar.activity import activity | |||
bundle_path = activity.get_bundle_path() | |||
This snippet shows how to get [http://lists.laptop.org/pipermail/devel/2008-March/011799.html a path to an activity's writable directories] (i.e. the SUGAR_ACTIVITY_ROOT environment variable; see also [[Activity_DBus_API#Security | the activity DBus API]]): | |||
class WebActivity(activity.Activity): | |||
def __init__(self, handle): | |||
activity.Activity.__init__(self, handle) | |||
temp_path = os.path.join(self.get_activity_root(), 'instance') | |||
== Images == | == Images == | ||
| Line 179: | Line 229: | ||
[[Category:HowTo]] | [[Category:HowTo]] | ||
[[Category:Sugar]] | [[Category:Sugar]] | ||
[[Category: | [[Category:Developer]] | ||