Esempio n. 1
0
 def _on_close(self, event):
     # Might be scrollbars or other native components under
     # us that are generating this event
     if event.GetWindow() == self.control:
         self._gc = None
         wx.EVT_ERASE_BACKGROUND(self.control, None)
         wx.EVT_PAINT(self.control, None)
         wx.EVT_SIZE(self.control, None)
         wx.EVT_LEFT_DOWN(self.control, None)
         wx.EVT_LEFT_UP(self.control, None)
         wx.EVT_LEFT_DCLICK(self.control, None)
         wx.EVT_MIDDLE_DOWN(self.control, None)
         wx.EVT_MIDDLE_UP(self.control, None)
         wx.EVT_MIDDLE_DCLICK(self.control, None)
         wx.EVT_RIGHT_DOWN(self.control, None)
         wx.EVT_RIGHT_UP(self.control, None)
         wx.EVT_RIGHT_DCLICK(self.control, None)
         wx.EVT_MOTION(self.control, None)
         wx.EVT_ENTER_WINDOW(self.control, None)
         wx.EVT_LEAVE_WINDOW(self.control, None)
         wx.EVT_MOUSEWHEEL(self.control, None)
         wx.EVT_KEY_DOWN(self.control, None)
         wx.EVT_KEY_UP(self.control, None)
         wx.EVT_CHAR(self.control, None)
         wx.EVT_WINDOW_DESTROY(self.control, None)
         self.control.SetDropTarget(None)
         self.control = None
         self.component.cleanup(self)
         self.component.parent = None
         self.component.window = None
         self.component = None
     return
Esempio n. 2
0
    def __init__(self, parent, size=wx.DefaultSize):
        MyCanvasBase.__init__(self, parent, size=size)

        
        self.m_log = True # 20070724 - default log-scale
        self.fitYtoSeen = True # 20080731

        self.mouse_last_x, self.mouse_last_y = 0,0 # in case mouseIsDown happens without preceeding mouseDown
        self.dragCenter = False # in case mouseIsDown happens without preceeding mouseDown
        self.dragLeft   = True # in case mouseIsDown happens without preceeding mouseDown
        self.keepZoomedToBraces = True # 20080806

        wx.EVT_MOUSE_EVENTS(self, self.OnMouse)
        wx.EVT_MOUSEWHEEL(self, self.OnWheel)
        wx.EVT_CLOSE(self, self.OnClose)
        self.MakePopupMenu()
        self.m_histPlotArray = None
        self.leftBrace = 0.
        self.rightBrace= 100.
        self.bandTobeGenerated = True
        self.m_imgChanged = 1
        self.m_histScaleChanged = 1
        self.colMap = None
        self.m_texture_list = None
        self.m_histGlRGB=(1.0, 1.0, 1.0)

        #20080707 doOnXXXX event handler are now lists of functions
        self.doOnBrace = [] # (self) # use self.leftBrace, self.rightBrace to get current brace positions
        self.doOnMouse = [] # (xEff, ev)
Esempio n. 3
0
    def __init__(self, parent, id=wx.ID_ANY, eventTarget=None):
        canvas.L5RCanvas.__init__(self, parent, id)
        self.eventTarget = eventTarget or self

        self.gameState = None
        self.player = None
        self.isLocal = False

        self.markerPos = None
        self.markerOffset = (0, 0)
        self.attachMarker = None

        self.texBorderFrame = self.LoadTexture(
            os.path.join(locationsettings.data_dir, "images/border2.png"))
        self.texAttach = self.LoadTexture(
            os.path.join(locationsettings.data_dir, "images/border3.png"))

        wx.EVT_LEFT_DOWN(self, self.OnLeftMouseDown)
        wx.EVT_LEFT_DCLICK(self, self.OnDoubleClick)
        wx.EVT_RIGHT_DOWN(self, self.OnRightMouseDown)
        wx.EVT_MOTION(self, self.OnMotion)
        wx.EVT_MOUSEWHEEL(self, self.OnMouseWheel)
        wx.EVT_MIDDLE_DOWN(self, self.OnMouseWheelDown)

        self.SetDropTarget(
            dragdrop.CardDropTarget(self.OnDragData, self.OnDragOver,
                                    self.OnDragLeave))

        self.texToken = {}
        self.texMarker = {}
        self.contextCard = None
        self.hoverCard = None
        self.pfHeight = DEFAULT_PLAYFIELD_HEIGHT
        self.background = PlayfieldCanvasBackground()
Esempio n. 4
0
    def __init__(self, parent, image, glCanvas, do, chan=0, zdim=2):
        wx.Panel.__init__(self, parent, -1, size=parent.Size)

        self.image = image
        self.glCanvas = glCanvas

        self.do = do
        self.chan = chan
        self.zdim = zdim

        wx.EVT_PAINT(self, self.OnPaint)
        wx.EVT_SIZE(self, self.OnSize)
        wx.EVT_MOUSEWHEEL(self, self.OnWheel)
        wx.EVT_KEY_DOWN(self, self.OnKeyPress)

        wx.EVT_LEFT_DOWN(self, self.OnLeftDown)
        wx.EVT_LEFT_UP(self, self.OnLeftUp)
        wx.EVT_MIDDLE_DOWN(self, self.OnMiddleDown)
        wx.EVT_MIDDLE_UP(self, self.OnMiddleUp)
        wx.EVT_MOTION(self, self.OnMotion)

        self.selecting = False
        self.panning = False

        self.do.WantChangeNotification.append(self.Refresh)
Esempio n. 5
0
    def __init__(self,
                 parent,
                 id=-1,
                 pos=wx.DefaultPosition,
                 size=wx.DefaultSize,
                 style=wx.VSCROLL | wx.HSCROLL,
                 validator=wx.DefaultValidator,
                 name="NotebookWidget"):
        """ Initialize """

        wx.ScrolledWindow.__init__(self, parent, id, pos, size, style, name)
        self.type = "notebook"
        self.celllist = []
        self.id_dict = {
            -1: -1
        }  #dictionary giving indeces corresponding to window ids
        self.activecell = -1
        self.vscrollstep = 17
        self.hscrollstep = 8
        #        self.vscrollpos = 0
        #        self.hscrollpos = 0
        self.vsize = 0
        self.hsize = 2000  # TODO: This must not be set explicitly
        self.AdjustScrollbars()
        self.SetBackgroundColour(wx.WHITE)
        wx.EVT_SIZE(self, self.OnSize)
        wx.EVT_MOUSEWHEEL(self, self.OnWheel)
Esempio n. 6
0
 def __init__(self, parent):
     attribList = (glcanvas.WX_GL_RGBA, glcanvas.WX_GL_DOUBLEBUFFER,
                   glcanvas.WX_GL_DEPTH_SIZE, 24,
                   glcanvas.WX_GL_STENCIL_SIZE, 8)
     glcanvas.GLCanvas.__init__(self, parent, attribList=attribList)
     self.parent = parent
     self.context = glcanvas.GLContext(self)
     wx.EVT_PAINT(self, self.OnPaint)
     wx.EVT_SIZE(self, self.OnSize)
     wx.EVT_ERASE_BACKGROUND(self, self.OnEraseBackground)
     wx.EVT_MOTION(self, self.OnMouseMotion)
     wx.EVT_MOUSEWHEEL(self, self.OnMouseWheel)
     self.yaw = 30
     self.pitch = 60
     self.zoom = 300
     self.offsetX = 0
     self.offsetY = 0
     self.view3D = True
     self.gcodeDisplayList = None
     self.gcodeDisplayListMade = None
     self.gcodeDisplayListCount = 0
     self.objColor = [[1.0, 0.8, 0.6, 1.0], [0.2, 1.0, 0.1, 1.0],
                      [1.0, 0.2, 0.1, 1.0], [0.1, 0.2, 1.0, 1.0]]
     self.oldX = 0
     self.oldY = 0
     self.dragType = ''
     self.tempRotate = 0
