Example #1
0
    def __init__(self, figure):
        if _debug: print('FigureCanvasGTK3.%s' % fn_name())
        FigureCanvasBase.__init__(self, figure)
        GObject.GObject.__init__(self)

        self._idle_draw_id  = 0
        self._need_redraw   = True
        self._lastCursor    = None

        self.connect('scroll_event',         self.scroll_event)
        self.connect('button_press_event',   self.button_press_event)
        self.connect('button_release_event', self.button_release_event)
        self.connect('configure_event',      self.configure_event)
        self.connect('draw',                 self.on_draw_event)
        self.connect('key_press_event',      self.key_press_event)
        self.connect('key_release_event',    self.key_release_event)
        self.connect('motion_notify_event',  self.motion_notify_event)
        self.connect('leave_notify_event',   self.leave_notify_event)
        self.connect('enter_notify_event',   self.enter_notify_event)
        self.connect('size_allocate',        self.size_allocate)

        self.set_events(self.__class__.event_mask)

        self.set_double_buffered(True)
        self.set_can_focus(True)
        self._renderer_init()
        self._idle_event_id = GLib.idle_add(self.idle_event)
        default_context = GLib.main_context_get_thread_default() or GLib.main_context_default()
        self._idle_event_source = default_context.find_source_by_id(self._idle_event_id)
Example #2
0
 def __init__(self, figure):
     if _figure_ports['count'] >= FIGURE_LIMIT:
         logger.warning("Figure limit of %i reached. Returning NULL figure" % FIGURE_LIMIT)
         return None
     FigureCanvasBase.__init__(self, figure)
     self.frame_count = 0
     self._user_event = None
     self._user_cmd_ret = None
     self._server_port = new_web_port()
     self._request_handlers = {}
     self._frame = None
     self._header = ""
     self._home_x = {}
     self._home_y = {}
     self._zoomed = False
     self._panned = False
     self._first_frame = True
     self._custom_content = None
     self._width, self._height = self.get_width_height()
     self.flip = Affine2D().scale(1, -1).translate(0, self._height)
     logger.debug("Initialising figure of width: %i, height: %i" % (self._width, self._height))
     logger.debug("Creating canvas web server on port %i" % self._server_port)
     try:
         self._server = simple_server.WebSocketServer(('', self._server_port), self.web_socket_transfer_data, simple_server.WebSocketRequestHandler)
         self._thread = thread.start_new_thread(self._server.serve_forever, ())
         register_web_server(self._server_port, self)
     except Exception, e:
         logger.error("Failed to create webserver. (%s)" % str(e))
         sys.exit(1)
Example #3
0
    def __init__(self, figure):
        FigureCanvasBase.__init__(self, figure)
        gtk.DrawingArea.__init__(self)
        
        self._idleID        = 0
        self._draw_pixmap   = True
        self._pixmap_width  = -1
        self._pixmap_height = -1

        self._lastCursor = None

        self.set_flags(gtk.CAN_FOCUS)
        self.grab_focus()
        self.set_double_buffered(False)

        self.connect('key_press_event',      self.key_press_event)
        self.connect('key_release_event',    self.key_release_event)
        self.connect('expose_event',         self.expose_event)
        self.connect('configure_event',      self.configure_event)
        self.connect('motion_notify_event',  self.motion_notify_event)
        self.connect('button_press_event',   self.button_press_event)
        self.connect('button_release_event', self.button_release_event)

        self.set_events(
            #gdk.FOCUS_CHANGE_MASK  |
            gdk.KEY_PRESS_MASK      |
            gdk.KEY_RELEASE_MASK    |
            gdk.EXPOSURE_MASK       |
            gdk.LEAVE_NOTIFY_MASK   |
            gdk.BUTTON_PRESS_MASK   |
            gdk.BUTTON_RELEASE_MASK |
            gdk.POINTER_MOTION_MASK  )

        self._renderer_init()
Example #4
0
    def __init__(self, figure):
        if _debug: print 'FigureCanvasGTK3.%s' % fn_name()
        FigureCanvasBase.__init__(self, figure)
        GObject.GObject.__init__(self)

        self._idle_draw_id  = 0
        self._need_redraw   = True
        self._lastCursor    = None

        self.connect('scroll_event',         self.scroll_event)
        self.connect('button_press_event',   self.button_press_event)
        self.connect('button_release_event', self.button_release_event)
        self.connect('configure_event',      self.configure_event)
        self.connect('draw',                 self.on_draw_event)
        self.connect('key_press_event',      self.key_press_event)
        self.connect('key_release_event',    self.key_release_event)
        self.connect('motion_notify_event',  self.motion_notify_event)
        self.connect('leave_notify_event',   self.leave_notify_event)
        self.connect('enter_notify_event',   self.enter_notify_event)

        self.set_events(self.__class__.event_mask)

        self.set_double_buffered(True)
        self.set_can_focus(True)
        self._renderer_init()
        self._idle_event_id = GObject.idle_add(self.idle_event)
