Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSai Vineet <saivineet89@gmail.com>2013-12-07 17:46:11 (GMT)
committer Sai Vineet <saivineet89@gmail.com>2013-12-07 17:46:11 (GMT)
commiteaff4b9f382edd7fcee7435b175dee9c43d01ab3 (patch)
tree5699480af15a385aa284f3a64965fcb656da6c30
parent9ab7bf8fda03479b7fdcaa2356bd56fe5bb407c0 (diff)
Show output on demandgtk3
-rw-r--r--groupthink/sugar_tools.py5
-rw-r--r--pippy_app.py33
2 files changed, 34 insertions, 4 deletions
diff --git a/groupthink/sugar_tools.py b/groupthink/sugar_tools.py
index 049974a..14b55ac 100644
--- a/groupthink/sugar_tools.py
+++ b/groupthink/sugar_tools.py
@@ -153,6 +153,11 @@ class GroupActivity(Activity):
self.when_shared()
self._processed_share = True
self.show_all()
+ self.after_init()
+
+ def after_init(self):
+ """Callback after init. Override to use"""
+ pass
def initialize_display(self):
"""All subclasses must override this method, in order to display
diff --git a/pippy_app.py b/pippy_app.py
index 5277972..f655c98 100644
--- a/pippy_app.py
+++ b/pippy_app.py
@@ -43,6 +43,7 @@ from sugar3.activity.widgets import StopButton
from sugar3.activity.activity import get_bundle_path
from sugar3.activity.activity import get_bundle_name
from sugar3.graphics import style
+from sugar3.graphics.toggletoolbutton import ToggleToolButton
from jarabe.view.customizebundle import generate_unique_id
@@ -125,6 +126,12 @@ class PippyActivity(ViewSourceActivity, groupthink.sugar_tools.GroupActivity):
actions_toolbar = self.get_toolbar_box().toolbar
+ self.toggle_output = ToggleToolButton("tray-show")
+ self.toggle_output.set_tooltip(_("Show output panel"))
+ self.toggle_output.connect("toggled", self._toggle_output_cb)
+ actions_toolbar.insert(self.toggle_output, -1)
+
+
# The "go" button
goicon_bw = Gtk.Image()
goicon_bw.set_from_file("%s/icons/run_bw.svg" % os.getcwd())
@@ -253,7 +260,7 @@ class PippyActivity(ViewSourceActivity, groupthink.sugar_tools.GroupActivity):
self.vpane.add1(codesw)
# An hbox to hold the vte window and its scrollbar.
- outbox = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL)
+ self.outbox = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL)
# The vte python window
self._vte = Vte.Terminal()
@@ -275,15 +282,29 @@ class PippyActivity(ViewSourceActivity, groupthink.sugar_tools.GroupActivity):
# Gdk.DragAction.COPY)
self._vte.connect('drag_data_received', self.vte_drop_cb)
- outbox.pack_start(self._vte, True, True, 0)
+ self.outbox.pack_start(self._vte, True, True, 0)
outsb = Gtk.Scrollbar(orientation=Gtk.Orientation.VERTICAL)
outsb.set_adjustment(self._vte.get_vadjustment())
outsb.show()
- outbox.pack_start(outsb, False, False, 0)
- self.vpane.add2(outbox)
+ self.outbox.pack_start(outsb, False, False, 0)
+ self.vpane.add2(self.outbox)
return self.vpane
+ def after_init(self):
+ self.outbox.hide()
+
+ def _toggle_output_cb(self, button):
+ shown = button.get_active()
+ if shown:
+ self.outbox.show_all()
+ self.toggle_output.set_tooltip(_("Hide output panel"))
+ self.toggle_output.set_icon_name("tray-hide")
+ else:
+ self.outbox.hide()
+ self.toggle_output.set_tooltip(_("Show output panel"))
+ self.toggle_output.set_icon_name("tray-show")
+
def load_example(self, widget):
widget.set_icon_name("pippy-openon")
dialog = FileDialog(self.paths, self, widget)
@@ -411,6 +432,10 @@ Discard changes?')
# FIXME: We're losing an odd race here
# Gtk.main_iteration(block=False)
+ if self.toggle_output.get_active() is False:
+ self.outbox.show_all()
+ self.toggle_output.set_active(True)
+
pippy_app_name = '%s/tmp/pippy_app.py' % self.get_activity_root()
self._write_text_buffer(pippy_app_name)
# write activity.py here too, to support pippy-based activities.