[gnome-games] sudoku:Integrate activity timer into note editor
- From: Thomas Hindoe Paaboel Andersen <thomashpa src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-games] sudoku:Integrate activity timer into note editor
- Date: Mon, 12 Apr 2010 16:29:09 +0000 (UTC)
commit 6dfad285cce67541b51067a291cf14907a6047f6
Author: Jim Ross <jimbo dimensia com>
Date: Sun Apr 11 22:21:35 2010 -0400
sudoku:Integrate activity timer into note editor
GNOME bug #586263
gnome-sudoku/src/lib/gsudoku.py | 4 ++++
gnome-sudoku/src/lib/main.py | 1 +
gnome-sudoku/src/lib/number_box.py | 15 +++++++++++++++
3 files changed, 20 insertions(+), 0 deletions(-)
---
diff --git a/gnome-sudoku/src/lib/gsudoku.py b/gnome-sudoku/src/lib/gsudoku.py
index ff63434..a622d6f 100644
--- a/gnome-sudoku/src/lib/gsudoku.py
+++ b/gnome-sudoku/src/lib/gsudoku.py
@@ -57,6 +57,10 @@ class SudokuNumberGrid (gtk.AspectFrame):
for entry in self.__entries__.values():
entry.set_parent_win(parent)
+ def set_timer(self, timer):
+ for entry in self.__entries__.values():
+ entry.set_timer(timer)
+
def allocate_cb (self, w, rect):
if rect.width > rect.height:
side = rect.height
diff --git a/gnome-sudoku/src/lib/main.py b/gnome-sudoku/src/lib/main.py
index 6f88339..740753b 100644
--- a/gnome-sudoku/src/lib/main.py
+++ b/gnome-sudoku/src/lib/main.py
@@ -164,6 +164,7 @@ class UI (gconf_wrapper.GConfWrapper):
)
self.setup_gui()
self.timer = timer.ActiveTimer(self.w)
+ self.gsd.set_timer(self.timer)
self.won = False
# add the accelerator group to our toplevel window
self.worker_connections = []
diff --git a/gnome-sudoku/src/lib/number_box.py b/gnome-sudoku/src/lib/number_box.py
index 1deb4be..1598aa3 100644
--- a/gnome-sudoku/src/lib/number_box.py
+++ b/gnome-sudoku/src/lib/number_box.py
@@ -3,6 +3,7 @@
import gtk, gobject, pango, cairo
import math
+import timer
from gettext import gettext as _
ERROR_HIGHLIGHT_COLOR = (1.0, 0, 0)
@@ -99,6 +100,7 @@ class NumberBox (gtk.Widget):
gtk.Widget.__init__(self)
self.upper = upper
self.parent_win = None
+ self.timer = None
self.font = self.style.font_desc
self.font.set_size(BASE_FONT_SIZE)
self.note_font = self.font.copy()
@@ -117,6 +119,9 @@ class NumberBox (gtk.Widget):
def set_parent_win(self, new_parent):
self.parent_win = new_parent
+ def set_timer(self, new_timer):
+ self.timer = new_timer
+
def pointer_enter_cb (self, *args):
if not self.is_focus():
self.set_state(gtk.STATE_PRELIGHT)
@@ -216,6 +221,14 @@ class NumberBox (gtk.Widget):
else:
self.set_note_text_interactive(bottom_text = w.get_text())
+ def note_focus_in(self, win, evt):
+ if (self.timer):
+ self.timer.resume_timing()
+
+ def note_focus_out(self, wgt, evt):
+ if (self.timer):
+ self.timer.pause_timing()
+
def show_note_editor (self, top = True):
alloc = self.get_allocation()
w = gtk.Window()
@@ -235,7 +248,9 @@ class NumberBox (gtk.Widget):
e.set_text(self.bottom_note_text)
w.add(f)
e.connect('changed', self.note_changed_cb, top)
+ e.connect('focus-in-event', self.note_focus_in)
e.connect('focus-out-event', lambda e, ev, w: w.destroy(), w)
+ e.connect('focus-out-event', self.note_focus_out)
e.connect('activate', lambda e, w: w.destroy(), w)
x, y = self.window.get_origin()
if top:
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]