Example #5
0
    def __init__(self, figure):
        FigureCanvasBase.__init__(self, figure)
        GObject.GObject.__init__(self)

        self._idle_draw_id  = 0
        self._lastCursor    = None

        self.connect('scroll_event',         self.scroll_event)
        self.connect('button_press_event',   self.button_press_event)
        self.connect('button_release_event', self.button_release_event)
        self.connect('configure_event',      self.configure_event)
        self.connect('draw',                 self.on_draw_event)
        self.connect('key_press_event',      self.key_press_event)
        self.connect('key_release_event',    self.key_release_event)
        self.connect('motion_notify_event',  self.motion_notify_event)
        self.connect('leave_notify_event',   self.leave_notify_event)
        self.connect('enter_notify_event',   self.enter_notify_event)
        self.connect('size_allocate',        self.size_allocate)

        self.set_events(self.__class__.event_mask)

        self.set_double_buffered(True)
        self.set_can_focus(True)
        self._renderer_init()
        default_context = GLib.main_context_get_thread_default() or GLib.main_context_default()
Example #6
0
    def __init__(self, figure):
        FigureCanvasBase.__init__(self, figure)
        # print "Init of Canvas called....",figure
        self.frame_count = 0
        global figure_number
        self.figure_number = figure_number
        figure_number += 1
        self._clients = set()
        self._frame = None
        self._header = ""
        self._home_x = {}
        self._home_y = {}
        self._zoomed = False
        self._first_frame = True
        self._width, self._height = self.get_width_height()
        self.flip = Affine2D().scale(1, -1).translate(0, self._height)

        # Start WebSocket server
        try:
            self._server = websocket.WebSocketApp(
                "ws://" + HOST + ":" + PORT + "/client/" + SESSION_ID,
                on_open=self.web_socket_open,
                on_message=self.web_socket_message,
                on_close=self.web_socket_close,
                on_error=self.web_socket_close,
            )
            self._thread = thread.start_new_thread(self._server.run_forever, ())
        except Exception, e:
            print "Failed to create websocket server. (%s)" % str(e)
            # sys.exit(1)
            raise e
Example #7
0
    def __init__( self, figure ):
        if DEBUG: print('FigureCanvasQt: ', figure)
        _create_qApp()

        QtGui.QWidget.__init__( self )
        FigureCanvasBase.__init__( self, figure )
        self.figure = figure
        self.setMouseTracking( True )
        self._idle = True
        # hide until we can test and fix
        #self.startTimer(backend_IdleEvent.milliseconds)
        w,h = self.get_width_height()
        self.resize( w, h )

        # JDH: Note the commented out code below does not work as
        # expected, because according to Pierre Raybaut, The reason is
        # that PyQt fails (silently) to call a method of this object
        # just before detroying it. Using a lambda function will work,
        # exactly the same as using a function (which is not bound to
        # the object to be destroyed).
        #
        #QtCore.QObject.connect(self, QtCore.SIGNAL('destroyed()'),
        #    self.close_event)
        QtCore.QObject.connect(self, QtCore.SIGNAL('destroyed()'),
                               lambda: self.close_event())
Example #8
0
    def __init__(self, figure):
        if _debug: print 'FigureCanvasGTK.%s' % fn_name()
        FigureCanvasBase.__init__(self, figure)
        gtk.DrawingArea.__init__(self)

        self._idle_draw_id  = 0
        self._need_redraw   = True
        self._pixmap_width  = -1
        self._pixmap_height = -1
        self._lastCursor    = None

        self.connect('scroll_event',         self.scroll_event)
        self.connect('button_press_event',   self.button_press_event)
        self.connect('button_release_event', self.button_release_event)
        self.connect('configure_event',      self.configure_event)
        self.connect('expose_event',         self.expose_event)
        self.connect('key_press_event',      self.key_press_event)
        self.connect('key_release_event',    self.key_release_event)
        self.connect('motion_notify_event',  self.motion_notify_event)
        self.connect('leave_notify_event',   self.leave_notify_event)
        self.connect('enter_notify_event',   self.enter_notify_event)

        self.set_events(self.__class__.event_mask)

        self.set_double_buffered(False)
        self.set_flags(gtk.CAN_FOCUS)
        self._renderer_init()

        self._idle_event_id = gobject.idle_add(self.idle_event)
Example #9
0
    def __init__(self, figure):
        if _debug: print 'FigureCanvasGTK.%s' % fn_name()
        FigureCanvasBase.__init__(self, figure)
        gtk.DrawingArea.__init__(self)

        self._idleID        = 0
        self._need_redraw   = True
        self._pixmap_width  = -1
        self._pixmap_height = -1
        self._lastCursor    = None

        self.connect('button_press_event',   self.button_press_event)
        self.connect('button_release_event', self.button_release_event)
        self.connect('configure_event',      self.configure_event)
        self.connect('expose_event',         self.expose_event)
        self.connect('key_press_event',      self.key_press_event)
        self.connect('key_release_event',    self.key_release_event)
        self.connect('motion_notify_event',  self.motion_notify_event)

        self.set_events(
            gdk.BUTTON_PRESS_MASK   |
            gdk.BUTTON_RELEASE_MASK |
            gdk.EXPOSURE_MASK       |
            gdk.KEY_PRESS_MASK      |
            gdk.KEY_RELEASE_MASK    |
            gdk.LEAVE_NOTIFY_MASK   |
            gdk.POINTER_MOTION_MASK |
            gdk.POINTER_MOTION_HINT_MASK)

        self.set_double_buffered(False)
        self.set_flags(gtk.CAN_FOCUS)
        self._renderer_init()