Esempio n. 7
0
    def init(self, parent):
        """ Finishes initializing the editor by creating the underlying toolkit
            widget.
        """
        factory = self.factory
        # Establish the range of the slider:
        low, high = factory.low, factory.high
        if high <= low:
            low = high = None
            range = self.object.trait(self.name).handler
            if isinstance(range, Range):
                low, high = range._low, range._high
            if low is None:
                if high is None:
                    high = 1.0
                low = high - 1.0
            elif high is None:
                high = low + 1.0

        # Establish the slider increment:
        increment = factory.increment
        if increment <= 0.0:
            if isinstance(low, int):
                increment = 1.0
            else:
                increment = pow(10, int(log10((high - low) / 1000.0)))

        # Save the values we calculated:
        self.set(low=low, high=high, increment=increment)

        # Create the control:
        self.control = control = wx.Window(parent,
                                           -1,
                                           size=wx.Size(70, 20),
                                           style=wx.FULL_REPAINT_ON_RESIZE
                                           | wx.TAB_TRAVERSAL)

        # Set up the painting event handlers:
        wx.EVT_ERASE_BACKGROUND(control, self._erase_background)
        wx.EVT_PAINT(control, self._on_paint)
        wx.EVT_SET_FOCUS(control, self._set_focus)

        # Set up mouse event handlers:
        wx.EVT_LEFT_DOWN(control, self._left_down)
        wx.EVT_LEFT_UP(control, self._left_up)
        wx.EVT_MOTION(control, self._motion)
        wx.EVT_MOUSEWHEEL(control, self._mouse_wheel)
        wx.EVT_ENTER_WINDOW(control, self._enter_window)
        wx.EVT_LEAVE_WINDOW(control, self._leave_window)

        # Set up the control resize handler:
        wx.EVT_SIZE(control, self._resize)

        # Set the tooltip:
        if not self.set_tooltip():
            control.SetToolTipString('[%g..%g]' % (low, high))
Esempio n. 8
0
    def OnWheelWhat(self, ev):
        what = ev.GetId() - (Menu_WheelWhatMenu + 1)
        if what < self.zndim:

            def OnWheel(evt):
                rot = evt.GetWheelRotation() / 120.  #HACK
                self.doScroll(axis=what, dir=rot)

            self.viewer.OnWheel = OnWheel
        else:
            self.viewer.OnWheel = self.vOnWheel_zoom
        wx.EVT_MOUSEWHEEL(self.viewer, self.viewer.OnWheel)
Esempio n. 9
0
    def __init__(self, *args, **kwds):
        # begin wxGlade: WaveformView.__init__
        kwds["style"] = wx.BORDER_SUNKEN | wx.TAB_TRAVERSAL
        wx.ScrolledWindow.__init__(self, *args, **kwds)

        self.__set_properties()
        self.__do_layout()
        # end wxGlade

        # test for wxPython type
        self.cdc = wx.ClientDC(self)
        self.isWxPhoenix = False
        if not "SetClippingRect" in dir(
                self.cdc
        ):  # TODO: Test this version: if "SetClippingRect" not in dir(cdc)
            self.isWxPhoenix = True

        # Other initialization
        self.doc = None
        self.maxWidth = 1
        self.maxHeight = 1
        self.isDragging = False
        self.basicScrubbing = False
        self.curFrame = 0
        self.oldFrame = 0
        self.buffer = None
        self.clipRect = None
        self.sampleWidth = defaultSampleWidth
        self.samplesPerFrame = defaultSamplesPerFrame
        self.samplesPerSec = 24 * self.samplesPerFrame
        self.frameWidth = self.sampleWidth * self.samplesPerFrame
        self.phraseBottom = 16
        self.wordBottom = 32
        self.phonemeTop = 128
        self.didresize = 0

        # Connect event handlers
        # window events
        wx.EVT_PAINT(self, self.OnPaint)
        wx.EVT_SIZE(self, self.OnSize)
        wx.EVT_IDLE(self, self.OnIdle)
        # mouse events
        wx.EVT_LEFT_DOWN(self, self.OnMouseDown)
        wx.EVT_RIGHT_DOWN(self, self.OnMouseDown)
        wx.EVT_LEFT_DCLICK(self, self.OnMouseDown)
        wx.EVT_LEFT_UP(self, self.OnMouseUp)
        wx.EVT_RIGHT_UP(self, self.OnMouseUp)
        wx.EVT_MOTION(self, self.OnMouseMove)
        wx.EVT_MOUSEWHEEL(self, self.OnMouseWheel)

        # Force an update
        self.OnSize()
Esempio n. 10
0
 def __init__(self, parent, frame):
     self.frame = frame
     self.lastkey = None
     self.previewkey = self.previewbmp = self.previewimg = self.previewsize = None
     self.sashsize = 4
     wx.SplitterWindow.__init__(self,
                                parent,
                                wx.ID_ANY,
                                style=wx.SP_3DSASH | wx.SP_NOBORDER
                                | wx.SP_LIVE_UPDATE)
     panel = wx.Panel(self)
     sizer = wx.BoxSizer(wx.VERTICAL)
     self.sb = wx.SearchCtrl(panel)
     self.sb.ShowCancelButton(True)
     sizer.Add(self.sb,
               0,
               flag=wx.EXPAND |
               (platform == 'darwin' and wx.ALL or wx.BOTTOM),
               border=3)
     if platform == 'darwin' and wx.VERSION < (2, 9):
         sizer.AddSpacer(6)  # layout on OSX sucks
     self.cb = PaletteChoicebook(panel, frame, self)
     sizer.Add(self.cb, 1, wx.EXPAND)
     panel.SetSizerAndFit(sizer)
     self.preview = wx.Panel(self,
                             wx.ID_ANY,
                             style=wx.FULL_REPAINT_ON_RESIZE)
     if platform == 'darwin':
         self.preview.ClearBackground = self.ClearPreviewBackground
     self.SetMinimumPaneSize(1)
     self.SplitHorizontally(panel, self.preview, -ClutterDef.PREVIEWSIZE)
     self.lastheight = self.GetSize().y
     wx.EVT_SIZE(self, self.OnSize)
     wx.EVT_KEY_DOWN(self, self.OnKeyDown)
     wx.EVT_SET_FOCUS(self, self.OnSetFocus)
     wx.EVT_KEY_DOWN(self.preview, self.OnKeyDown)
     wx.EVT_SET_FOCUS(self.preview, self.OnSetFocus)
     wx.EVT_SPLITTER_SASH_POS_CHANGING(self, self.GetId(),
                                       self.OnSashPositionChanging)
     wx.EVT_PAINT(self.preview, self.OnPaint)
     wx.EVT_TEXT(self.sb, self.sb.GetId(), self.OnSearch)
     wx.EVT_MOUSEWHEEL(
         self, self.OnMouseWheel
     )  # stop these events propagating to main window under wx2.9
     if wx.version() < '2.9.4.1':
         # cancel button doesn't send EVT_SEARCHCTRL_CANCEL_BTN under 2.9.4.0 - http://trac.wxwidgets.org/ticket/14799
         # event not needed under 2.9.4.1
         wx.EVT_SEARCHCTRL_CANCEL_BTN(self.sb, self.sb.GetId(),
                                      self.OnCancelSearch)
