Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWalter Bender <walter.bender@gmail.com>2013-02-23 21:07:35 (GMT)
committer Walter Bender <walter.bender@gmail.com>2013-02-23 21:07:35 (GMT)
commit7d71ed21341443638245b964d2d79b5c54879dd8 (patch)
tree613a69f16e06cfff144592e8a7ff4ea84b2af554
parent67ba6b26c6a9e112065a42be9ad785a7158e441c (diff)
make canvas square and add support for scrolling
-rw-r--r--labyrinthactivity.py47
1 files changed, 36 insertions, 11 deletions
diff --git a/labyrinthactivity.py b/labyrinthactivity.py
index 571a60f..bcf36ec 100644
--- a/labyrinthactivity.py
+++ b/labyrinthactivity.py
@@ -536,8 +536,8 @@ class LabyrinthActivity(activity.Activity):
self.move_button.connect('clicked', self.__move_cb)
target_toolbar.insert(self.move_button, -1)
- separator = gtk.SeparatorToolItem()
- target_toolbar.insert(separator, -1)
+ self.separator_1 = gtk.SeparatorToolItem()
+ target_toolbar.insert(self.separator_1, -1)
tool = ToolButton('edit-delete')
tool.set_tooltip(_('Erase selected thought(s)'))
@@ -545,11 +545,11 @@ class LabyrinthActivity(activity.Activity):
target_toolbar.insert(tool, -1)
if HASTOOLBARBOX:
- separator = gtk.SeparatorToolItem()
- separator.props.draw = False
- separator.set_expand(True)
- separator.show()
- toolbar_box.toolbar.insert(separator, -1)
+ self.separator_2 = gtk.SeparatorToolItem()
+ self.separator_2.props.draw = False
+ self.separator_2.set_expand(True)
+ self.separator_2.show()
+ toolbar_box.toolbar.insert(self.separator_2, -1)
tool = StopButton(self)
toolbar_box.toolbar.insert(tool, -1)
@@ -565,8 +565,20 @@ class LabyrinthActivity(activity.Activity):
self.fixed.show()
self.set_canvas(self.fixed)
+ self._vbox = gtk.VBox()
+ self._vbox.set_size_request(gtk.gdk.screen_width(),
+ gtk.gdk.screen_height())
+
+ self._sw = gtk.ScrolledWindow()
+ self._vbox.pack_end(self._sw, True, True)
+ self._sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
+ self._sw.show()
+
self._undo.block()
self._main_area = MMapArea.MMapArea(self._undo)
+ self._main_area.set_size_request(
+ max(gtk.gdk.screen_width(), gtk.gdk.screen_height()),
+ max(gtk.gdk.screen_width(), gtk.gdk.screen_height()))
self._main_area.connect("set_focus", self.__main_area_focus_cb)
self._main_area.connect("button-press-event",
self.__main_area_focus_cb)
@@ -575,15 +587,28 @@ class LabyrinthActivity(activity.Activity):
self.__text_selection_cb)
self._main_area.connect("thought_selection_changed",
self.__thought_selected_cb)
+ gtk.gdk.screen_get_default().connect('size-changed',
+ self.__configure_cb)
+
+ self._sw.add_with_viewport(self._main_area)
+ # self._vbox.pack_end(self._main_area, True, True)
- self._vbox = gtk.VBox()
- self._vbox.set_size_request(gtk.gdk.screen_width(),
- gtk.gdk.screen_height())
- self._vbox.pack_end(self._main_area, True, True)
self.fixed.put(self._vbox, 0, 0)
self._vbox.show()
+ self._sw.show()
self._undo.unblock()
+ def __configure_cb(self, event):
+ ''' Screen size has changed '''
+ if gtk.gdk.screen_width() > gtk.gdk.screen_height():
+ self.separator_1.show()
+ self.separator_1.props.draw = True
+ self.separator_2.show()
+ else:
+ self.separator_1.hide()
+ self.separator_1.props.draw = False
+ self.separator_2.hide()
+
def __text_selection_cb(self, thought, start, end, text):
"""Update state of copy button based on text selection
"""