Exemplo n.º 1
0
class PrefsPanel(wx.Panel):
    def __init__(self, parent, delete_callback=None):
        wx.Panel.__init__(self, parent)
        self.delete_callback = delete_callback
        self.cfg = NervenConfig()
        self.init_ctrls()

    def init_ctrls(self):
        self.opt_ctrls = {}
        sizer = wx.BoxSizer(wx.VERTICAL)
        for key in self.cfg.options:
            hsizer = wx.BoxSizer(wx.HORIZONTAL)
            op = self.cfg.options[key]
            if op.type == 'bool':
                self.opt_ctrls[key] = wx.CheckBox(self, -1, op.description)
                self.opt_ctrls[key].SetValue(self.cfg[key])
                hsizer.Add(self.opt_ctrls[key])
            else:
                self.opt_ctrls[key] = wx.TextCtrl(self,
                                                  value=str(self.cfg[key]))
                lbl = wx.StaticText(self, label=op.description)
                hsizer.Add(self.opt_ctrls[key], 1, wx.EXPAND)
                hsizer.AddSpacer((10, 0))
                hsizer.Add(lbl, 1, wx.ALIGN_RIGHT, wx.EXPAND)
            sizer.Add(hsizer)
        self.save_btn = wx.Button(self, label='Save')
        self.close_btn = wx.Button(self, label='Close')
        self.Bind(wx.EVT_BUTTON, self.on_save, self.save_btn)
        self.Bind(wx.EVT_BUTTON, self.on_close, self.close_btn)
        hsizer = wx.BoxSizer(wx.HORIZONTAL)
        hsizer.Add(self.save_btn)
        hsizer.Add(self.close_btn)
        sizer.AddSpacer((0, 10))
        sizer.Add(hsizer)
        sizer.AddSpacer((0, 10))
        self.SetSizer(sizer)

    def do_update(self):
        pass

    def close(self):
        if self.delete_callback is not None:
            self.delete_callback()
        self.Destroy()

    def on_close(self, e):
        self.close()

    def on_save(self, e):
        for key in self.cfg.options:
            self.cfg[key] = self.opt_ctrls[key].GetValue()
        self.cfg.write()
        for cb in callbacks['update_config']:
            cb()
        self.close()
Exemplo n.º 2
0
class PrefsPanel(wx.Panel):
    def __init__(self, parent, delete_callback=None):
        wx.Panel.__init__(self, parent)
        self.delete_callback = delete_callback
        self.cfg = NervenConfig()
        self.init_ctrls()

    def init_ctrls(self):
        self.opt_ctrls = {}
        sizer = wx.BoxSizer(wx.VERTICAL)
        for key in self.cfg.options:
            hsizer = wx.BoxSizer(wx.HORIZONTAL)
            op = self.cfg.options[key]
            if op.type == 'bool':
                self.opt_ctrls[key] = wx.CheckBox(self, -1, op.description)
                self.opt_ctrls[key].SetValue(self.cfg[key])
                hsizer.Add(self.opt_ctrls[key])
            else:
                self.opt_ctrls[key] = wx.TextCtrl(self, value=str(self.cfg[key]))
                lbl = wx.StaticText(self, label=op.description)
                hsizer.Add(self.opt_ctrls[key], 1, wx.EXPAND)
                hsizer.AddSpacer((10,0))
                hsizer.Add(lbl, 1, wx.ALIGN_RIGHT, wx.EXPAND)
            sizer.Add(hsizer)
        self.save_btn = wx.Button(self, label='Save')
        self.close_btn = wx.Button(self, label='Close')
        self.Bind(wx.EVT_BUTTON, self.on_save, self.save_btn)
        self.Bind(wx.EVT_BUTTON, self.on_close, self.close_btn)
        hsizer = wx.BoxSizer(wx.HORIZONTAL)
        hsizer.Add(self.save_btn)
        hsizer.Add(self.close_btn)
        sizer.AddSpacer((0,10))
        sizer.Add(hsizer)
        sizer.AddSpacer((0,10))
        self.SetSizer(sizer)

    def do_update(self):
        pass
    
    def close(self):
        if self.delete_callback is not None:
            self.delete_callback()
        self.Destroy()

    def on_close(self, e):
        self.close()

    def on_save(self, e):
        for key in self.cfg.options:
            self.cfg[key] = self.opt_ctrls[key].GetValue()
        self.cfg.write()
        for cb in callbacks['update_config']:
            cb()
        self.close()
Exemplo n.º 3
0
 def init_plot(self):
     self.cfg = NervenConfig()
     self.sizer = wx.BoxSizer(wx.VERTICAL)
     self.plot = SensorPlot(self, SENSOR_PLOT_ID)
     self.wave_tail = {}
     self.plotted_axes = {}
     self.draw_counter = 1001
     maxlen = TAIL_LEN*SAMPLE_FREQ
     for wave in BRAIN_WAVES:
         self.wave_tail[wave] = deque([0.0]*maxlen, maxlen=maxlen)
     hsizer0 = wx.BoxSizer(wx.HORIZONTAL)
     hsizer1 = wx.BoxSizer(wx.HORIZONTAL)
     self.sizer.Add(hsizer0)
     self.sizer.Add(self.plot, 1, wx.EXPAND)
     self.SetSizer(self.sizer)
Exemplo n.º 4
0
 def __init__(self, parent, id, opts):
     wx.Frame.__init__(self, parent, MAIN_FRAME_ID, MAIN_TITLE)
     self.opts = opts
     self.cfg = NervenConfig(create=True)
     self.status_bar = self.CreateStatusBar(STATUS_FIELDS)
     self._create_menu()
     self._set_poll_timer()
     self._init_epoc()
     self.init_notebook()
     self.init_capture_controls()
     self.draw_counter = 1001
     self.Show(True)
     self.Maximize(True)
     if not self.have_epoc:
         dlg = wx.MessageDialog(
             self,
             "Cannot open EEG data stream at %s." % self.cfg['data_path'],
             "Error", wx.OK)
         dlg.ShowModal()
         dlg.Destroy()
Exemplo n.º 5
0
 def __init__(self, parent, delete_callback=None):
     wx.Panel.__init__(self, parent)
     self.delete_callback = delete_callback
     self.cfg = NervenConfig()
     self.init_ctrls()
Exemplo n.º 6
0
 def __init__(self, parent, epoc_mgr):
     wx.Panel.__init__(self, parent)
     self.epoc_mgr = epoc_mgr
     self.cfg = NervenConfig()
     self.init_plot()
Exemplo n.º 7
0
 def __init__(self, parent, delete_callback=None):
     wx.Panel.__init__(self, parent)
     self.delete_callback = delete_callback
     self.cfg = NervenConfig()
     self.init_ctrls()