Changeset 0d9dae8 in sasview
- Timestamp:
- Feb 2, 2009 11:51:27 AM (16 years ago)
- Branches:
- master, ESS_GUI, ESS_GUI_Docs, ESS_GUI_batch_fitting, ESS_GUI_bumps_abstraction, ESS_GUI_iss1116, ESS_GUI_iss879, ESS_GUI_iss959, ESS_GUI_opencl, ESS_GUI_ordering, ESS_GUI_sync_sascalc, costrafo411, magnetic_scatt, release-4.1.1, release-4.1.2, release-4.2.2, release_4.0.1, ticket-1009, ticket-1094-headless, ticket-1242-2d-resolution, ticket-1243, ticket-1249, ticket885, unittest-saveload
- Children:
- 2cf2b87
- Parents:
- 00d083c
- Location:
- guiframe
- Files:
-
- 3 added
- 1 deleted
- 13 edited
Legend:
- Unmodified
- Added
- Removed
-
guiframe/gui_manager.py
racb1ad1 r0d9dae8 35 35 import config 36 36 37 from sans.guicomm.events import EVT_STATUS 37 from sans.guicomm.events import EVT_STATUS,Model2DPanelEvent 38 38 39 39 import warnings … … 227 227 # Register to status events 228 228 self.Bind(EVT_STATUS, self._on_status_event) 229 229 230 230 def build_gui(self): 231 231 # Set up the layout … … 419 419 if self.panels[item].window_name.startswith(p.window_name): 420 420 count += 1 421 421 """ 422 if p.window_name =="Analytical model 2D ": 423 print "guiframe 2D id",ID, p.window_name 424 event = Model2DPanelEvent(id= ID, pname=p.window_name) 425 for plug in self.plugins: 426 if hasattr(plug, fitpanel) 427 wx.PostEvent(plug, event) 428 """ 422 429 windowname = p.window_name 423 430 caption = p.window_caption … … 450 457 451 458 # Register for showing/hiding the panel 459 452 460 wx.EVT_MENU(self, ID, self._on_view) 453 461 … … 488 496 if len(pers)>0: 489 497 n_panels += 1 490 498 491 499 if n_panels>1: 492 500 viewmenu = wx.Menu() … … 501 509 if panel.window_name in pers: 502 510 plugmenu.Append(int(item), panel.window_caption, "Show %s window" % panel.window_caption) 511 512 513 503 514 wx.EVT_MENU(self, int(item), self._on_view) 504 515 … … 551 562 for (self.next_id, menu, name) in item.populate_menu(self.next_id, self): 552 563 menubar.Append(menu, name) 553 564 554 565 555 566 menubar.Append(helpmenu, '&Help') -
guiframe/local_perspectives/plotting/AnnulusSlicer.py
r7608cb5 r0d9dae8 6 6 # 7 7 8 8 import math 9 import wx 10 from copy import deepcopy 9 11 # Debug printout 10 from sans.guicomm.events import StatusEvent 11 from sans.guicomm.events import NewPlotEvent 12 from sans.guicomm.events import NewPlotEvent, StatusEvent,SlicerParameterEvent,EVT_SLICER_PARS 12 13 from BaseInteractor import _BaseInteractor 13 from copy import deepcopy 14 import math 15 16 import SlicerParameters 17 import wx 14 18 15 19 16 class AnnulusInteractor(_BaseInteractor): … … 57 54 58 55 # Bind to slice parameter events 59 self.base.parent.Bind( SlicerParameters.EVT_SLICER_PARS, self._onEVT_SLICER_PARS)56 self.base.parent.Bind(EVT_SLICER_PARS, self._onEVT_SLICER_PARS) 60 57 61 58 … … 90 87 self.inner_circle.clear() 91 88 #self.base.connect.disconnect() 92 self.base.parent.Unbind( SlicerParameters.EVT_SLICER_PARS)89 self.base.parent.Unbind(EVT_SLICER_PARS) 93 90 94 91 def update(self): … … 154 151 new_plot.detector =self.base.data2D.detector 155 152 # If the data file does not tell us what the axes are, just assume... 156 new_plot.xaxis("\\rm{\phi}", ' ^{o}')153 new_plot.xaxis("\\rm{\phi}", 'rad') 157 154 new_plot.yaxis("\\rm{Intensity} ","cm^{-1}") 158 155 new_plot.group_id = "SectorPhi"+self.base.data2D.name … … 169 166 170 167 # Post paramters 171 event = SlicerParameter s.SlicerParameterEvent()168 event = SlicerParameterEvent() 172 169 event.type = self.__class__.__name__ 173 170 event.params = self.get_params() -
guiframe/local_perspectives/plotting/Arc.py
rcd84dca r0d9dae8 1 #from config import printEVT 1 2 import math 3 import wx 4 from copy import deepcopy 5 2 6 from BaseInteractor import _BaseInteractor 3 from copy import deepcopy 4 import math 5 6 #from Plotter1D import AddPlotEvent 7 import SlicerParameters 8 import wx 9 #import radii 10 #(FunctionRadiusEvent, EVT_FUNC_RAD) = wx.lib.newevent.NewEvent() 7 from sans.guicomm.events import NewPlotEvent, StatusEvent,SlicerParameterEvent,EVT_SLICER_PARS 8 9 11 10 class ArcInteractor(_BaseInteractor): 12 11 """ … … 114 113 self.has_move= False 115 114 116 event = SlicerParameter s.SlicerParameterEvent()115 event = SlicerParameterEvent() 117 116 event.type = self.__class__.__name__ 118 117 event.params = self.get_params() -
guiframe/local_perspectives/plotting/AzimutSlicer.py
r54cc36a r0d9dae8 8 8 9 9 # Debug printout 10 import math 11 import wx 12 from copy import deepcopy 10 13 11 14 from BaseInteractor import _BaseInteractor 12 from copy import deepcopy 13 import math 14 15 from sans.guicomm.events import NewPlotEvent, StatusEvent 16 import SlicerParameters 17 import wx 15 from sans.guicomm.events import NewPlotEvent, StatusEvent,SlicerParameterEvent,EVT_SLICER_PARS 16 17 18 18 19 19 class SectorInteractor(_BaseInteractor): … … 59 59 self._post_data() 60 60 # Bind to slice parameter events 61 self.base.parent.Bind( SlicerParameters.EVT_SLICER_PARS, self._onEVT_SLICER_PARS)61 self.base.parent.Bind(EVT_SLICER_PARS, self._onEVT_SLICER_PARS) 62 62 63 63 … … 96 96 self.left_edge.clear() 97 97 #self.base.connect.disconnect() 98 self.base.parent.Unbind( SlicerParameters.EVT_SLICER_PARS)98 self.base.parent.Unbind(EVT_SLICER_PARS) 99 99 100 100 def update(self): … … 197 197 198 198 # Post paramters 199 #event = SlicerParameter s.SlicerParameterEvent()199 #event = SlicerParameterEvent() 200 200 #event.type = self.__class__.__name__ 201 201 #event.params = self.get_params() -
guiframe/local_perspectives/plotting/Edge.py
re8c96f5 r0d9dae8 1 #from config import printEVT 1 2 import math 3 import wx 4 from copy import deepcopy 5 2 6 from BaseInteractor import _BaseInteractor 3 from copy import deepcopy4 import math 7 from sans.guicomm.events import NewPlotEvent, StatusEvent,SlicerParameterEvent,EVT_SLICER_PARS 8 5 9 6 #from Plotter1D import AddPlotEvent7 import SlicerParameters8 import wx9 10 10 import wx.lib.newevent11 11 12 12 class RadiusInteractor(_BaseInteractor): -
guiframe/local_perspectives/plotting/LineSlicer.py
r54cc36a r0d9dae8 8 8 9 9 # Debug printout 10 from sans.guicomm.events import StatusEvent 10 import math 11 import wx 12 from copy import deepcopy 13 14 from sans.guicomm.events import NewPlotEvent, StatusEvent,SlicerParameterEvent,EVT_SLICER_PARS 11 15 from BaseInteractor import _BaseInteractor 12 from copy import deepcopy 13 import math 14 15 from sans.guicomm.events import NewPlotEvent 16 import SlicerParameters 17 import wx 16 17 18 18 19 19 class LineInteractor(_BaseInteractor): … … 68 68 69 69 # Bind to slice parameter events 70 self.base.parent.Bind( SlicerParameters.EVT_SLICER_PARS, self._onEVT_SLICER_PARS)70 self.base.parent.Bind(EVT_SLICER_PARS, self._onEVT_SLICER_PARS) 71 71 72 72 def _onEVT_SLICER_PARS(self, event): … … 123 123 # Unbind panel 124 124 #self.base.connect.disconnect() 125 self.base.parent.Unbind( SlicerParameters.EVT_SLICER_PARS)125 self.base.parent.Unbind(EVT_SLICER_PARS) 126 126 127 127 … … 241 241 242 242 # Post paramters 243 event = SlicerParameter s.SlicerParameterEvent()243 event = SlicerParameterEvent() 244 244 event.type = self.__class__.__name__ 245 245 event.params = self.get_params() -
guiframe/local_perspectives/plotting/Plotter1D.py
rffd23b5 r0d9dae8 12 12 import wx 13 13 import sys 14 import pylab 15 14 16 import danse.common.plottools 15 17 from danse.common.plottools.PlotPanel import PlotPanel 16 18 from danse.common.plottools.plottables import Graph,Data1D 17 19 from sans.guicomm.events import EVT_NEW_PLOT 18 from sans.guicomm.events import StatusEvent ,NewPlotEvent 19 20 21 from SlicerParameters import SlicerEvent 20 from sans.guicomm.events import StatusEvent ,NewPlotEvent,SlicerEvent 21 from sans.guiframe.utils import PanelMenu 22 22 23 from binder import BindArtist 23 (InternalEvent, EVT_INTERNAL) = wx.lib.newevent.NewEvent() 24 #from SlicerParameters import SlicerEvent 25 #(InternalEvent, EVT_INTERNAL) = wx.lib.newevent.NewEvent() 24 25 26 26 DEFAULT_QMAX = 0.05 27 28 27 DEFAULT_QSTEP = 0.001 29 28 DEFAULT_BEAM = 0.005 30 29 BIN_WIDTH =1 31 import pylab 32 33 class PanelMenu(wx.Menu): 34 plots = None 35 graph = None 36 37 def set_plots(self, plots): 38 self.plots = plots 39 40 def set_graph(self, graph): 41 self.graph = graph 30 31 42 32 class ModelPanel1D(PlotPanel): 43 33 """ -
guiframe/local_perspectives/plotting/Plotter2D.py
r50cbace r0d9dae8 12 12 import wx 13 13 import sys 14 import pylab 15 14 16 import danse.common.plottools 15 17 from danse.common.plottools.PlotPanel import PlotPanel 16 18 from danse.common.plottools.plottables import Graph,Data1D 17 from sans.guicomm.events import EVT_NEW_PLOT 18 from sans.guicomm.events import StatusEvent ,NewPlotEvent 19 20 21 from SlicerParameters import SlicerEvent 19 from sans.guicomm.events import EVT_NEW_PLOT,EVT_SLICER_PARS_UPDATE 20 from sans.guicomm.events import EVT_SLICER_PARS 21 from sans.guicomm.events import StatusEvent ,NewPlotEvent,SlicerEvent 22 from sans.guiframe.utils import PanelMenu 22 23 from binder import BindArtist 24 from Plotter1D import ModelPanel1D 23 25 (InternalEvent, EVT_INTERNAL) = wx.lib.newevent.NewEvent() 24 #from SlicerParameters import SlicerEvent 25 #(InternalEvent, EVT_INTERNAL) = wx.lib.newevent.NewEvent() 26 from Plotter1D import ModelPanel1D 26 27 28 27 29 DEFAULT_QMAX = 0.05 28 29 30 DEFAULT_QSTEP = 0.001 30 31 DEFAULT_BEAM = 0.005 31 32 BIN_WIDTH = 1.0 32 import pylab 33 from Plotter1D import PanelMenu 34 #import boxSum 35 from sans.guicomm.events import EVT_SLICER_PARS_UPDATE 33 34 35 36 36 37 class ModelPanel2D( ModelPanel1D): 37 38 """ … … 86 87 self.graph.render(self) 87 88 #self.Bind(boxSum.EVT_SLICER_PARS_UPDATE, self._onEVT_SLICER_PARS) 88 self.Bind(EVT_SLICER_PARS_UPDATE, self._onEVT_SLICER_PARS) 89 89 self.Bind(EVT_SLICER_PARS, self._onEVT_SLICER_PARS) 90 self.Bind(EVT_SLICER_PARS_UPDATE, self._onEVT_SLICER_PANEL) 91 92 90 93 def _onEVT_SLICER_PARS(self, event): 94 print "paramaters entered on slicer panel", event.type, event.params 95 self.slicer.set_params(event.params) 96 from sans.guicomm.events import SlicerPanelEvent 97 wx.PostEvent(self.parent, SlicerPanelEvent (panel= self.panel_slicer)) 98 99 100 def _onEVT_SLICER_PANEL(self, event): 91 101 print "box move plotter2D", event.type, event.params 92 102 self.panel_slicer.set_slicer(event.type, event.params) 93 103 from sans.guicomm.events import SlicerPanelEvent 94 wx.PostEvent(self.parent, SlicerPanelEvent (panel= self.panel_slicer)) 104 wx.PostEvent(self.parent, SlicerPanelEvent (panel= self.panel_slicer)) 105 95 106 def _onEVT_1DREPLOT(self, event): 96 107 """ … … 406 417 407 418 from slicerpanel import SlicerPanel 408 new_panel = SlicerPanel(parent= self.parent,id= -1, type=event.type,419 new_panel = SlicerPanel(parent= self.parent,id= -1,base= self,type=event.type, 409 420 params=event.params, style=wx.RAISED_BORDER) 410 421 #new_panel.set_slicer(self.slicer.__class__.__name__, … … 422 433 self.onClearSlicer(event) 423 434 wx.PostEvent(self.parent, InternalEvent(slicer= BoxInteractorX)) 424 435 """ 425 436 from slicerpanel import SlicerPanel 426 437 new_panel = SlicerPanel(self.parent, -1, style=wx.RAISED_BORDER) … … 428 439 from sans.guicomm.events import SlicerPanelEvent 429 440 wx.PostEvent(self.parent, SlicerPanelEvent (panel= new_panel)) 430 441 """ 431 442 def onBoxavgY(self,event): 432 443 from boxSlicer import BoxInteractorY 433 444 self.onClearSlicer(event) 434 445 wx.PostEvent(self.parent, InternalEvent(slicer= BoxInteractorY)) 435 446 """ 436 447 from slicerpanel import SlicerPanel 437 448 new_panel = SlicerPanel(self.parent, -1, style=wx.RAISED_BORDER) … … 439 450 from sans.guicomm.events import SlicerParameterEvent 440 451 wx.PostEvent(self.parent, SlicerParameterEvent (panel= new_panel)) 441 452 """ 442 453 def onClearSlicer(self, event): 443 454 """ -
guiframe/local_perspectives/plotting/SectorSlicer.py
r54cc36a r0d9dae8 8 8 9 9 # Debug printout 10 from sans.guicomm.events import StatusEvent 11 from sans.guicomm.events import NewPlotEvent 10 import math 11 import wx 12 from copy import deepcopy 13 12 14 from BaseInteractor import _BaseInteractor 13 from copy import deepcopy14 import math 15 16 17 import SlicerParameters 18 import wx 15 from sans.guicomm.events import NewPlotEvent, StatusEvent,SlicerParameterEvent,EVT_SLICER_PARS 16 17 18 19 20 19 21 20 22 class SectorInteractor(_BaseInteractor): … … 61 63 62 64 # Bind to slice parameter events 63 self.base.parent.Bind( SlicerParameters.EVT_SLICER_PARS, self._onEVT_SLICER_PARS)65 self.base.parent.Bind(EVT_SLICER_PARS, self._onEVT_SLICER_PARS) 64 66 65 67 … … 95 97 self.right_line.clear() 96 98 #self.base.connect.disconnect() 97 self.base.parent.Unbind( SlicerParameters.EVT_SLICER_PARS)99 self.base.parent.Unbind(EVT_SLICER_PARS) 98 100 99 101 def update(self): … … 194 196 195 197 # Post paramters 196 event = SlicerParameter s.SlicerParameterEvent()198 event = SlicerParameterEvent() 197 199 event.type = self.__class__.__name__ 198 200 event.params = self.get_params() -
guiframe/local_perspectives/plotting/SlicerParameters.py
r54cc36a r0d9dae8 7 7 from copy import deepcopy 8 8 9 (SlicerEvent, EVT_SLICER) = wx.lib.newevent.NewEvent() 10 (SlicerParameterEvent, EVT_SLICER_PARS) = wx.lib.newevent.NewEvent() 9 from sans.guiframe.utils import format_number 10 from sans.guicomm.events import EVT_SLICER,EVT_SLICER_PARS,SlicerParameterEvent 11 11 12 12 13 def format_number(value, high=False): 14 """ 15 Return a float in a standardized, human-readable formatted string 16 """ 17 try: 18 value = float(value) 19 except: 20 return "NaN" 21 22 if high: 23 return "%-6.4g" % value 24 else: 25 return "%-5.3g" % value 13 26 14 27 15 class SlicerParameterPanel(wx.Dialog): -
guiframe/local_perspectives/plotting/boxSlicer.py
rffd23b5 r0d9dae8 13 13 import math 14 14 15 from sans.guicomm.events import NewPlotEvent, StatusEvent 15 from sans.guicomm.events import NewPlotEvent, StatusEvent,SlicerParameterEvent,EVT_SLICER_PARS 16 16 import SlicerParameters 17 17 import wx … … 75 75 76 76 # Bind to slice parameter events 77 self.base.parent.Bind( SlicerParameters.EVT_SLICER_PARS, self._onEVT_SLICER_PARS)77 self.base.parent.Bind(EVT_SLICER_PARS, self._onEVT_SLICER_PARS) 78 78 79 79 … … 111 111 self.bottom_line.clear() 112 112 #self.base.connect.disconnect() 113 self.base.parent.Unbind( SlicerParameters.EVT_SLICER_PARS)113 self.base.parent.Unbind(EVT_SLICER_PARS) 114 114 115 115 def update(self): … … 245 245 246 246 # Post paramters 247 event = SlicerParameter s.SlicerParameterEvent()247 event = SlicerParameterEvent() 248 248 event.type = self.__class__.__name__ 249 249 event.params = self.get_params() -
guiframe/local_perspectives/plotting/ring.py
rffd23b5 r0d9dae8 8 8 9 9 # Debug printout 10 from config import printEVT 10 import math 11 import wx 12 from copy import deepcopy 13 11 14 from BaseInteractor import _BaseInteractor 12 from copy import deepcopy 13 import math 14 15 from Plotter1D import AddPlotEvent 16 import SlicerParameters 17 import wx 15 from sans.guicomm.events import NewPlotEvent, StatusEvent,SlicerParameterEvent,EVT_SLICER_PARS 18 16 19 17 class AnnulusInteractor(_BaseInteractor): … … 43 41 44 42 # Bind to slice parameter events 45 self.base.parent.Bind( SlicerParameters.EVT_SLICER_PARS, self._onEVT_SLICER_PARS)43 self.base.parent.Bind(EVT_SLICER_PARS, self._onEVT_SLICER_PARS) 46 44 47 45 … … 76 74 self.inner_circle.clear() 77 75 #self.base.connect.disconnect() 78 self.base.parent.Unbind( SlicerParameters.EVT_SLICER_PARS)76 self.base.parent.Unbind(EVT_SLICER_PARS) 79 77 80 78 def update(self): … … 170 168 171 169 # Post paramters 172 event = SlicerParameter s.SlicerParameterEvent()170 event = SlicerParameterEvent() 173 171 event.type = self.__class__.__name__ 174 172 event.params = self.get_params() -
guiframe/local_perspectives/plotting/slicerpanel.py
r1f3655a r0d9dae8 7 7 from copy import deepcopy 8 8 9 (SlicerEvent, EVT_SLICER) = wx.lib.newevent.NewEvent() 10 (SlicerParameterEvent, EVT_SLICER_PARS) = wx.lib.newevent.NewEvent() 9 from sans.guiframe.utils import format_number 10 from sans.guicomm.events import SlicerParameterEvent,EVT_SLICER_PARS,EVT_SLICER 11 12 11 13 12 14 class SlicerPanel(wx.Panel): … … 20 22 CENTER_PANE = False 21 23 22 def __init__(self, parent,id=-1,type=None, params={}, *args, **kwargs):24 def __init__(self, parent,id=-1,type=None,base=None, params={}, *args, **kwargs): 23 25 wx.Panel.__init__(self, parent,id, *args, **kwargs) 24 print "panel created" 26 #print "panel created", base 27 self.base= base 25 28 self.params = params 26 29 self.parent = parent … … 28 31 self.listeners = [] 29 32 self.parameters = [] 33 30 34 self.bck = wx.GridBagSizer(5,5) 31 35 self.SetSizer(self.bck) … … 47 51 @param event: EVT_SLICER event 48 52 """ 49 print "went here panel"53 #print "went here panel" 50 54 event.Skip() 51 55 if event.obj_class==None: … … 62 66 self.bck.Clear(True) 63 67 self.type = type 64 print "in set slicer", type, params68 #print "in set slicer", type, params 65 69 if type==None: 66 70 title = wx.StaticText(self, -1, "Right-click on 2D plot for slicer options", style=wx.ALIGN_LEFT) … … 78 82 79 83 for item in keys: 80 n += 1 81 text = wx.StaticText(self, -1, item, style=wx.ALIGN_LEFT) 82 self.bck.Add(text, (n-1,0), flag = wx.LEFT|wx.ALIGN_CENTER_VERTICAL, border = 15) 83 ctl = wx.TextCtrl(self, -1, size=(80,20), style=wx.TE_PROCESS_ENTER) 84 if not item.lower() in ["errors", "count"]: 85 n += 1 86 text = wx.StaticText(self, -1, item, style=wx.ALIGN_LEFT) 87 self.bck.Add(text, (n-1,0), flag = wx.LEFT|wx.ALIGN_CENTER_VERTICAL, border = 15) 88 ctl = wx.TextCtrl(self, -1, size=(80,20), style=wx.TE_PROCESS_ENTER) 89 ctl.SetToolTipString("Modify the value of %s to change the 2D slicer" % item) 90 ctl.SetValue(str(format_number(params[item]))) 91 #ctl.Disable() 92 self.Bind(wx.EVT_TEXT_ENTER, self.onTextEnter) 93 ctl.Bind(wx.EVT_KILL_FOCUS, self.onTextEnter) 94 self.parameters.append([item, ctl]) 95 self.bck.Add(ctl, (n-1,1), flag=wx.TOP|wx.BOTTOM, border = 0) 96 for item in keys: 97 if item.lower() in ["errors", "count"]: 98 n += 1 99 text = wx.StaticText(self, -1, item+": ", style=wx.ALIGN_LEFT) 100 self.bck.Add(text, (n-1,0), flag = wx.LEFT|wx.ALIGN_CENTER_VERTICAL, border = 15) 101 ctl = wx.StaticText(self, -1, str(format_number(params[item])), style=wx.ALIGN_LEFT) 102 ctl.SetToolTipString("Result %s" % item) 103 self.bck.Add(ctl, (n-1,1), flag=wx.TOP|wx.BOTTOM, border = 0) 84 104 85 ctl.SetToolTipString("Modify the value of %s to change the 2D slicer" % item)86 87 88 ctl.SetValue(str(params[item]))89 ctl.Disable()90 self.Bind(wx.EVT_TEXT_ENTER, self.onTextEnter)91 ctl.Bind(wx.EVT_KILL_FOCUS, self.onTextEnter)92 self.parameters.append([item, ctl])93 self.bck.Add(ctl, (n-1,1), flag=wx.TOP|wx.BOTTOM, border = 0)94 105 95 106 self.bck.Layout() … … 97 108 self.parent.GetSizer().Layout() 98 109 def onParamChange(self, evt): 99 print "parameters changed"110 #print "parameters changed" 100 111 evt.Skip() 101 112 #if evt.type == "UPDATE": 102 113 for item in self.parameters: 103 114 if item[0] in evt.params: 104 item[1].SetValue( "%-5.3g" %evt.params[item[0]])115 item[1].SetValue(format_number(evt.params[item[0]])) 105 116 item[1].Refresh() 106 107 108 def old_onParamChange(self, evt): 109 evt.Skip() 110 if evt.type == "UPDATE": 111 for item in self.parameters: 112 if item[0] in evt.params: 113 item[1].SetValue("%-5.3g" %evt.params[item[0]]) 114 item[1].Refresh() 117 115 118 116 119 def onTextEnter(self, evt): … … 133 136 if has_error==False: 134 137 # Post parameter event 135 print "post new param"138 #print "post new param" 136 139 event = SlicerParameterEvent(type=self.type, params=params) 137 wx.PostEvent(self. parent, event)138 print "self parent ", self.parent140 wx.PostEvent(self.base, event) 141 #print "panel slicer: self base ", self.base 139 142
Note: See TracChangeset
for help on using the changeset viewer.