Esempio n. 11
0
    def AddCell(self, cell, update=True):
        """ Adds a cell to the celllist. The cell is added to the end
        of the list. If update is False, RelayoutCells is not called. This 
        is done, so if you need to add or delete more than one cell you will only
        need to call RelayoutCells once, via self.Update"""

        #Add the needed event handlers
        wx.EVT_MOUSEWHEEL(cell, self.OnWheel)

        self.celllist.append(cell)
        index = len(self.celllist) - 1
        if update:
            self.RelayoutCells(index)
        self.id_dict[cell.GetId] = index
        return index
Esempio n. 12
0
    def __init__(self,
                 parent,
                 size=wx.DefaultSize,
                 style=0,
                 originLeftBottom=None):
        wxgl.GLCanvas.__init__(self, parent, -1, style=style, size=size)

        self.error = None
        self.doViewportChange = True

        self.x00 = 0  #-.5
        self.y00 = 0  #-.5
        self.x0 = None  # call center() in OnPaint -- self.x00
        self.y0 = None  # call center() in OnPaint -- self.y00
        self.scale = 1.
        self.aspectRatio = 1.
        self.rot = 0.
        self.zoomChanged = True  # trigger a first placing of image
        self.sizeChanged = True
        self.keepCentered = True

        self.pixelGrid_state = 0  # 0-off, 1-everyPixel, 2- every 10 pixels

        self.GLinit = False
        self.context = wxgl.GLContext(self)  # 20141124 cocoa

        self.moreGlLists = []
        self.moreGlLists_enabled = []
        self.moreMaster_enabled = 1
        self.moreGlLists_dict = {}  # map 'name' to list of idx in moreGlLists
        # a given idx can be part of multiple 'name' entries
        # a given name entry can contain a given idx only once
        self.moreGlLists_nameBlacklist = set()
        self.moreGlLists_NamedIdx = {
        }  # map str to int or None -- this is helpful for reusing Idx for "changing" gllists
        # if name (type str) wasn't used before, it defaults to None (20080722)

        self.moreGlListReuseIdx = None

        self.wheelFactor = 2**(1 / 3.
                               )  #1.189207115002721 # >>> 2 ** (1./4)  # 2

        wx.EVT_ERASE_BACKGROUND(self, self.OnEraseBackground)
        wx.EVT_MOVE(parent, self.OnMove)
        wx.EVT_SIZE(self, self.OnSize)  # CHECK # CHECK
        wx.EVT_MOUSEWHEEL(self, self.OnWheel)
Esempio n. 13
0
    def __init__(self, parent, projectPlannerWindow):
        super(PreviewGLCanvas, self).__init__(parent)
        self.parent = projectPlannerWindow
        wx.EVT_MOUSEWHEEL(self, self.OnMouseWheel)
        self.yaw = 30
        self.pitch = 60
        self.offsetX = 0
        self.offsetY = 0
        self.view3D = self.parent.alwaysAutoPlace
        if self.view3D:
            self.zoom = 300
        else:
            self.zoom = self.parent.machineSize[0] / 2 + 10
        self.dragType = ''
        self.viewport = None
        self.allowDrag = False
        self.tempMatrix = None

        self.objColor = profile.getPreferenceColour('model_colour')
Esempio n. 14
0
 def __init__(self, parent):
     super(PreviewGLCanvas, self).__init__(parent)
     wx.EVT_MOUSEWHEEL(self, self.OnMouseWheel)
     self.parent = parent
     self.yaw = 30
     self.pitch = 60
     self.zoom = 300
     self.viewTarget = [parent.machineCenter.x, parent.machineCenter.y, 0.0]
     self.view3D = True
     self.gcodeDisplayList = None
     self.gcodeDisplayListMade = None
     self.gcodeDisplayListCount = 0
     self.objColor = [[1.0, 0.8, 0.6, 1.0], [0.2, 1.0, 0.1, 1.0],
                      [1.0, 0.2, 0.1, 1.0], [0.1, 0.2, 1.0, 1.0]]
     self.oldX = 0
     self.oldY = 0
     self.dragType = ''
     self.tempMatrix = None
     self.viewport = None
Esempio n. 15
0
    def __init__(self,parent):
        glcanvas.GLCanvas.__init__(self, parent, -1)
        self.init = False
        self.width = 0
        self.height = 0

        self.zoom = 50.0
        self.minZoom = 5.0
        self.maxZoom = 400.0
        self.lookingAtX = 0
        self.lookingAtY = 0
        self.lookingAtZ = 0
        self.viewAngleSky = 50.0
        self.viewAngleFloor = 90.0
        self.angleSpeed = 3.0

        self.viewX = 0
        self.viewY = 0
        self.viewZ = 0
        
        self.point = Numeric.zeros((1,4),typecode=Numeric.Float)
        
        self.clearCache()

        self.frustum = []
        self.viewMatrixInv = Numeric.identity(4,Numeric.Float)
        self.modelMatrix = None
        self.currentModelView = None

        self.redrawRequested = False
        self.preprocessed = False
        self.preprocessing = False
        
        wx.EVT_ERASE_BACKGROUND(self, self.OnEraseBackground)
        wx.EVT_SIZE(self, self.OnSize)
        wx.EVT_PAINT(self, self.OnPaint)
        wx.EVT_LEFT_DOWN(self, self.OnMouseDown)
        wx.EVT_LEFT_UP(self, self.OnMouseUp)
        wx.EVT_MOTION(self, self.OnMouseMotion)
        wx.EVT_MOUSEWHEEL(self, self.OnMouseWheel)
        wx.EVT_KEY_DOWN(self, self.OnKeyDown)
	wx.EVT_KEY_UP(self,self.OnKeyUp)
Esempio n. 16
0
 def __init__(self, parent, realParent):
     attribList = (glcanvas.WX_GL_RGBA, glcanvas.WX_GL_DOUBLEBUFFER,
                   glcanvas.WX_GL_DEPTH_SIZE, 24,
                   glcanvas.WX_GL_STENCIL_SIZE, 8)
     glcanvas.GLCanvas.__init__(self, parent, attribList=attribList)
     self.parent = realParent
     self.context = glcanvas.GLContext(self)
     wx.EVT_PAINT(self, self.OnPaint)
     wx.EVT_SIZE(self, self.OnSize)
     wx.EVT_ERASE_BACKGROUND(self, self.OnEraseBackground)
     wx.EVT_LEFT_DOWN(self, self.OnMouseLeftDown)
     wx.EVT_MOTION(self, self.OnMouseMotion)
     wx.EVT_MOUSEWHEEL(self, self.OnMouseWheel)
     self.yaw = 30
     self.pitch = 60
     self.zoom = self.parent.machineSize.x / 2 + 10
     self.offsetX = 0
     self.offsetY = 0
     self.view3D = False
     self.allowDrag = False