Example #10
0
    def __init__(self, figure):
        if _debug:
            print "FigureCanvasGTK.%s" % fn_name()
        FigureCanvasBase.__init__(self, figure)
        gtk.DrawingArea.__init__(self)

        self._idleID = 0
        self._need_redraw = True
        self._pixmap_width = -1
        self._pixmap_height = -1
        self._lastCursor = None

        self.connect("scroll_event", self.scroll_event)
        self.connect("button_press_event", self.button_press_event)
        self.connect("button_release_event", self.button_release_event)
        self.connect("configure_event", self.configure_event)
        self.connect("expose_event", self.expose_event)
        self.connect("key_press_event", self.key_press_event)
        self.connect("key_release_event", self.key_release_event)
        self.connect("motion_notify_event", self.motion_notify_event)

        self.set_events(self.__class__.event_mask)

        self.set_double_buffered(False)
        self.set_flags(gtk.CAN_FOCUS)
        self._renderer_init()
Example #11
0
 def __init__( self, figure ):
     if DEBUG: print 'FigureCanvasQt: ', figure
     _create_qApp()
     qt.QWidget.__init__( self, None, "QWidget figure" )
     FigureCanvasBase.__init__( self, figure )
     self.figure = figure
     self.setMouseTracking( True )
     w,h = self.get_width_height()
     self.resize( w, h )
Example #12
0
 def __init__( self, figure ):
     if DEBUG: print 'FigureCanvasQt: ', figure
     _create_qApp()
     QtGui.QWidget.__init__( self )
     FigureCanvasBase.__init__( self, figure )
     self.figure = figure
     self.setMouseTracking( True )
     self._idle = True
     w,h = self.get_width_height()
     self.resize( w, h )
Example #13
0
    def __init__(self, figure):
        if DEBUG:
            print "FigureCanvasQt: ", figure
        FigureCanvasBase.__init__(self, figure)
        qt.QWidget.__init__(self, None, "QWidget figure")
        self.figure = figure
        self.setMouseTracking(True)

        w, h = self.figure.get_width_height()
        self.resize(w, h)
Example #14
0
 def __init__(self, figure):
     FigureCanvasBase.__init__(self, figure)
     if self.__class__ == matplotlib.backends.backend_gdk.FigureCanvasGDK:
         warn_deprecated('2.0', message="The GDK backend is "
                         "deprecated. It is untested, known to be "
                         "broken and will be removed in Matplotlib 2.2. "
                         "Use the Agg backend instead. "
                         "See Matplotlib usage FAQ for"
                         " more info on backends.",
                         alternative="Agg")
     self._renderer_init()
Example #15
0
    def __init__( self, figure ):
        if DEBUG: print 'FigureCanvasQt: ', figure
        _create_qApp()

        QtGui.QWidget.__init__( self )
        FigureCanvasBase.__init__( self, figure )
        self.figure = figure
        self.setMouseTracking( True )
        # hide until we can test and fix
        #self.startTimer(backend_IdleEvent.milliseconds)
        w,h = self.get_width_height()
        self.resize( w, h )
Example #16
0
 def __init__( self, figure ):
     if DEBUG: print 'FigureCanvasQt: ', figure
     _create_qApp()
     QtGui.QWidget.__init__( self )
     FigureCanvasBase.__init__( self, figure )
     self.figure = figure
     self.setMouseTracking( True )
     self._idle = True
     w,h = self.get_width_height()
     self.resize( w, h )
     QtCore.QObject.connect(self, QtCore.SIGNAL('destroyed()'),
         self.close_event)
Example #17
0
    def __init__(self, figure):
        if DEBUG:
            print('FigureCanvasQt qt4: ', figure)
        _create_qApp()

        # Note different super-calling style to backend_qt5
        QtWidgets.QWidget.__init__(self)
        FigureCanvasBase.__init__(self, figure)
        self.figure = figure
        self.setMouseTracking(True)
        self._idle = True
        w, h = self.get_width_height()
        self.resize(w, h)
Example #18
0
    def __init__(self, figure):
        if DEBUG:
            print("FigureCanvasQt qt4: ", figure)
        _create_qApp()

        # Note different super-calling style to backend_qt5
        QtWidgets.QWidget.__init__(self)
        FigureCanvasBase.__init__(self, figure)
        self.figure = figure
        self.setMouseTracking(True)
        self._idle = True
        # hide until we can test and fix
        # self.startTimer(backend_IdleEvent.milliseconds)
        w, h = self.get_width_height()
        self.resize(w, h)
