summaryrefslogtreecommitdiff
path: root/gr-wxgui/src
diff options
context:
space:
mode:
authorJohnathan Corgan2009-11-03 07:15:14 -0800
committerJohnathan Corgan2009-11-03 07:15:14 -0800
commit058edee5b4d1423b7ad88a9748bec073ff4963ff (patch)
treee1b48429dccb13587b04258c4e5c15b8f0660b98 /gr-wxgui/src
parentf9c3bfb83af1048db54de941df1898f2ec7fb1fc (diff)
parent392b7f9002cb08dddc1ca0ced18f899a0958ba1f (diff)
downloadgnuradio-058edee5b4d1423b7ad88a9748bec073ff4963ff.tar.gz
gnuradio-058edee5b4d1423b7ad88a9748bec073ff4963ff.tar.bz2
gnuradio-058edee5b4d1423b7ad88a9748bec073ff4963ff.zip
Merge branch 'wip/term' of git@gnuradio.org:jcorgan
* 'wip/term' of git@gnuradio.org:jcorgan: gr-wxgui: cleanup for merge Consolidated termsink into one class Basic terminal window that takes raw text on input msgq and appends it Add placeholder panel for console, use old style window size Created skeleton wxgui term window component
Diffstat (limited to 'gr-wxgui/src')
-rw-r--r--gr-wxgui/src/python/Makefile.am13
-rw-r--r--gr-wxgui/src/python/termsink.py77
2 files changed, 84 insertions, 6 deletions
diff --git a/gr-wxgui/src/python/Makefile.am b/gr-wxgui/src/python/Makefile.am
index e06298a2d..2382d599c 100644
--- a/gr-wxgui/src/python/Makefile.am
+++ b/gr-wxgui/src/python/Makefile.am
@@ -1,23 +1,23 @@
#
-# Copyright 2004,2005,2008 Free Software Foundation, Inc.
-#
+# Copyright 2004,2005,2008,2009 Free Software Foundation, Inc.
+#
# This file is part of GNU Radio
-#
+#
# GNU Radio 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, or (at your option)
# any later version.
-#
+#
# GNU Radio 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 GNU Radio; see the file COPYING. If not, write to
# the Free Software Foundation, Inc., 51 Franklin Street,
# Boston, MA 02110-1301, USA.
-#
+#
include $(top_srcdir)/Makefile.common
@@ -53,6 +53,7 @@ ourpython_PYTHON = \
scopesink_nongl.py \
scopesink_gl.py \
scope_window.py \
+ termsink.py \
waterfallsink2.py \
waterfallsink_nongl.py \
waterfallsink_gl.py \
diff --git a/gr-wxgui/src/python/termsink.py b/gr-wxgui/src/python/termsink.py
new file mode 100644
index 000000000..a0cfd575d
--- /dev/null
+++ b/gr-wxgui/src/python/termsink.py
@@ -0,0 +1,77 @@
+#
+# Copyright 2009 Free Software Foundation, Inc.
+#
+# This file is part of GNU Radio
+#
+# GNU Radio 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, or (at your option)
+# any later version.
+#
+# GNU Radio 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 GNU Radio; see the file COPYING. If not, write to
+# the Free Software Foundation, Inc., 51 Franklin Street,
+# Boston, MA 02110-1301, USA.
+#
+
+from gnuradio import gru
+import wx
+
+DEFAULT_WIN_SIZE = (600, 300)
+APPEND_EVENT = wx.NewEventType()
+EVT_APPEND_EVENT = wx.PyEventBinder(APPEND_EVENT, 0)
+
+class AppendEvent(wx.PyEvent):
+ def __init__(self, text):
+ wx.PyEvent.__init__(self)
+ self.SetEventType(APPEND_EVENT)
+ self.text = text
+
+ def Clone(self):
+ self.__class__(self.GetId())
+
+class termsink(wx.Panel):
+ def __init__(self,
+ parent,
+ msgq,
+ size=DEFAULT_WIN_SIZE,
+ ):
+
+ wx.Panel.__init__(self,
+ parent,
+ size=size,
+ style=wx.SIMPLE_BORDER,
+ )
+
+ self.text_ctrl = wx.TextCtrl(self,
+ wx.ID_ANY,
+ value="",
+ size=size,
+ style=wx.TE_MULTILINE|wx.TE_READONLY,
+ )
+
+ main_sizer = wx.BoxSizer(wx.VERTICAL)
+ main_sizer.Add(self.text_ctrl, 1, wx.EXPAND)
+ self.SetSizerAndFit(main_sizer)
+
+ EVT_APPEND_EVENT(self, self.evt_append)
+ self.runner = gru.msgq_runner(msgq, self.handle_msg)
+
+ def handle_msg(self, msg):
+ # This gets called in the queue runner thread context
+ # For now, just add whatever the user sends to the text control
+ text = msg.to_string()
+
+ # Create a wxPython event and post it to the event queue
+ evt = AppendEvent(text)
+ wx.PostEvent(self, evt)
+ del evt
+
+ def evt_append(self, evt):
+ # This gets called by the wxPython event queue runner
+ self.text_ctrl.AppendText(evt.text)