Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNostalghia <b.vehikel@googlemail.com>2010-06-17 17:43:01 (GMT)
committer Nostalghia <b.vehikel@googlemail.com>2010-06-17 17:43:01 (GMT)
commitad2d12f3e64dc7ada866d750ebf08f3cad8f9a91 (patch)
tree84227134029be9e10ae1a0daded0f26f0fdd5ff1
parent1c85682c78b69b1799c190bafa898ca2ca1bc2ca (diff)
Removing Glade for Kandid to make it more compatible with the Sugar Platform (SP).
Glade is availble in SoaS and Glade could be installed in most cases. But it is not part of http://wiki.sugarlabs.org/go/0.88/Platform_Components and there is no guaranty that Glade will exists on sugar box.
-rw-r--r--MANIFEST2
-rw-r--r--ep_layer_image.py211
-rw-r--r--ep_modifier_flip.py3
-rw-r--r--ep_page_ancestors.py17
-rw-r--r--ep_page_gettingstarted.py32
-rw-r--r--ep_page_status.py6
-rw-r--r--ep_page_zoom.py14
-rw-r--r--ka_controller.py138
-rw-r--r--ka_html_page.py10
-rw-r--r--ka_incoming.py22
-rw-r--r--ka_widget.py110
-rw-r--r--kandid.glade2339
-rw-r--r--model_constraintpool.py39
-rw-r--r--model_treenode.py12
-rw-r--r--no_glade.py367
-rw-r--r--po/Kandid.pot209
-rw-r--r--po/POTFILES.in1
-rw-r--r--test_model.py21
-rw-r--r--test_pages.py4
-rw-r--r--test_status.py2
-rw-r--r--test_suite.py10
21 files changed, 767 insertions, 2802 deletions
diff --git a/MANIFEST b/MANIFEST
index 6919fac..3f3410e 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -164,7 +164,6 @@ ka_status.py
ka_task.py
ka_utils.py
ka_widget.py
-kandid.glade
kandidtube.py
model_allele.py
model_constraintpool.py
@@ -174,4 +173,5 @@ model_population.py
model_protozoon.py
model_random.py
model_treenode.py
+no_glade.py
setup.py
diff --git a/ep_layer_image.py b/ep_layer_image.py
deleted file mode 100644
index 8934c70..0000000
--- a/ep_layer_image.py
+++ /dev/null
@@ -1,211 +0,0 @@
-# coding: UTF-8
-# Copyright 2009 Thomas Jourdan
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-import random
-import os
-import cairo
-import model_locus
-import model_layer
-import model_random
-import ka_importer
-import ka_debug
-import model_constraintpool
-from gettext import gettext as _
-
-# Cairo's compositing operators
-# OPERATOR_ADD = 12
-# OPERATOR_ATOP = 5
-# OPERATOR_CLEAR = 0
-# OPERATOR_DEST = 6
-# OPERATOR_DEST_ATOP = 10
-# OPERATOR_DEST_IN = 8
-# OPERATOR_DEST_OUT = 9
-# OPERATOR_DEST_OVER = 7
-# OPERATOR_IN = 3
-# OPERATOR_OUT = 4
-# OPERATOR_OVER = 2
-# OPERATOR_SATURATE = 13
-# OPERATOR_SOURCE = 1
-# OPERATOR_XOR = 11
-
-OPERATOR_CONSTRAINT = 'operatorconstraint'
-
-class ImageLayer(model_layer.Layer):
- """ImageLayer
- """
-
- cdef = [{'bind' : OPERATOR_CONSTRAINT,
- 'name' : 'Permitted operators for combining two layers',
- 'domain': model_constraintpool.INT_M_OF_N,
- 'enum' : [('add', cairo.OPERATOR_ADD),
- ('atop', cairo.OPERATOR_ATOP),
-# not usable ('clear', cairo.OPERATOR_CLEAR),
-# not usable ('destination', cairo.OPERATOR_DEST),
- ('destination atop', cairo.OPERATOR_DEST_ATOP),
- ('destination in', cairo.OPERATOR_DEST_IN),
- ('destination out', cairo.OPERATOR_DEST_OUT),
- ('destination over', cairo.OPERATOR_DEST_OVER),
- ('in', cairo.OPERATOR_IN),
- ('out', cairo.OPERATOR_OUT),
- ('over', cairo.OPERATOR_OVER),
- ('saturate', cairo.OPERATOR_SATURATE),
- ('source', cairo.OPERATOR_SOURCE),
- ('xor', cairo.OPERATOR_XOR),],},
- ]
-
- OPERATORS = [o[1] for o in cdef[0]['enum']]
- OPERATOR_NAMES = {}
- for o in cdef[0]['enum']:
- OPERATOR_NAMES[o[1]] = o[0]
-
- def __init__(self, trunk):
- """Constructor for bitmap image layer."""
- super(ImageLayer, self).__init__(trunk)
- self.theme = 'StockPhotos' #TODO 'theme' in den allen Methoden verwenden.
- self.selected_image = ''
- self.alpha_blending = 1.0
- self.operator = cairo.OPERATOR_ADD
-
- def __eq__(self, other):
- """Equality based on the cells color components."""
- equal = isinstance(other, ImageLayer) \
- and super(ImageLayer, self).__eq__(other) \
- and self.selected_image == other.selected_image \
- and self.alpha_blending == other.alpha_blending \
- and self.operator == other.operator
- return equal
-
- def randomize(self):
- """Randomize the layers components."""
- super(ImageLayer, self).randomize()
- cpool = model_constraintpool.ConstraintPool.get_pool()
- operator_constraint = cpool.get(self, OPERATOR_CONSTRAINT)
- self.operator = random.choice(operator_constraint)
- image_list = ka_importer.get_rgb_image_list(self.theme)
- if len(image_list) > 0:
- self.selected_image = \
- image_list[random.randint(0, len(image_list)-1)]
- self.alpha_blending = random.random()
-
- def mutate(self):
- """Make small random changes to the layers components."""
- super(ImageLayer, self).mutate()
- cpool = model_constraintpool.ConstraintPool.get_pool()
- operator_constraint = cpool.get(self, OPERATOR_CONSTRAINT)
- if model_random.is_mutating():
- self.operator = random.choice(operator_constraint)
- if model_random.is_mutating():
- image_list = ka_importer.get_rgb_image_list(self.theme)
- if len(image_list) > 0:
- self.selected_image = \
- image_list[random.randint(0, len(image_list)-1)]
- if model_random.is_mutating():
- self.alpha_blending += model_random.jitter(0.2)
- self.alpha_blending = model_random.limit(self.alpha_blending)
-
- def swap_places(self):
- """Do nothing."""
-
- def crossingover(self, other):
- """
- pre: isinstance(other, ImageLayer)
- pre: isinstance(self, ImageLayer)
- # check for distinct references, needs to copy content, not references
- post: __return__ is not self
- post: __return__ is not other
- post: model_locus.unique_check(__return__, self, other) == ''
- """
- new_one = ImageLayer(self.get_trunk())
- cross_sequence = self.crossingover_base(new_one, other, 3)
- new_one.operator = other.operator if cross_sequence[0] \
- else self.operator
- new_one.selected_image = self.selected_image if cross_sequence[1] \
- else other.selected_image
- new_one.alpha_blending = self.alpha_blending if cross_sequence[2] \
- else other.alpha_blending
- return new_one
-
- def render(self, task, ctx, width, height):
- """
- pre: ctx is not None
- pre: width > 0
- pre: height > 0
- pre: width == height
- """
- self.begin_render(ctx, width, height)
-
- if os.path.isfile(self.selected_image):
- png_surface = cairo.ImageSurface.create_from_png(self.selected_image)
- target_surface = ctx.get_target()
- png_ctx = cairo.Context(png_surface)
- png_ctx.set_operator(self.operator)
-# ka_debug.matrix_s(png_ctx.get_matrix())
- png_ctx.scale(float(png_surface.get_width()) / width,
- float(png_surface.get_height()) / height)
- png_ctx.set_source_surface(target_surface)
- png_ctx.paint_with_alpha(self.alpha_blending)
- png_surface.write_to_png('/dev/shm/img_' + self.get_unique_id() + '.png')
-
- ctx.save()
-# ka_debug.matrix_r(ctx.get_matrix())
- ctx.translate(-0.5, -0.5)
-# ka_debug.matrix_s(ctx.get_matrix())
-# ctx.scale(-1.0, -1.0)
-# ka_debug.matrix_r(ctx.get_matrix())
- ctx.rectangle(0.0, 0.0, 1.0, 1.0)
- ctx.clip()
- ctx.scale(1.0/png_surface.get_width(), 1.0/png_surface.get_height())
- ctx.set_source_surface(png_surface)
-# ctx.paint_with_alpha(self.alpha_blending)
- ctx.paint()
- ctx.restore()
- png_surface.finish()
-
- def explain(self, formater):
- """
- pre: formater is not None
- """
- formater.text_item(_('Compositing drawing operator for merging png image: ') \
- + self.OPERATOR_NAMES[self.operator])
- formater.alpha_item(self.alpha_blending, _('alfa blendig: %d%%') \
- % (100*self.alpha_blending))
- if os.path.isfile(self.selected_image):
- png_surface = cairo.ImageSurface.create_from_png(self.selected_image)
- width = height = 48
- surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, width, height)
- ctx = cairo.Context(surface)
- ctx.scale(float(width), float(height))
- ctx.scale(1.0/png_surface.get_width(), 1.0/png_surface.get_height())
- ctx.set_source_surface(png_surface)
- ctx.paint()
- formater.surface_item(surface,
- _('image file:') + self.selected_image,
- self.selected_image)
- png_surface.finish()
-
- def copy(self):
- """The Voronoi diagram layers copy constructor.
- # check for distinct references, needs to copy content, not references
- post: __return__ is not self
- """
- new_one = ImageLayer(self.get_trunk())
- self.copy_base(new_one)
- new_one.operator = self.operator
- new_one.theme = self.theme[:]
- new_one.selected_image = self.selected_image
- new_one.alpha_blending = self.alpha_blending
- return new_one
diff --git a/ep_modifier_flip.py b/ep_modifier_flip.py
index 485e916..4dfbbd7 100644
--- a/ep_modifier_flip.py
+++ b/ep_modifier_flip.py
@@ -56,7 +56,8 @@ class FlipModifier(model_allele.Allele):
def swap_places(self):
"""Exchange x and y flip."""
self.xFlip, self.yFlip = model_random.swap_parameters(self.xFlip,
- self.yFlip)
+ self.yFlip)
+
def crossingover(self, other):
"""
pre: isinstance(other, FlipModifier)
diff --git a/ep_page_ancestors.py b/ep_page_ancestors.py
index ea8ef4d..b28a762 100644
--- a/ep_page_ancestors.py
+++ b/ep_page_ancestors.py
@@ -36,7 +36,7 @@ class AncestorsController(object):
self._widget_tree = widget_tree
self._drawing_page = self._widget_tree.get_widget('kandidNotebook'). \
get_nth_page(_ANCESTORS_PAGE_NUMBER)
- self._historyview = self._widget_tree.get_widget('ancestors_drawingarea')
+ self._drawing_area = self._widget_tree.get_widget('ancestors_drawingarea')
self._history = ka_history.KandidHistory.instance()
self._protozoon_id = None
@@ -45,11 +45,12 @@ class AncestorsController(object):
pass
def autoconnect_events(self):
- """Auto connect ancestros view."""
- events = {
- 'on_ancestrosarea_expose' : self.on_ancestrosarea_expose,
- }
- self._widget_tree.signal_autoconnect(events)
+ """Auto connect ancestors view."""
+ self._drawing_area.connect('expose-event', self.on_ancestorsarea_expose)
+# events = {
+# 'on_ancestrosarea_expose' : self.on_ancestrosarea_expose,
+# }
+#!NO self._widget_tree.signal_autoconnect(events)
def localize(self):
"""A dummy"""
@@ -72,8 +73,8 @@ class AncestorsController(object):
self._widget_tree.get_widget('kandidNotebook'). \
set_current_page(_ANCESTORS_PAGE_NUMBER)
- def on_ancestrosarea_expose(self, widget, event):
- """ Repaint image of a single protozoon inside ancestros view.
+ def on_ancestorsarea_expose(self, widget, event):
+ """ Repaint image of a single protozoon inside ancestors view.
pre: widget is not None
"""
# draw precalculated protozoon stored in the surface cache.
diff --git a/ep_page_gettingstarted.py b/ep_page_gettingstarted.py
index 1ff3f32..d06b673 100644
--- a/ep_page_gettingstarted.py
+++ b/ep_page_gettingstarted.py
@@ -44,22 +44,26 @@ Kandid uses a simulated evolution without a fitness function. A cybernetic syste
def autoconnect_events(self):
"""Auto connect status view."""
- #Create a dictionary to connect events
- events = {
- 'on_readintro' : self.on_readintro,
- 'on_startnew' : self.on_startnew,
- }
- self._widget_tree.signal_autoconnect(events)
+ self._widget_tree.get_widget('readintroLinkbutton') \
+ .connect('clicked', self.on_readintro)
+ self._widget_tree.get_widget('startnewLinkbutton') \
+ .connect('clicked', self.on_startnew)
+# #Create a dictionary to connect events
+# events = {
+# 'on_readintro' : self.on_readintro,
+# 'on_startnew' : self.on_startnew,
+# }
+#!NO self._widget_tree.signal_autoconnect(events)
def localize(self):
try:
- local = {'startLabel' : _('Getting started'),
- 'readintroLinkbutton' : _('Read the Introduction'),
- 'startnewLinkbutton' : _('Show image population'),
- }
- for key, label in local.iteritems():
- self._widget_tree.get_widget(key).set_label(label)
-
+# local = {'startLabel' : _('Getting started'),
+# 'readintroLinkbutton' : _('Read the Introduction'),
+# 'startnewLinkbutton' : _('Show image population'),
+# }
+# for key, label in local.iteritems():
+# self._widget_tree.get_widget(key).set_label(label)
+#
textview = self._widget_tree.get_widget('gettingstarted_textview')
buf = textview.get_buffer()
translated = _('getting_started')
@@ -79,9 +83,11 @@ Kandid uses a simulated evolution without a fitness function. A cybernetic syste
def on_readintro(self, args):
"""Show introduction page.
"""
+ ka_debug.info('on_readintro')
self._controller.on_page_show(2) #Assume into page has position 2.
def on_startnew(self, args):
"""Show population page.
"""
+ ka_debug.info('on_startnew')
self._controller.on_page_show(0) #Assume population page has position 0.
diff --git a/ep_page_status.py b/ep_page_status.py
index 3d374d1..3c1eea6 100644
--- a/ep_page_status.py
+++ b/ep_page_status.py
@@ -46,13 +46,17 @@ class StatusController(object):
def autoconnect_events(self):
"""Auto connect status view."""
+ self._widget_tree.get_widget('kandidNotebook') \
+ .connect('switch-page', self.on_notebook_switch_page)
+ self._statusview.connect('visibility-notify-event',
+ self.on_statuspage_visibility_notify_event)
#Create a dictionary to connect events
events = {
'on_statustextview_visibility_notify_event' :
self.on_statuspage_visibility_notify_event,
'on_notebook_switch_page' : self.on_notebook_switch_page,
}
- self._widget_tree.signal_autoconnect(events)
+#!NO self._widget_tree.signal_autoconnect(events)
gobject.timeout_add(1000, self.on_timer)
def localize(self):
diff --git a/ep_page_zoom.py b/ep_page_zoom.py
index e2f6ba3..1ce3ba4 100644
--- a/ep_page_zoom.py
+++ b/ep_page_zoom.py
@@ -47,12 +47,14 @@ class ZoomController(object):
def autoconnect_events(self):
"""Auto connect zoom view."""
- 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,
- }
- self._widget_tree.signal_autoconnect(events)
+ 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)
def localize(self):
"""A dummy"""
diff --git a/ka_controller.py b/ka_controller.py
index 390378e..c5e2d3e 100644
--- a/ka_controller.py
+++ b/ka_controller.py
@@ -27,6 +27,7 @@ import ka_task
import ka_extensionpoint
import kandidtube
import ka_history
+import no_glade
POPULATION_CAPACITY = 12
INCOMMING_CAPACITY = 3
@@ -79,41 +80,89 @@ class KandidController(object):
self._update_population_gui()
def autoconnect_events(self):
- #Create a dictionary to connect events
- events = {
- 'on_breed_generation' : self.on_breed_generation,
- 'on_random_generation' : self.on_random_generation,
- 'on_flurry_value_changed' : self.on_flurry_value_changed,
- 'on_zoom_incoming' : self.on_zoom_incoming,
- 'on_accept_incoming' : self.on_accept_incoming,
- 'on_decline_incoming' : self.on_decline_incoming,
- 'delete_event' : gtk.main_quit }
- for cell_index in range(self.model.size):
- strix = str(cell_index)
- key = 'on_drawingarea_#_expose'.replace('#', strix)
- events[key] = self.on_drawingarea_expose
- key = 'on_drawingarea_#_size_allocate'.replace('#', strix)
- events[key] = self.on_drawingarea_size_allocate
- key = 'on_fitness_#_value_changed'.replace('#', strix)
- events[key] = self.on_fitness_value_changed
- events['on_protozoon_popup_' + strix] = self.on_protozoon_popup
- events['on_publishprotozoon_activate_' + strix] = \
- self.on_publishprotozoon_activate
- events['on_zoomprotozoon_activate_' + strix] = \
- self.on_zoomprotozoon_activate
- events['on_exportpng_activate_' + strix] = \
- self.on_exportpng_activate
- events['on_explain_activate_' + strix] = \
- self.on_explain_activate
- events['on_ancestors_activate_' + strix] = \
- self.on_ancestors_activate
- events['on_favorite_activate_' + strix] = self.on_favorite_activate
- events['on_awfull_activate_' + strix] = self.on_awfull_activate
- for cell_index in range(3):
- strix = str(cell_index)
- key = 'on_incoming_#_popup'.replace('#', strix)
- events[key] = self.on_incoming_popup
- self._widget_tree.signal_autoconnect(events)
+ self._widget_tree.get_widget('breedGenerationButton') \
+ .connect('clicked', self.on_breed_generation)
+ self._widget_tree.get_widget('randomGenerationButton') \
+ .connect('clicked', self.on_random_generation)
+ self._widget_tree.get_widget('flurrySpinButton') \
+ .connect('value-changed', self.on_flurry_value_changed)
+ for cell_index in xrange(self.model.size):
+ six = str(cell_index)
+ self._widget_tree.get_widget('drawingarea_' + six) \
+ .connect('expose-event', self.on_drawingarea_expose)
+ self._widget_tree.get_widget('drawingarea_' + six) \
+ .connect('size-allocate', self.on_drawingarea_size_allocate)
+ self._widget_tree.get_widget('fitness_' + six) \
+ .connect('value-changed', self.on_fitness_value_changed)
+ menu = self._widget_tree.get_widget('protozoon_menu_' + six)
+ self._widget_tree.get_widget('open_popup_' + six) \
+ .connect_object('button-press-event', self.on_protozoon_popup, menu)
+ self._widget_tree.get_widget('favorite_menuitem_' + six) \
+ .connect('activate', self.on_favorite_activate)
+ self._widget_tree.get_widget('awfull_menuitem_' + six) \
+ .connect('activate', self.on_awfull_activate)
+ self._widget_tree.get_widget('zoomprotozoon_menuitem_' + six) \
+ .connect('activate', self.on_zoomprotozoon_activate)
+ self._widget_tree.get_widget('publishprotozoon_menuitem_' + six) \
+ .connect('activate', self.on_publishprotozoon_activate)
+ self._widget_tree.get_widget('exportpng_menuitem_' + six) \
+ .connect('activate', self.on_exportpng_activate)
+ self._widget_tree.get_widget('explain_menuitem_' + six) \
+ .connect('activate', self.on_explain_activate)
+ self._widget_tree.get_widget('ancestors_menuitem_' + six) \
+ .connect('activate', self.on_ancestors_activate)
+
+ for cell_index in xrange(3):
+ six = str(cell_index)
+ menu = self._widget_tree.get_widget('incoming_menu_' + six)
+ self._widget_tree.get_widget('incomingbutton_' + six) \
+ .connect_object('button-press-event', self.on_incoming_popup, menu)
+ self._widget_tree.get_widget('zoom_menuitem_' + six) \
+ .connect('activate', self.on_zoom_incoming)
+ self._widget_tree.get_widget('accept_menuitem_' + six) \
+ .connect('activate', self.on_accept_incoming)
+ self._widget_tree.get_widget('decline_menuitem_' + six) \
+ .connect('activate', self.on_decline_incoming)
+# self._widget_tree.get_widget('send_menuitem_' + str(cell_index)) \
+# .connect('activate', self.on_send_activate)
+# self._widget_tree.get_widget('explain_menuitem_' + str(cell_index)) \
+# .connect('activate', self.on_explain_activate)
+
+# #Create a dictionary to connect events
+# events = {
+# 'on_breed_generation' : self.on_breed_generation,
+# 'on_random_generation' : self.on_random_generation,
+# 'on_flurry_value_changed' : self.on_flurry_value_changed,
+# 'on_zoom_incoming' : self.on_zoom_incoming,
+# 'on_accept_incoming' : self.on_accept_incoming,
+# 'on_decline_incoming' : self.on_decline_incoming,
+# 'delete_event' : gtk.main_quit }
+# for cell_index in range(self.model.size):
+# strix = str(cell_index)
+# key = 'on_drawingarea_#_expose'.replace('#', strix)
+# events[key] = self.on_drawingarea_expose
+# key = 'on_drawingarea_#_size_allocate'.replace('#', strix)
+# events[key] = self.on_drawingarea_size_allocate
+# key = 'on_fitness_#_value_changed'.replace('#', strix)
+# events[key] = self.on_fitness_value_changed
+# events['on_protozoon_popup_' + strix] = self.on_protozoon_popup
+# events['on_publishprotozoon_activate_' + strix] = \
+# self.on_publishprotozoon_activate
+# events['on_zoomprotozoon_activate_' + strix] = \
+# self.on_zoomprotozoon_activate
+# events['on_exportpng_activate_' + strix] = \
+# self.on_exportpng_activate
+# events['on_explain_activate_' + strix] = \
+# self.on_explain_activate
+# events['on_ancestors_activate_' + strix] = \
+# self.on_ancestors_activate
+# events['on_favorite_activate_' + strix] = self.on_favorite_activate
+# events['on_awfull_activate_' + strix] = self.on_awfull_activate
+# for cell_index in range(3):
+# strix = str(cell_index)
+# key = 'on_incoming_#_popup'.replace('#', strix)
+# events[key] = self.on_incoming_popup
+# self._widget_tree.signal_autoconnect(events)
self.incoming.autoconnect_events()
gobject.timeout_add(1000, self.on_timer)
@@ -231,7 +280,7 @@ class KandidController(object):
# ka_debug.info('on_timer %s %u' % (compl, self._task_lock))
self._update_generate_buttons()
self._task_lock = 0 if compl else 1
- elif self._task_lock == 0 and not compl:
+ elif self._task_lock == 0: # and not compl:
# ka_debug.info('on_timer %s %u' % (compl, self._task_lock))
self._update_generate_buttons()
self._task_lock = 1
@@ -364,6 +413,23 @@ class KandidController(object):
if self._details_controller is not None:
self._details_controller.start_calculation(protozoon)
+# def on_explain_activate(self, *args):
+# """Explain single protozoon to all other buddies.
+# pre: len(args) >= 1
+# """
+# ka_debug.info('on_explain_activate [%s]' % args[0].get_name())
+# protozoon = self.model.protozoans[name_to_index(args[0].get_name())]
+
+ def on_send_activate(self, *args):
+ """Publish single protozoon to all other buddies.
+ pre: len(args) >= 1
+ """
+ ka_debug.info('on_send_activate [%s]' % args[0].get_name())
+ protozoon = self.model.protozoans[name_to_index(args[0].get_name())]
+# glade_replacement = no_glade.NoGlade()
+# sendDialog = glade_replacement.get_dialog_send()
+# sendDialog.show()
+
def on_ancestors_activate(self, *args):
"""Publish single protozoon to all other buddies.
pre: len(args) >= 1
diff --git a/ka_html_page.py b/ka_html_page.py
index 90a73c5..a4d62ec 100644
--- a/ka_html_page.py
+++ b/ka_html_page.py
@@ -67,10 +67,12 @@ class HtmlPage(object):
def autoconnect_events(self):
"""Auto connect introduction view."""
- events = {
- 'on_notebook_switch_page' : self.on_notebook_switch_page,
- }
- self._widget_tree.signal_autoconnect(events)
+ self._widget_tree.get_widget('kandidNotebook') \
+ .connect('switch-page', self.on_notebook_switch_page)
+# events = {
+# 'on_notebook_switch_page' : self.on_notebook_switch_page,
+# }
+#NO self._widget_tree.signal_autoconnect(events)
def localize(self):
"""A dummy"""
diff --git a/ka_incoming.py b/ka_incoming.py
index 29da665..b727554 100644
--- a/ka_incoming.py
+++ b/ka_incoming.py
@@ -40,16 +40,19 @@ class KandidIncoming(object):
self.incoming_id = []
self.incoming_protozoans = {}
self.incoming_surface_cache = {}
- self._inbox_widget = self._widget_tree.get_widget('incomingBox')
self._update_incomming_gui()
def autoconnect_events(self):
"""Create a dictionary to connect events."""
- events = { }
- for cell_index in range(self._capacity):
- key = 'on_incomingarea_#_expose'.replace('#', str(cell_index))
- events[key] = self.on_incomingarea_expose
- self._widget_tree.signal_autoconnect(events)
+ for cell_index in xrange(self._capacity):
+ six = str(cell_index)
+ self._widget_tree.get_widget('incomingarea_' + six) \
+ .connect('expose-event', self.on_incomingarea_expose)
+# events = { }
+# for cell_index in range(self._capacity):
+# key = 'on_incomingarea_#_expose'.replace('#', str(cell_index))
+# events[key] = self.on_incomingarea_expose
+# self._widget_tree.signal_autoconnect(events)
def at_index(self, index):
iid = self.incoming_id[index] if index < len(self.incoming_id) \
@@ -63,7 +66,7 @@ class KandidIncoming(object):
""" Append incoming protozoon and manage capacity.
pre: incoming_protozoon is not None
"""
- ka_debug.info('incoming: append protozoon')
+# ka_debug.info('incoming: append protozoon')
while len(self.incoming_protozoans) >= self._capacity:
iid = self.incoming_id[0]
del self.incoming_id[0]
@@ -163,7 +166,8 @@ class KandidIncoming(object):
def _update_incomming_gui(self):
for index in range(self._capacity):
- self._widget_tree.get_widget('incomingbutton_' + str(index)). \
+ six = str(index)
+ self._widget_tree.get_widget('incomingbutton_' + six). \
set_sensitive(len(self.incoming_id) > index)
- self._inbox_widget.queue_draw()
+ self._widget_tree.get_widget('incomingarea_' + six).queue_draw()
diff --git a/ka_widget.py b/ka_widget.py
index b88c148..077db00 100644
--- a/ka_widget.py
+++ b/ka_widget.py
@@ -15,13 +15,14 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
import gtk
-import gtk.glade
+#import gtk.glade
import os
import sys
import traceback
from gettext import gettext as _
import ka_controller
import ka_debug
+import no_glade
class KandidWidget(object):
"""
@@ -31,22 +32,27 @@ class KandidWidget(object):
def __init__(self, main_view):
# Create GUI and attach that widget to our window
# Load Glade XML
- self._widget_tree = gtk.glade.XML("kandid.glade")
-
- # Get Window
- kandidWindow = self._widget_tree.get_widget('kandidWindow')
- # Get Windows child
- kandidWindow_child = kandidWindow.get_child()
+# self._widget_tree = gtk.glade.XML("kandid.glade")
+#
+# # Get Window
+# kandidWindow = self._widget_tree.get_widget('kandidWindow')
+# # Get Windows child
+# kandidWindow_child = kandidWindow.get_child()
- # Remove the widget's parent
- if kandidWindow_child.parent:
- kandidWindow_child.parent.remove(kandidWindow_child)
+# glade_replacement = no_glade.NoGlade()
+ kandidNotebook = no_glade.NoGlade.get_notebook()
+ self._widget_tree = no_glade.NoGlade.getWidget_tree()
+# # Get Windows child
+# kandidWindow_child = kandidWindow.get_child()
+# # Remove the widget's parent
+# if kandidWindow_child.parent:
+# kandidWindow_child.parent.remove(kandidWindow_child)
# self.widget will be attached to the Activity
# This can be any GTK widget except a window
- main_view.pack_start(kandidWindow_child)
+ main_view.pack_start(kandidNotebook)
- self._localizePopulation()
+# self._localizePopulation()
# Display everything
def getWidget_tree(self):
@@ -54,46 +60,46 @@ class KandidWidget(object):
widget_tree = property(getWidget_tree)
- def _localizePopulation(self):
- try:
- local = {'breedGenerationButton' : _('Breed'),
- 'randomGenerationButton' : _('Random'),
- 'flurryLabel' : _('Flurry rate:'),
- 'populationLabel' : _('Population'),
- 'zoomLabel' : _('Zoom'),
- 'introLabel' : _('Introduction'),
- 'statusLabel' : _('Status'),
- 'ancestorsLabel' : _('Ancestors'),
- }
- for key, label in local.iteritems():
- self._widget_tree.get_widget(key).set_label(label)
-# ka_debug.info('localize "%s" to "%s"' % (key, label))
-
- for cell_index in range(ka_controller.POPULATION_CAPACITY):
- local = {'favorite_menuitem_#' : _('My favorite'),
- 'awfull_menuitem_#' : _('Awful bore, replace it'),
- 'publishprotozoon_menuitem_#' : _('Publish to my friends'),
- 'zoomprotozoon_menuitem_#' : _('Zoom'),
- 'exportpng_menuitem_#' : _('Send image to journal'),
- }
- self._set_localized_child_text(local, cell_index)
-
- for cell_index in range(ka_controller.INCOMMING_CAPACITY):
- local = {'accept_menuitem_#' : _('Accept protozoon'),
- 'decline_menuitem_#' : _('Decline protozoon'),
- }
- self._set_localized_child_text(local, cell_index)
- except:
- ka_debug.err('localize population failed [%s] [%s]' % \
- (sys.exc_info()[0], sys.exc_info()[1]))
- traceback.print_exc(file=sys.__stderr__)
-
- def _set_localized_child_text(self, local, cell_index):
- strix = str(cell_index)
- for key, label in local.iteritems():
- ikey = key if cell_index < 0 else key.replace('#', strix)
- self._widget_tree.get_widget(ikey).get_child().set_text(label)
-# ka_debug.info('localize "%s" to "%s"' % (ikey, label))
+# def _localizePopulation(self):
+# try:
+# local = {'breedGenerationButton' : _('Breed'),
+# 'randomGenerationButton' : _('Random'),
+# 'flurryLabel' : _('Flurry rate:'),
+# 'populationLabel' : _('Population'),
+# 'zoomLabel' : _('Zoom'),
+# 'introLabel' : _('Introduction'),
+# 'statusLabel' : _('Status'),
+# 'ancestorsLabel' : _('Ancestors'),
+# }
+# for key, label in local.iteritems():
+# self._widget_tree.get_widget(key).set_label(label)
+## ka_debug.info('localize "%s" to "%s"' % (key, label))
+#
+# for cell_index in range(ka_controller.POPULATION_CAPACITY):
+# local = {'favorite_menuitem_#' : _('My favorite'),
+# 'awfull_menuitem_#' : _('Awful bore, replace it'),
+# 'publishprotozoon_menuitem_#' : _('Publish to my friends'),
+# 'zoomprotozoon_menuitem_#' : _('Zoom'),
+# 'exportpng_menuitem_#' : _('Send image to journal'),
+# }
+# self._set_localized_child_text(local, cell_index)
+#
+# for cell_index in range(ka_controller.INCOMMING_CAPACITY):
+# local = {'accept_menuitem_#' : _('Accept protozoon'),
+# 'decline_menuitem_#' : _('Decline protozoon'),
+# }
+# self._set_localized_child_text(local, cell_index)
+# except:
+# ka_debug.err('localize population failed [%s] [%s]' % \
+# (sys.exc_info()[0], sys.exc_info()[1]))
+# traceback.print_exc(file=sys.__stderr__)
+#
+# def _set_localized_child_text(self, local, cell_index):
+# strix = str(cell_index)
+# for key, label in local.iteritems():
+# ikey = key if cell_index < 0 else key.replace('#', strix)
+# self._widget_tree.get_widget(ikey).get_child().set_text(label)
+## ka_debug.info('localize "%s" to "%s"' % (ikey, label))
@staticmethod
def get_localization():
diff --git a/kandid.glade b/kandid.glade
deleted file mode 100644
index d16910b..0000000
--- a/kandid.glade
+++ /dev/null
@@ -1,2339 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
-<!--Generated with glade3 3.4.5 on Sun Mar 21 10:08:36 2010 -->
-<glade-interface>
- <widget class="GtkWindow" id="kandidWindow">
- <child>
- <widget class="GtkNotebook" id="kandidNotebook">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="tab_hborder">0</property>
- <property name="tab_vborder">0</property>
- <signal name="switch_page" handler="on_notebook_switch_page"/>
- <child>
- <widget class="GtkHBox" id="populationPage">
- <property name="visible">True</property>
- <child>
- <widget class="GtkVBox" id="controlBox">
- <property name="visible">True</property>
- <child>
- <widget class="GtkVButtonBox" id="toolbarButtonbox">
- <property name="visible">True</property>
- <property name="border_width">5</property>
- <property name="spacing">5</property>
- <property name="layout_style">GTK_BUTTONBOX_START</property>
- <child>
- <widget class="GtkButton" id="breedGenerationButton">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- <property name="label" translatable="yes">Breed</property>
- <property name="response_id">0</property>
- <signal name="clicked" handler="on_breed_generation"/>
- </widget>
- </child>
- <child>
- <widget class="GtkLabel" id="flurryLabel">
- <property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">Flurry rate:</property>
- </widget>
- <packing>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <widget class="GtkSpinButton" id="flurrySpinButton">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="adjustment">0 0 9 1 3 0</property>
- <signal name="value_changed" handler="on_flurry_value_changed"/>
- </widget>
- <packing>
- <property name="position">2</property>
- </packing>
- </child>
- <child>
- <widget class="GtkHSeparator" id="hseparator1">
- <property name="visible">True</property>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">3</property>
- </packing>
- </child>
- <child>
- <widget class="GtkButton" id="randomGenerationButton">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- <property name="label" translatable="yes">Random</property>
- <property name="response_id">0</property>
- <signal name="clicked" handler="on_random_generation"/>
- </widget>
- <packing>
- <property name="position">4</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="padding">5</property>
- </packing>
- </child>
- <child>
- <widget class="GtkVBox" id="incomingBox">
- <property name="visible">True</property>
- <child>
- <widget class="GtkHBox" id="hbox0">
- <property name="visible">True</property>
- <child>
- <widget class="GtkButton" id="incomingbutton_0">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="response_id">0</property>
- <signal name="button_press_event" handler="on_incoming_0_popup"/>
- <child>
- <widget class="GtkArrow" id="arrow0">
- <property name="visible">True</property>
- <property name="arrow_type">GTK_ARROW_DOWN</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- <child>
- <widget class="GtkLabel" id="label0">
- <property name="visible">True</property>
- </widget>
- <packing>
- <property name="position">1</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- <child>
- <widget class="GtkAspectFrame" id="aspectframe0">
- <property name="visible">True</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">GTK_SHADOW_NONE</property>
- <child>
- <widget class="GtkDrawingArea" id="incomingarea_0">
- <property name="visible">True</property>
- <signal name="expose_event" handler="on_incomingarea_0_expose"/>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <widget class="GtkHBox" id="hbox1">
- <property name="visible">True</property>
- <child>
- <widget class="GtkButton" id="incomingbutton_1">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="response_id">0</property>
- <signal name="button_press_event" handler="on_incoming_1_popup"/>
- <child>
- <widget class="GtkArrow" id="arrow1">
- <property name="visible">True</property>
- <property name="arrow_type">GTK_ARROW_DOWN</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- <child>
- <widget class="GtkLabel" id="label1">
- <property name="visible">True</property>
- </widget>
- <packing>
- <property name="position">1</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">2</property>
- </packing>
- </child>
- <child>
- <widget class="GtkAspectFrame" id="aspectframe1">
- <property name="visible">True</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">GTK_SHADOW_NONE</property>
- <child>
- <widget class="GtkDrawingArea" id="incomingarea_1">
- <property name="visible">True</property>
- <signal name="expose_event" handler="on_incomingarea_1_expose"/>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="position">3</property>
- </packing>
- </child>
- <child>
- <widget class="GtkHBox" id="hbox2">
- <property name="visible">True</property>
- <child>
- <widget class="GtkButton" id="incomingbutton_2">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="response_id">0</property>
- <signal name="button_press_event" handler="on_incoming_2_popup"/>
- <child>
- <widget class="GtkArrow" id="arrow2">
- <property name="visible">True</property>
- <property name="arrow_type">GTK_ARROW_DOWN</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- <child>
- <widget class="GtkLabel" id="label2">
- <property name="visible">True</property>
- </widget>
- <packing>
- <property name="position">1</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">4</property>
- </packing>
- </child>
- <child>
- <widget class="GtkAspectFrame" id="aspectframe2">
- <property name="visible">True</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">GTK_SHADOW_NONE</property>
- <child>
- <widget class="GtkDrawingArea" id="incomingarea_2">
- <property name="visible">True</property>
- <signal name="expose_event" handler="on_incomingarea_2_expose"/>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="position">5</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="pack_type">GTK_PACK_END</property>
- <property name="position">1</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="padding">5</property>
- </packing>
- </child>
- <child>
- <widget class="GtkTable" id="populationTable">
- <property name="visible">True</property>
- <property name="border_width">5</property>
- <property name="n_rows">3</property>
- <property name="n_columns">4</property>
- <property name="column_spacing">5</property>
- <property name="row_spacing">5</property>
- <property name="homogeneous">True</property>
- <child>
- <widget class="GtkVBox" id="vbox_11">
- <property name="visible">True</property>
- <child>
- <widget class="GtkHBox" id="hbox_11">
- <property name="visible">True</property>
- <child>
- <widget class="GtkButton" id="open_popup_11">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="response_id">0</property>
- <signal name="button_press_event" handler="on_protozoon_popup_11"/>
- <child>
- <widget class="GtkArrow" id="arrow_11">
- <property name="visible">True</property>
- <property name="arrow_type">GTK_ARROW_DOWN</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="expand">False</property>
- </packing>
- </child>
- <child>
- <widget class="GtkHScale" id="fitness_11">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="update_policy">GTK_UPDATE_DISCONTINUOUS</property>
- <property name="adjustment">1 0 10 1 1 1</property>
- <property name="digits">0</property>
- <property name="value_pos">GTK_POS_RIGHT</property>
- <signal name="value_changed" handler="on_fitness_11_value_changed"/>
- </widget>
- <packing>
- <property name="padding">5</property>
- <property name="position">1</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="expand">False</property>
- </packing>
- </child>
- <child>
- <widget class="GtkAspectFrame" id="aspectframe_11">
- <property name="visible">True</property>
- <property name="resize_mode">GTK_RESIZE_QUEUE</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">GTK_SHADOW_NONE</property>
- <child>
- <widget class="GtkDrawingArea" id="drawingarea_11">
- <property name="visible">True</property>
- <signal name="expose_event" handler="on_drawingarea_11_expose"/>
- <signal name="size_allocate" handler="on_drawingarea_11_size_allocate"/>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="position">1</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- </packing>
- </child>
- <child>
- <widget class="GtkVBox" id="vbox_10">
- <property name="visible">True</property>
- <child>
- <widget class="GtkHBox" id="hbox_10">
- <property name="visible">True</property>
- <child>
- <widget class="GtkButton" id="open_popup_10">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="response_id">0</property>
- <signal name="button_press_event" handler="on_protozoon_popup_10"/>
- <child>
- <widget class="GtkArrow" id="arrow_10">
- <property name="visible">True</property>
- <property name="arrow_type">GTK_ARROW_DOWN</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="expand">False</property>
- </packing>
- </child>
- <child>
- <widget class="GtkHScale" id="fitness_10">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="update_policy">GTK_UPDATE_DISCONTINUOUS</property>
- <property name="adjustment">1 0 10 1 1 1</property>
- <property name="digits">0</property>
- <property name="value_pos">GTK_POS_RIGHT</property>
- <signal name="value_changed" handler="on_fitness_10_value_changed"/>
- </widget>
- <packing>
- <property name="padding">5</property>
- <property name="position">1</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="expand">False</property>
- </packing>
- </child>
- <child>
- <widget class="GtkAspectFrame" id="aspectframe_10">
- <property name="visible">True</property>
- <property name="resize_mode">GTK_RESIZE_QUEUE</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">GTK_SHADOW_NONE</property>
- <child>
- <widget class="GtkDrawingArea" id="drawingarea_10">
- <property name="visible">True</property>
- <signal name="expose_event" handler="on_drawingarea_10_expose"/>
- <signal name="size_allocate" handler="on_drawingarea_10_size_allocate"/>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="position">1</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
- </packing>
- </child>
- <child>
- <widget class="GtkVBox" id="vbox_9">
- <property name="visible">True</property>
- <child>
- <widget class="GtkHBox" id="hbox_9">
- <property name="visible">True</property>
- <child>
- <widget class="GtkButton" id="open_popup_9">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="response_id">0</property>
- <signal name="button_press_event" handler="on_protozoon_popup_9"/>
- <child>
- <widget class="GtkArrow" id="arrow_9">
- <property name="visible">True</property>
- <property name="arrow_type">GTK_ARROW_DOWN</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="expand">False</property>
- </packing>
- </child>
- <child>
- <widget class="GtkHScale" id="fitness_9">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="update_policy">GTK_UPDATE_DISCONTINUOUS</property>
- <property name="adjustment">1 0 10 1 1 1</property>
- <property name="digits">0</property>
- <property name="value_pos">GTK_POS_RIGHT</property>
- <signal name="value_changed" handler="on_fitness_9_value_changed"/>
- </widget>
- <packing>
- <property name="padding">5</property>
- <property name="position">1</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="expand">False</property>
- </packing>
- </child>
- <child>
- <widget class="GtkAspectFrame" id="aspectframe_9">
- <property name="visible">True</property>
- <property name="resize_mode">GTK_RESIZE_QUEUE</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">GTK_SHADOW_NONE</property>
- <child>
- <widget class="GtkDrawingArea" id="drawingarea_9">
- <property name="visible">True</property>
- <signal name="expose_event" handler="on_drawingarea_9_expose"/>
- <signal name="size_allocate" handler="on_drawingarea_9_size_allocate"/>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="position">1</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- </packing>
- </child>
- <child>
- <widget class="GtkVBox" id="vbox_8">
- <property name="visible">True</property>
- <child>
- <widget class="GtkHBox" id="hbox_8">
- <property name="visible">True</property>
- <child>
- <widget class="GtkButton" id="open_popup_8">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="response_id">0</property>
- <signal name="button_press_event" handler="on_protozoon_popup_8"/>
- <child>
- <widget class="GtkArrow" id="arrow_8">
- <property name="visible">True</property>
- <property name="arrow_type">GTK_ARROW_DOWN</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="expand">False</property>
- </packing>
- </child>
- <child>
- <widget class="GtkHScale" id="fitness_8">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="update_policy">GTK_UPDATE_DISCONTINUOUS</property>
- <property name="adjustment">1 0 10 1 1 1</property>
- <property name="digits">0</property>
- <property name="value_pos">GTK_POS_RIGHT</property>
- <signal name="value_changed" handler="on_fitness_8_value_changed"/>
- </widget>
- <packing>
- <property name="padding">5</property>
- <property name="position">1</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="expand">False</property>
- </packing>
- </child>
- <child>
- <widget class="GtkAspectFrame" id="aspectframe_8">
- <property name="visible">True</property>
- <property name="resize_mode">GTK_RESIZE_QUEUE</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">GTK_SHADOW_NONE</property>
- <child>
- <widget class="GtkDrawingArea" id="drawingarea_8">
- <property name="visible">True</property>
- <signal name="expose_event" handler="on_drawingarea_8_expose"/>
- <signal name="size_allocate" handler="on_drawingarea_8_size_allocate"/>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="position">1</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- </packing>
- </child>
- <child>
- <widget class="GtkVBox" id="vbox_7">
- <property name="visible">True</property>
- <child>
- <widget class="GtkHBox" id="hbox_7">
- <property name="visible">True</property>
- <child>
- <widget class="GtkButton" id="open_popup_7">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="response_id">0</property>
- <signal name="button_press_event" handler="on_protozoon_popup_7"/>
- <child>
- <widget class="GtkArrow" id="arrow_7">
- <property name="visible">True</property>
- <property name="arrow_type">GTK_ARROW_DOWN</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="expand">False</property>
- </packing>
- </child>
- <child>
- <widget class="GtkHScale" id="fitness_7">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="update_policy">GTK_UPDATE_DISCONTINUOUS</property>
- <property name="adjustment">1 0 10 1 1 1</property>
- <property name="digits">0</property>
- <property name="value_pos">GTK_POS_RIGHT</property>
- <signal name="value_changed" handler="on_fitness_7_value_changed"/>
- </widget>
- <packing>
- <property name="padding">5</property>
- <property name="position">1</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="expand">False</property>
- </packing>
- </child>
- <child>
- <widget class="GtkAspectFrame" id="aspectframe_7">
- <property name="visible">True</property>
- <property name="resize_mode">GTK_RESIZE_QUEUE</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">GTK_SHADOW_NONE</property>
- <child>
- <widget class="GtkDrawingArea" id="drawingarea_7">
- <property name="visible">True</property>
- <signal name="expose_event" handler="on_drawingarea_7_expose"/>
- <signal name="size_allocate" handler="on_drawingarea_7_size_allocate"/>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="position">1</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
- </packing>
- </child>
- <child>
- <widget class="GtkVBox" id="vbox_6">
- <property name="visible">True</property>
- <child>
- <widget class="GtkHBox" id="hbox_6">
- <property name="visible">True</property>
- <child>
- <widget class="GtkButton" id="open_popup_6">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="response_id">0</property>
- <signal name="button_press_event" handler="on_protozoon_popup_6"/>
- <child>
- <widget class="GtkArrow" id="arrow_6">
- <property name="visible">True</property>
- <property name="arrow_type">GTK_ARROW_DOWN</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="expand">False</property>
- </packing>
- </child>
- <child>
- <widget class="GtkHScale" id="fitness_6">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="update_policy">GTK_UPDATE_DISCONTINUOUS</property>
- <property name="adjustment">1 0 10 1 1 1</property>
- <property name="digits">0</property>
- <property name="value_pos">GTK_POS_RIGHT</property>
- <signal name="value_changed" handler="on_fitness_6_value_changed"/>
- </widget>
- <packing>
- <property name="padding">5</property>
- <property name="position">1</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="expand">False</property>
- </packing>
- </child>
- <child>
- <widget class="GtkAspectFrame" id="aspectframe_6">
- <property name="visible">True</property>
- <property name="resize_mode">GTK_RESIZE_QUEUE</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">GTK_SHADOW_NONE</property>
- <child>
- <widget class="GtkDrawingArea" id="drawingarea_6">
- <property name="visible">True</property>
- <signal name="expose_event" handler="on_drawingarea_6_expose"/>
- <signal name="size_allocate" handler="on_drawingarea_6_size_allocate"/>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="position">1</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="left_attach">2</property>
- <property name="right_attach">3</property>
- </packing>
- </child>
- <child>
- <widget class="GtkVBox" id="vbox_5">
- <property name="visible">True</property>
- <child>
- <widget class="GtkHBox" id="hbox_5">
- <property name="visible">True</property>
- <child>
- <widget class="GtkButton" id="open_popup_5">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="response_id">0</property>
- <signal name="button_press_event" handler="on_protozoon_popup_5"/>
- <child>
- <widget class="GtkArrow" id="arrow_5">
- <property name="visible">True</property>
- <property name="arrow_type">GTK_ARROW_DOWN</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="expand">False</property>
- </packing>
- </child>
- <child>
- <widget class="GtkHScale" id="fitness_5">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="update_policy">GTK_UPDATE_DISCONTINUOUS</property>
- <property name="adjustment">1 0 10 1 1 1</property>
- <property name="digits">0</property>
- <property name="value_pos">GTK_POS_RIGHT</property>
- <signal name="value_changed" handler="on_fitness_5_value_changed"/>
- </widget>
- <packing>
- <property name="padding">5</property>
- <property name="position">1</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="expand">False</property>
- </packing>
- </child>
- <child>
- <widget class="GtkAspectFrame" id="aspectframe_5">
- <property name="visible">True</property>
- <property name="resize_mode">GTK_RESIZE_QUEUE</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">GTK_SHADOW_NONE</property>
- <child>
- <widget class="GtkDrawingArea" id="drawingarea_5">
- <property name="visible">True</property>
- <signal name="expose_event" handler="on_drawingarea_5_expose"/>
- <signal name="size_allocate" handler="on_drawingarea_5_size_allocate"/>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="position">1</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="left_attach">2</property>
- <property name="right_attach">3</property>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- </packing>
- </child>
- <child>
- <widget class="GtkVBox" id="vbox_4">
- <property name="visible">True</property>
- <child>
- <widget class="GtkHBox" id="hbox_4">
- <property name="visible">True</property>
- <child>
- <widget class="GtkButton" id="open_popup_4">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="response_id">0</property>
- <signal name="button_press_event" handler="on_protozoon_popup_4"/>
- <child>
- <widget class="GtkArrow" id="arrow_4">
- <property name="visible">True</property>
- <property name="arrow_type">GTK_ARROW_DOWN</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="expand">False</property>
- </packing>
- </child>
- <child>
- <widget class="GtkHScale" id="fitness_4">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="update_policy">GTK_UPDATE_DISCONTINUOUS</property>
- <property name="adjustment">1 0 10 1 1 1</property>
- <property name="digits">0</property>
- <property name="value_pos">GTK_POS_RIGHT</property>
- <signal name="value_changed" handler="on_fitness_4_value_changed"/>
- </widget>
- <packing>
- <property name="padding">5</property>
- <property name="position">1</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="expand">False</property>
- </packing>
- </child>
- <child>
- <widget class="GtkAspectFrame" id="aspectframe_4">
- <property name="visible">True</property>
- <property name="resize_mode">GTK_RESIZE_QUEUE</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">GTK_SHADOW_NONE</property>
- <child>
- <widget class="GtkDrawingArea" id="drawingarea_4">
- <property name="visible">True</property>
- <signal name="expose_event" handler="on_drawingarea_4_expose"/>
- <signal name="size_allocate" handler="on_drawingarea_4_size_allocate"/>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="position">1</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="left_attach">2</property>
- <property name="right_attach">3</property>
- <property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
- </packing>
- </child>
- <child>
- <widget class="GtkVBox" id="vbox_3">
- <property name="visible">True</property>
- <child>
- <widget class="GtkHBox" id="hbox_3">
- <property name="visible">True</property>
- <child>
- <widget class="GtkButton" id="open_popup_3">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="response_id">0</property>
- <signal name="button_press_event" handler="on_protozoon_popup_3"/>
- <child>
- <widget class="GtkArrow" id="arrow_3">
- <property name="visible">True</property>
- <property name="arrow_type">GTK_ARROW_DOWN</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="expand">False</property>
- </packing>
- </child>
- <child>
- <widget class="GtkHScale" id="fitness_3">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="update_policy">GTK_UPDATE_DISCONTINUOUS</property>
- <property name="adjustment">1 0 10 1 1 1</property>
- <property name="digits">0</property>
- <property name="value_pos">GTK_POS_RIGHT</property>
- <signal name="value_changed" handler="on_fitness_3_value_changed"/>
- </widget>
- <packing>
- <property name="padding">5</property>
- <property name="position">1</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="expand">False</property>
- </packing>
- </child>
- <child>
- <widget class="GtkAspectFrame" id="aspectframe_3">
- <property name="visible">True</property>
- <property name="resize_mode">GTK_RESIZE_QUEUE</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">GTK_SHADOW_NONE</property>
- <child>
- <widget class="GtkDrawingArea" id="drawingarea_3">
- <property name="visible">True</property>
- <signal name="expose_event" handler="on_drawingarea_3_expose"/>
- <signal name="size_allocate" handler="on_drawingarea_3_size_allocate"/>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="position">1</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="left_attach">3</property>
- <property name="right_attach">4</property>
- </packing>
- </child>
- <child>
- <widget class="GtkVBox" id="vbox_2">
- <property name="visible">True</property>
- <child>
- <widget class="GtkHBox" id="hbox_2">
- <property name="visible">True</property>
- <child>
- <widget class="GtkButton" id="open_popup_2">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="response_id">0</property>
- <signal name="button_press_event" handler="on_protozoon_popup_2"/>
- <child>
- <widget class="GtkArrow" id="arrow_2">
- <property name="visible">True</property>
- <property name="arrow_type">GTK_ARROW_DOWN</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="expand">False</property>
- </packing>
- </child>
- <child>
- <widget class="GtkHScale" id="fitness_2">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="update_policy">GTK_UPDATE_DISCONTINUOUS</property>
- <property name="adjustment">1 0 10 1 1 1</property>
- <property name="digits">0</property>
- <property name="value_pos">GTK_POS_RIGHT</property>
- <signal name="value_changed" handler="on_fitness_2_value_changed"/>
- </widget>
- <packing>
- <property name="padding">5</property>
- <property name="position">1</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="expand">False</property>
- </packing>
- </child>
- <child>
- <widget class="GtkAspectFrame" id="aspectframe_2">
- <property name="visible">True</property>
- <property name="resize_mode">GTK_RESIZE_QUEUE</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">GTK_SHADOW_NONE</property>
- <child>
- <widget class="GtkDrawingArea" id="drawingarea_2">
- <property name="visible">True</property>
- <signal name="expose_event" handler="on_drawingarea_2_expose"/>
- <signal name="size_allocate" handler="on_drawingarea_2_size_allocate"/>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="position">1</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="left_attach">3</property>
- <property name="right_attach">4</property>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- </packing>
- </child>
- <child>
- <widget class="GtkVBox" id="vbox_1">
- <property name="visible">True</property>
- <child>
- <widget class="GtkHBox" id="hbox_1">
- <property name="visible">True</property>
- <child>
- <widget class="GtkButton" id="open_popup_1">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="response_id">0</property>
- <signal name="button_press_event" handler="on_protozoon_popup_1"/>
- <child>
- <widget class="GtkArrow" id="arrow_1">
- <property name="visible">True</property>
- <property name="arrow_type">GTK_ARROW_DOWN</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="expand">False</property>
- </packing>
- </child>
- <child>
- <widget class="GtkHScale" id="fitness_1">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="update_policy">GTK_UPDATE_DISCONTINUOUS</property>
- <property name="adjustment">1 0 10 1 1 1</property>
- <property name="digits">0</property>
- <property name="value_pos">GTK_POS_RIGHT</property>
- <signal name="value_changed" handler="on_fitness_1_value_changed"/>
- </widget>
- <packing>
- <property name="padding">5</property>
- <property name="position">1</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="expand">False</property>
- </packing>
- </child>
- <child>
- <widget class="GtkAspectFrame" id="aspectframe_1">
- <property name="visible">True</property>
- <property name="resize_mode">GTK_RESIZE_QUEUE</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">GTK_SHADOW_NONE</property>
- <child>
- <widget class="GtkDrawingArea" id="drawingarea_1">
- <property name="visible">True</property>
- <signal name="expose_event" handler="on_drawingarea_1_expose"/>
- <signal name="size_allocate" handler="on_drawingarea_1_size_allocate"/>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="position">1</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="left_attach">3</property>
- <property name="right_attach">4</property>
- <property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
- </packing>
- </child>
- <child>
- <widget class="GtkVBox" id="vbox_0">
- <property name="visible">True</property>
- <child>
- <widget class="GtkHBox" id="hbox_0">
- <property name="visible">True</property>
- <child>
- <widget class="GtkButton" id="open_popup_0">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="response_id">0</property>
- <signal name="button_press_event" handler="on_protozoon_popup_0"/>
- <child>
- <widget class="GtkArrow" id="arrow_0">
- <property name="visible">True</property>
- <property name="arrow_type">GTK_ARROW_DOWN</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="expand">False</property>
- </packing>
- </child>
- <child>
- <widget class="GtkHScale" id="fitness_0">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="update_policy">GTK_UPDATE_DISCONTINUOUS</property>
- <property name="adjustment">1 0 10 1 1 1</property>
- <property name="digits">0</property>
- <property name="value_pos">GTK_POS_RIGHT</property>
- <signal name="value_changed" handler="on_fitness_0_value_changed"/>
- </widget>
- <packing>
- <property name="padding">5</property>
- <property name="position">1</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="expand">False</property>
- </packing>
- </child>
- <child>
- <widget class="GtkAspectFrame" id="aspectframe_0">
- <property name="visible">True</property>
- <property name="resize_mode">GTK_RESIZE_QUEUE</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">GTK_SHADOW_NONE</property>
- <child>
- <widget class="GtkDrawingArea" id="drawingarea_0">
- <property name="visible">True</property>
- <signal name="expose_event" handler="on_drawingarea_0_expose"/>
- <signal name="size_allocate" handler="on_drawingarea_0_size_allocate"/>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="position">1</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="position">1</property>
- </packing>
- </child>
- </widget>
- </child>
- <child>
- <widget class="GtkLabel" id="populationLabel">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Population</property>
- </widget>
- <packing>
- <property name="type">tab</property>
- <property name="tab_fill">False</property>
- </packing>
- </child>
- <child>
- <widget class="GtkHBox" id="zoomPage">
- <child>
- <widget class="GtkAspectFrame" id="zoomAspectframe">
- <property name="visible">True</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">GTK_SHADOW_NONE</property>
- <child>
- <widget class="GtkDrawingArea" id="zoomarea">
- <property name="visible">True</property>
- <signal name="expose_event" handler="on_zoomarea_expose"/>
- <signal name="size_allocate" handler="on_zoomarea_size_allocate"/>
- </widget>
- </child>
- </widget>
- </child>
- <child>
- <placeholder/>
- </child>
- </widget>
- <packing>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <widget class="GtkLabel" id="zoomLabel">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Zoom</property>
- </widget>
- <packing>
- <property name="type">tab</property>
- <property name="position">1</property>
- <property name="tab_fill">False</property>
- </packing>
- </child>
- <child>
- <widget class="GtkEventBox" id="introPage">
- <property name="visible">True</property>
- <property name="border_width">4</property>
- <child>
- <widget class="GtkScrolledWindow" id="intro_scrolledwindow">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="shadow_type">GTK_SHADOW_IN</property>
- <child>
- <placeholder/>
- </child>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="position">2</property>
- </packing>
- </child>
- <child>
- <widget class="GtkLabel" id="introLabel">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Introduction</property>
- </widget>
- <packing>
- <property name="type">tab</property>
- <property name="position">2</property>
- <property name="tab_fill">False</property>
- </packing>
- </child>
- <child>
- <widget class="GtkHPaned" id="startHpaned">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <child>
- <widget class="GtkScrolledWindow" id="start_scrolledwindow">
- <property name="width_request">400</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <child>
- <widget class="GtkTextView" id="gettingstarted_textview">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="editable">False</property>
- <property name="wrap_mode">GTK_WRAP_WORD</property>
- <property name="left_margin">5</property>
- <property name="cursor_visible">False</property>
- <property name="text" translatable="yes">getting_started</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="resize">False</property>
- <property name="shrink">True</property>
- </packing>
- </child>
- <child>
- <widget class="GtkVBox" id="startactionsVbox">
- <property name="visible">True</property>
- <child>
- <widget class="GtkLinkButton" id="readintroLinkbutton">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="has_tooltip">True</property>
- <property name="label" translatable="yes">Read the Introduction.</property>
- <property name="relief">GTK_RELIEF_NONE</property>
- <property name="response_id">0</property>
- <signal name="clicked" handler="on_readintro"/>
- </widget>
- </child>
- <child>
- <widget class="GtkLinkButton" id="startnewLinkbutton">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="has_tooltip">True</property>
- <property name="label" translatable="yes">Show image population.</property>
- <property name="relief">GTK_RELIEF_NONE</property>
- <property name="response_id">0</property>
- <signal name="clicked" handler="on_startnew"/>
- </widget>
- <packing>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <widget class="GtkLabel" id="label3">
- <property name="visible">True</property>
- <property name="label" translatable="yes"> </property>
- </widget>
- <packing>
- <property name="position">2</property>
- </packing>
- </child>
- <child>
- <widget class="GtkLabel" id="label4">
- <property name="visible">True</property>
- <property name="label" translatable="yes"> </property>
- </widget>
- <packing>
- <property name="position">3</property>
- </packing>
- </child>
- <child>
- <widget class="GtkLabel" id="label5">
- <property name="visible">True</property>
- <property name="label" translatable="yes"> </property>
- </widget>
- <packing>
- <property name="position">4</property>
- </packing>
- </child>
- <child>
- <widget class="GtkLabel" id="label6">
- <property name="visible">True</property>
- <property name="label" translatable="yes"> </property>
- </widget>
- <packing>
- <property name="position">5</property>
- </packing>
- </child>
- <child>
- <widget class="GtkLabel" id="label7">
- <property name="visible">True</property>
- <property name="label" translatable="yes"> </property>
- </widget>
- <packing>
- <property name="position">6</property>
- </packing>
- </child>
- <child>
- <widget class="GtkLabel" id="label8">
- <property name="visible">True</property>
- <property name="label" translatable="yes"> </property>
- </widget>
- <packing>
- <property name="position">7</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="resize">True</property>
- <property name="shrink">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="position">3</property>
- </packing>
- </child>
- <child>
- <widget class="GtkLabel" id="startLabel">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Getting started</property>
- </widget>
- <packing>
- <property name="type">tab</property>
- <property name="position">3</property>
- <property name="tab_fill">False</property>
- </packing>
- </child>
- <child>
- <widget class="GtkEventBox" id="detailsPage">
- <property name="visible">True</property>
- <child>
- <widget class="GtkScrolledWindow" id="details_scrolledwindow">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <child>
- <placeholder/>
- </child>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="position">4</property>
- </packing>
- </child>
- <child>
- <widget class="GtkLabel" id="detailsLabel">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Details</property>
- </widget>
- <packing>
- <property name="type">tab</property>
- <property name="position">4</property>
- <property name="tab_fill">False</property>
- </packing>
- </child>
- <child>
- <widget class="GtkEventBox" id="ancestorsPage">
- <property name="visible">True</property>
- <child>
- <widget class="GtkDrawingArea" id="ancestors_drawingarea">
- <property name="visible">True</property>
- <signal name="expose_event" handler="on_ancestrosarea_expose"/>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="position">5</property>
- </packing>
- </child>
- <child>
- <widget class="GtkLabel" id="ancestorsLabel">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Ancestors</property>
- </widget>
- <packing>
- <property name="type">tab</property>
- <property name="position">5</property>
- <property name="tab_fill">False</property>
- </packing>
- </child>
- <child>
- <widget class="GtkEventBox" id="statusPage">
- <property name="visible">True</property>
- <child>
- <widget class="GtkScrolledWindow" id="statusScrolledwindow">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <child>
- <widget class="GtkTextView" id="statusTextview">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <signal name="visibility_notify_event" handler="on_statustextview_visibility_notify_event"/>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="position">5</property>
- </packing>
- </child>
- <child>
- <widget class="GtkLabel" id="statusLabel">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Status</property>
- </widget>
- <packing>
- <property name="type">tab</property>
- <property name="position">6</property>
- <property name="tab_fill">False</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- <widget class="GtkMenu" id="protozoon_menu_0">
- <property name="visible">True</property>
- <child>
- <widget class="GtkMenuItem" id="favorite_menuitem_0">
- <property name="visible">True</property>
- <property name="label" translatable="yes">My favorite</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_favorite_activate_0"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="awfull_menuitem_0">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Awful bore</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_awfull_activate_0"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="zoomprotozoon_menuitem_0">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Zoom</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_zoomprotozoon_activate_0"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="publishprotozoon_menuitem_0">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Publish to my friends</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_publishprotozoon_activate_0"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="more_menuitem_0">
- <property name="visible">True</property>
- <property name="label" translatable="yes">more...</property>
- <property name="use_underline">True</property>
- <child>
- <widget class="GtkMenu" id="sub_menu_0">
- <property name="visible">True</property>
- <child>
- <widget class="GtkMenuItem" id="exportpng_menuitem_0">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Send image to journal</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_exportpng_activate_0"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="explain_menuitem_0">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Explain details</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_explain_activate_0"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="ancestors_menuitem_0">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Show ancestors</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_ancestors_activate_0"/>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- <widget class="GtkMenu" id="protozoon_menu_1">
- <property name="visible">True</property>
- <child>
- <widget class="GtkMenuItem" id="favorite_menuitem_1">
- <property name="visible">True</property>
- <property name="label" translatable="yes">My favorite</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_favorite_activate_1"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="awfull_menuitem_1">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Awful bore</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_awfull_activate_1"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="zoomprotozoon_menuitem_1">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Zoom</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_zoomprotozoon_activate_1"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="publishprotozoon_menuitem_1">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Publish to my friends</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_publishprotozoon_activate_1"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="more_menuitem_1">
- <property name="visible">True</property>
- <property name="label" translatable="yes">more...</property>
- <property name="use_underline">True</property>
- <child>
- <widget class="GtkMenu" id="sub_menu_1">
- <property name="visible">True</property>
- <child>
- <widget class="GtkMenuItem" id="exportpng_menuitem_1">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Send image to journal</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_exportpng_activate_1"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="explain_menuitem_1">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Explain details</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_explain_activate_1"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="ancestors_menuitem_1">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Show ancestors</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_ancestors_activate_1"/>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- <widget class="GtkMenu" id="protozoon_menu_2">
- <property name="visible">True</property>
- <child>
- <widget class="GtkMenuItem" id="favorite_menuitem_2">
- <property name="visible">True</property>
- <property name="label" translatable="yes">My favorite</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_favorite_activate_2"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="awfull_menuitem_2">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Awful bore</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_awfull_activate_2"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="zoomprotozoon_menuitem_2">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Zoom</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_zoomprotozoon_activate_2"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="publishprotozoon_menuitem_2">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Publish to my friends</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_publishprotozoon_activate_2"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="more_menuitem_2">
- <property name="visible">True</property>
- <property name="label" translatable="yes">more...</property>
- <property name="use_underline">True</property>
- <child>
- <widget class="GtkMenu" id="sub_menu_2">
- <property name="visible">True</property>
- <child>
- <widget class="GtkMenuItem" id="exportpng_menuitem_2">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Send image to journal</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_exportpng_activate_2"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="explain_menuitem_2">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Explain details</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_explain_activate_2"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="ancestors_menuitem_2">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Show ancestors</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_ancestors_activate_2"/>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- <widget class="GtkMenu" id="protozoon_menu_3">
- <property name="visible">True</property>
- <child>
- <widget class="GtkMenuItem" id="favorite_menuitem_3">
- <property name="visible">True</property>
- <property name="label" translatable="yes">My favorite</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_favorite_activate_3"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="awfull_menuitem_3">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Awful bore</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_awfull_activate_3"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="zoomprotozoon_menuitem_3">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Zoom</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_zoomprotozoon_activate_3"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="publishprotozoon_menuitem_3">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Publish to my friends</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_publishprotozoon_activate_3"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="more_menuitem_3">
- <property name="visible">True</property>
- <property name="label" translatable="yes">more...</property>
- <property name="use_underline">True</property>
- <child>
- <widget class="GtkMenu" id="sub_menu_3">
- <property name="visible">True</property>
- <child>
- <widget class="GtkMenuItem" id="exportpng_menuitem_3">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Send image to journal</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_exportpng_activate_3"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="explain_menuitem_3">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Explain details</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_explain_activate_3"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="ancestors_menuitem_3">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Show ancestors</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_ancestors_activate_3"/>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- <widget class="GtkMenu" id="protozoon_menu_4">
- <property name="visible">True</property>
- <child>
- <widget class="GtkMenuItem" id="favorite_menuitem_4">
- <property name="visible">True</property>
- <property name="label" translatable="yes">My favorite</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_favorite_activate_4"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="awfull_menuitem_4">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Awful bore</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_awfull_activate_4"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="zoomprotozoon_menuitem_4">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Zoom</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_zoomprotozoon_activate_4"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="publishprotozoon_menuitem_4">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Publish to my friends</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_publishprotozoon_activate_4"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="more_menuitem_4">
- <property name="visible">True</property>
- <property name="label" translatable="yes">more...</property>
- <property name="use_underline">True</property>
- <child>
- <widget class="GtkMenu" id="sub_menu_4">
- <property name="visible">True</property>
- <child>
- <widget class="GtkMenuItem" id="exportpng_menuitem_4">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Send image to journal</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_exportpng_activate_4"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="explain_menuitem_4">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Explain details</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_explain_activate_4"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="ancestors_menuitem_4">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Show ancestors</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_ancestors_activate_4"/>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- <widget class="GtkMenu" id="protozoon_menu_5">
- <property name="visible">True</property>
- <child>
- <widget class="GtkMenuItem" id="favorite_menuitem_5">
- <property name="visible">True</property>
- <property name="label" translatable="yes">My favorite</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_favorite_activate_5"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="awfull_menuitem_5">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Awful bore</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_awfull_activate_5"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="zoomprotozoon_menuitem_5">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Zoom</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_zoomprotozoon_activate_5"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="publishprotozoon_menuitem_5">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Publish to my friends</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_publishprotozoon_activate_5"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="more_menuitem_5">
- <property name="visible">True</property>
- <property name="label" translatable="yes">more...</property>
- <property name="use_underline">True</property>
- <child>
- <widget class="GtkMenu" id="sub_menu_5">
- <property name="visible">True</property>
- <child>
- <widget class="GtkMenuItem" id="exportpng_menuitem_5">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Send image to journal</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_exportpng_activate_5"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="explain_menuitem_5">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Explain details</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_explain_activate_5"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="ancestors_menuitem_5">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Show ancestors</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_ancestors_activate_5"/>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- <widget class="GtkMenu" id="protozoon_menu_6">
- <property name="visible">True</property>
- <child>
- <widget class="GtkMenuItem" id="favorite_menuitem_6">
- <property name="visible">True</property>
- <property name="label" translatable="yes">My favorite</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_favorite_activate_6"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="awfull_menuitem_6">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Awful bore</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_awfull_activate_6"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="zoomprotozoon_menuitem_6">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Zoom</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_zoomprotozoon_activate_6"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="publishprotozoon_menuitem_6">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Publish to my friends</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_publishprotozoon_activate_6"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="more_menuitem_6">
- <property name="visible">True</property>
- <property name="label" translatable="yes">more...</property>
- <property name="use_underline">True</property>
- <child>
- <widget class="GtkMenu" id="sub_menu_6">
- <property name="visible">True</property>
- <child>
- <widget class="GtkMenuItem" id="exportpng_menuitem_6">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Send image to journal</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_exportpng_activate_6"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="explain_menuitem_6">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Explain details</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_explain_activate_6"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="ancestors_menuitem_6">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Show ancestors</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_ancestors_activate_6"/>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- <widget class="GtkMenu" id="protozoon_menu_7">
- <property name="visible">True</property>
- <child>
- <widget class="GtkMenuItem" id="favorite_menuitem_7">
- <property name="visible">True</property>
- <property name="label" translatable="yes">My favorite</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_favorite_activate_7"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="awfull_menuitem_7">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Awful bore</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_awfull_activate_7"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="zoomprotozoon_menuitem_7">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Zoom</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_zoomprotozoon_activate_7"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="publishprotozoon_menuitem_7">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Publish to my friends</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_publishprotozoon_activate_7"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="more_menuitem_7">
- <property name="visible">True</property>
- <property name="label" translatable="yes">more...</property>
- <property name="use_underline">True</property>
- <child>
- <widget class="GtkMenu" id="sub_menu_7">
- <property name="visible">True</property>
- <child>
- <widget class="GtkMenuItem" id="exportpng_menuitem_7">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Send image to journal</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_exportpng_activate_7"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="explain_menuitem_7">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Explain details</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_explain_activate_7"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="ancestors_menuitem_7">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Show ancestors</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_ancestors_activate_7"/>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- <widget class="GtkMenu" id="protozoon_menu_8">
- <property name="visible">True</property>
- <child>
- <widget class="GtkMenuItem" id="favorite_menuitem_8">
- <property name="visible">True</property>
- <property name="label" translatable="yes">My favorite</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_favorite_activate_8"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="awfull_menuitem_8">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Awful bore</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_awfull_activate_8"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="zoomprotozoon_menuitem_8">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Zoom</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_zoomprotozoon_activate_8"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="publishprotozoon_menuitem_8">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Publish to my friends</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_publishprotozoon_activate_8"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="more_menuitem_8">
- <property name="visible">True</property>
- <property name="label" translatable="yes">more...</property>
- <property name="use_underline">True</property>
- <child>
- <widget class="GtkMenu" id="sub_menu_8">
- <property name="visible">True</property>
- <child>
- <widget class="GtkMenuItem" id="exportpng_menuitem_8">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Send image to journal</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_exportpng_activate_8"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="explain_menuitem_8">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Explain details</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_explain_activate_8"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="ancestors_menuitem_8">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Show ancestors</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_ancestors_activate_8"/>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- <widget class="GtkMenu" id="protozoon_menu_9">
- <property name="visible">True</property>
- <child>
- <widget class="GtkMenuItem" id="favorite_menuitem_9">
- <property name="visible">True</property>
- <property name="label" translatable="yes">My favorite</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_favorite_activate_9"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="awfull_menuitem_9">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Awful bore</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_awfull_activate_9"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="zoomprotozoon_menuitem_9">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Zoom</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_zoomprotozoon_activate_9"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="publishprotozoon_menuitem_9">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Publish to my friends</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_publishprotozoon_activate_9"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="more_menuitem_9">
- <property name="visible">True</property>
- <property name="label" translatable="yes">more...</property>
- <property name="use_underline">True</property>
- <child>
- <widget class="GtkMenu" id="sub_menu_9">
- <property name="visible">True</property>
- <child>
- <widget class="GtkMenuItem" id="exportpng_menuitem_9">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Send image to journal</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_exportpng_activate_9"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="explain_menuitem_9">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Explain details</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_explain_activate_9"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="ancestors_menuitem_9">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Show ancestors</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_ancestors_activate_9"/>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- <widget class="GtkMenu" id="protozoon_menu_10">
- <property name="visible">True</property>
- <child>
- <widget class="GtkMenuItem" id="favorite_menuitem_10">
- <property name="visible">True</property>
- <property name="label" translatable="yes">My favorite</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_favorite_activate_10"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="awfull_menuitem_10">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Awful bore</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_awfull_activate_10"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="zoomprotozoon_menuitem_10">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Zoom</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_zoomprotozoon_activate_10"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="publishprotozoon_menuitem_10">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Publish to my friends</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_publishprotozoon_activate_10"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="more_menuitem_10">
- <property name="visible">True</property>
- <property name="label" translatable="yes">more...</property>
- <property name="use_underline">True</property>
- <child>
- <widget class="GtkMenu" id="sub_menu_10">
- <property name="visible">True</property>
- <child>
- <widget class="GtkMenuItem" id="exportpng_menuitem_10">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Send image to journal</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_exportpng_activate_10"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="explain_menuitem_10">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Explain details</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_explain_activate_10"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="ancestors_menuitem_10">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Show ancestors</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_ancestors_activate_10"/>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- <widget class="GtkMenu" id="protozoon_menu_11">
- <property name="visible">True</property>
- <child>
- <widget class="GtkMenuItem" id="favorite_menuitem_11">
- <property name="visible">True</property>
- <property name="label" translatable="yes">My favorite</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_favorite_activate_11"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="awfull_menuitem_11">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Awful bore</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_awfull_activate_11"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="zoomprotozoon_menuitem_11">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Zoom</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_zoomprotozoon_activate_11"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="publishprotozoon_menuitem_11">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Publish to my friends</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_publishprotozoon_activate_11"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="more_menuitem_11">
- <property name="visible">True</property>
- <property name="label" translatable="yes">more...</property>
- <property name="use_underline">True</property>
- <child>
- <widget class="GtkMenu" id="sub_menu_11">
- <property name="visible">True</property>
- <child>
- <widget class="GtkMenuItem" id="exportpng_menuitem_11">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Send image to journal</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_exportpng_activate_11"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="explain_menuitem_11">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Explain details</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_explain_activate_11"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="ancestors_menuitem_11">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Show ancestors</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_ancestors_activate_11"/>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- <widget class="GtkMenu" id="incoming_menu_0">
- <property name="visible">True</property>
- <property name="attach_widget">incomingbutton_0</property>
- <child>
- <widget class="GtkMenuItem" id="zoom_menuitem_0">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Zoom</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_zoom_incoming"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="accept_menuitem_0">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Accept protozoon</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_accept_incoming"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="decline_menuitem_0">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Decline protozoon</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_decline_incoming"/>
- </widget>
- </child>
- </widget>
- <widget class="GtkMenu" id="incoming_menu_1">
- <property name="visible">True</property>
- <property name="attach_widget">incomingbutton_1</property>
- <child>
- <widget class="GtkMenuItem" id="zoom_menuitem_1">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Zoom</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_zoom_incoming"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="accept_menuitem_1">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Accept protozoon</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_accept_incoming"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="decline_menuitem_1">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Decline protozoon</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_decline_incoming"/>
- </widget>
- </child>
- </widget>
- <widget class="GtkMenu" id="incoming_menu_2">
- <property name="visible">True</property>
- <property name="attach_widget">incomingbutton_2</property>
- <child>
- <widget class="GtkMenuItem" id="zoom_menuitem_2">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Zoom</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_zoom_incoming"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="accept_menuitem_2">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Accept protozoon</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_accept_incoming"/>
- </widget>
- </child>
- <child>
- <widget class="GtkMenuItem" id="decline_menuitem_2">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Decline protozoon</property>
- <property name="use_underline">True</property>
- <signal name="activate" handler="on_decline_incoming"/>
- </widget>
- </child>
- </widget>
-</glade-interface>
diff --git a/model_constraintpool.py b/model_constraintpool.py
index 0726c90..2e0534a 100644
--- a/model_constraintpool.py
+++ b/model_constraintpool.py
@@ -133,36 +133,37 @@ class ConstraintPool(object):
def _my_defaults(self):
#TODO read from persistence, provide an constraint editor
-# self.set('*', 'samplertypeconstraint', ['affineifs',])
-# self.set('*', 'mergertypeconstraint', ['combine',])
# self.set('*', 'layertypeconstraint', ['filledspline', ])
+# self.set('*', 'layertypeconstraint', ['voronoidiagram', 'markovchain', 'lca', 'letterpress', 'quadtree', ])
# self.set('*', 'layertypeconstraint', ['lca', ])
# self.set('*', 'layertypeconstraint', ['image', ])
-# self.set('*', 'modifiertypeconstraint', ['flip', ])
-# self.set('*', 'modifiertypeconstraint', ['border', ])
-# self.set('*', 'stamptypeconstraint', ['filledcyclic',])
# self.set('*', 'layertypeconstraint', ['markovchain', ])
-# self.set('*', 'samplertypeconstraint', ['randomwalk',])
# self.set('*', 'layertypeconstraint', ['referencepattern', ])
-# self.set('*', 'modifiertypeconstraint', ['rectangulartile', ])
-# self.set('*', 'mergertypeconstraint', ['mask', ])
# self.set('*', 'layertypeconstraint', ['quadtree', ])
-# self.set('*', 'colorconstraint', ['colorconstraint_none', ])
# self.set('*', 'layertypeconstraint', ['voronoidiagram', 'markovchain', ])
+
+# self.set('*', 'mergertypeconstraint', ['combine',])
+# self.set('*', 'mergertypeconstraint', ['mask', ])
+
+# self.set('*', 'modifiertypeconstraint', ['flip', ])
+# self.set('*', 'modifiertypeconstraint', ['border', ])
+# self.set('*', 'modifiertypeconstraint', ['rectangulartile', ])
+
+# self.set('*', 'stamptypeconstraint', ['filledcyclic',])
# self.set('*', 'stamptypeconstraint', ['svg',])
# self.set('*', 'stamptypeconstraint', ['glyph',])
+
+# self.set('*', 'samplertypeconstraint', ['squaregrid',])
+# self.set('*', 'samplertypeconstraint', ['affineifs',])
+# self.set('*', 'samplertypeconstraint', ['randomwalk',])
+
+# self.set('*', 'colorconstraint', ['colorconstraint_none', ])
+
# self.set('*', 'glyphcategoryconstraint', ['Sc','Po',])
+
# self.set('*', 'themeconstraint', ['cybernetic_serendipity',])
-# self.set('*', 'samplertypeconstraint', ['squaregrid',])
+
# self.set('*', 'number_of_statesconstraint', (5, 5))
+
# self.set('*', 'tilesconstraint', (3, 3))
-# self.set('/Protozoon', 'layertypeconstraint', ['image', 'letterpress', 'markovchain', 'filledspline', 'voronoidiagram', ])
-# self.set('/Protozoon', 'layertypeconstraint', ['referencepattern', 'image', 'letterpress', 'markovchain', ])
-# self.set('/Protozoon', 'layertypeconstraint', ['filledspline', 'letterpress', 'markovchain', ])
-# self.set('/Protozoon', 'layertypeconstraint', ['filledspline', ])
-# self.set('/Protozoon', 'layertypeconstraint', ['voronoidiagram', ])
-# self.set('/Protozoon', 'layertypeconstraint', ['referencepattern'])
-# self.set('/Protozoon', 'layertypeconstraint', ['image', ])
-# self.set('/Protozoon', 'layertypeconstraint', ['markovchain', ])
-# self.set('/Protozoon', 'layertypeconstraint', ['letterpress', ])
pass
diff --git a/model_treenode.py b/model_treenode.py
index 4837153..311d76b 100644
--- a/model_treenode.py
+++ b/model_treenode.py
@@ -114,6 +114,16 @@ class TreeNode(model_allele.Allele):
and self.layer == other.layer \
and self.merger == other.merger \
and self.modifier == other.modifier
+ if not equal and isinstance(other, TreeNode):
+ print self.__class__
+ print self.left_treenode == other.left_treenode
+ print self.right_treenode == other.right_treenode
+ print self.left_background == other.left_background
+ print self.right_background == other.right_background
+ print self.layer == other.layer
+ print self.merger == other.merger
+ print self.modifier == other.modifier
+ print equal
return equal
def randomize(self):
@@ -347,7 +357,6 @@ class TreeNode(model_allele.Allele):
if self.right_treenode is not None:
self.modifier.explain(task, formater,
self.layer, self.right_treenode)
- self._preview(task, self.layer, formater, width, height)
formater.end_list()
#ex formater.end_list()
@@ -372,6 +381,7 @@ class TreeNode(model_allele.Allele):
post: __return__.layer is not None
"""
new_one = TreeNode(self.get_trunk())
+ new_one.path = self.path[:]
new_one.left_treenode = self.left_treenode.copy() \
if self.left_treenode is not None \
else None
diff --git a/no_glade.py b/no_glade.py
new file mode 100644
index 0000000..3815402
--- /dev/null
+++ b/no_glade.py
@@ -0,0 +1,367 @@
+# coding: UTF-8
+# Copyright 2009, 2010 Thomas Jourdan
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# 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 gtk
+import ka_debug
+
+class NoWidgetTree():
+ """ """
+ def __init__(self):
+ self._list = {}
+
+ def remember(self, widget_name, widget):
+ """
+ pre: widget_name is not None
+ pre: widget is not None
+ pre: widget_name not in self._list
+ """
+ widget.set_name(widget_name)
+ self._list[widget_name] = widget
+
+ def get_widget(self, widget_name):
+ """
+ pre: widget_name in self._list
+ post: __return__ is not None
+ """
+ if widget_name in self._list:
+ return self._list[widget_name]
+ ka_debug.err('missing: ' + widget_name)
+ return None
+
+
+class NoGlade():
+ """ """
+ _noglade = None
+
+ def __init__(self):
+ self._notebook = None
+ self._send_dialog = None
+ self._widget_tree = NoWidgetTree()
+
+ def _create_box_toolbar(self):
+ """ """
+ toolbarButtonbox = gtk.VButtonBox()
+ breedGenerationButton = gtk.Button(_('Breed'))
+ toolbarButtonbox.pack_start(breedGenerationButton, expand=True, fill=True)
+ self._widget_tree.remember('breedGenerationButton', breedGenerationButton)
+
+ flurryLabel = gtk.Label(_('Flurry rate:'))
+ toolbarButtonbox.pack_start(flurryLabel, expand=True, fill=True)
+
+ adjustmentSpinButton = gtk.Adjustment(value=0, lower=0, upper=9,
+ step_incr=1, page_incr=3, page_size=0)
+ flurrySpinButton = gtk.SpinButton(adjustment=adjustmentSpinButton)
+ toolbarButtonbox.pack_start(flurrySpinButton, expand=True, fill=True)
+ self._widget_tree.remember('flurrySpinButton', flurrySpinButton)
+
+ hseparator1 = gtk.HSeparator()
+ toolbarButtonbox.pack_start(hseparator1, expand=True, fill=True)
+
+ randomGenerationButton = gtk.Button(_('Random'))
+ toolbarButtonbox.pack_start(randomGenerationButton, expand=True, fill=True)
+ self._widget_tree.remember('randomGenerationButton', randomGenerationButton)
+ return toolbarButtonbox
+
+ def _create_box_incoming(self):
+ """ """
+ incomingBox = gtk.VBox()
+ self._widget_tree.remember('incomingBox', incomingBox)
+ for index in xrange(3):
+ incomingBox.pack_start(self._create_box_incomming(index),
+ expand=True, fill=True)
+ return incomingBox
+
+ def _create_box_cell(self, index):
+ """ """
+ self._create_menue_protozoon(index)
+ cellBox = gtk.VBox()
+ self._widget_tree.remember('vbox_' + str(index), cellBox)
+ hBox = gtk.HBox()
+ openPopupButton = gtk.Button()
+ self._widget_tree.remember('open_popup_' + str(index), openPopupButton)
+ arrow = gtk.Arrow(gtk.ARROW_DOWN, gtk.SHADOW_OUT)
+ openPopupButton.add(arrow)
+ hBox.pack_start(openPopupButton, expand=False, fill=False)
+ fitnessScale = gtk.HScale()
+ self._widget_tree.remember('fitness_' + str(index), fitnessScale)
+ fitnessScale.set_value_pos(gtk.POS_RIGHT)
+ fitnessScale.set_digits(0)
+ fitnessScale.set_adjustment(gtk.Adjustment(value=1.0, lower=0.0, upper=10.0,
+ step_incr=1.0, page_incr=1.0, page_size=1.0))
+ hBox.pack_start(fitnessScale, expand=True, fill=True)
+ cellBox.pack_start(hBox, expand=False, fill=True)
+
+ aspectframe = gtk.AspectFrame();
+ drawingarea = gtk.DrawingArea();
+ self._widget_tree.remember('drawingarea_' + str(index), drawingarea)
+ aspectframe.add(drawingarea)
+ cellBox.pack_start(aspectframe, expand=True, fill=True)
+ return cellBox
+
+ def _create_box_incomming(self, index):
+ """ """
+ self._create_menue_incomming(index)
+ cellBox = gtk.VBox()
+ hBox = gtk.HBox()
+ openPopupButton = gtk.Button()
+ self._widget_tree.remember('incomingbutton_' + str(index), openPopupButton)
+ arrow = gtk.Arrow(gtk.ARROW_DOWN, gtk.SHADOW_OUT)
+ openPopupButton.add(arrow)
+ hBox.pack_start(openPopupButton, expand=False, fill=False)
+ cellBox.pack_start(hBox, expand=False, fill=True)
+
+ aspectframe = gtk.AspectFrame();
+ drawingarea = gtk.DrawingArea();
+ self._widget_tree.remember('incomingarea_' + str(index), drawingarea)
+ aspectframe.add(drawingarea)
+ cellBox.pack_start(aspectframe, expand=True, fill=True)
+ return cellBox
+
+ def _create_table_population(self, rows, cols):
+ """ """
+ populationTable = gtk.Table(cols, rows, homogeneous=False)
+ index = 0
+ for row in xrange(rows):
+ for col in xrange(cols):
+ populationTable.attach(self._create_box_cell(index),
+ 0+col, 1+col,
+ 0+row, 1+row,
+ xoptions=gtk.EXPAND|gtk.FILL,
+ yoptions=gtk.EXPAND|gtk.FILL, )
+ index += 1
+ return populationTable
+
+ def _create_page_population(self):
+ """ """
+
+ page = gtk.HBox()
+ self._widget_tree.remember('populationPage', page)
+ controlBox = gtk.VBox()
+ controlBox.pack_start(self._create_box_toolbar(), expand=False, fill=False)
+ controlBox.pack_start(gtk.Alignment(xalign=0.0, yalign=0.5, xscale=0.0, yscale=1.0))
+ controlBox.pack_end(self._create_box_incoming(), expand=True, fill=True)
+ page.pack_start(controlBox, expand=False, fill=True)
+ page.pack_start(self._create_table_population(3, 4), expand=True, fill=True)
+ return page, gtk.Label(_('Population'))
+
+ def _create_page_zoom(self):
+ """ """
+ page = gtk.HBox()
+ self._widget_tree.remember('zoomPage', page)
+ aspectframe = gtk.AspectFrame();
+ drawingarea = gtk.DrawingArea();
+ self._widget_tree.remember('zoomarea', drawingarea)
+ aspectframe.add(drawingarea)
+ page.pack_start(aspectframe, expand=True, fill=True)
+ return page, gtk.Label(_('Zoom'))
+
+ def _create_page_intro(self):
+ """ """
+ page = gtk.HBox()
+ self._widget_tree.remember('introPage', page)
+ scrolled_window = gtk.ScrolledWindow(hadjustment=None, vadjustment=None)
+ self._widget_tree.remember('intro_scrolledwindow', scrolled_window)
+ scrolled_window.set_policy(gtk.POLICY_NEVER, gtk.POLICY_NEVER)
+ page.pack_start(scrolled_window, expand=True, fill=True)
+ return page, gtk.Label(_('Introduction'))
+
+ def _create_page_getting_started(self):
+ """ """
+ page = gtk.HBox()
+ self._widget_tree.remember('startHpaned', page)
+
+ scrolled_window = gtk.ScrolledWindow(hadjustment=None, vadjustment=None)
+ self._widget_tree.remember('start_scrolledwindow', scrolled_window)
+ scrolled_window.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
+ textview = gtk.TextView();
+ self._widget_tree.remember('gettingstarted_textview', textview)
+ textview.set_wrap_mode(gtk.WRAP_WORD)
+ textview.set_editable(False)
+ scrolled_window.add(textview)
+ page.pack_start(scrolled_window, expand=True, fill=True)
+
+ controlBox = gtk.VBox()
+ readintroLinkbutton = gtk.LinkButton('')
+ readintroLinkbutton.set_label(_('Read the Introduction'))
+ self._widget_tree.remember('readintroLinkbutton', readintroLinkbutton)
+# readintroLinkbutton.show()
+ controlBox.pack_start(readintroLinkbutton, expand=False, fill=False)
+
+ startnewLinkbutton = gtk.LinkButton('')
+ startnewLinkbutton.set_label(_('Show image population'))
+ self._widget_tree.remember('startnewLinkbutton', startnewLinkbutton)
+# startnewLinkbutton.show()
+ controlBox.pack_start(startnewLinkbutton, expand=False, fill=False)
+# controlBox.show()
+ page.pack_start(controlBox, expand=True, fill=True)
+
+ return page, gtk.Label(_('Getting started'))
+
+ def _create_page_details(self):
+ """ """
+ page = gtk.HBox()
+ self._widget_tree.remember('detailsPage', page)
+ scrolled_window = gtk.ScrolledWindow(hadjustment=None, vadjustment=None)
+ self._widget_tree.remember('details_scrolledwindow', scrolled_window)
+ scrolled_window.set_policy(gtk.POLICY_NEVER, gtk.POLICY_NEVER)
+ page.pack_start(scrolled_window, expand=True, fill=True)
+ return page, gtk.Label(_('Details'))
+
+ def _create_page_ancestors(self):
+ """ """
+ page = gtk.HBox()
+ self._widget_tree.remember('ancestorsPage', page)
+ scrolled_window = gtk.ScrolledWindow(hadjustment=None, vadjustment=None)
+# self._widget_tree.remember('statusScrolledwindow', scrolled_window)
+ scrolled_window.set_policy(gtk.POLICY_ALWAYS, gtk.POLICY_ALWAYS)
+ drawingarea = gtk.DrawingArea();
+ self._widget_tree.remember('ancestors_drawingarea', drawingarea)
+ scrolled_window.add_with_viewport(drawingarea)
+ page.pack_start(scrolled_window, expand=True, fill=True)
+ return page, gtk.Label(_('Ancestors'))
+
+ def _create_page_status(self):
+ """ """
+ page = gtk.HBox()
+ self._widget_tree.remember('statusPage', page)
+ scrolled_window = gtk.ScrolledWindow(hadjustment=None, vadjustment=None)
+# self._widget_tree.remember('statusScrolledwindow', scrolled_window)
+ textview = gtk.TextView();
+ self._widget_tree.remember('statusTextview', textview)
+ textview.set_editable(False)
+ scrolled_window.add(textview)
+ page.pack_start(scrolled_window, expand=True, fill=True)
+ return page, gtk.Label(_('Status'))
+
+ def _create_notebook(self):
+ """ """
+# self._window = gtk.Window(gtk.WINDOW_TOPLEVEL)
+ self._notebook = gtk.Notebook()
+ self._widget_tree.remember('kandidNotebook', self._notebook)
+ self._notebook.set_tab_pos(gtk.POS_TOP)
+ self._notebook.append_page(*self._create_page_population())
+ self._notebook.append_page(*self._create_page_zoom())
+ self._notebook.append_page(*self._create_page_intro())
+ self._notebook.append_page(*self._create_page_getting_started())
+ self._notebook.append_page(*self._create_page_details())
+ self._notebook.append_page(*self._create_page_ancestors())
+ self._notebook.append_page(*self._create_page_status())
+# self._window.add(notebook)
+# self._window.show_all()
+
+# def _create_dialog_send(self):
+# self._send_dialog = gtk.Dialog(title=None, parent=None, flags=gtk.DIALOG_DESTROY_WITH_PARENT, buttons=None)
+# label = gtk.Label(_('Send'))
+# self._send_dialog.vbox.pack_start(label, True, True, 0)
+# label.show()
+
+ def _create_menue_protozoon(self, index):
+ """ """
+ menu = gtk.Menu()
+ self._widget_tree.remember('protozoon_menu_' + str(index), menu)
+
+ menuitem = gtk.MenuItem(_('My favorite'))
+ self._widget_tree.remember('favorite_menuitem_' + str(index), menuitem)
+ menu.append(menuitem)
+
+ menuitem = gtk.MenuItem(_('Awful bore'))
+ self._widget_tree.remember('awfull_menuitem_' + str(index), menuitem)
+ menu.append(menuitem)
+
+ menuitem = gtk.MenuItem(_('Zoom'))
+ self._widget_tree.remember('zoomprotozoon_menuitem_' + str(index), menuitem)
+ menu.append(menuitem)
+
+ submenu = gtk.Menu()
+ sub1 = gtk.MenuItem(_('Publish to my friends'))
+ self._widget_tree.remember('publishprotozoon_menuitem_' + str(index), sub1)
+ submenu.append(sub1)
+ sub2 = gtk.MenuItem(_('Send image to journal'))
+ self._widget_tree.remember('exportpng_menuitem_' + str(index), sub2)
+ submenu.append(sub2)
+ menuitem = gtk.MenuItem(_('Send'))
+ menuitem.set_submenu(submenu)
+ menu.append(menuitem)
+
+ submenu = gtk.Menu()
+ sub1 = gtk.MenuItem(_('Explain details'))
+ self._widget_tree.remember('explain_menuitem_' + str(index), sub1)
+ submenu.append(sub1)
+ sub2 = gtk.MenuItem(_('Show ancestors'))
+ self._widget_tree.remember('ancestors_menuitem_' + str(index), sub2)
+ submenu.append(sub2)
+ menuitem = gtk.MenuItem(_('Explain'))
+ menuitem.set_submenu(submenu)
+ menu.append(menuitem)
+
+ menu.show_all()
+ return menu
+
+ def _create_menue_incomming(self, index):
+ """ """
+ menu = gtk.Menu()
+ self._widget_tree.remember('incoming_menu_' + str(index), menu)
+
+ menuitem = gtk.MenuItem(_('Zoom'))
+ self._widget_tree.remember('zoom_menuitem_' + str(index), menuitem)
+ menu.append(menuitem)
+
+ menuitem = gtk.MenuItem(_('Accept protozoon'))
+ self._widget_tree.remember('accept_menuitem_' + str(index), menuitem)
+ menu.append(menuitem)
+
+ menuitem = gtk.MenuItem(_('Decline protozoon'))
+ self._widget_tree.remember('decline_menuitem_' + str(index), menuitem)
+ menu.append(menuitem)
+
+ menu.show_all()
+ return menu
+
+ @staticmethod
+ def instance():
+ """
+ post: __return__ is not None
+ """
+ if NoGlade._noglade is None:
+ NoGlade._noglade = NoGlade()
+ NoGlade._noglade._create_notebook()
+ return NoGlade._noglade
+
+ @staticmethod
+ def get_notebook():
+ """
+ post: __return__ is not None
+ """
+ return NoGlade.instance()._notebook
+
+# @staticmethod
+# def get_dialog_send():
+# """ """
+# inst = NoGlade.instance()
+# if inst._send_dialog is None:
+# inst._create_dialog_send()
+# return NoGlade.instance()._send_dialog
+
+ @staticmethod
+ def getWidget_tree():
+ """
+ post: __return__ is not None
+ """
+ return NoGlade.instance()._widget_tree
+
diff --git a/po/Kandid.pot b/po/Kandid.pot
index 697256b..6b0d013 100644
--- a/po/Kandid.pot
+++ b/po/Kandid.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-05-26 22:31+0200\n"
+"POT-Creation-Date: 2010-06-17 19:37+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -26,7 +26,7 @@ msgid "Squarish grid sampler: %d*%d"
msgstr ""
#: /home/strom/minimal/activities/Kandid.activity/ep_stamp_glyph.py:234
-#: /home/strom/minimal/activities/Kandid.activity/ep_layer_letterpress.py:234
+#: /home/strom/minimal/activities/Kandid.activity/ep_layer_letterpress.py:238
msgid "Font: "
msgstr ""
@@ -39,56 +39,56 @@ msgstr ""
msgid "Theme is %s. Patterns are in SVG format: "
msgstr ""
-#: /home/strom/minimal/activities/Kandid.activity/ep_modifier_flip.py:99
+#: /home/strom/minimal/activities/Kandid.activity/ep_modifier_flip.py:100
msgid "Flip modifier: flip horizontally and vertically."
msgstr ""
-#: /home/strom/minimal/activities/Kandid.activity/ep_modifier_flip.py:101
+#: /home/strom/minimal/activities/Kandid.activity/ep_modifier_flip.py:102
msgid "Flip modifier: flip horizontally."
msgstr ""
-#: /home/strom/minimal/activities/Kandid.activity/ep_modifier_flip.py:103
+#: /home/strom/minimal/activities/Kandid.activity/ep_modifier_flip.py:104
msgid "Flip modifier: flip vertically."
msgstr ""
-#: /home/strom/minimal/activities/Kandid.activity/ep_modifier_flip.py:105
+#: /home/strom/minimal/activities/Kandid.activity/ep_modifier_flip.py:106
msgid "Flip modifier: did not flip."
msgstr ""
-#: /home/strom/minimal/activities/Kandid.activity/ep_layer_filledspline.py:199
+#: /home/strom/minimal/activities/Kandid.activity/ep_layer_filledspline.py:201
#: /home/strom/minimal/activities/Kandid.activity/ep_layer_lca.py:295
#: /home/strom/minimal/activities/Kandid.activity/ep_layer_markovchain.py:292
#: /home/strom/minimal/activities/Kandid.activity/ep_layer_voronoidiagram.py:274
-#: /home/strom/minimal/activities/Kandid.activity/ep_layer_letterpress.py:230
+#: /home/strom/minimal/activities/Kandid.activity/ep_layer_letterpress.py:234
#: /home/strom/minimal/activities/Kandid.activity/ep_layer_quadtree.py:198
msgid "Layer "
msgstr ""
-#: /home/strom/minimal/activities/Kandid.activity/ep_layer_filledspline.py:202
+#: /home/strom/minimal/activities/Kandid.activity/ep_layer_filledspline.py:204
msgid "line color:"
msgstr ""
-#: /home/strom/minimal/activities/Kandid.activity/ep_layer_filledspline.py:203
+#: /home/strom/minimal/activities/Kandid.activity/ep_layer_filledspline.py:205
msgid "line width: "
msgstr ""
-#: /home/strom/minimal/activities/Kandid.activity/ep_layer_filledspline.py:204
+#: /home/strom/minimal/activities/Kandid.activity/ep_layer_filledspline.py:206
msgid "roundness: "
msgstr ""
-#: /home/strom/minimal/activities/Kandid.activity/ep_layer_filledspline.py:205
+#: /home/strom/minimal/activities/Kandid.activity/ep_layer_filledspline.py:207
msgid "fill color:"
msgstr ""
-#: /home/strom/minimal/activities/Kandid.activity/ep_layer_filledspline.py:206
-#: /home/strom/minimal/activities/Kandid.activity/ep_layer_letterpress.py:238
+#: /home/strom/minimal/activities/Kandid.activity/ep_layer_filledspline.py:208
+#: /home/strom/minimal/activities/Kandid.activity/ep_layer_letterpress.py:242
msgid "center:"
msgstr ""
-#: /home/strom/minimal/activities/Kandid.activity/ep_layer_filledspline.py:209
+#: /home/strom/minimal/activities/Kandid.activity/ep_layer_filledspline.py:211
#: /home/strom/minimal/activities/Kandid.activity/ep_layer_markovchain.py:299
#: /home/strom/minimal/activities/Kandid.activity/ep_layer_voronoidiagram.py:284
-#: /home/strom/minimal/activities/Kandid.activity/ep_layer_letterpress.py:241
+#: /home/strom/minimal/activities/Kandid.activity/ep_layer_letterpress.py:245
msgid "sampling points: "
msgstr ""
@@ -106,19 +106,7 @@ msgstr ""
msgid "Compositing used right node as a mask surface."
msgstr ""
-#: /home/strom/minimal/activities/Kandid.activity/ep_page_gettingstarted.py:56
-msgid "Getting started"
-msgstr ""
-
-#: /home/strom/minimal/activities/Kandid.activity/ep_page_gettingstarted.py:57
-msgid "Read the Introduction"
-msgstr ""
-
-#: /home/strom/minimal/activities/Kandid.activity/ep_page_gettingstarted.py:58
-msgid "Show image population"
-msgstr ""
-
-#: /home/strom/minimal/activities/Kandid.activity/ep_page_gettingstarted.py:65
+#: /home/strom/minimal/activities/Kandid.activity/ep_page_gettingstarted.py:69
msgid "getting_started"
msgstr ""
@@ -252,6 +240,96 @@ msgstr ""
msgid "Complementary color scheme"
msgstr ""
+#: /home/strom/minimal/activities/Kandid.activity/no_glade.py:60
+msgid "Breed"
+msgstr ""
+
+#: /home/strom/minimal/activities/Kandid.activity/no_glade.py:64
+msgid "Flurry rate:"
+msgstr ""
+
+#: /home/strom/minimal/activities/Kandid.activity/no_glade.py:76
+msgid "Random"
+msgstr ""
+
+#: /home/strom/minimal/activities/Kandid.activity/no_glade.py:161
+msgid "Population"
+msgstr ""
+
+#: /home/strom/minimal/activities/Kandid.activity/no_glade.py:172
+#: /home/strom/minimal/activities/Kandid.activity/no_glade.py:287
+#: /home/strom/minimal/activities/Kandid.activity/no_glade.py:321
+msgid "Zoom"
+msgstr ""
+
+#: /home/strom/minimal/activities/Kandid.activity/no_glade.py:182
+msgid "Introduction"
+msgstr ""
+
+#: /home/strom/minimal/activities/Kandid.activity/no_glade.py:201
+msgid "Read the Introduction"
+msgstr ""
+
+#: /home/strom/minimal/activities/Kandid.activity/no_glade.py:207
+msgid "Show image population"
+msgstr ""
+
+#: /home/strom/minimal/activities/Kandid.activity/no_glade.py:214
+msgid "Getting started"
+msgstr ""
+
+#: /home/strom/minimal/activities/Kandid.activity/no_glade.py:224
+msgid "Details"
+msgstr ""
+
+#: /home/strom/minimal/activities/Kandid.activity/no_glade.py:237
+msgid "Ancestors"
+msgstr ""
+
+#: /home/strom/minimal/activities/Kandid.activity/no_glade.py:250
+msgid "Status"
+msgstr ""
+
+#: /home/strom/minimal/activities/Kandid.activity/no_glade.py:279
+msgid "My favorite"
+msgstr ""
+
+#: /home/strom/minimal/activities/Kandid.activity/no_glade.py:283
+msgid "Awful bore"
+msgstr ""
+
+#: /home/strom/minimal/activities/Kandid.activity/no_glade.py:292
+msgid "Publish to my friends"
+msgstr ""
+
+#: /home/strom/minimal/activities/Kandid.activity/no_glade.py:295
+msgid "Send image to journal"
+msgstr ""
+
+#: /home/strom/minimal/activities/Kandid.activity/no_glade.py:298
+msgid "Send"
+msgstr ""
+
+#: /home/strom/minimal/activities/Kandid.activity/no_glade.py:303
+msgid "Explain details"
+msgstr ""
+
+#: /home/strom/minimal/activities/Kandid.activity/no_glade.py:306
+msgid "Show ancestors"
+msgstr ""
+
+#: /home/strom/minimal/activities/Kandid.activity/no_glade.py:309
+msgid "Explain"
+msgstr ""
+
+#: /home/strom/minimal/activities/Kandid.activity/no_glade.py:325
+msgid "Accept protozoon"
+msgstr ""
+
+#: /home/strom/minimal/activities/Kandid.activity/no_glade.py:329
+msgid "Decline protozoon"
+msgstr ""
+
#: /home/strom/minimal/activities/Kandid.activity/ep_colorconstraint_none.py:67
#, python-format
msgid "%d%% red, %d%% green, %d%% blue, %d%% opaque"
@@ -322,11 +400,11 @@ msgstr ""
msgid "Joined an existing shared activity."
msgstr ""
-#: /home/strom/minimal/activities/Kandid.activity/ep_sampler_affineifs.py:455
+#: /home/strom/minimal/activities/Kandid.activity/ep_sampler_affineifs.py:469
msgid "Affine iterated function system sampler"
msgstr ""
-#: /home/strom/minimal/activities/Kandid.activity/ep_sampler_affineifs.py:456
+#: /home/strom/minimal/activities/Kandid.activity/ep_sampler_affineifs.py:470
#, python-format
msgid "iterations=%d, transformations=%d symmetry=%d, Dn=%d: "
msgstr ""
@@ -336,11 +414,11 @@ msgstr ""
msgid "Rectilinear grid sampler: %d*x, %d*y"
msgstr ""
-#: /home/strom/minimal/activities/Kandid.activity/ep_layer_letterpress.py:232
+#: /home/strom/minimal/activities/Kandid.activity/ep_layer_letterpress.py:236
msgid "buzzwords: "
msgstr ""
-#: /home/strom/minimal/activities/Kandid.activity/ep_layer_letterpress.py:233
+#: /home/strom/minimal/activities/Kandid.activity/ep_layer_letterpress.py:237
msgid "text color:"
msgstr ""
@@ -397,76 +475,19 @@ msgstr ""
msgid "Color is reduced to black and white, "
msgstr ""
-#: /home/strom/minimal/activities/Kandid.activity/ka_widget.py:59
-msgid "Breed"
-msgstr ""
-
-#: /home/strom/minimal/activities/Kandid.activity/ka_widget.py:60
-msgid "Random"
-msgstr ""
-
-#: /home/strom/minimal/activities/Kandid.activity/ka_widget.py:61
-msgid "Flurry rate:"
-msgstr ""
-
-#: /home/strom/minimal/activities/Kandid.activity/ka_widget.py:62
-msgid "Population"
-msgstr ""
-
-#: /home/strom/minimal/activities/Kandid.activity/ka_widget.py:63
-#: /home/strom/minimal/activities/Kandid.activity/ka_widget.py:76
-msgid "Zoom"
-msgstr ""
-
-#: /home/strom/minimal/activities/Kandid.activity/ka_widget.py:64
-msgid "Introduction"
-msgstr ""
-
-#: /home/strom/minimal/activities/Kandid.activity/ka_widget.py:65
-msgid "Status"
-msgstr ""
-
-#: /home/strom/minimal/activities/Kandid.activity/ka_widget.py:66
-msgid "Ancestors"
-msgstr ""
-
-#: /home/strom/minimal/activities/Kandid.activity/ka_widget.py:73
-msgid "My favorite"
-msgstr ""
-
-#: /home/strom/minimal/activities/Kandid.activity/ka_widget.py:74
-msgid "Awful bore, replace it"
-msgstr ""
-
-#: /home/strom/minimal/activities/Kandid.activity/ka_widget.py:75
-msgid "Publish to my friends"
-msgstr ""
-
-#: /home/strom/minimal/activities/Kandid.activity/ka_widget.py:77
-msgid "Send image to journal"
-msgstr ""
-
-#: /home/strom/minimal/activities/Kandid.activity/ka_widget.py:82
-msgid "Accept protozoon"
-msgstr ""
-
-#: /home/strom/minimal/activities/Kandid.activity/ka_widget.py:83
-msgid "Decline protozoon"
-msgstr ""
-
-#: /home/strom/minimal/activities/Kandid.activity/model_treenode.py:327
+#: /home/strom/minimal/activities/Kandid.activity/model_treenode.py:337
msgid "Details for merging node "
msgstr ""
-#: /home/strom/minimal/activities/Kandid.activity/model_treenode.py:330
+#: /home/strom/minimal/activities/Kandid.activity/model_treenode.py:340
msgid "left background color:"
msgstr ""
-#: /home/strom/minimal/activities/Kandid.activity/model_treenode.py:335
+#: /home/strom/minimal/activities/Kandid.activity/model_treenode.py:345
msgid "right background color:"
msgstr ""
-#: /home/strom/minimal/activities/Kandid.activity/model_treenode.py:341
+#: /home/strom/minimal/activities/Kandid.activity/model_treenode.py:351
msgid "Details for modifying node "
msgstr ""
diff --git a/po/POTFILES.in b/po/POTFILES.in
index eb7a164..0cc0832 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -34,3 +34,4 @@ ka_widget.py
model_layer.py
model_protozoon.py
model_treenode.py
+no_glade.py
diff --git a/test_model.py b/test_model.py
index 3c74cc9..78adbba 100644
--- a/test_model.py
+++ b/test_model.py
@@ -279,6 +279,23 @@ class TestKandidModel(unittest.TestCase):
self.assertFalse(model_population.contains_reference(poo, moderate))
self.assertFalse(model_population.contains_reference(poo, good))
+ def _explain_protozoon(self, protozoon, key):
+ base_name = 'index'
+ base_folder = '/dev/shm/'
+ explain_id = '_' + key
+ ep_list = ka_extensionpoint.list_extensions('formater')
+ formater = ka_extensionpoint.create(ep_list[0],
+ base_name,
+ explain_id,
+ base_folder)
+ class DummyTask:
+ def __init__(self):
+ self.quit = False
+ protozoon.explain(DummyTask(), formater)
+ file_path = formater.get_absolutename('html')
+ formater.write_html_file(file_path)
+ return formater._page[:]
+
def test_protozoon(self):
model_random.set_flurry(9)
test_utils.neutral()
@@ -288,7 +305,11 @@ class TestKandidModel(unittest.TestCase):
protozoon2 = protozoon1.copy()
self.assertTrue(protozoon2 is not protozoon1)
if not protozoon2 == protozoon1:
+ str1 = self._explain_protozoon(protozoon1, '1')
+ str2 = self._explain_protozoon(protozoon2, '2')
print protozoon2 == protozoon1
+# print str1
+# print str2
self.assertTrue(protozoon2 == protozoon1)
protozoon1.randomize()
protozoon1.swap_places()
diff --git a/test_pages.py b/test_pages.py
index 531d961..453517a 100644
--- a/test_pages.py
+++ b/test_pages.py
@@ -20,6 +20,7 @@ import gtk
import ka_extensionpoint
import ka_controller
+import no_glade
class TestKandidPages(unittest.TestCase):
@@ -30,7 +31,8 @@ class TestKandidPages(unittest.TestCase):
pass
def test_load_pages(self):
- widget_tree = gtk.glade.XML("kandid.glade")
+ glade_replacement = no_glade.NoGlade()
+ widget_tree = glade_replacement.getWidget_tree()
controller = ka_controller.KandidController(widget_tree, '')
pages = ka_extensionpoint.list_extensions('page')
for page in pages:
diff --git a/test_status.py b/test_status.py
index e99b492..3cb34cf 100644
--- a/test_status.py
+++ b/test_status.py
@@ -34,7 +34,7 @@ class TestKandidStatus(unittest.TestCase):
self.assertTrue(status.isDirty())
status.set(ka_status.TOPIC_COLLABORATION,
ka_status.SUB_BUDDIES_JOINED, '2')
- self.assertTrue(status.recall().find('Running: Kandid, release v6, DoB activated') >= 0)
+ self.assertTrue(status.recall().find('Running: Kandid, release v7, DoB activated') >= 0)
self.assertFalse(status.isDirty())
def test_os_status(self):
diff --git a/test_suite.py b/test_suite.py
index 1d9d1e8..b9e3cf8 100644
--- a/test_suite.py
+++ b/test_suite.py
@@ -34,10 +34,10 @@ gtk.gdk.threads_init()
alltests = unittest.TestSuite((\
unittest.makeSuite(test_buildingblocks.TestKandidBuildingBlocks), \
unittest.makeSuite(test_layer.TestKandidLayer), \
-# unittest.makeSuite(test_exporter.TestKandidExporter), \
-# unittest.makeSuite(test_status.TestKandidStatus), \
-# unittest.makeSuite(test_history.TestKandidHistory), \
-# unittest.makeSuite(test_pages.TestKandidPages), \
-# unittest.makeSuite(test_model.TestKandidModel), \
+ unittest.makeSuite(test_exporter.TestKandidExporter), \
+ unittest.makeSuite(test_status.TestKandidStatus), \
+ unittest.makeSuite(test_history.TestKandidHistory), \
+ unittest.makeSuite(test_pages.TestKandidPages), \
+ unittest.makeSuite(test_model.TestKandidModel), \
))
unittest.TextTestRunner(verbosity=2).run(alltests)