Example #19
0
    def __init__( self, figure ):
        if DEBUG: print 'FigureCanvasQt: ', figure

        QtGui.QWidget.__init__( self )
        FigureCanvasBase.__init__( self, figure )
        self.figure = figure
        self.setMouseTracking( True )
        self._idle = True
        # hide until we can test and fix
        #self.startTimer(backend_IdleEvent.milliseconds)
        w,h = self.get_width_height()
        self.resize( w, h )

        QtCore.QObject.connect(self, QtCore.SIGNAL('destroyed()'),
            self.close_event)
Example #20
0
    def __init__(self, figure):
        if DEBUG:
            print('FigureCanvasQt qt4: ', figure)
        _create_qApp()

        # Note different super-calling style to backend_qt5
        QtWidgets.QWidget.__init__(self)
        FigureCanvasBase.__init__(self, figure)
        self.figure = figure
        self.setMouseTracking(True)
        self._idle = True
        w, h = self.get_width_height()
        self.resize(w, h)

        # Key auto-repeat enabled by default
        self._keyautorepeat = True
Example #21
0
    def __init__(self, figure):
        if DEBUG: print('FigureCanvasQt: ', figure)
        _create_qApp()

        QtGui.QWidget.__init__(self)
        FigureCanvasBase.__init__(self, figure)
        self.figure = figure
        self.setMouseTracking(True)
        self._idle = True
        # hide until we can test and fix
        #self.startTimer(backend_IdleEvent.milliseconds)
        w, h = self.get_width_height()
        self.resize(w, h)

        QtCore.QObject.connect(self, QtCore.SIGNAL('destroyed()'),
                               self.close_event)
Example #22
0
    def __init__(self, figure):
        if DEBUG:
            print('FigureCanvasQt: ', figure)
        _create_qApp()

        if QT5:
            # PyQt5 wants figure= ... why? :)
            QtGui.QWidget.__init__(self, figure=figure)
        else:
            QtGui.QWidget.__init__(self)
        FigureCanvasBase.__init__(self, figure)
        self.figure = figure
        self.setMouseTracking(True)
        self._idle = True
        # hide until we can test and fix
        #self.startTimer(backend_IdleEvent.milliseconds)
        w, h = self.get_width_height()
        self.resize(w, h)
    def __init__(self, figure=None):
        FigureCanvasBase.__init__(self, figure)
        GObject.GObject.__init__(self)
        self.set_hexpand(True)
        self.set_vexpand(True)

        self._idle_draw_id = 0
        self._lastCursor = None
        self._rubberband_rect = None

        self.set_draw_func(self._draw_func)
        self.connect('resize', self.resize_event)
        self.connect('notify::scale-factor', self._update_device_pixel_ratio)

        click = Gtk.GestureClick()
        click.set_button(0)  # All buttons.
        click.connect('pressed', self.button_press_event)
        click.connect('released', self.button_release_event)
        self.add_controller(click)

        key = Gtk.EventControllerKey()
        key.connect('key-pressed', self.key_press_event)
        key.connect('key-released', self.key_release_event)
        self.add_controller(key)

        motion = Gtk.EventControllerMotion()
        motion.connect('motion', self.motion_notify_event)
        motion.connect('enter', self.enter_notify_event)
        motion.connect('leave', self.leave_notify_event)
        self.add_controller(motion)

        scroll = Gtk.EventControllerScroll.new(
            Gtk.EventControllerScrollFlags.VERTICAL)
        scroll.connect('scroll', self.scroll_event)
        self.add_controller(scroll)

        self.set_focusable(True)

        css = Gtk.CssProvider()
        css.load_from_data(b".matplotlib-canvas { background-color: white; }")
        style_ctx = self.get_style_context()
        style_ctx.add_provider(css, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION)
        style_ctx.add_class("matplotlib-canvas")
