]> git.gag.com Git - debian/gnuradio/blobdiff - gr-wxgui/src/python/forms/__init__.py
Imported Upstream version 3.2.2
[debian/gnuradio] / gr-wxgui / src / python / forms / __init__.py
diff --git a/gr-wxgui/src/python/forms/__init__.py b/gr-wxgui/src/python/forms/__init__.py
new file mode 100644 (file)
index 0000000..3f9f4c7
--- /dev/null
@@ -0,0 +1,103 @@
+#
+# 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.
+#
+
+"""
+The following classes will be available through gnuradio.wxgui.forms:
+""" 
+
+########################################################################
+# External Converters
+########################################################################
+from converters import \
+       eval_converter, str_converter, \
+       float_converter, int_converter
+
+########################################################################
+# External Forms
+########################################################################
+from forms import \
+       radio_buttons, drop_down, notebook, \
+       button, toggle_button, single_button, \
+       check_box, text_box, static_text, \
+       slider, log_slider, gauge, \
+       make_bold, DataEvent, EVT_DATA
+
+########################################################################
+# Helpful widgets
+########################################################################
+import wx
+
+class static_box_sizer(wx.StaticBoxSizer):
+       """
+       A box sizer with label and border.
+       @param parent the parent widget
+       @param sizer add this widget to sizer if provided (optional)
+       @param proportion the proportion when added to the sizer (default=0)
+       @param flag the flag argument when added to the sizer (default=wx.EXPAND)
+       @param label title label for this widget (optional)
+       @param bold true to boldify the label
+       @param orient the sizer orientation wx.VERTICAL or wx.HORIZONTAL (default=wx.VERTICAL)
+       """
+       def __init__(self, parent, label='', bold=False, sizer=None, orient=wx.VERTICAL, proportion=0, flag=wx.EXPAND):
+               box = wx.StaticBox(parent=parent, label=label)
+               if bold: make_bold(box)
+               wx.StaticBoxSizer.__init__(self, box=box, orient=orient)
+               if sizer: sizer.Add(self, proportion, flag)
+
+class incr_decr_buttons(wx.BoxSizer):
+       """
+       A horizontal box sizer with a increment and a decrement button.
+       @param parent the parent widget
+       @param sizer add this widget to sizer if provided (optional)
+       @param proportion the proportion when added to the sizer (default=0)
+       @param flag the flag argument when added to the sizer (default=wx.EXPAND)
+       @param label title label for this widget (optional)
+       @param on_incr the callback for pressing the + button
+       @param on_decr the callback for pressing the - button
+       """
+       def __init__(self, parent, on_incr, on_decr, label='', sizer=None, proportion=0, flag=wx.EXPAND):
+               """
+               @param parent the parent window
+               @param on_incr the event handler for increment
+               @param on_decr the event handler for decrement
+               """
+               wx.BoxSizer.__init__(self, wx.HORIZONTAL)
+               buttons_box = wx.BoxSizer(wx.HORIZONTAL)
+               self._incr_button = wx.Button(parent, label='+', style=wx.BU_EXACTFIT)
+               self._incr_button.Bind(wx.EVT_BUTTON, on_incr)
+               buttons_box.Add(self._incr_button, 0, wx.ALIGN_CENTER_VERTICAL)
+               self._decr_button = wx.Button(parent, label=' - ', style=wx.BU_EXACTFIT)
+               self._decr_button.Bind(wx.EVT_BUTTON, on_decr)
+               buttons_box.Add(self._decr_button, 0, wx.ALIGN_CENTER_VERTICAL)
+               if label: #add label
+                       self.Add(wx.StaticText(parent, label='%s: '%label), 1, wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_LEFT)
+                       self.Add(buttons_box, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT)
+               else: self.Add(buttons_box, 0, wx.ALIGN_CENTER_VERTICAL)
+               if sizer: sizer.Add(self, proportion, flag)
+
+       def Disable(self, disable=True): self.Enable(not disable)
+       def Enable(self, enable=True):
+               if enable:
+                       self._incr_button.Enable()
+                       self._decr_button.Enable()
+               else:
+                       self._incr_button.Disable()
+                       self._decr_button.Disable()