Esempio n. 17
0
    def __init__(self,
                 parent,
                 eventSource,
                 metaData,
                 timeRange,
                 charts=[],
                 size=(-1, -1)):
        self.eventSource = eventSource
        self.metaData = metaData
        self.maxRange = list(timeRange)
        self.timeRange = timeRange
        self.charts = charts

        self.autoRange = True

        self.initialised = False

        self.SetEventSource(eventSource)

        self.startTime = self.metaData.getEntry('StartTime')

        #        self.evKeyNames = set()
        #        for e in self.eventSource:
        #            self.evKeyNames.add(e['EventName'])
        #
        #        colours = pylab.cm.gist_rainbow(np.arange(len(self.evKeyNames))/float(len(self.evKeyNames)))[:,:3]
        #
        #        self.lineColours = {}
        #        for k, c in zip(self.evKeyNames, colours):
        #            self.lineColours[k] = c

        wx.Panel.__init__(self, parent, size=size)

        wx.EVT_PAINT(self, self.OnPaint)
        wx.EVT_SIZE(self, self.OnSize)
        wx.EVT_MOUSEWHEEL(self, self.OnWheel)

        self.initialised = True
Esempio n. 18
0
	def __init__(self, parent, projectPlannerWindow):
		attribList = (glcanvas.WX_GL_RGBA, glcanvas.WX_GL_DOUBLEBUFFER, glcanvas.WX_GL_DEPTH_SIZE, 24, glcanvas.WX_GL_STENCIL_SIZE, 8)
		glcanvas.GLCanvas.__init__(self, parent, attribList = attribList)
		self.parent = projectPlannerWindow
		self.context = glcanvas.GLContext(self)
		wx.EVT_PAINT(self, self.OnPaint)
		wx.EVT_SIZE(self, self.OnSize)
		wx.EVT_ERASE_BACKGROUND(self, self.OnEraseBackground)
		wx.EVT_LEFT_DOWN(self, self.OnMouseLeftDown)
		wx.EVT_MOTION(self, self.OnMouseMotion)
		wx.EVT_MOUSEWHEEL(self, self.OnMouseWheel)
		self.yaw = 30
		self.pitch = 60
		self.offsetX = 0
		self.offsetY = 0
		self.view3D = self.parent.alwaysAutoPlace
		if self.view3D:
			self.zoom = 300
		else:
			self.zoom = self.parent.machineSize[0] / 2 + 10
		self.allowDrag = False

		self.objColor = profile.getPreferenceColour('model_colour')
Esempio n. 19
0
    def InsertCell(self, cell, index, update=True):
        """ Inserts a cell before the given index. if the index is
        less than or equal to zero insert at the begining. If the
        index is too large, insert at the end
        """

        #Add the event handlers
        wx.EVT_MOUSEWHEEL(cell, self.OnWheel)

        index = max(0, index)
        index = min(len(self.celllist), index)

        self.celllist.insert(index, cell)
        self.id_dict[cell.GetId()] = index

        def f(x):
            self.id_dict[x.GetId()] += 1
            return None

        map(f, self.celllist[index + 1:])
        if update:
            self.RelayoutCells(index)
        return index
Esempio n. 20
0
    def __init__(self, parent):
        attriblist = [
            wx.glcanvas.WX_GL_RGBA, wx.glcanvas.WX_GL_STENCIL_SIZE, 8,
            wx.glcanvas.WX_GL_DOUBLEBUFFER, 16
        ]
        GLCanvas.__init__(self, parent, -1, attribList=attriblist)
        wx.EVT_PAINT(self, self.OnPaint)
        wx.EVT_SIZE(self, self.OnSize)
        wx.EVT_MOUSEWHEEL(self, self.OnWheel)
        wx.EVT_LEFT_DOWN(self, self.OnLeftDown)
        wx.EVT_LEFT_UP(self, self.OnLeftUp)
        wx.EVT_MIDDLE_DOWN(self, self.OnMiddleDown)
        wx.EVT_MIDDLE_UP(self, self.OnMiddleUp)
        wx.EVT_MOTION(self, self.OnMouseMove)
        wx.EVT_KEY_DOWN(self, self.OnKeyPress)
        #wx.EVT_MOVE(self, self.OnMove)

        self.gl_context = wx.glcanvas.GLContext(self)

        self.init = 0
        self.nVertices = 0
        self.IScale = [1.0, 1.0, 1.0]
        self.zeroPt = [0, 1.0 / 3, 2.0 / 3]
        self.cmap = pylab.cm.hsv
        self.clim = [0, 1]
        self.alim = [0, 1]

        self.wireframe = False

        self.parent = parent

        self.pointSize = 5  #default point size = 5nm

        self.pixelsize = 5. / 800

        self.xmin = 0
        self.xmax = self.pixelsize * self.Size[0]
        self.ymin = 0
        self.ymax = self.pixelsize * self.Size[1]

        self.scaleBarLength = 200

        self.scaleBarOffset = (20.0, 20.0)  #pixels from corner
        self.scaleBarDepth = 10.0  #pixels
        self.scaleBarColour = [1, 1, 0]

        self.mode = 'triang'

        self.colouring = 'area'

        self.drawModes = {
            'triang': GL_TRIANGLES,
            'quads': GL_QUADS,
            'edges': GL_LINES,
            'points': GL_POINTS
        }

        self.c = numpy.array([1, 1, 1])
        self.a = numpy.array([1, 1, 1])
        self.zmin = -10
        self.zmax = 10

        self.angup = 0
        self.angright = 0

        self.vecUp = numpy.array([0, 1, 0])
        self.vecRight = numpy.array([1, 0, 0])
        self.vecBack = numpy.array([0, 0, 1])

        self.xc = 0
        self.yc = 0
        self.zc = 0

        self.scale = 1
        self.stereo = True

        self.eye_dist = .1

        self.dragging = False
        self.panning = False

        self.edgeThreshold = 200

        self.layers = []

        return
Esempio n. 21
0
 def __init__(self, parent, id, title):
     wx.Frame.__init__(
         self, parent, -1, title
     )  #, size = (800,600), style=wx.DEFAULT_FRAME_STYLE|wx.NO_FULL_REPAINT_ON_RESIZE)
     wx.EVT_MOUSEWHEEL(self, self.OnWheel)
Esempio n. 22
0
    def __init__(self, parent, dstack = None, aspect=1, do = None, voxelsize=[1,1,1]):
        
        if (dstack == None and do == None):
            dstack = scipy.zeros((10,10))

        if do == None:
            self.do = DisplayOpts(dstack, aspect=aspect)
            self.do.Optimise()
        else:
            self.do = do
            
        self.voxelsize = voxelsize

        scrolledImagePanel.ScrolledImagePanel.__init__(self, parent, self.DoPaint, style=wx.SUNKEN_BORDER|wx.TAB_TRAVERSAL)

        self.do.WantChangeNotification.append(self.GetOpts)
        #self.do.WantChangeNotification.append(self.Refresh)

        self.SetVirtualSize(wx.Size(self.do.ds.shape[0],self.do.ds.shape[1]))
        #self.imagepanel.SetSize(wx.Size(self.do.ds.shape[0],self.do.ds.shape[1]))
        

        self.points =[]
        self.pointsR = []
        self.showPoints = True
        self.showTracks = True
        self.showContours = True
        self.showScaleBar = True
        self.scaleBarLength = 2000
        self.pointMode = 'confoc'
        self.pointTolNFoc = {'confoc' : (5,5,5), 'lm' : (2, 5, 5), 'splitter' : (2,5,5)}
        self.showAdjacentPoints = False
        self.pointSize = 11
        self.layerMode = 'Add'

        self.psfROIs = []
        self.psfROISize=[30,30,30]

        self.lastUpdateTime = 0
        self.lastFrameTime = 2e-3

        #self.do.scale = 0
        self.crosshairs = True
        #self.showSelection = True
        self.selecting = False

        self.aspect = 1.

        self.slice = None 
        
        self.overlays = []
        
        self._oldIm = None
        self._oldImSig = None
        
        self.CenteringHandlers = []
        
        self.labelPens = [wx.Pen(wx.Colour(*pylab.cm.hsv(v, bytes=True)), 2) for v in numpy.linspace(0, 1, 16)]