Example #24
0
    def __init__(self, parent, id, figure=None):
        """
        Initialize a FigureWx instance.

        - Initialize the FigureCanvasBase and wxPanel parents.
        - Set event handlers for resize, paint, and keyboard and mouse
          interaction.
        """

        FigureCanvasBase.__init__(self, figure)
        w, h = map(math.ceil, self.figure.bbox.size)
        # Set preferred window size hint - helps the sizer, if one is connected
        wx.Panel.__init__(self, parent, id, size=wx.Size(w, h))
        # Create the drawing bitmap
        self.bitmap = wx.Bitmap(w, h)
        _log.debug("%s - __init__() - bitmap w:%d h:%d", type(self), w, h)
        self._isDrawn = False
        self._rubberband_rect = None

        self.Bind(wx.EVT_SIZE, self._onSize)
        self.Bind(wx.EVT_PAINT, self._onPaint)
        self.Bind(wx.EVT_CHAR_HOOK, self._onKeyDown)
        self.Bind(wx.EVT_KEY_UP, self._onKeyUp)
        self.Bind(wx.EVT_LEFT_DOWN, self._onMouseButton)
        self.Bind(wx.EVT_LEFT_DCLICK, self._onMouseButton)
        self.Bind(wx.EVT_LEFT_UP, self._onMouseButton)
        self.Bind(wx.EVT_MIDDLE_DOWN, self._onMouseButton)
        self.Bind(wx.EVT_MIDDLE_DCLICK, self._onMouseButton)
        self.Bind(wx.EVT_MIDDLE_UP, self._onMouseButton)
        self.Bind(wx.EVT_RIGHT_DOWN, self._onMouseButton)
        self.Bind(wx.EVT_RIGHT_DCLICK, self._onMouseButton)
        self.Bind(wx.EVT_RIGHT_UP, self._onMouseButton)
        self.Bind(wx.EVT_MOUSEWHEEL, self._onMouseWheel)
        self.Bind(wx.EVT_MOTION, self._onMotion)
        self.Bind(wx.EVT_LEAVE_WINDOW, self._onLeave)
        self.Bind(wx.EVT_ENTER_WINDOW, self._onEnter)

        self.Bind(wx.EVT_MOUSE_CAPTURE_CHANGED, self._onCaptureLost)
        self.Bind(wx.EVT_MOUSE_CAPTURE_LOST, self._onCaptureLost)

        self.SetBackgroundStyle(wx.BG_STYLE_PAINT)  # Reduce flicker.
        self.SetBackgroundColour(wx.WHITE)
Example #25
0
    def __init__(self, figure=None):
        FigureCanvasBase.__init__(self, figure)
        GObject.GObject.__init__(self)

        self._idle_draw_id = 0
        self._lastCursor = None
        self._rubberband_rect = None

        self.connect('scroll_event', self.scroll_event)
        self.connect('button_press_event', self.button_press_event)
        self.connect('button_release_event', self.button_release_event)
        self.connect('configure_event', self.configure_event)
        self.connect('draw', self.on_draw_event)
        self.connect('draw', self._post_draw)
        self.connect('key_press_event', self.key_press_event)
        self.connect('key_release_event', self.key_release_event)
        self.connect('motion_notify_event', self.motion_notify_event)
        self.connect('leave_notify_event', self.leave_notify_event)
        self.connect('enter_notify_event', self.enter_notify_event)
        self.connect('size_allocate', self.size_allocate)

        self.set_events(self.__class__.event_mask)

        self.set_can_focus(True)

        css = Gtk.CssProvider()
        css.load_from_data(b".matplotlib-canvas { background-color: white; }")
        style_ctx = self.get_style_context()
        style_ctx.add_provider(css, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION)
        style_ctx.add_class("matplotlib-canvas")

        renderer_init = _api.deprecate_method_override(
            __class__._renderer_init,
            self,
            allow_empty=True,
            since="3.3",
            addendum="Please initialize the renderer, if needed, in the "
            "subclass' __init__; a fully empty _renderer_init implementation "
            "may be kept for compatibility with earlier versions of "
            "Matplotlib.")
        if renderer_init:
            renderer_init()
Example #26
0
    def __init__(self, figure):
        if self.__class__ == matplotlib.backends.backend_gtk.FigureCanvasGTK:
            warn_deprecated(
                "2.0",
                message="The GTK backend is "
                "deprecated. It is untested, known to be "
                "broken and will be removed in Matplotlib 2.2. "
                "Use the GTKAgg backend instead. "
                "See Matplotlib usage FAQ for"
                " more info on backends.",
                alternative="GTKAgg",
            )
        if _debug:
            print("FigureCanvasGTK.%s" % fn_name())
        FigureCanvasBase.__init__(self, figure)
        gtk.DrawingArea.__init__(self)

        self._idle_draw_id = 0
        self._need_redraw = True
        self._pixmap_width = -1
        self._pixmap_height = -1
        self._lastCursor = None

        self.connect("scroll_event", self.scroll_event)
        self.connect("button_press_event", self.button_press_event)
        self.connect("button_release_event", self.button_release_event)
        self.connect("configure_event", self.configure_event)
        self.connect("expose_event", self.expose_event)
        self.connect("key_press_event", self.key_press_event)
        self.connect("key_release_event", self.key_release_event)
        self.connect("motion_notify_event", self.motion_notify_event)
        self.connect("leave_notify_event", self.leave_notify_event)
        self.connect("enter_notify_event", self.enter_notify_event)

        self.set_events(self.__class__.event_mask)

        self.set_double_buffered(False)
        self.set_flags(gtk.CAN_FOCUS)
        self._renderer_init()

        self.last_downclick = {}
