[Sugar-devel] Several chapters of "Make Your Own Sugar Activities!" ready for review, feedback

Walter Bender walter.bender at gmail.com
Tue Jan 5 15:42:59 EST 2010


On Tue, Jan 5, 2010 at 2:57 PM, Jim Simmons <nicestep at gmail.com> wrote:
> I've been working on a Floss Manual that should be a beginner's guide
> to creating Sugar Activities.  I've got 64 page's worth (in the PDF
> version) written and I feel confident that I will finish this book
> eventually.  What I have now may be good enough to criticize.  It
> contains some pretty good code samples, some reasonable
> recommendations, and a fair number of screen shots.  So far it covers
> writing a basic Activity in Python, running it with sugar-emulator,
> and getting the code in Git.  Future chapters will include doing i18n
> with Pootle, distributing the Activity, doing text to speech with and
> without highlighting, and collaboration features.  I may stick
> something on Activity debugging techniques in somewhere too.
>
> Other stuff that *should* be included, but which I am not currently
> qualified to write, would include:
>
> * Developing Activities on a Mac
> * Creating an Activity using PyGame instead of PyGTK.
> * Creating the new-styled toolbars
> * etc., etc.
>
> If you want to check out what I have the URL is:
>
> http://en.flossmanuals.net/ActivitiesGuideSugar/Introduction
>
> Any help anyone can provide on this will be greatly appreciated.  If
> you want to register as a writer and contribute stuff of your own or
> edit my stuff you have my blessing.
>

Jim,

This is a great start. I'll try to help out with some of the missing piece.

Re how to handle the new toolbars, I have some examples from other
programs, but I am happy to work with you on the ReadEtext example if
you want. The only thing you need are some icons to represent the
toolbar submenus. Your current activity icon will replace the
"Activity" toolbar; there is a standard icon for the "Edit" toolbar
('toolbar-edit'); likewise, for the 'View" toolbar ('toolbar-view').
You'll need to decide on an icon for the "Read" toolbar, perhaps the
icon from the Read activity?

The "trick" then is to figure out which version of Sugar you are
running in order to decide which toolbars to use. I am lazy and just
catch an ImportError:

import sugar
from sugar.activity import activity
try: # 0.86+ toolbar widgets
    from sugar.bundle.activitybundle import ActivityBundle
    from sugar.activity.widgets import ActivityToolbarButton
    from sugar.activity.widgets import StopButton
    from sugar.graphics.toolbarbox import ToolbarBox
    from sugar.graphics.toolbarbox import ToolbarButton
    sugar86 = True
except ImportError:
    sugar86 = False
    pass
from sugar.graphics.toolbutton import ToolButton
from sugar.graphics.menuitem import MenuItem
from sugar.graphics.icon import Icon

later...

if sugar86 is True:
    toolbar_box = ToolbarBox()
    ...
    self.set_toolbar_box(toolbar_box)
    toolbar_box.show()
else:
    self.toolbox = activity.ActivityToolbox(self)
    self.set_toolbox(self.toolbox)
    ...
    self.toolbox.show()
    self.toolbox.set_current_toolbar(1)

There are a few more details regarding sharing callbacks between the
toolbars, etc. Maybe checkout
http://git.sugarlabs.org/projects/visualmatch/repos/mainline/blobs/master/VisualMatchActivity.py
for an example.

-walter

> Thanks,
>
> James Simmons
> _______________________________________________
> Sugar-devel mailing list
> Sugar-devel at lists.sugarlabs.org
> http://lists.sugarlabs.org/listinfo/sugar-devel
>



-- 
Walter Bender
Sugar Labs
http://www.sugarlabs.org


More information about the Sugar-devel mailing list