Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <mpg@redhat.com>2006-05-18 05:17:40 (GMT)
committer Marco Pesenti Gritti <mpg@redhat.com>2006-05-18 05:17:40 (GMT)
commit3f624fdcf7e0b1c89ea8f78ac8c41cf961791f46 (patch)
tree3cbe340b7c7c456dec03999de9aace6220e25955
parente31583daad7dd8f210c3102a631dca87ddf99de3 (diff)
Add a sample activity. Too bad gmail crashes the
-rw-r--r--examples/README2
-rw-r--r--examples/gmail.activity2
-rwxr-xr-xexamples/gmail.py33
-rw-r--r--sugar/session/session.py9
-rwxr-xr-xsugar/sugar5
5 files changed, 48 insertions, 3 deletions
diff --git a/examples/README b/examples/README
new file mode 100644
index 0000000..84c1a16
--- /dev/null
+++ b/examples/README
@@ -0,0 +1,2 @@
+Just drop gmail.py and gmail.activity inside ~/.sugar/activities
+Then run sugar as usual.
diff --git a/examples/gmail.activity b/examples/gmail.activity
new file mode 100644
index 0000000..2a58912
--- /dev/null
+++ b/examples/gmail.activity
@@ -0,0 +1,2 @@
+[Activity]
+python_class = gmail
diff --git a/examples/gmail.py b/examples/gmail.py
new file mode 100755
index 0000000..b1d6b7b
--- /dev/null
+++ b/examples/gmail.py
@@ -0,0 +1,33 @@
+import pygtk
+pygtk.require('2.0')
+import gtk
+import geckoembed
+
+from sugar.shell import activity
+
+class GMailActivity(activity.Activity):
+ def __init__(self):
+ activity.Activity.__init__(self)
+
+ def activity_on_connected_to_shell(self):
+ self.activity_set_tab_text("Mail")
+ self.activity_set_tab_icon_name("stock_mail")
+ self.activity_show_icon(True)
+
+ plug = self.activity_get_gtk_plug()
+
+ embed = geckoembed.Embed()
+ plug.add(embed)
+ embed.show()
+
+ plug.show()
+
+ embed.load_address("http://www.gmail.com")
+
+ def activity_on_disconnected_from_shell(self):
+ gtk.main_quit()
+
+activity = GMailActivity()
+activity.activity_connect_to_shell()
+
+gtk.main()
diff --git a/sugar/session/session.py b/sugar/session/session.py
index 415d309..57de266 100644
--- a/sugar/session/session.py
+++ b/sugar/session/session.py
@@ -14,8 +14,15 @@ def start(console):
activities = []
+ activities_dirs = []
+
for data_dir in env.get_data_dirs():
- activities_dir = os.path.join(data_dir, env.get_activities_dir())
+ act_dir = os.path.join(data_dir, env.get_activities_dir())
+ activities_dirs.append(act_dir)
+
+ activities_dirs.append(os.path.expanduser('~/.sugar/activities'))
+
+ for activities_dir in activities_dirs:
for filename in os.listdir(activities_dir):
if filename.endswith(".activity"):
path = os.path.join(activities_dir, filename)
diff --git a/sugar/sugar b/sugar/sugar
index 023e3f6..d0f1c26 100755
--- a/sugar/sugar
+++ b/sugar/sugar
@@ -18,10 +18,12 @@ if os.path.isfile(os.path.join(curdir, '__uninstalled__.py')):
else:
print 'Running sugar from ' + basedir + ' ...'
sys.path.insert(0, basedir)
- os.environ['PYTHONPATH'] = basedir
+ os.environ['PYTHONPATH'] += ':' + basedir
console = True
else:
print 'Running the installed sugar...'
+
+os.environ['PYTHONPATH'] += ':' + os.path.expanduser('~/.sugar/activities')
if console:
print 'Redirecting output to the console, press ctrl+d to open it.'
@@ -29,4 +31,3 @@ if console:
from sugar.session import session
session.start(console)
-