#        if not aspect == None:
#            if scipy.isscalar(aspect):
#                self.do.aspects[2] = aspect
#            elif len(aspect) == 3:
#                self.do.aspects = aspect

        
        #self.SetOpts()
        #self.optionspanel.RefreshHists()
        self.updating = 0
        self.showOptsPanel = 1

        self.refrTimer = wx.Timer(self)
        self.Bind(wx.EVT_TIMER, self.OnRefrTimer)

        wx.EVT_MOUSEWHEEL(self.imagepanel, self.OnWheel)
        wx.EVT_KEY_DOWN(self.imagepanel, self.OnKeyPress)
        #wx.EVT_KEY_DOWN(self.Parent(), self.OnKeyPress)
        wx.EVT_LEFT_DOWN(self.imagepanel, self.OnLeftDown)
        wx.EVT_LEFT_UP(self.imagepanel, self.OnLeftUp)
        
        wx.EVT_MIDDLE_DOWN(self.imagepanel, self.OnMiddleDown)
        wx.EVT_MIDDLE_UP(self.imagepanel, self.OnMiddleUp)
        
        wx.EVT_RIGHT_DOWN(self.imagepanel, self.OnRightDown)
        wx.EVT_RIGHT_UP(self.imagepanel, self.OnRightUp)
        
        wx.EVT_MIDDLE_DCLICK(self.imagepanel, self.OnMiddleDClick)

        wx.EVT_MOTION(self.imagepanel, self.OnMotion)

        #
        wx.EVT_ERASE_BACKGROUND(self.imagepanel, self.DoNix)
        wx.EVT_ERASE_BACKGROUND(self, self.DoNix)
Esempio n. 23
0
    def __init__(self, parent, owner, items=None):
        wx.Dialog.__init__(self, parent, -1, _("Menu editor"),
                          style=wx.DEFAULT_DIALOG_STYLE|wx.RESIZE_BORDER)
        ADD_ID, REMOVE_ID, NAME_ID, LABEL_ID, ID_ID, CHECK_RADIO_ID, LIST_ID, \
                ADD_SEP_ID, MOVE_LEFT_ID, MOVE_RIGHT_ID, MOVE_UP_ID, \
                MOVE_DOWN_ID, HELP_STR_ID = [wx.NewId() for i in range(13)]

        self._staticbox = wx.StaticBox(self, -1, _("Menu item:"))

        self.owner = owner
        self.menu_items = wx.ListCtrl(self, LIST_ID, style=wx.LC_REPORT | \
                                     wx.LC_SINGLE_SEL|wx.SUNKEN_BORDER)
        # ALB 2004-09-26: workaround to make the scroll wheel work...
        wx.EVT_MOUSEWHEEL(self.menu_items, lambda e: e.Skip())
        
        self.menu_items.InsertColumn(0, _("Label"))
        self.menu_items.InsertColumn(1, _("Id"))
        self.menu_items.InsertColumn(2, _("Name"))
        self.menu_items.InsertColumn(3, _("Help String"))
        self.menu_items.InsertColumn(4, _("Type"))
        # ALB 2004-12-05
        self.menu_items.InsertColumn(5, _("Event Handler"))

        self.menu_items.SetColumnWidth(0, 250)
        self.menu_items.SetColumnWidth(2, 250)
        self.menu_items.SetColumnWidth(3, 250)
        self.menu_items.SetColumnWidth(5, 250)

        # menu item fields
        self.id = wx.TextCtrl(self, ID_ID)
        self.label = wx.TextCtrl(self, LABEL_ID)
        self.name = wx.TextCtrl(self, NAME_ID)
        self.help_str = wx.TextCtrl(self, HELP_STR_ID)

        # ALB 2004-12-05
        self.event_handler = wx.TextCtrl(self, -1)
        import re
        self.handler_re = re.compile(r'^\s*\w*\s*$')

        #self.checkable = wx.CheckBox(self, CHECK_ID, "") #Checkable")
        self.check_radio = wx.RadioBox(
            self, CHECK_RADIO_ID, _("Type"),
            choices=['Normal', 'Checkable', 'Radio'], majorDimension=3)

        self.add = wx.Button(self, ADD_ID, _("Add"))
        self.remove = wx.Button(self, REMOVE_ID, _("Remove"))
        self.add_sep = wx.Button(self, ADD_SEP_ID, _("Add separator"))

        # menu items navigation
        self.move_up = wx.Button(self, MOVE_UP_ID, _("Up"))
        self.move_down = wx.Button(self, MOVE_DOWN_ID, _("Down"))
        self.move_left = wx.Button(self, MOVE_LEFT_ID, " < ")
        self.move_right = wx.Button(self, MOVE_RIGHT_ID, " > ")

        self.ok = wx.Button(self, wx.ID_OK, _("OK"))
        self.apply = wx.Button(self, wx.ID_APPLY, _("Apply"))
        self.cancel = wx.Button(self, wx.ID_CANCEL, _("Cancel"))

        self.do_layout()
        self.selected_index = -1 # index of the selected element in the 
                                 # wx.ListCtrl menu_items
        # event handlers
        wx.EVT_BUTTON(self, ADD_ID, self.add_menu_item)
        wx.EVT_BUTTON(self, REMOVE_ID, self.remove_menu_item)
        wx.EVT_BUTTON(self, ADD_SEP_ID, self.add_separator)
        wx.EVT_BUTTON(self, MOVE_LEFT_ID, self.move_item_left)
        wx.EVT_BUTTON(self, MOVE_RIGHT_ID, self.move_item_right)
        wx.EVT_BUTTON(self, MOVE_UP_ID, self.move_item_up)
        wx.EVT_BUTTON(self, MOVE_DOWN_ID, self.move_item_down)
        wx.EVT_BUTTON(self, wx.ID_APPLY, self.on_apply)
        wx.EVT_KILL_FOCUS(self.name, self.update_menu_item)
        wx.EVT_KILL_FOCUS(self.label, self.update_menu_item)
        wx.EVT_KILL_FOCUS(self.id, self.update_menu_item)
        wx.EVT_KILL_FOCUS(self.help_str, self.update_menu_item)
        # ALB 2004-12-05
        wx.EVT_KILL_FOCUS(self.event_handler, self.update_menu_item)
        #wx.EVT_CHECKBOX(self, CHECK_ID, self.update_menu_item)
        wx.EVT_RADIOBOX(self, CHECK_RADIO_ID, self.update_menu_item)
        wx.EVT_LIST_ITEM_SELECTED(self, LIST_ID, self.show_menu_item)
        if items:
            self.add_items(items)
