summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJosh Blum2009-10-07 11:52:33 -0700
committerJosh Blum2009-10-07 11:52:33 -0700
commit1e8aefecdc607de260c1797aba27eb1598b9e7b8 (patch)
tree29b86fae4173bf7f1c722c23d1420a8a2eff54b4
parentaf5e21e35cda1d9d3e4bd659364dafe181274064 (diff)
downloadgnuradio-1e8aefecdc607de260c1797aba27eb1598b9e7b8.tar.gz
gnuradio-1e8aefecdc607de260c1797aba27eb1598b9e7b8.tar.bz2
gnuradio-1e8aefecdc607de260c1797aba27eb1598b9e7b8.zip
making use of update ui event
-rw-r--r--gr-wxgui/src/python/common.py21
1 files changed, 10 insertions, 11 deletions
diff --git a/gr-wxgui/src/python/common.py b/gr-wxgui/src/python/common.py
index dca41c9a3..04875e7f2 100644
--- a/gr-wxgui/src/python/common.py
+++ b/gr-wxgui/src/python/common.py
@@ -28,7 +28,7 @@ def bind_to_visible_event(win, callback):
"""
Bind a callback to a window when its visibility changes.
Specifically, callback when the window changes visibility
- when a notebook tab event in one of the parents occurs.
+ when a update ui event in the window occurs.
@param win the wx window
@param callback a 1 param function
"""
@@ -45,23 +45,18 @@ def bind_to_visible_event(win, callback):
return lambda *args: my_callback(is_wx_window_visible(my_win))
handler = callback_factory(win, callback)
#bind the handler to all the parent notebooks
- while win:
- if isinstance(win, wx.Notebook):
- win.Bind(wx.EVT_NOTEBOOK_PAGE_CHANGED, handler)
- if not win.GetParent():
- win.Bind(wx.EVT_ACTIVATE, handler)
- win = win.GetParent()
+ win.Bind(wx.EVT_UPDATE_UI, handler)
from gnuradio import gr
-def conditional_connect(source, sink, hb, win, size):
+def conditional_connect_callback_factory(source, sink, hb, win, size):
nulls = list()
cache = [None]
def callback(visible, init=False):
if visible == cache[0]: return
cache[0] = visible
if not init: hb.lock()
- print 'visible', visible, source, sink
+ #print 'visible', visible, source, sink
if visible:
if not init:
hb.disconnect(source, nulls[0])
@@ -75,8 +70,12 @@ def conditional_connect(source, sink, hb, win, size):
hb.connect(source, nulls[0])
hb.connect(nulls[1], nulls[2], sink)
if not init: hb.unlock()
- callback(False, init=True) #initially connect
- bind_to_visible_event(win, callback)
+ return callback
+
+def conditional_connect(source, sink, hb, win, size):
+ handler = conditional_connect_callback_factory(source, sink, hb, win, size)
+ handler(False, init=True) #initially connect
+ bind_to_visible_event(win, handler)
class wxgui_hb(object):
def wxgui_connect(self, *points):