Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/activities
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <marco@localhost.localdomain>2006-07-20 07:58:45 (GMT)
committer Marco Pesenti Gritti <marco@localhost.localdomain>2006-07-20 07:58:45 (GMT)
commit5731405901d7713182c5e1eb46b20b9377d9d8c6 (patch)
treedac9d74a2ae1772aa813e5a5a52c02b4656b2388 /activities
parentd2fdd6400348b2adc08b99e69e67c64aa092ac65 (diff)
Promote terminal activity from terminal to activities. Fix api
Diffstat (limited to 'activities')
-rw-r--r--activities/Makefile.am2
-rw-r--r--activities/terminal/Makefile.am9
-rw-r--r--activities/terminal/__init__.py0
-rw-r--r--activities/terminal/terminal.activity4
-rw-r--r--activities/terminal/terminal.py61
5 files changed, 75 insertions, 1 deletions
diff --git a/activities/Makefile.am b/activities/Makefile.am
index 0347678..84bfa85 100644
--- a/activities/Makefile.am
+++ b/activities/Makefile.am
@@ -1 +1 @@
-SUBDIRS = browser chat
+SUBDIRS = browser chat terminal
diff --git a/activities/terminal/Makefile.am b/activities/terminal/Makefile.am
new file mode 100644
index 0000000..a2a2397
--- /dev/null
+++ b/activities/terminal/Makefile.am
@@ -0,0 +1,9 @@
+sugardir = $(pkgdatadir)/activities/browser
+sugar_PYTHON = \
+ __init__.py \
+ terminal.py
+
+activitydir = $(pkgdatadir)/activities/browser
+activity_DATA = terminal.activity
+
+EXTRA_DIST = $(activity_DATA)
diff --git a/activities/terminal/__init__.py b/activities/terminal/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/activities/terminal/__init__.py
diff --git a/activities/terminal/terminal.activity b/activities/terminal/terminal.activity
new file mode 100644
index 0000000..f0e77c8
--- /dev/null
+++ b/activities/terminal/terminal.activity
@@ -0,0 +1,4 @@
+[Activity]
+name = Terminal
+id = org.sugar.Terminal
+python_module = terminal.TerminalActivity
diff --git a/activities/terminal/terminal.py b/activities/terminal/terminal.py
new file mode 100644
index 0000000..c9ee525
--- /dev/null
+++ b/activities/terminal/terminal.py
@@ -0,0 +1,61 @@
+import gtk
+import vte
+import pango
+
+from sugar.activity.Activity import Activity
+
+_TERMINAL_ACTIVITY_TYPE = "_terminal._tcp"
+
+class Terminal(gtk.HBox):
+ def __init__(self):
+ gtk.HBox.__init__(self, False, 4)
+
+ self._vte = vte.Terminal()
+ self._configure_vte()
+ self._vte.set_size(30, 5)
+ self._vte.set_size_request(200, 50)
+ self._vte.show()
+ self.pack_start(self._vte)
+
+ self._scrollbar = gtk.VScrollbar(self._vte.get_adjustment())
+ self._scrollbar.show()
+ self.pack_start(self._scrollbar, False, False, 0)
+
+ self._vte.connect("child-exited", lambda term: term.fork_command())
+
+ self._vte.fork_command()
+
+ def _configure_vte(self):
+ self._vte.set_font(pango.FontDescription('Monospace 10'))
+ self._vte.set_colors(gtk.gdk.color_parse ('#AAAAAA'),
+ gtk.gdk.color_parse ('#000000'),
+ [])
+ self._vte.set_cursor_blinks(False)
+ self._vte.set_audible_bell(False)
+ self._vte.set_scrollback_lines(100)
+ self._vte.set_allow_bold(True)
+ self._vte.set_scroll_on_keystroke(False)
+ self._vte.set_scroll_on_output(False)
+ self._vte.set_emulation('xterm')
+ self._vte.set_visible_bell(False)
+
+ def on_gconf_notification(self, client, cnxn_id, entry, what):
+ self.reconfigure_vte()
+
+ def on_vte_button_press(self, term, event):
+ if event.button == 3:
+ self.do_popup(event)
+ return True
+
+ def on_vte_popup_menu(self, term):
+ pass
+
+class TerminalActivity(Activity):
+ def __init__(self, service, args):
+ Activity.__init__(self, service)
+
+ self.set_title("Terminal")
+
+ terminal = Terminal()
+ self.add(terminal)
+ terminal.show()