Example #27
0
    def __init__(self, figure):
        FigureCanvasBase.__init__(self, figure)
        gtk.DrawingArea.__init__(self)

        self._idleID = 0  # used in gtkAgg
        self._draw_pixmap = True
        self._pixmap_width = -1
        self._pixmap_height = -1

        self._lastCursor = None

        self.set_flags(gtk.CAN_FOCUS)
        self.grab_focus()
        # widget can take any size, gtk.Window sets default size
        # self.set_size_request (int (figure.bbox.width()),
        #                       int (figure.bbox.height()))

        self.set_double_buffered(False)

        self.connect("key_press_event", self.key_press_event)
        self.connect("key_release_event", self.key_release_event)
        self.connect("expose_event", self.expose_event)
        self.connect("configure_event", self.configure_event)
        self.connect("motion_notify_event", self.motion_notify_event)
        self.connect("button_press_event", self.button_press_event)
        self.connect("button_release_event", self.button_release_event)

        self.set_events(
            # gdk.FOCUS_CHANGE_MASK  |
            gdk.KEY_PRESS_MASK
            | gdk.KEY_RELEASE_MASK
            | gdk.EXPOSURE_MASK
            | gdk.LEAVE_NOTIFY_MASK
            | gdk.BUTTON_PRESS_MASK
            | gdk.BUTTON_RELEASE_MASK
            | gdk.POINTER_MOTION_MASK
        )

        self._renderer_init()
Example #28
0
    def __init__(self, figure):
        FigureCanvasBase.__init__(self, figure)
        gtk.DrawingArea.__init__(self)

        self.set_flags(gtk.CAN_FOCUS)
        self.grab_focus()
        # self.pixmap_width, self.pixmap_height = -1, -1
        self._isRealized = False
        self._gpixmap = None
        self._doplot = True
        self._printQued = []
        self._idleID = 0  # used in gtkagg
        self._new_pixmap = True

        self._button = None  # the button pressed
        self._key = None  # the key pressed
        w = figure.bbox.width()
        h = figure.bbox.height()
        self.set_size_request(int(w), int(h))
        self.set_double_buffered(False)

        self.connect('key_press_event', self.key_press_event)
        self.connect('key_release_event', self.key_release_event)
        self.connect('expose_event', self.expose_event)
        self.connect('configure_event', self.configure_event)
        self.connect('realize', self.realize)
        self.connect('motion_notify_event', self.motion_notify_event)
        self.connect('button_press_event', self.button_press_event)
        self.connect('button_release_event', self.button_release_event)

        self.set_events(
            #gdk.FOCUS_CHANGE_MASK|
            gdk.KEY_PRESS_MASK | gdk.KEY_RELEASE_MASK | gdk.EXPOSURE_MASK
            | gdk.LEAVE_NOTIFY_MASK | gdk.BUTTON_PRESS_MASK
            | gdk.BUTTON_RELEASE_MASK | gdk.POINTER_MOTION_MASK)

        self._lastCursor = None
        colorManager.set_drawing_area(self)
Example #29
0
    def __init__(self, figure):
        if self.__class__ == matplotlib.backends.backend_gtk.FigureCanvasGTK:
            warn_deprecated('2.0',
                            message="The GTK backend is "
                            "deprecated. It is untested, known to be "
                            "broken and will be removed in Matplotlib 2.2. "
                            "Use the GTKAgg backend instead. "
                            "See Matplotlib usage FAQ for"
                            " more info on backends.",
                            alternative="GTKAgg")
        if _debug: print('FigureCanvasGTK.%s' % fn_name())
        FigureCanvasBase.__init__(self, figure)
        gtk.DrawingArea.__init__(self)

        self._idle_draw_id = 0
        self._need_redraw = True
        self._pixmap_width = -1
        self._pixmap_height = -1
        self._lastCursor = None

        self.connect('scroll_event', self.scroll_event)
        self.connect('button_press_event', self.button_press_event)
        self.connect('button_release_event', self.button_release_event)
        self.connect('configure_event', self.configure_event)
        self.connect('expose_event', self.expose_event)
        self.connect('key_press_event', self.key_press_event)
        self.connect('key_release_event', self.key_release_event)
        self.connect('motion_notify_event', self.motion_notify_event)
        self.connect('leave_notify_event', self.leave_notify_event)
        self.connect('enter_notify_event', self.enter_notify_event)

        self.set_events(self.__class__.event_mask)

        self.set_double_buffered(False)
        self.set_flags(gtk.CAN_FOCUS)
        self._renderer_init()

        self.last_downclick = {}
