Sugar-api-doc: Difference between revisions
No edit summary |
|||
Line 35: | Line 35: | ||
#Make sure 'hello world' translates |
#Make sure 'hello world' translates |
||
print _('hello world') |
print _('hello world') |
||
=== How do I know when my activity is "active" or not? === |
|||
You can set an event using the VISIBILITY_NOTIFY_MASK constant in order to know when your activity changes visibility. Then in the callback for this event, you simply compare the event's state to gtk-defined variables for activity visibility. See [http://www.pygtk.org/docs/pygtk/gdk-constants.html#gdk-visibility-state-constants GDK Visibility State Constants] of gtk.gdk.Constants for more information. |
|||
<pre> |
|||
#Notify when the visibility state changes by calling self._visibleNotifyCb |
|||
#(PUT THIS IN YOUR ACTIVITY CODE - EG. THE __init__() METHOD) |
|||
self.add_events(gtk.gdk.VISIBILITY_NOTIFY_MASK) |
|||
self.connect("visibility-notify-event", self._visibleNotifyCb) |
|||
... |
|||
#Callback method for when the activity's visibility changes |
|||
def _visibleNotifyCb(self, widget, event): |
|||
if (event.state == gtk.gdk.VISIBILITY_FULLY_OBSCURED): |
|||
print "I am not visible" |
|||
elif (event.state == gtk.gdk.VISIBILITY_UNOBSCURED): |
|||
print "I am visible" |
|||
</pre> |
|||
= Notes = |
= Notes = |
Revision as of 15:48, 17 June 2008
Sugar Almanac for Developers |
---|
Sugar Almanac Main Page Package: sugar |
Package: sugar.activity |
Package: sugar.graphics |
Package: sugar.datastore |
Logging |
Notes on using Python Standard Logging in Sugar |
Internationalization |
How do I get additional help beyond this almanac?
- Looking to get started with the basics of sugar development? Check out Christoph Derndorfer's Activity Handbook.
Now, on to the actual almanac ...
Package: sugar.activity
Package: sugar.graphics
Package: sugar.datastore
MISCELLANEOUS
The tasks below are random useful techniques that have come up as I write code and documentation for this reference. They have yet to be categorized, but will be as a sufficient set of related entries are written.
How do I write to a log in my activity code?
Sugar uses python's standard logging. The following code shows how to output something at the debug log level.
import logging _logger = logging.getLogger('annotate-activity') ... _logger.debug('starting activity')
How do I ensure that a text string is correctly translated to another language when appropriate (for internationalization)?
To ensure that string output from your activity is correctly translated, you would use the gettext utility. The code below imports gettext, renaming it as '_' for code brevity. Then, whenever there is a string that you want to make sure is translated based on language settings, you simply pass it to the _() function.
from gettext import gettext as _ ... #Make sure 'hello world' translates print _('hello world')
How do I know when my activity is "active" or not?
You can set an event using the VISIBILITY_NOTIFY_MASK constant in order to know when your activity changes visibility. Then in the callback for this event, you simply compare the event's state to gtk-defined variables for activity visibility. See GDK Visibility State Constants of gtk.gdk.Constants for more information.
#Notify when the visibility state changes by calling self._visibleNotifyCb #(PUT THIS IN YOUR ACTIVITY CODE - EG. THE __init__() METHOD) self.add_events(gtk.gdk.VISIBILITY_NOTIFY_MASK) self.connect("visibility-notify-event", self._visibleNotifyCb) ... #Callback method for when the activity's visibility changes def _visibleNotifyCb(self, widget, event): if (event.state == gtk.gdk.VISIBILITY_FULLY_OBSCURED): print "I am not visible" elif (event.state == gtk.gdk.VISIBILITY_UNOBSCURED): print "I am visible"
Notes
- See also Sugar Code Snippets
<references />