Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/createtoolbar.py
diff options
context:
space:
mode:
authorMuriel de Souza Godoi <muriel@laptop.org>2007-10-09 13:28:07 (GMT)
committer Muriel de Souza Godoi <muriel@laptop.org>2007-10-09 13:28:07 (GMT)
commit31c6ee1613f4b335a56eb3da794042ddc636c91e (patch)
tree942c885d132946de14882ad19e12a0d4abab2816 /createtoolbar.py
parent6f4c5ccceeaf86dff3d8ad92cc049c0437980a3c (diff)
Main release of create game mode. Game sharing is broken
Diffstat (limited to 'createtoolbar.py')
-rwxr-xr-xcreatetoolbar.py94
1 files changed, 73 insertions, 21 deletions
diff --git a/createtoolbar.py b/createtoolbar.py
index af6a2dc..385dc99 100755
--- a/createtoolbar.py
+++ b/createtoolbar.py
@@ -25,7 +25,9 @@ import os
import gobject
from sugar.graphics.toolbutton import ToolButton
+from sugar.graphics.toggletoolbutton import ToggleToolButton
from sugar.graphics.toolcombobox import ToolComboBox
+from sugar.graphics.objectchooser import ObjectChooser
class CreateToolbar(gtk.Toolbar):
__gtype_name__ = 'CreateToolbar'
@@ -33,7 +35,8 @@ class CreateToolbar(gtk.Toolbar):
__gsignals__ = {
'create_new_game': (gobject.SIGNAL_RUN_FIRST, None, []),
'create_load_game': (gobject.SIGNAL_RUN_FIRST, None, [gobject.TYPE_PYOBJECT]),
- 'create_save_game': (gobject.SIGNAL_RUN_FIRST, None, [gobject.TYPE_PYOBJECT]),
+ 'create_save_game': (gobject.SIGNAL_RUN_FIRST, None, [gobject.TYPE_PYOBJECT, gobject.TYPE_PYOBJECT, gobject.TYPE_PYOBJECT]),
+ 'create_equal_pairs': (gobject.SIGNAL_RUN_FIRST, None, [gobject.TYPE_PYOBJECT]),
}
def __init__(self, activity):
@@ -47,7 +50,7 @@ class CreateToolbar(gtk.Toolbar):
new_image.set_from_file(new_icon)
self._new_button = ToolButton()
self._new_button.set_icon_widget(new_image)
- self._new_button.set_tooltip(_('New game set'))
+ self._new_button.set_tooltip(_('New game'))
self._new_button.connect('clicked', self._new_game_bt)
self._add_widget(self._new_button)
@@ -57,17 +60,9 @@ class CreateToolbar(gtk.Toolbar):
load_image.set_from_file(load_icon)
self._load_button = ToolButton()
self._load_button.set_icon_widget(load_image)
- self._load_button.set_tooltip(_('Load game set'))
- self._load_button.connect('enter-notify-event', self._drop_palette)
+ self._load_button.set_tooltip(_('Load game'))
+ self._load_button.connect('clicked', self._load_game)
self._add_widget(self._load_button)
- self.games = os.listdir(os.path.join(os.path.dirname(__file__), 'games'))
- self.games.sort()
- palette = self._load_button.get_palette()
- for game in self.games:
- menu_item = gtk.MenuItem(game)
- menu_item.connect('activate', self._game_changed_cb, game)
- palette.menu.prepend(menu_item)
- menu_item.show()
# Save Button
save_icon = os.path.join(os.path.dirname(__file__), "images/game-save.svg")
@@ -75,8 +70,9 @@ class CreateToolbar(gtk.Toolbar):
save_image.set_from_file(save_icon)
self._save_button = ToolButton()
self._save_button.set_icon_widget(save_image)
- self._save_button.set_tooltip(_('Save game set'))
+ self._save_button.set_tooltip(_('Save game'))
self._save_button.connect('clicked', self._save_game_bt)
+ self._save_button.set_sensitive(False)
self._add_widget(self._save_button)
# Separator
@@ -87,12 +83,23 @@ class CreateToolbar(gtk.Toolbar):
self._add_widget(gtk.Label(_('Game name: ')))
self.game_name_entry = gtk.Entry()
self._add_widget(self.game_name_entry)
-
- self._add_widget(gtk.CheckButton('Equal pairs'))
-
- self._add_widget(gtk.CheckButton('Grouped'))
-
+
+ self._equal_pairs = gtk.CheckButton(_('Equal pairs'))
+ self._add_widget(self._equal_pairs)
+ self._equal_pairs.connect('toggled', self._emit_equal_pairs)
+ self._grouped_icon1 = os.path.join(os.path.dirname(__file__), "images/equal_pairs1.svg")
+ self._grouped_icon2 = os.path.join(os.path.dirname(__file__), "images/equal_pairs2.svg")
+ self._grouped_image1 = gtk.Image()
+ self._grouped_image2 = gtk.Image()
+ self._grouped_image1.set_from_file(self._grouped_icon1)
+ self._grouped_image2.set_from_file(self._grouped_icon2)
+ self._grouped = ToggleToolButton()
+ self._grouped.set_icon_widget(self._grouped_image1)
+ self._grouped.set_tooltip(_('Click for grouped game'))
+ self._grouped.connect('toggled', self._grouped_cb)
+ self._add_widget(self._grouped)
+
def _add_widget(self, widget, expand=False):
tool_item = gtk.ToolItem()
tool_item.set_expand(expand)
@@ -105,12 +112,57 @@ class CreateToolbar(gtk.Toolbar):
self.game_name_entry.set_text(game_name)
self.emit('create_load_game',game_name)
- def _drop_palette(self, button):
- button.get_palette().popdown(False)
+ def _load_game(self, button):
+ chooser = ObjectChooser(_('Choose memorize game'), None, gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT)
+ jobject = ''
+ try:
+ result = chooser.run()
+ if result == gtk.RESPONSE_ACCEPT:
+ logging.debug('ObjectChooser: %r' % chooser.get_selected_object())
+ jobject = chooser.get_selected_object()
+ if not jobject or not jobject.file_path:
+ return
+ finally:
+ chooser.destroy()
+ del chooser
+
+ if jobject and jobject.file_path:
+ self.emit('create_load_game',jobject.file_path)
+ self._save_button.set_sensitive(False)
def _new_game_bt(self, button):
self.game_name_entry.set_text('')
+ self._equal_pairs.set_active(False)
+ self._grouped.set_active(False)
self.emit('create_new_game')
+ self._new_button.set_sensitive(False)
+ self._save_button.set_sensitive(False)
def _save_game_bt(self, button):
- self.emit('create_save_game',self.game_name_entry.get_text()) \ No newline at end of file
+ self.emit('create_save_game',self.game_name_entry.get_text(), self._equal_pairs.get_active(), self._grouped.get_active())
+ self._save_button.set_sensitive(False)
+
+ def _emit_equal_pairs(self,checkbutton):
+ self.emit('create_equal_pairs',checkbutton.get_active())
+ self._save_button.set_sensitive(True)
+
+ def _grouped_cb(self,widget):
+ self._save_button.set_sensitive(True)
+ if self._grouped.get_active():
+ self._grouped.set_icon_widget(self._grouped_image2)
+ self._grouped_image2.show()
+ self._grouped.set_tooltip(_('Click for ungrouped game'))
+ else:
+ self._grouped.set_icon_widget(self._grouped_image1)
+ self._grouped_image1.show()
+ self._grouped.set_tooltip(_('Click for grouped game'))
+
+ def update_create_toolbar(self, widget, game_name, equal_pairs, grouped):
+ self.game_name_entry.set_text(game_name)
+ self._equal_pairs.set_active(equal_pairs == 'True')
+ self._grouped.set_active(grouped == '1')
+
+ def update_buttons_status(self, widget, new, save):
+ self._new_button.set_sensitive(new)
+ self._save_button.set_sensitive(save)
+ \ No newline at end of file