46 RANGE_VALUES = map(lambda x: (str(x), x), [25 * 2 ** i for i in xrange(6)]) |
49 RANGE_VALUES = map(lambda x: (str(x), x), [25 * 2 ** i for i in xrange(6)]) |
47 TIME_RANGE_VALUES = [("%ds" % i, i * SECOND) for i in (1, 2, 5, 10, 20, 30)] + \ |
50 TIME_RANGE_VALUES = [("%ds" % i, i * SECOND) for i in (1, 2, 5, 10, 20, 30)] + \ |
48 [("%dm" % i, i * MINUTE) for i in (1, 2, 5, 10, 20, 30)] + \ |
51 [("%dm" % i, i * MINUTE) for i in (1, 2, 5, 10, 20, 30)] + \ |
49 [("%dh" % i, i * HOUR) for i in (1, 2, 3, 6, 12, 24)] |
52 [("%dh" % i, i * HOUR) for i in (1, 2, 3, 6, 12, 24)] |
50 |
53 |
51 [ID_GRAPHICVIEWER, ID_GRAPHICVIEWERCANVAS, |
|
52 ID_GRAPHICVIEWERCANVASRANGE, ID_GRAPHICVIEWERCANVASZOOM, |
|
53 ID_GRAPHICVIEWERCANVASPOSITION, ID_GRAPHICVIEWERRESETBUTTON, |
|
54 ID_GRAPHICVIEWERCURRENTBUTTON, ID_GRAPHICVIEWERSTATICTEXT1, |
|
55 ID_GRAPHICVIEWERSTATICTEXT2, ID_GRAPHICVIEWERSTATICTEXT3, |
|
56 ] = [wx.NewId() for _init_ctrls in range(10)] |
|
57 |
|
58 class GraphicViewer(EditorPanel, DebugViewer): |
54 class GraphicViewer(EditorPanel, DebugViewer): |
59 |
55 |
60 def _init_coll_MainGridSizer_Items(self, parent): |
|
61 # generated method, don't edit |
|
62 parent.AddWindow(self.Canvas, 0, border=0, flag=wx.GROW) |
|
63 parent.AddSizer(self.RangeSizer, 0, border=0, flag=wx.GROW) |
|
64 |
|
65 def _init_coll_MainGridSizer_Growables(self, parent): |
|
66 # generated method, don't edit |
|
67 parent.AddGrowableCol(0) |
|
68 parent.AddGrowableRow(0) |
|
69 |
|
70 def _init_coll_RangeSizer_Items(self, parent): |
|
71 # generated method, don't edit |
|
72 parent.AddWindow(self.staticbox1, 0, border=5, flag=wx.ALIGN_CENTER_VERTICAL|wx.ALL) |
|
73 parent.AddWindow(self.CanvasRange, 0, border=5, flag=wx.ALL) |
|
74 parent.AddWindow(self.staticbox3, 0, border=5, flag=wx.ALIGN_CENTER_VERTICAL|wx.ALL) |
|
75 parent.AddWindow(self.CanvasZoom, 0, border=5, flag=wx.ALL) |
|
76 parent.AddWindow(self.staticText2, 0, border=5, flag=wx.ALIGN_CENTER_VERTICAL|wx.ALL) |
|
77 parent.AddWindow(self.CanvasPosition, 0, border=5, flag=wx.GROW|wx.ALL) |
|
78 parent.AddWindow(self.ResetButton, 0, border=5, flag=wx.ALL) |
|
79 parent.AddWindow(self.CurrentButton, 0, border=5, flag=wx.ALL) |
|
80 |
|
81 def _init_coll_RangeSizer_Growables(self, parent): |
|
82 # generated method, don't edit |
|
83 parent.AddGrowableCol(5) |
|
84 parent.AddGrowableRow(0) |
|
85 |
|
86 def _init_sizers(self): |
|
87 # generated method, don't edit |
|
88 self.MainGridSizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=0) |
|
89 self.RangeSizer = wx.FlexGridSizer(cols=8, hgap=0, rows=1, vgap=0) |
|
90 |
|
91 self._init_coll_MainGridSizer_Items(self.MainGridSizer) |
|
92 self._init_coll_MainGridSizer_Growables(self.MainGridSizer) |
|
93 self._init_coll_RangeSizer_Items(self.RangeSizer) |
|
94 self._init_coll_RangeSizer_Growables(self.RangeSizer) |
|
95 |
|
96 self.Editor.SetSizer(self.MainGridSizer) |
|
97 |
|
98 def _init_Editor(self, prnt): |
56 def _init_Editor(self, prnt): |
99 self.Editor = wx.Panel(prnt, ID_GRAPHICVIEWER, wx.DefaultPosition, |
57 self.Editor = wx.Panel(prnt) |
100 wx.DefaultSize, 0) |
58 |
101 |
59 main_sizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=0) |
102 self.Canvas = plot.PlotCanvas(id=ID_GRAPHICVIEWERCANVAS, |
60 main_sizer.AddGrowableCol(0) |
103 name='Canvas', parent=self.Editor, pos=wx.Point(0, 0), |
61 main_sizer.AddGrowableRow(0) |
104 size=wx.Size(0, 0), style=0) |
62 |
|
63 self.Canvas = plot.PlotCanvas(self.Editor, name='Canvas') |
105 def _axisInterval(spec, lower, upper): |
64 def _axisInterval(spec, lower, upper): |
106 if spec == 'border': |
65 if spec == 'border': |
107 if lower == upper: |
66 if lower == upper: |
108 return lower - 0.5, upper + 0.5 |
67 return lower - 0.5, upper + 0.5 |
109 else: |
68 else: |
116 self.Canvas.canvas.Bind(wx.EVT_LEFT_DOWN, self.OnCanvasLeftDown) |
75 self.Canvas.canvas.Bind(wx.EVT_LEFT_DOWN, self.OnCanvasLeftDown) |
117 self.Canvas.canvas.Bind(wx.EVT_LEFT_UP, self.OnCanvasLeftUp) |
76 self.Canvas.canvas.Bind(wx.EVT_LEFT_UP, self.OnCanvasLeftUp) |
118 self.Canvas.canvas.Bind(wx.EVT_MOTION, self.OnCanvasMotion) |
77 self.Canvas.canvas.Bind(wx.EVT_MOTION, self.OnCanvasMotion) |
119 self.Canvas.canvas.Bind(wx.EVT_MOUSEWHEEL, self.OnCanvasMouseWheel) |
78 self.Canvas.canvas.Bind(wx.EVT_MOUSEWHEEL, self.OnCanvasMouseWheel) |
120 self.Canvas.canvas.Bind(wx.EVT_SIZE, self.OnCanvasResize) |
79 self.Canvas.canvas.Bind(wx.EVT_SIZE, self.OnCanvasResize) |
121 |
80 main_sizer.AddWindow(self.Canvas, 0, border=0, flag=wx.GROW) |
122 self.staticbox1 = wx.StaticText(id=ID_GRAPHICVIEWERSTATICTEXT1, |
81 |
123 label=_('Range:'), name='staticText1', parent=self.Editor, |
82 range_sizer = wx.FlexGridSizer(cols=9, hgap=5, rows=1, vgap=0) |
124 pos=wx.Point(0, 0), size=wx.DefaultSize, style=0) |
83 range_sizer.AddGrowableCol(5) |
125 |
84 range_sizer.AddGrowableRow(0) |
126 self.CanvasRange = wx.ComboBox(id=ID_GRAPHICVIEWERCANVASRANGE, |
85 main_sizer.AddSizer(range_sizer, 0, border=5, flag=wx.GROW|wx.ALL) |
127 name='CanvasRange', parent=self.Editor, pos=wx.Point(0, 0), |
86 |
|
87 range_label = wx.StaticText(self.Editor, label=_('Range:')) |
|
88 range_sizer.AddWindow(range_label, 0, border=0, flag=wx.ALIGN_CENTER_VERTICAL) |
|
89 |
|
90 self.CanvasRange = wx.ComboBox(self.Editor, |
128 size=wx.Size(100, 28), style=wx.CB_READONLY) |
91 size=wx.Size(100, 28), style=wx.CB_READONLY) |
129 self.Bind(wx.EVT_COMBOBOX, self.OnRangeChanged, id=ID_GRAPHICVIEWERCANVASRANGE) |
92 self.Bind(wx.EVT_COMBOBOX, self.OnRangeChanged, self.CanvasRange) |
130 |
93 range_sizer.AddWindow(self.CanvasRange, 0, border=0, flag=0) |
131 self.staticbox3 = wx.StaticText(id=ID_GRAPHICVIEWERSTATICTEXT3, |
94 |
132 label=_('Zoom:'), name='staticText3', parent=self.Editor, |
95 zoom_label = wx.StaticText(self.Editor, label=_('Zoom:')) |
133 pos=wx.Point(0, 0), size=wx.DefaultSize, style=0) |
96 range_sizer.AddWindow(zoom_label, 0, border=0, flag=wx.ALIGN_CENTER_VERTICAL) |
134 |
97 |
135 self.CanvasZoom = wx.ComboBox(id=ID_GRAPHICVIEWERCANVASZOOM, |
98 self.CanvasZoom = wx.ComboBox(self.Editor, |
136 name='CanvasZoom', parent=self.Editor, pos=wx.Point(0, 0), |
|
137 size=wx.Size(70, 28), style=wx.CB_READONLY) |
99 size=wx.Size(70, 28), style=wx.CB_READONLY) |
138 self.Bind(wx.EVT_COMBOBOX, self.OnZoomChanged, id=ID_GRAPHICVIEWERCANVASZOOM) |
100 self.Bind(wx.EVT_COMBOBOX, self.OnZoomChanged, self.CanvasZoom) |
139 |
101 range_sizer.AddWindow(self.CanvasZoom, 0, border=0, flag=0) |
140 self.staticText2 = wx.StaticText(id=ID_GRAPHICVIEWERSTATICTEXT2, |
102 |
141 label=_('Position:'), name='staticText2', parent=self.Editor, |
103 position_label = wx.StaticText(self.Editor, label=_('Position:')) |
142 pos=wx.Point(0, 0), size=wx.DefaultSize, style=0) |
104 range_sizer.AddWindow(position_label, 0, border=0, flag=wx.ALIGN_CENTER_VERTICAL) |
143 |
105 |
144 self.CanvasPosition = wx.ScrollBar(id=ID_GRAPHICVIEWERCANVASPOSITION, |
106 self.CanvasPosition = wx.ScrollBar(self.Editor, |
145 name='Position', parent=self.Editor, pos=wx.Point(0, 0), |
|
146 size=wx.Size(0, 16), style=wx.SB_HORIZONTAL) |
107 size=wx.Size(0, 16), style=wx.SB_HORIZONTAL) |
147 self.CanvasPosition.SetScrollbar(0, 10, 100, 10) |
108 self.CanvasPosition.SetScrollbar(0, 10, 100, 10) |
148 self.CanvasPosition.Bind(wx.EVT_SCROLL_THUMBTRACK, self.OnPositionChanging, |
109 self.CanvasPosition.Bind(wx.EVT_SCROLL_THUMBTRACK, |
149 id = ID_GRAPHICVIEWERCANVASPOSITION) |
110 self.OnPositionChanging, self.CanvasPosition) |
150 self.CanvasPosition.Bind(wx.EVT_SCROLL_LINEUP, self.OnPositionChanging, |
111 self.CanvasPosition.Bind(wx.EVT_SCROLL_LINEUP, |
151 id = ID_GRAPHICVIEWERCANVASPOSITION) |
112 self.OnPositionChanging, self.CanvasPosition) |
152 self.CanvasPosition.Bind(wx.EVT_SCROLL_LINEDOWN, self.OnPositionChanging, |
113 self.CanvasPosition.Bind(wx.EVT_SCROLL_LINEDOWN, |
153 id = ID_GRAPHICVIEWERCANVASPOSITION) |
114 self.OnPositionChanging, self.CanvasPosition) |
154 self.CanvasPosition.Bind(wx.EVT_SCROLL_PAGEUP, self.OnPositionChanging, |
115 self.CanvasPosition.Bind(wx.EVT_SCROLL_PAGEUP, |
155 id = ID_GRAPHICVIEWERCANVASPOSITION) |
116 self.OnPositionChanging, self.CanvasPosition) |
156 self.CanvasPosition.Bind(wx.EVT_SCROLL_PAGEDOWN, self.OnPositionChanging, |
117 self.CanvasPosition.Bind(wx.EVT_SCROLL_PAGEDOWN, |
157 id = ID_GRAPHICVIEWERCANVASPOSITION) |
118 self.OnPositionChanging, self.CanvasPosition) |
158 |
119 range_sizer.AddWindow(self.CanvasPosition, 0, border=5, flag=wx.GROW|wx.ALL) |
159 self.ResetButton = wx.Button(id=ID_GRAPHICVIEWERRESETBUTTON, label='Reset', |
120 |
160 name='ResetButton', parent=self.Editor, pos=wx.Point(0, 0), |
121 self.ResetButton = wx.Button(self.Editor, label='Reset', size=wx.Size(72, 24)) |
161 size=wx.Size(72, 24), style=0) |
122 self.Bind(wx.EVT_BUTTON, self.OnResetButton, self.ResetButton) |
162 self.Bind(wx.EVT_BUTTON, self.OnResetButton, id=ID_GRAPHICVIEWERRESETBUTTON) |
123 range_sizer.AddWindow(self.ResetButton, 0, border=0, flag=0) |
163 |
124 |
164 self.CurrentButton = wx.Button(id=ID_GRAPHICVIEWERCURRENTBUTTON, label='Current', |
125 self.CurrentButton = wx.Button(self.Editor, label='Current', size=wx.Size(72, 24)) |
165 name='CurrentButton', parent=self.Editor, pos=wx.Point(0, 0), |
126 self.Bind(wx.EVT_BUTTON, self.OnCurrentButton, self.CurrentButton) |
166 size=wx.Size(72, 24), style=0) |
127 range_sizer.AddWindow(self.CurrentButton, 0, border=0, flag=0) |
167 self.Bind(wx.EVT_BUTTON, self.OnCurrentButton, id=ID_GRAPHICVIEWERCURRENTBUTTON) |
128 |
168 |
129 self.ExportGraphButton = wx.lib.buttons.GenBitmapButton(self.Editor, |
169 self._init_sizers() |
130 bitmap=self.ParentWindow.GenerateBitmap("export_graph"), |
|
131 size=wx.Size(28, 28), style=wx.NO_BORDER) |
|
132 self.Bind(wx.EVT_BUTTON, self.OnExportGraphButtonClick, |
|
133 self.ExportGraphButton) |
|
134 range_sizer.AddWindow(self.ExportGraphButton, 0, border=0, flag=0) |
|
135 |
|
136 self.Editor.SetSizer(main_sizer) |
170 |
137 |
171 def __init__(self, parent, window, producer, instancepath = ""): |
138 def __init__(self, parent, window, producer, instancepath = ""): |
172 EditorPanel.__init__(self, parent, "", window, None) |
139 EditorPanel.__init__(self, parent, "", window, None) |
173 DebugViewer.__init__(self, producer, True, False) |
140 DebugViewer.__init__(self, producer, True, False) |
174 |
141 |