Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--activity.py74
-rw-r--r--activity/activity-helloworld.svg26
-rw-r--r--activity/activity.info7
-rw-r--r--po/HelloWorld.pot25
-rwxr-xr-xsetup.py21
-rwxr-xr-xslide.py55
6 files changed, 208 insertions, 0 deletions
diff --git a/activity.py b/activity.py
new file mode 100644
index 0000000..6ab8e29
--- /dev/null
+++ b/activity.py
@@ -0,0 +1,74 @@
+# Copyright 2009 Simon Schampijer
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+"""HelloWorld Activity: A case study for developing an activity."""
+
+import gtk
+import logging
+
+from gettext import gettext as _
+
+from sugar.activity import activity
+from sugar.graphics.toolbarbox import ToolbarBox
+from sugar.activity.widgets import ActivityButton
+from sugar.activity.widgets import ActivityToolbox
+from sugar.activity.widgets import TitleEntry
+from sugar.activity.widgets import StopButton
+from sugar.activity.widgets import ShareButton
+
+class HelloWorldActivity(activity.Activity):
+ """HelloWorldActivity class as specified in activity.info"""
+
+ def __init__(self, handle):
+ """Set up the HelloWorld activity."""
+ activity.Activity.__init__(self, handle)
+
+ # we do not have collaboration features
+ # make the share option insensitive
+ self.max_participants = 1
+
+ # toolbar with the new toolbar redesign
+ toolbar_box = ToolbarBox()
+
+ activity_button = ActivityButton(self)
+ toolbar_box.toolbar.insert(activity_button, 0)
+ activity_button.show()
+
+ title_entry = TitleEntry(self)
+ toolbar_box.toolbar.insert(title_entry, -1)
+ title_entry.show()
+
+ share_button = ShareButton(self)
+ toolbar_box.toolbar.insert(share_button, -1)
+ share_button.show()
+
+ separator = gtk.SeparatorToolItem()
+ separator.props.draw = False
+ separator.set_expand(True)
+ toolbar_box.toolbar.insert(separator, -1)
+ separator.show()
+
+ stop_button = StopButton(self)
+ toolbar_box.toolbar.insert(stop_button, -1)
+ stop_button.show()
+
+ self.set_toolbar_box(toolbar_box)
+ toolbar_box.show()
+
+ # label with the text, make the string translatable
+ label = gtk.Label(_("Hello World!"))
+ self.set_canvas(label)
+ label.show()
diff --git a/activity/activity-helloworld.svg b/activity/activity-helloworld.svg
new file mode 100644
index 0000000..8da7c63
--- /dev/null
+++ b/activity/activity-helloworld.svg
@@ -0,0 +1,26 @@
+<?xml version="1.0" ?><!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd' [
+ <!ENTITY stroke_color "#010101">
+ <!ENTITY fill_color "#FFFFFF">
+]>
+<svg enable-background="new 0 0 55 55" height="55px" version="1.1" viewBox="0 0 55 55" width="55px" x="0px" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="0px">
+ <g display="block" id="activity-helloworld">
+ <path d="M9.263,48.396c0.682,1.152,6.027,0.059,8.246-1.463 c2.102-1.432,3.207-2.596,4.336-2.596c1.133,0,12.54,0.92,20.935-5.715c7.225-5.707,9.773-13.788,4.52-21.437 c-5.252-7.644-13.832-9.08-20.878-8.56C16.806,9.342,4.224,16.91,4.677,28.313c0.264,6.711,3.357,9.143,4.922,10.703 c1.562,1.566,4.545,1.566,2.992,5.588C11.981,46.183,8.753,47.522,9.263,48.396z" display="inline" fill="&fill_color;" stroke="&stroke_color;" stroke-width="3.5"/>
+ </g>
+ <circle cx="27.375" cy="27.5" r="19.903"
+ transform="matrix(0.6,0,0,0.6,10.95,11)"
+ id="circle4" fill="&fill_color;" stroke="&stroke_color;" stroke-width="3.5" display="inline" />
+ <g transform="matrix(0.6,0,0,0.6,10.95,11)" id="g6" style="display:inline">
+ <path d="m 27.376,7.598 c 0,0 -11.205,8.394 -11.205,19.976 0,11.583 11.205,19.829 11.205,19.829"
+ id="path8" fill="&fill_color;" stroke="&stroke_color;" stroke-width="3.5" />
+ <path d="m 27.376,7.598 c 0,0 11.066,9.141 11.066,19.976 0,10.839 -11.066,19.829 -11.066,19.829"
+ id="path10" fill="&fill_color;" stroke="&stroke_color;" stroke-width="3.5" />
+ <line x1="27.375999" x2="27.375999" y1="7.598" y2="47.402"
+ id="line12" fill="&fill_color;" stroke="&stroke_color;" stroke-width="3.5" />
+ <line x1="27.375999" x2="27.375999" y1="7.598" y2="47.402"
+ id="line14" fill="&fill_color;" stroke="&stroke_color;" stroke-width="3.5" />
+ <line x1="27.375999" x2="27.375999" y1="7.598" y2="47.402"
+ id="line16" fill="&fill_color;" stroke="&stroke_color;" stroke-width="3.5" />
+ <line x1="7.4720001" x2="47.278" y1="27.5" y2="27.5"
+ id="line18" fill="&fill_color;" stroke="&stroke_color;" stroke-width="3.5" />
+ </g>
+</svg>
diff --git a/activity/activity.info b/activity/activity.info
new file mode 100644
index 0000000..4aa4f7f
--- /dev/null
+++ b/activity/activity.info
@@ -0,0 +1,7 @@
+[Activity]
+name = HelloWorld
+activity_version = 3
+bundle_id = org.sugarlabs.HelloWorld
+exec = sugar-activity activity.HelloWorldActivity
+icon = activity-helloworld
+license = GPLv2+
diff --git a/po/HelloWorld.pot b/po/HelloWorld.pot
new file mode 100644
index 0000000..2068a70
--- /dev/null
+++ b/po/HelloWorld.pot
@@ -0,0 +1,25 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-07-02 11:45+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: activity/activity.info:2
+msgid "HelloWorld"
+msgstr ""
+
+#: /home/erikos/Activities/HelloWorld.activity/activity.py:36
+msgid "Hello World!"
+msgstr ""
diff --git a/setup.py b/setup.py
new file mode 100755
index 0000000..c24196e
--- /dev/null
+++ b/setup.py
@@ -0,0 +1,21 @@
+#!/usr/bin/env python
+
+# Copyright (C) 2009, Simon Schampijer
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+from sugar.activity import bundlebuilder
+
+bundlebuilder.start()
diff --git a/slide.py b/slide.py
new file mode 100755
index 0000000..3468dd0
--- /dev/null
+++ b/slide.py
@@ -0,0 +1,55 @@
+#!/usr/bin/python
+import gtk
+import gobject
+
+DELAY = 20
+count = 0
+
+class MyApp():
+
+ def __init__(self):
+ window = gtk.Window()
+ window.set_default_size(200, -1)
+ hbox = gtk.HBox()
+ self.hadjustment = gtk.Adjustment()
+
+ self.hadjustment.set_upper(100)
+ self.hadjustment.set_value(0)
+
+ self.hslide = gtk.HScale(self.hadjustment)
+ self.hslide.set_digits(0)
+ #self.hslide.set_update_policy(gtk.UPDATE_DELAYED)
+ self.increment = 1
+
+ self.hslide.connect('key-press-event', self.__capturar_cb)
+ window.connect('destroy', self.destroy)
+
+ window.add(hbox)
+ hbox.add(self.hslide)
+
+ window.show_all()
+
+ gobject.timeout_add(DELAY, self.__value_changed_cb, self.hslide)
+
+ def destroy(self, window, data=None):
+ gtk.main_quit()
+
+ def __value_changed_cb(self, hslide):
+ self.hadjustment.value += self.increment
+
+ if self.hadjustment.value >= 100:
+ self.increment *= -1
+ elif self.hadjustment.value <= 0:
+ self.increment *= -1
+
+ self.hslide = gtk.HScale(self.hadjustment)
+
+ return True
+
+ def __capturar_cb(self, hslide, event):
+ self.changed_value = hslide.get_value()
+ print self.changed_value
+
+if __name__ == "__main__":
+ my_app = MyApp()
+ gtk.main()