Example #30
0
    def __init__(self, figure):
        FigureCanvasBase.__init__(self, figure)
        gtk.DrawingArea.__init__(self)
        
        self._idleID        = 0      # used in gtkAgg
        self._draw_pixmap   = True
        self._pixmap_width  = -1
        self._pixmap_height = -1

        self._lastCursor = None
        self._button     = None  # the button pressed
        self._key        = None  # the key pressed

        self.set_flags(gtk.CAN_FOCUS)
        self.grab_focus()
        self.set_size_request (int (figure.bbox.width()),
                               int (figure.bbox.height()))
        self.set_double_buffered(False)

        self.connect('key_press_event',      self.key_press_event)
        self.connect('key_release_event',    self.key_release_event)
        self.connect('expose_event',         self.expose_event)
        self.connect('configure_event',      self.configure_event)
        self.connect('motion_notify_event',  self.motion_notify_event)
        self.connect('button_press_event',   self.button_press_event)
        self.connect('button_release_event', self.button_release_event)

        self.set_events(
            #gdk.FOCUS_CHANGE_MASK  |
            gdk.KEY_PRESS_MASK      |
            gdk.KEY_RELEASE_MASK    |
            gdk.EXPOSURE_MASK       |
            gdk.LEAVE_NOTIFY_MASK   |
            gdk.BUTTON_PRESS_MASK   |
            gdk.BUTTON_RELEASE_MASK |
            gdk.POINTER_MOTION_MASK  )

        self._renderer_init()
Example #31
0
    def initWithFrame_figure_(self, frame, fig):
        """ 
        Designated initializer. 
        
        * Parameters * 
            frame : NSRect 
            fig : matplotlib.figure.Figure 
        """

        self = super(FigureCanvasView, self).initWithFrame_(frame)
        if self != None:
            FigureCanvasBase.__init__(self, fig)
            self.renderer = RendererCocoa(self)
            self.manager = None

            # several methods can change the frame,
            # so we'll just observe the common notification
            nc = NSNotificationCenter.defaultCenter()
            nc.addObserver_selector_name_object_(self, "frameChanged:", NSViewFrameDidChangeNotification, self)

            self.updateFigureSize()

        return self
Example #32
0
    def __init__(self, figure):
        FigureCanvasBase.__init__(self, figure)
        GObject.GObject.__init__(self)

        self._idle_draw_id = 0
        self._lastCursor = None
        self._rubberband_rect = None

        self.connect('scroll_event', self.scroll_event)
        self.connect('button_press_event', self.button_press_event)
        self.connect('button_release_event', self.button_release_event)
        self.connect('configure_event', self.configure_event)
        self.connect('draw', self.on_draw_event)
        self.connect('draw', self._post_draw)
        self.connect('key_press_event', self.key_press_event)
        self.connect('key_release_event', self.key_release_event)
        self.connect('motion_notify_event', self.motion_notify_event)
        self.connect('leave_notify_event', self.leave_notify_event)
        self.connect('enter_notify_event', self.enter_notify_event)
        self.connect('size_allocate', self.size_allocate)

        self.set_events(self.__class__.event_mask)

        self.set_double_buffered(True)
        self.set_can_focus(True)

        renderer_init = cbook._deprecate_method_override(
            __class__._renderer_init,
            self,
            allow_empty=True,
            since="3.3",
            addendum="Please initialize the renderer, if needed, in the "
            "subclass' __init__; a fully empty _renderer_init implementation "
            "may be kept for compatibility with earlier versions of "
            "Matplotlib.")
        if renderer_init:
            renderer_init()
Example #33
0
 def __init__(self, figure):
     if _figure_ports['count'] >= FIGURE_LIMIT:
         logger.warning(
             "Figure limit of %i reached. Returning NULL figure" %
             FIGURE_LIMIT)
         return None
     FigureCanvasBase.__init__(self, figure)
     self.frame_count = 0
     self._user_event = None
     self._user_cmd_ret = None
     self._server_port = new_web_port()
     self._request_handlers = {}
     self._frame = None
     self._header = ""
     self._home_x = {}
     self._home_y = {}
     self._zoomed = False
     self._panned = False
     self._first_frame = True
     self._custom_content = None
     self._width, self._height = self.get_width_height()
     self.flip = Affine2D().scale(1, -1).translate(0, self._height)
     logger.debug("Initialising figure of width: %i, height: %i" %
                  (self._width, self._height))
     logger.debug("Creating canvas web server on port %i" %
                  self._server_port)
     try:
         self._server = simple_server.WebSocketServer(
             ('', self._server_port), self.web_socket_transfer_data,
             simple_server.WebSocketRequestHandler)
         self._thread = thread.start_new_thread(self._server.serve_forever,
                                                ())
         register_web_server(self._server_port, self)
     except Exception, e:
         logger.error("Failed to create webserver. (%s)" % str(e))
         sys.exit(1)
    def __init__(self, figure):
        FigureCanvasBase.__init__(self, figure)
        GObject.GObject.__init__(self)

        self._idle_draw_id = 0
        self._lastCursor = None

        self.connect('scroll_event', self.scroll_event)
        self.connect('button_press_event', self.button_press_event)
        self.connect('button_release_event', self.button_release_event)
        self.connect('configure_event', self.configure_event)
        self.connect('draw', self.on_draw_event)
        self.connect('key_press_event', self.key_press_event)
        self.connect('key_release_event', self.key_release_event)
        self.connect('motion_notify_event', self.motion_notify_event)
        self.connect('leave_notify_event', self.leave_notify_event)
        self.connect('enter_notify_event', self.enter_notify_event)
        self.connect('size_allocate', self.size_allocate)

        self.set_events(self.__class__.event_mask)

        self.set_double_buffered(True)
        self.set_can_focus(True)
        self._renderer_init()
 def __init__(self, figure):
     FigureCanvasBase.__init__(self, figure)
     width, height = self.get_width_height()
     self.renderer = RendererMac(figure.dpi, width, height)
     _macosx.FigureCanvas.__init__(self, width, height)