Esempio n. 24
0
    def __init__(self, parent, rows=5, id=-1):
        self._initvars()
        wx.Panel.__init__(self,
                          parent,
                          id,
                          style=wx.WANTS_CHARS | wx.FULL_REPAINT_ON_RESIZE)
        sizer = wx.GridBagSizer()
        self.upbutt = wx.BitmapButton(self, self.ID_UP, getupbitmapBitmap())
        sizer.Add(self.upbutt, flag=wx.EXPAND, pos=(0, 1), span=(1, 7))
        self.year = wx.Button(self, self.ID_YEARBUTTON, "2003")
        sizer.Add(self.year, flag=wx.EXPAND, pos=(1, 0))
        sizer.Add(wx.Button(self, self.ID_TODAYBUTTON, "Today"),
                  flag=wx.EXPAND,
                  pos=(0, 0))
        p = 1
        calendar.setfirstweekday(calendar.SUNDAY)
        for i in ("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"):
            sizer.Add(wx.StaticText(self,
                                    -1,
                                    i,
                                    style=wx.ALIGN_CENTER
                                    | wx.ALIGN_CENTER_VERTICAL),
                      flag=wx.ALIGN_CENTER_VERTICAL
                      | wx.ALIGN_CENTER_HORIZONTAL | wx.EXPAND,
                      pos=(1, p))
            sizer.AddGrowableCol(p)
            p += 1
        self.numrows = rows
        self.showrow = rows / 2
        self.rows = []
        for i in range(0, rows):
            self.rows.append(self.makerow(sizer, i + 2))
        self.downbutt = wx.BitmapButton(self, self.ID_DOWN,
                                        getdownbitmapBitmap())
        sizer.Add(self.downbutt,
                  flag=wx.EXPAND,
                  pos=(2 + rows, 0),
                  span=(1, 8))
        self.label = CalendarLabel(self, map(lambda x: x[0], self.rows))
        sizer.Add(self.label,
                  flag=wx.EXPAND,
                  pos=(2, 0),
                  span=(self.numrows, 1))
        self.sizer = sizer

        self.popupcalendar = PopupCalendar(self, self)

        wx.EVT_BUTTON(self, self.ID_UP, self.OnScrollUp)
        wx.EVT_BUTTON(self, self.ID_DOWN, self.OnScrollDown)
        wx.EVT_BUTTON(self, self.ID_YEARBUTTON, self.OnYearButton)
        wx.EVT_BUTTON(self, self.ID_TODAYBUTTON, self.OnTodayButton)
        # grab key down from all children
        map(lambda child: wx.EVT_KEY_DOWN(child, self.OnKeyDown),
            self.GetChildren())
        # and mousewheel
        map(lambda child: wx.EVT_MOUSEWHEEL(child, self.OnMouseWheel),
            self.GetChildren())
        # grab left down, left dclick from all cells
        for r in self.rows:
            map(lambda cell: wx.EVT_LEFT_DOWN(cell, self.OnLeftDown), r)
            map(lambda cell: wx.EVT_LEFT_DCLICK(cell, self.OnLeftDClick), r)

        self.selectedcell = (-1, -1)
        self.selecteddate = (-1, -1, -1)

        self.showday(*time.localtime()[:3] + (self.showrow, ))
        self.setday(*time.localtime()[:3])

        self.SetSizer(sizer)
        sizer.Fit(self)
        self.SetAutoLayout(True)
Esempio n. 25
0
    def __init__(self, parent, size, keyTargetWin=None):
        wxgl.GLCanvas.__init__(self, parent, -1, size=size)

        self.error = None

        self.m_imgArrL    = []
        self.m_imgPosArr  = []
        self.m_imgSizeArr = []
        self.m_imgRotArr = []
        self.m_imgScaleMM = []
        self.m_nImgs = 0

        self.m_loadImgsToGfxCard = []
        self.m_imgL_changed = True ##  trigger initTex (also  for wmpty imgList !!!) #False

        self.m_doViewportChange = True
        self.m_zoomChanged = True # // trigger a first placing of image
        self.m_sizeChanged = True 
        self.m_originLeftBottom = True
        self.m_positionsChanged = True
        
        self.m_hideTheseImages = [] # 20051208

        #20040308  lb = self.m_imgPosArr[0]
        self.x00 = 0#20040308  - lb[0] +10
        self.y00 = 0#20040308  - lb[1] +10
        #007 print self.x00, self.y00

        self.m_x0=self.x00
        self.m_y0=self.y00
        self.m_scale=1
        self.m_aspectRatio = 1.
        self.m_rot = 0

        self.colMap = None
        self.m_minHistScale = 0
        self.m_maxHistScale = 100

        self.m_init   = False
        self.m_gllist = None
        self.m_texture_list = []
        self.m_moreGlLists = []
        self.m_moreGlLists_enabled = []
        self.m_moreMaster_enabled = True

        self.m_gllist_Changed = False # call defGlList() from OnPaint

        self.m_wheelFactor = 2
        self.m_zoomDragFactor = 1.05

        #//note:"ToolTip just annoys"  SetToolTip(wx.String::Format("cam %d", camId))
        #20041118 self.SetCursor(wx.CROSS_CURSOR)
        #20041202(just use defaultArrow)  self.SetCursor( wx.StockCursor(wx.CURSOR_BULLSEYE) )

        wx.EVT_PAINT(self, self.OnPaint)
        wx.EVT_ERASE_BACKGROUND(self, lambda evt: evt) # Do nothing, to avoid flashing
        #wx.EVT_SIZE(parent, self.OnSize)
        wx.EVT_SIZE(self, self.OnSize)
        #wx.EVT_MOVE(parent, self.OnMove) # CHECK

        #EVT_MIDDLE_DOWN(self, self.OnMiddleDown)
        wx.EVT_MOUSE_EVENTS(self, self.OnMouse)

        wx.EVT_MOUSEWHEEL(self, self.OnWheel)

        self.MakePopupMenu()

        ###          wx.Yield() # setImage has gl-calls - so lets make the window first...
        ###          self.setImage(imgArr)

        if keyTargetWin is not None:
            self.keyTargetWin = keyTargetWin
            #      m_pMenuPopup = new wx.Menu
            wx.EVT_KEY_DOWN(self, self.OnKey)
