Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/ep_page_zoom.py
diff options
context:
space:
mode:
authorNostalghia <b.vehikel@googlemail.com>2010-06-27 16:57:23 (GMT)
committer Nostalghia <b.vehikel@googlemail.com>2010-06-27 16:57:23 (GMT)
commit5dce05c339d2fc636b845d7c01d2103c565447f6 (patch)
treeb467ca648fe2feb876705e47ecb86c31b3b2c59b /ep_page_zoom.py
parent22d182db24861239a33806c4869b2d6cc7228d8b (diff)
refactoring th code for page handling
Diffstat (limited to 'ep_page_zoom.py')
-rw-r--r--ep_page_zoom.py68
1 files changed, 32 insertions, 36 deletions
diff --git a/ep_page_zoom.py b/ep_page_zoom.py
index 1ce3ba4..d9eb004 100644
--- a/ep_page_zoom.py
+++ b/ep_page_zoom.py
@@ -15,63 +15,69 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+from gettext import gettext as _
+
import cairo
+import gtk
+
import ka_debug
import ka_task
import ka_controller
-_ZOOM_PAGE_NUMBER = 1
-
class ZoomController(object):
"""
- inv: self._widget_tree is not None
- inv: self._drawing_page is not None
- inv: self._drawing_area is not None
+ inv: self._widget_list is not None
"""
- def __init__(self, controller, init_widget_tree):
+ def __init__(self, controller, widget_list, activity_root):
"""
- pre: init_widget_tree is not None
+ pre: controller is not None
+ pre: widget_list is not None
"""
- self._widget_tree = init_widget_tree
- self._my_page = False
+ self._controller = controller
+ self._widget_list = widget_list
self._surface = None
self._protozoon = None
- self._drawing_page = self._widget_tree.get_widget('kandidNotebook'). \
- get_nth_page(_ZOOM_PAGE_NUMBER)
- self._drawing_area = self._widget_tree.get_widget('zoomarea')
+ self.position = 100
def close(self):
"""Clean up"""
pass
+ def create_gui(self):
+ """ """
+ page = gtk.HBox()
+ self._widget_list.remember('zoomPage', page)
+ aspectframe = gtk.AspectFrame()
+ drawingarea = gtk.DrawingArea()
+ self._widget_list.remember('zoomarea', drawingarea)
+ aspectframe.add(drawingarea)
+ page.pack_start(aspectframe, expand=True, fill=True)
+ return page, gtk.Label(_('Zoom'))
+
def autoconnect_events(self):
"""Auto connect zoom view."""
- self._drawing_area.connect('expose-event', self.on_zoomarea_expose)
- self._drawing_area.connect('size-allocate', self.on_zoomarea_size_allocate)
-#!NO events = {
-# 'on_notebook_switch_page' : self.on_notebook_switch_page,
-# 'on_zoomarea_expose' : self.on_zoomarea_expose,
-# 'on_zoomarea_size_allocate' : self.on_zoomarea_size_allocate,
-# }
-#!NO self._widget_tree.signal_autoconnect(events)
+ drawing_area = self._widget_list.get_widget('zoomarea')
+ drawing_area.connect('expose-event', self.on_zoomarea_expose)
+ drawing_area.connect('size-allocate', self.on_zoomarea_size_allocate)
def localize(self):
"""A dummy"""
pass
- def show(self):
+ def activate_gui(self):
"""Hide zoom view initially."""
- self._drawing_page.hide()
+ drawing_page = self._widget_list.get_widget('zoomPage')
+ drawing_page.hide()
def on_zoomarea_expose(self, widget, event):
""" Repaint image of a single protozoon inside zoom view.
pre: widget is not None
"""
- # draw precalculated protozoon stored in the surface cache.
# ka_debug.info('on_zoomarea_expose: ' + widget.name + ' '
# + str(widget.allocation.width)
# + 'x' + str(widget.allocation.height))
+ # draw precalculated protozoon stored in the surface cache.
self._draw_from_cache(widget)
def on_zoomarea_size_allocate(self, widget, event):
@@ -86,18 +92,8 @@ class ZoomController(object):
def on_zoom_completed(self, *args):
"""Rendering protozoon is completed."""
# ka_debug.info('on_zoom_completed: ' + str(args[0]))
- self._drawing_page.show()
- self._widget_tree.get_widget('kandidNotebook'). \
- set_current_page(_ZOOM_PAGE_NUMBER)
- self._drawing_area = self._widget_tree.get_widget('zoomarea')
- self._draw_from_cache(self._drawing_area)
-
- def on_notebook_switch_page(self, *args):
- """Test if zoom page will be displayed.
- pre: len(args) >= 3
- """
-# ka_debug.info('on_notebook_switch_page %s' % (args[2]))
- self._my_page = args[2] == _ZOOM_PAGE_NUMBER
+ self._controller.switch_page('ZoomController')
+ self._draw_from_cache(self._widget_list.get_widget('zoomarea'))
def task_render(self, task, *args, **kwargs):
"""Render zoom view of protozoon.
@@ -115,7 +111,7 @@ class ZoomController(object):
"""Start rendering of protozoon."""
self._protozoon = zoom_protozoon
if self._protozoon is not None:
- widget = self._widget_tree.get_widget('zoomarea')
+ widget = self._widget_list.get_widget('zoomarea')
task = ka_task.GeneratorTask(self.task_render,
self.on_zoom_completed,
'zoomarea')