Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGonzalo Odiard <godiard@gmail.com>2012-04-22 06:42:54 (GMT)
committer Gonzalo Odiard <godiard@gmail.com>2012-04-22 06:42:54 (GMT)
commit5b7d2ebedc1b99096ed948dff0363ab1a86becc0 (patch)
tree8cf9ee2297726525d4a6c7a9edddf57572002cbf
parenta5f98d90dc9f6de8bd00c50527ae03e5d80a1699 (diff)
Move the play mode view to the first notebook page. Remove pygame code
Signed-off-by: Gonzalo Odiard <gonzalo@laptop.org>
-rw-r--r--activity.py72
1 files changed, 22 insertions, 50 deletions
diff --git a/activity.py b/activity.py
index 09fedd2..144c3a2 100644
--- a/activity.py
+++ b/activity.py
@@ -15,14 +15,11 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-import sys
import gtk
-import gobject
import logging
from gettext import gettext as _
-from sugar import profile
from sugar.activity import activity
from sugar.graphics.toolbarbox import ToolbarBox
from sugar.activity.widgets import ActivityToolbarButton
@@ -30,7 +27,6 @@ from sugar.activity.widgets import StopButton
from sugar.graphics.toolbutton import ToolButton
from sugar.graphics.radiotoolbutton import RadioToolButton
from sugar.graphics.toggletoolbutton import ToggleToolButton
-from sugar.graphics.icon import Icon
from model import GameModel
from resources import CollectResourcesWin
@@ -40,12 +36,6 @@ from mapnav import MapNavView
from game_map import GameMap
from dialogs import ResourceDialog
-from sugar.graphics.xocolor import XoColor
-sys.path.append('..') # import sugargame package from top directory.
-import sugargame.canvas
-
-import game
-
PLAY_MODE = 0
EDIT_MODE = 1
@@ -136,28 +126,30 @@ class IngeniumMachinaActivity(activity.Activity):
self.update_buttons_state()
self.main_notebook = gtk.Notebook()
- # build the Pygame canvas
- self._pygamecanvas = sugargame.canvas.PygameCanvas(self)
-
- self.main_notebook.append_page(self._pygamecanvas)
-
- # assign keyboard focus to the PygameCanvas widget, so that
- # keyboard events generate pygame events
- self._pygamecanvas.grab_focus()
-
- # create the game instance
- xo_color = XoColor(profile.get_color())
- colors = xo_color.get_stroke_color(), xo_color.get_fill_color()
- self.game = game.Game(colors)
-
- # start the game running (self.game.run is called when the
- # activity constructor returns).
- self._pygamecanvas.run_pygame(self.game.run)
-
self.main_notebook.set_show_tabs(False)
self.main_notebook.show_all()
self.set_canvas(self.main_notebook)
+ def create_play_view(self):
+ if not 'map_data' in self.model.data or \
+ self.model.data['map_data'] is None:
+ self.game_map = GameMap()
+ else:
+ self.game_map = GameMap(self.model.data['map_data'])
+ self.mapnav_game = MapNavView(self.game_map)
+ self.mapnav_game.view_mode = MapNavView.MODE_PLAY
+ self.mapnav_game.show()
+ self.mapnav_game.connect('resource-clicked',
+ self.__resource_clicked_cb)
+
+ # Try connect withthe edition map
+ if self.edit_map_win is not None and not self.views_connected:
+ logging.error('Connecting signal map-updated')
+ self.edit_map_win.nav_view.connect('map-updated',
+ self.mapnav_game.receive_update_wall_info)
+ self.views_connected = True
+ return self.mapnav_game
+
def __change_mode_cb(self, button):
if button.get_active():
self.activity_mode = EDIT_MODE
@@ -259,29 +251,8 @@ class IngeniumMachinaActivity(activity.Activity):
def __descriptions_button_cb(self, button):
if self.edit_descriptions_win is None:
-
- # TODO: Temporary use this page to show a mapview in play mode
- # later will be moved to the page 0 and we will add the
- # descriptions qpage here
- if not 'map_data' in self.model.data or \
- self.model.data['map_data'] is None:
- self.game_map = GameMap()
- else:
- self.game_map = GameMap(self.model.data['map_data'])
self.edit_descriptions_win = gtk.HBox()
- self.mapnav_game = MapNavView(self.game_map)
- self.mapnav_game.view_mode = MapNavView.MODE_PLAY
- self.edit_descriptions_win.add(self.mapnav_game)
- self.edit_descriptions_win.show_all()
- self.mapnav_game.connect('resource-clicked',
- self.__resource_clicked_cb)
-
- # Try connect withthe edition map
- if self.edit_map_win is not None and not self.views_connected:
- logging.error('Connecting signal map-updated')
- self.edit_map_win.nav_view.connect('map-updated',
- self.mapnav_game.receive_update_wall_info)
- self.views_connected = True
+
button.page = self.main_notebook.get_n_pages()
self.main_notebook.append_page(self.edit_descriptions_win)
# connect signal to know if the resources are updated
@@ -299,6 +270,7 @@ class IngeniumMachinaActivity(activity.Activity):
'''Read file from Sugar Journal.'''
logging.error('READING FILE %s', file_path)
self.model.read(file_path)
+ self.main_notebook.append_page(self.create_play_view())
def write_file(self, file_path):
'''Save file on Sugar Journal. '''