Example #36
0
    def __init__(self, figure):
        FigureCanvasBase.__init__(self, figure)

        self._renderer_init()
Example #37
0
 def __init__(self, figure):
     FigureCanvasBase.__init__(self, figure)
     width, height = self.get_width_height()
     _macosx.FigureCanvas.__init__(self, width, height)
     self._device_scale = 1.0
Example #38
0
 def __init__(self, *args):
     FigureCanvasBase.__init__(self, *args)
Example #39
0
 def __init__(self, figure):
     FigureCanvasBase.__init__(self, figure)
     l, b, w, h = figure.bbox.bounds
     self.imgview = ui.ImageView(frame=(0, 0, w, h))
Example #40
0
 def __init__(self, figure):
     FigureCanvasBase.__init__(self, figure)
     self._pixmap_width  = -1
     self._pixmap_height = -1
     
     self._renderer_init()
Example #41
0
 def __init__(self, figure):
     FigureCanvasBase.__init__(self, figure)
     width, height = self.get_width_height()
     _macosx.FigureCanvas.__init__(self, width, height)
     self._dpi_ratio = 1.0
Example #42
0
    def __init__(self, parent, id, figure):
        """
        Initialise a FigureWx instance.

        - Initialise the FigureCanvasBase and wxPanel parents.
        - Set event handlers for:
          EVT_SIZE  (Resize event)
          EVT_PAINT (Paint event)
        """

        FigureCanvasBase.__init__(self, figure)
        # Set preferred window size hint - helps the sizer (if one is
        # connected)
        l,b,w,h = figure.bbox.bounds
        w = int(math.ceil(w))
        h = int(math.ceil(h))

        wx.Panel.__init__(self, parent, id, size=wx.Size(w, h))

        def do_nothing(*args, **kwargs):
            warnings.warn('could not find a setinitialsize function for backend_wx; please report your wxpython version=%s to the matplotlib developers list'%backend_version)
            pass

        # try to find the set size func across wx versions
        try:
            getattr(self, 'SetInitialSize')
        except AttributeError:
            self.SetInitialSize = getattr(self, 'SetBestFittingSize', do_nothing)


        if not hasattr(self,'IsShownOnScreen'):
            self.IsShownOnScreen = getattr(self, 'IsVisible', lambda *args: True)


        # Create the drawing bitmap
        self.bitmap =wx.EmptyBitmap(w, h)
        DEBUG_MSG("__init__() - bitmap w:%d h:%d" % (w,h), 2, self)
        # TODO: Add support for 'point' inspection and plot navigation.
        self._isDrawn = False

        bind(self, wx.EVT_SIZE, self._onSize)
        bind(self, wx.EVT_PAINT, self._onPaint)
        bind(self, wx.EVT_ERASE_BACKGROUND, self._onEraseBackground)
        bind(self, wx.EVT_KEY_DOWN, self._onKeyDown)
        bind(self, wx.EVT_KEY_UP, self._onKeyUp)
        bind(self, wx.EVT_RIGHT_DOWN, self._onRightButtonDown)
        bind(self, wx.EVT_RIGHT_DCLICK, self._onRightButtonDown)
        bind(self, wx.EVT_RIGHT_UP, self._onRightButtonUp)
        bind(self, wx.EVT_MOUSEWHEEL, self._onMouseWheel)
        bind(self, wx.EVT_LEFT_DOWN, self._onLeftButtonDown)
        bind(self, wx.EVT_LEFT_DCLICK, self._onLeftButtonDown)
        bind(self, wx.EVT_LEFT_UP, self._onLeftButtonUp)
        bind(self, wx.EVT_MOTION, self._onMotion)
        bind(self, wx.EVT_LEAVE_WINDOW, self._onLeave)
        bind(self, wx.EVT_ENTER_WINDOW, self._onEnter)
        bind(self, wx.EVT_IDLE, self._onIdle)
        self.SetBackgroundStyle(wx.BG_STYLE_CUSTOM)

        self.macros = {} # dict from wx id to seq of macros

        self.Printer_Init()
Example #43
0
    def __init__(self, figure):
        FigureCanvasBase.__init__(self, figure)
        self._pixmap_width = -1
        self._pixmap_height = -1

        self._renderer_init()
Example #44
0
 def __init__(self, figure):
     FigureCanvasBase.__init__(self, figure)
     width, height = self.get_width_height()
     _macosx.FigureCanvas.__init__(self, width, height)
     self._draw_pending = False
     self._is_drawing = False
Example #45
0
 def __init__(self, *args):
     FigureCanvasBase.__init__(self, *args)