diff options
author | Johnathan Corgan | 2009-11-03 07:15:14 -0800 |
---|---|---|
committer | Johnathan Corgan | 2009-11-03 07:15:14 -0800 |
commit | 058edee5b4d1423b7ad88a9748bec073ff4963ff (patch) | |
tree | e1b48429dccb13587b04258c4e5c15b8f0660b98 /gr-wxgui/src | |
parent | f9c3bfb83af1048db54de941df1898f2ec7fb1fc (diff) | |
parent | 392b7f9002cb08dddc1ca0ced18f899a0958ba1f (diff) | |
download | gnuradio-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.am | 13 | ||||
-rw-r--r-- | gr-wxgui/src/python/termsink.py | 77 |
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) |