def __init__(self, visualizers, id=-1, x=1, y=5, texsave=True, zi=None, za=None, zp=10, # zoom (index, address, pad size=(16,8), dpi=50, ): visualizers = self.visualizers = toList(visualizers) # self.visualizers.reverse() title = "List Viewer" self.texsave = texsave N = visualizers[0].N if not all([v.N==N for v in visualizers[1:]]): raise ValueError("visualizers do not provide the same N of segments") # distribute segments into pages: y = min((y, N)) self.shape = x, y n_per_page = self.n_per_page = x * y i_lists = [] for i in range(0, N, n_per_page): i_lists.append(range(i, i + min(n_per_page, N-i))) self.i_lists = i_lists self.n = len(i_lists) self._zoom_events = zi self._zoom_address = za self._zoom_pad = zp self._zoom_window = None # init wx frame parent = wx.GetApp().shell title = "List Viewer" mpl_canvas.CanvasFrame.__init__(self, parent, title, size, dpi, statusbar=True) # figure self.figure.subplots_adjust(left=.01, right=.99, bottom=.05, top=.95, hspace=.5) # finalize # self._dataset = dataset self.show_page(0) # self.canvas.store_canvas() self.Show()
def __init__(self, parent, visualizers, i=0, id=-1, size=(800,600)): title = self.title_stem = "Physio Viewer"#dataset.name wx.Frame.__init__(self, parent, id, title, size=size) self.visualizers = visualizers = toList(visualizers) datasets = self.datasets = [v.dataset for v in visualizers] self.active_dataset = datasets[0] # self.visualizers.reverse() # Toolbar tb = self.CreateToolBar(wx.TB_HORIZONTAL) tb.SetToolBitmapSize(size=(32,32)) # select file tb.AddLabelTool(wx.ID_BACKWARD, "Back", Icon("tango/actions/go-previous")) self.Bind(wx.EVT_TOOL, self.OnBack, id=wx.ID_BACKWARD) tb.AddLabelTool(wx.ID_FORWARD, "Next", Icon("tango/actions/go-next")) self.Bind(wx.EVT_TOOL, self.OnNext, id=wx.ID_FORWARD) css = self.css = _ComboSegmentSelector(tb, datasets[0].segments, self) css.Bind(wx.EVT_TEXT, self.OnComboSegSel) tb.AddControl(css) # Display tb.AddSeparator() # checkbox = wx.CheckBox(tb, wx_base.ID_SHOW_SOURCE, "Show Source") # tb.AddControl(checkbox) # self.Bind(wx.EVT_CHECKBOX, self.OnCheckBox) tb.AddLabelTool(wx.ID_ZOOM_IN, "Zoom In", Icon("actions/zoom-in")) tb.AddLabelTool(wx.ID_ZOOM_OUT, "Zoom Out", Icon("actions/zoom-out")) self.Bind(wx.EVT_TOOL, self.OnZoom, id=wx.ID_ZOOM_IN) self.Bind(wx.EVT_TOOL, self.OnZoom, id=wx.ID_ZOOM_OUT) tb.AddLabelTool(wx.ID_UP, "Move Left", Icon("tango/actions/media-seek-backward")) tb.AddLabelTool(wx.ID_DOWN, "Move Left", Icon("tango/actions/media-seek-forward")) self.Bind(wx.EVT_TOOL, self.OnMove, id=wx.ID_UP) self.Bind(wx.EVT_TOOL, self.OnMove, id=wx.ID_DOWN) tb.AddLabelTool(wx.ID_REFRESH, "Refresh", Icon("tango/actions/view-refresh")) self.Bind(wx.EVT_TOOL, self.OnReloadData, id=wx.ID_REFRESH) tb.Realize() # EVTs self.Bind(wx.EVT_KEY_DOWN, self.OnKeyDown) self.Bind(wx.EVT_CLOSE, self.OnClose) # Create Panels s1 = self.splitter_1 = wx.SplitterWindow(self, -1)#, style=wx.SP_3DSASH) s1.SetSashGravity(1) # s2 = self.splitter_2 = wx.SplitterWindow(s1, -1) p1 = self.ZoomPanel = view_panels.ZoomPanel(s1) p2 = self.OverviewPanel = view_panels.OverviewPanel(s1) self.Bind(view_panels.EVT_FIGURE_POS, p1.OnFigurePosEvent, id=ID.CANVAS_PANEL_OVERVIEW)# source=p2) self.Bind(view_panels.EVT_FIGURE_POS, p2.OnFigurePosEvent, id=ID.CANVAS_PANEL_ZOOM)#source=p1) # p1 = self.detailview = _physio_view_panel_detailview(s1, self) # p2a = self.overview = _physio_view_panel_overview(s2, self) # p2b = self.settings = wx.Panel(s2, id=wx.ID_ANY) # p2b = self.settings = _dataset_settings_panel(datasets[0].p, s2, self) logging.debug("PHYSIO Panels created") s1.SplitHorizontally(p1, p2, 300) self.set_segment(0) self.Show()