/usr/share/pyshared/gnuradio/wxgui/stdgui2.py is in gnuradio 3.5.3.2-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 | #
# Copyright 2004 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.
#
'''A simple wx gui for GNU Radio applications'''
import wx
import sys
from gnuradio import gr
class stdapp (wx.App):
def __init__ (self, top_block_maker, title="GNU Radio", nstatus=2,
max_noutput_items=None):
self.top_block_maker = top_block_maker
self.title = title
self._nstatus = nstatus
self._max_noutput_items = max_noutput_items
# All our initialization must come before calling wx.App.__init__.
# OnInit is called from somewhere in the guts of __init__.
wx.App.__init__ (self, redirect=False)
def OnInit (self):
frame = stdframe (self.top_block_maker, self.title, self._nstatus,
self._max_noutput_items)
frame.Show (True)
self.SetTopWindow (frame)
return True
class stdframe (wx.Frame):
def __init__ (self, top_block_maker, title="GNU Radio", nstatus=2,
max_nouts=None):
# print "stdframe.__init__"
wx.Frame.__init__(self, None, -1, title)
self.CreateStatusBar (nstatus)
mainmenu = wx.MenuBar ()
menu = wx.Menu ()
item = menu.Append (200, 'E&xit', 'Exit')
self.Bind (wx.EVT_MENU, self.OnCloseWindow, item)
mainmenu.Append (menu, "&File")
self.SetMenuBar (mainmenu)
self.Bind (wx.EVT_CLOSE, self.OnCloseWindow)
self.panel = stdpanel (self, self, top_block_maker, max_nouts)
vbox = wx.BoxSizer(wx.VERTICAL)
vbox.Add(self.panel, 1, wx.EXPAND)
self.SetSizer(vbox)
self.SetAutoLayout(True)
vbox.Fit(self)
def OnCloseWindow (self, event):
self.top_block().stop()
self.Destroy ()
def top_block (self):
return self.panel.top_block
class stdpanel (wx.Panel):
def __init__ (self, parent, frame, top_block_maker,
max_nouts=None):
# print "stdpanel.__init__"
wx.Panel.__init__ (self, parent, -1)
self.frame = frame
vbox = wx.BoxSizer (wx.VERTICAL)
self.top_block = top_block_maker (frame, self, vbox, sys.argv)
self.SetSizer (vbox)
self.SetAutoLayout (True)
vbox.Fit (self)
if(max_nouts is not None):
self.top_block.start (max_nouts)
else:
self.top_block.start ()
class std_top_block (gr.top_block):
def __init__ (self, parent, panel, vbox, argv):
# Call the hier_block2 constructor
# Top blocks have no inputs and outputs
gr.top_block.__init__(self, "std_top_block")
|