Esempio n. 26
0
    def init(self, parent):
        """ Finishes initializing the editor by creating the underlying toolkit
            widget.
        """
        factory = self.factory

        # Establish the range of the slider:
        low_name = high_name = ''
        low, high = factory.low, factory.high
        if high <= low:
            low = high = None
            handler = self.object.trait(self.name).handler
            if isinstance(handler, BaseRange):
                low_name, high_name = handler._low_name, handler._high_name

                if low_name == '':
                    low = handler._low

                if high_name == '':
                    high = handler._high

            elif isinstance(handler, BaseEnum):
                if handler.name == '':
                    self.mapping = handler.values
                else:
                    self.sync_value(handler.name, 'mapping', 'from')

                low, high = 0, self.high

        # Create the control:
        self.control = control = wx.Window(parent,
                                           -1,
                                           size=wx.Size(50, 18),
                                           style=wx.FULL_REPAINT_ON_RESIZE
                                           | wx.TAB_TRAVERSAL)

        # Set up the painting event handlers:
        wx.EVT_ERASE_BACKGROUND(control, self._erase_background)
        wx.EVT_PAINT(control, self._on_paint)
        wx.EVT_SET_FOCUS(control, self._set_focus)

        # Set up mouse event handlers:
        wx.EVT_LEAVE_WINDOW(control, self._leave_window)
        wx.EVT_ENTER_WINDOW(control, self._enter_window)
        wx.EVT_LEFT_DOWN(control, self._left_down)
        wx.EVT_LEFT_UP(control, self._left_up)
        wx.EVT_MOTION(control, self._motion)
        wx.EVT_MOUSEWHEEL(control, self._mouse_wheel)

        # Set up the control resize handler:
        wx.EVT_SIZE(control, self._resize)

        # Set the tooltip:
        self._can_set_tooltip = (not self.set_tooltip())

        # Save the values we calculated:
        self.set(low=low, high=high)
        self.sync_value(low_name, 'low', 'from')
        self.sync_value(high_name, 'high', 'from')

        # Force a reset (in case low = high = None, which won't cause a
        # notification to fire):
        self._reset_scrubber()
Esempio n. 27
0
    def __init__(self, parent, dstack=None):
        viewpanel.ViewPanel.__init__(self, parent, -1)

        if (dstack is None):
            self.ds = example.CDataStack("test.kdf")
        else:
            self.ds = dstack

        self.imagepanel.SetVirtualSize(
            wx.Size(self.ds.getWidth(), self.ds.getHeight()))
        self.imagepanel.SetSize((self.ds.getWidth(), self.ds.getHeight()))

        self.do = example.CDisplayOpts()
        self.do.setDisp1Chan(0)
        self.do.setDisp2Chan(0)
        self.do.setDisp3Chan(0)

        if (self.ds.getNumChannels() >= 2):
            self.do.setDisp2Chan(1)
            if (self.ds.getNumChannels() >= 3):
                self.do.setDisp1Chan(2)

        self.do.Optimise(self.ds)

        self.rend = example.CLUT_RGBRenderer()
        self.rend.setDispOpts(self.do)

        self.cbRedChan.Append("<none>")
        self.cbGreenChan.Append("<none>")
        self.cbBlueChan.Append("<none>")

        for i in range(self.ds.getNumChannels()):
            self.cbRedChan.Append(self.ds.getChannelName(i))
            self.cbGreenChan.Append(self.ds.getChannelName(i))
            self.cbBlueChan.Append(self.ds.getChannelName(i))

        self.scale = 2
        self.crosshairs = True
        self.selection = True

        self.ResetSelection()

        self.SetOpts()
        self.updating = 0
        self.showOptsPanel = 1

        wx.EVT_PAINT(self.imagepanel, self.OnPaint)
        wx.EVT_MOUSEWHEEL(self, self.OnWheel)
        wx.EVT_KEY_DOWN(self.imagepanel, self.OnKeyPress)
        wx.EVT_LEFT_UP(self.imagepanel, self.OnLeftClick)

        wx.EVT_RIGHT_DOWN(self.imagepanel, self.OnRightDown)
        wx.EVT_RIGHT_UP(self.imagepanel, self.OnRightUp)

        wx.EVT_COMBOBOX(self, self.cbRedChan.GetId(), self.GetOpts)
        wx.EVT_COMBOBOX(self, self.cbGreenChan.GetId(), self.GetOpts)
        wx.EVT_COMBOBOX(self, self.cbBlueChan.GetId(), self.GetOpts)
        wx.EVT_COMBOBOX(self, self.cbSlice.GetId(), self.GetOpts)
        wx.EVT_COMBOBOX(self, self.cbScale.GetId(), self.GetOpts)

        wx.EVT_TEXT(self, self.tRedGain.GetId(), self.GetOpts)
        wx.EVT_TEXT(self, self.tRedOff.GetId(), self.GetOpts)
        wx.EVT_TEXT(self, self.tGreenGain.GetId(), self.GetOpts)
        wx.EVT_TEXT(self, self.tGreenOff.GetId(), self.GetOpts)
        wx.EVT_TEXT(self, self.tBlueGain.GetId(), self.GetOpts)
        wx.EVT_TEXT(self, self.tBlueOff.GetId(), self.GetOpts)

        wx.EVT_BUTTON(self, self.bOptimise.GetId(), self.Optim)
        wx.EVT_BUTTON(self, self.bShowOpts.GetId(), self.ShowOpts)

        wx.EVT_ERASE_BACKGROUND(self.imagepanel, self.DoNix)
        wx.EVT_ERASE_BACKGROUND(self, self.DoNix)
Esempio n. 28
0
    def __init__(self, parent):
        attriblist = [
            wx.glcanvas.WX_GL_RGBA, wx.glcanvas.WX_GL_STENCIL_SIZE, 8,
            wx.glcanvas.WX_GL_DOUBLEBUFFER, 16
        ]
        GLCanvas.__init__(self, parent, -1, attribList=attriblist)
        wx.EVT_PAINT(self, self.OnPaint)
        wx.EVT_SIZE(self, self.OnSize)
        wx.EVT_MOUSEWHEEL(self, self.OnWheel)
        wx.EVT_LEFT_DOWN(self, self.OnLeftDown)
        wx.EVT_LEFT_UP(self, self.OnLeftUp)
        wx.EVT_MIDDLE_DOWN(self, self.OnMiddleDown)
        wx.EVT_MIDDLE_UP(self, self.OnMiddleUp)
        wx.EVT_RIGHT_DOWN(self, self.OnMiddleDown)
        wx.EVT_RIGHT_UP(self, self.OnMiddleUp)
        wx.EVT_MOTION(self, self.OnMouseMove)
        wx.EVT_KEY_DOWN(self, self.OnKeyPress)
        #wx.EVT_MOVE(self, self.OnMove)
        self.gl_context = wx.glcanvas.GLContext(self)

        self.nVertices = 0
        self.IScale = [1.0, 1.0, 1.0]
        self.zeroPt = [0, 1.0 / 3, 2.0 / 3]
        self.cmap = pylab.cm.hsv
        self.clim = [0, 1]
        self.alim = [0, 1]

        self.displayMode = '2D'  #3DPersp' #one of 3DPersp, 3DOrtho, 2D

        self.wireframe = False

        self.parent = parent

        self.pointSize = 5  #default point size = 5nm

        #self.pixelsize = 5./800

        #self.xmin =0
        #self.xmax = self.pixelsize*self.Size[0]
        #self.ymin = 0
        #self.ymax = self.pixelsize*self.Size[1]

        self.scaleBarLength = 1000

        self.scaleBarOffset = (10, 10)  #pixels from corner
        self.scaleBarDepth = 10.0  #pixels
        self.scaleBarColour = [1, 1, 0]

        self.centreCross = False

        self.LUTDraw = True

        self.mode = 'triang'

        self.colouring = 'area'

        self.drawModes = {
            'triang': GL_TRIANGLES,
            'quads': GL_QUADS,
            'edges': GL_LINES,
            'points': GL_POINTS
        }

        self.c = numpy.array([1, 1, 1])
        self.a = numpy.array([1, 1, 1])
        self.zmin = -10
        self.zmax = 10

        self.angup = 0
        self.angright = 0

        self.vecUp = numpy.array([0, 1, 0])
        self.vecRight = numpy.array([1, 0, 0])
        self.vecBack = numpy.array([0, 0, 1])

        self.xc = 0
        self.yc = 0
        self.zc = 0

        self.zc_o = 0

        self.sx = 100
        self.sy = 100

        self.scale = 1
        self.stereo = False

        self.eye_dist = .01

        self.dragging = False
        self.panning = False

        self.edgeThreshold = 20

        self.selectionSettings = SelectionSettings()
        self.selectionDragging = False

        self.layers = []
        self.overlays = []

        self.messageOverlay = MessageOverlay()
        self.overlays.append(self.messageOverlay)
        self.wantViewChangeNotification = WeakSet()
        self.pointSelectionCallbacks = []

        return
Esempio n. 29
0
    def __init__(self, presenter, parent, ID):
        wx.html.HtmlWindow.__init__(self, parent, ID)
        self.presenter = presenter

        self.presenterListener = wxKeyFunctionSink((
                ("loaded current wiki page", self.onLoadedCurrentWikiPage),
                ("reloaded current doc page", self.onReloadedCurrentPage),
                ("opened wiki", self.onOpenedWiki),
                ("closing current wiki", self.onClosingCurrentWiki)
        ), self.presenter.getMiscEvent())
        
        self.__sinkApp = wxKeyFunctionSink((
                ("options changed", self.onOptionsChanged),
        ), wx.GetApp().getMiscEvent())
        
        self.__sinkDocPage = wxKeyFunctionSink((
                ("updated wiki page", self.onUpdatedWikiPage),
                ("changed live text", self.onChangedLiveText)
        ), self.presenter.getCurrentDocPageProxyEvent())

        self.visible = False
        self.outOfSync = True   # HTML content is out of sync with live content
        self.counterResizeIgnore = 0  # How often to ignore a size event
        self.deferredScrollPos = None  # Used by scrollDeferred()

        self.currentLoadedWikiWord = None

        self.anchor = None  # Name of anchor to jump to when view gets visible
        self.contextHref = None  # Link href on which context menu was opened
        
        # TODO Should be changed to presenter as controller
        self.exporterInstance = PluginManager.getExporterTypeDict(
                self.presenter.getMainControl(), False)[u"html_single"][0]\
                (self.presenter.getMainControl())

        self._DEFAULT_FONT_SIZES = self.presenter.getMainControl().presentationExt.INTHTML_FONTSIZES
        
        # TODO More elegantly
        self.exporterInstance.exportType = u"html_previewWX"
        self.exporterInstance.styleSheet = u""
        self.exporterInstance.tempFileSet = TempFileSet()
        self._updateTempFilePrefPath()

        self.exporterInstance.setWikiDocument(
                self.presenter.getWikiDocument())
        self.exporterInstance.setLinkConverter(
                LinkConverterForPreview(self.presenter.getWikiDocument()))

        wx.EVT_KEY_DOWN(self, self.OnKeyDown)
        wx.EVT_KEY_UP(self, self.OnKeyUp)
        wx.EVT_SIZE(self, self.OnSize)

        wx.EVT_MENU(self, GUI_ID.CMD_CLIPBOARD_COPY, self.OnClipboardCopy)
        wx.EVT_MENU(self, GUI_ID.CMD_SELECT_ALL, lambda evt: self.SelectAll())
        wx.EVT_MENU(self, GUI_ID.CMD_ZOOM_IN, lambda evt: self.addZoom(1))
        wx.EVT_MENU(self, GUI_ID.CMD_ZOOM_OUT, lambda evt: self.addZoom(-1))
        wx.EVT_MENU(self, GUI_ID.CMD_ACTIVATE_THIS, self.OnActivateThis)        
        wx.EVT_MENU(self, GUI_ID.CMD_ACTIVATE_NEW_TAB_THIS,
                self.OnActivateNewTabThis)
        wx.EVT_MENU(self, GUI_ID.CMD_ACTIVATE_NEW_TAB_BACKGROUND_THIS,
                self.OnActivateNewTabBackgroundThis)
        wx.EVT_MENU(self, GUI_ID.CMD_ACTIVATE_NEW_WINDOW_THIS,
                self.OnActivateNewWindowThis)

        wx.EVT_MENU(self, GUI_ID.CMD_OPEN_CONTAINING_FOLDER_THIS,
                self.OnOpenContainingFolderThis)

        self.Bind(wx.EVT_SET_FOCUS, self.OnSetFocus)
        wx.EVT_LEFT_DCLICK(self, self.OnLeftDClick)
        wx.EVT_MIDDLE_DOWN(self, self.OnMiddleDown)
        wx.EVT_MOUSEWHEEL(self, self.OnMouseWheel)
        wx.EVT_MOTION(self, self.OnMouseMotion)
Esempio n. 30
0
    def __init__(self,
                 parent,
                 wid=-1,
                 pos=wx.DefaultPosition,
                 size=wx.DefaultSize,
                 **traits):
        AbstractWindow.__init__(self, **traits)
        self._timer = None
        self._mouse_captured = False

        # Due to wx wonkiness, we don't reliably get cursor position from
        # a wx KeyEvent.  Thus, we manually keep track of when we last saw
        # the mouse and use that information instead.  These coordinates are
        # in the wx coordinate space, i.e. pre-self._flip_y().
        self._last_mouse_pos = (0, 0)

        # Create the delegate:
        self.control = control = self._create_control(parent, wid, pos, size)

        # Set up the 'erase background' event handler:
        wx.EVT_ERASE_BACKGROUND(control, self._on_erase_background)

        # Set up the 'paint' event handler:
        wx.EVT_PAINT(control, self._paint)
        wx.EVT_SIZE(control, self._on_size)

        # Set up mouse event handlers:
        wx.EVT_LEFT_DOWN(control, self._on_left_down)
        wx.EVT_LEFT_UP(control, self._on_left_up)
        wx.EVT_LEFT_DCLICK(control, self._on_left_dclick)
        wx.EVT_MIDDLE_DOWN(control, self._on_middle_down)
        wx.EVT_MIDDLE_UP(control, self._on_middle_up)
        wx.EVT_MIDDLE_DCLICK(control, self._on_middle_dclick)
        wx.EVT_RIGHT_DOWN(control, self._on_right_down)
        wx.EVT_RIGHT_UP(control, self._on_right_up)
        wx.EVT_RIGHT_DCLICK(control, self._on_right_dclick)
        wx.EVT_MOTION(control, self._on_mouse_move)
        wx.EVT_ENTER_WINDOW(control, self._on_window_enter)
        wx.EVT_LEAVE_WINDOW(control, self._on_window_leave)
        wx.EVT_MOUSEWHEEL(control, self._on_mouse_wheel)

        # Handle key up/down events:
        wx.EVT_KEY_DOWN(control, self._on_key_pressed)
        wx.EVT_KEY_UP(control, self._on_key_released)
        wx.EVT_CHAR(control, self._on_character)

        # Attempt to allow wxPython drag and drop events to be mapped to
        # Enable drag events:

        # Handle window close and cleanup
        wx.EVT_WINDOW_DESTROY(control, self._on_close)

        if PythonDropTarget is not None:
            control.SetDropTarget(LessSuckyDropTarget(self))
            self._drag_over = []

        # In some cases, on the Mac at least, we never get an initial EVT_SIZE
        # since the initial size is correct. Because of this we call _on_size
        # here to initialize our bounds.
        self._on_size(None)

        return