def __init__(self, res): gtk.DrawingArea.__init__(self) self.res = res self.set_flags(gtk.CAN_FOCUS) self.add_events(gtk.gdk.BUTTON_PRESS_MASK | gtk.gdk.BUTTON_RELEASE_MASK) self.connect("button-press-event", self.on_area_button_press) self.connect("button-release-event", self.on_area_button_release) self.add_events(gtk.gdk.POINTER_MOTION_MASK | gtk.gdk.POINTER_MOTION_HINT_MASK | gtk.gdk.BUTTON_RELEASE_MASK) self.connect("motion-notify-event", self.on_area_motion_notify) self.connect("scroll-event", self.on_area_scroll_event) self.connect('key-press-event', self.on_key_press_event) self.connect('set-scroll-adjustments', self.on_set_scroll_adjustments) self.connect("size-allocate", self.on_allocation_size_changed) self.connect("position-changed", self.on_position_changed) self.zoom_ratio = 1.0 self.x, self.y = 0.0, 0.0 self.chart_width, self.chart_height = draw.extents(res) self.hadj = None self.vadj = None
def render(writer, res, options, filename): handlers = { "png": (lambda w, h: cairo.ImageSurface(cairo.FORMAT_ARGB32, w, h), \ lambda sfc: sfc.write_to_png(filename)), "pdf": (lambda w, h: cairo.PDFSurface(filename, w, h), lambda sfc: 0), "svg": (lambda w, h: cairo.SVGSurface(filename, w, h), lambda sfc: 0) } if options.format is None: fmt = filename.rsplit('.', 1)[1] else: fmt = options.format if not (fmt in handlers): writer.error ("Unknown format '%s'." % fmt) return 10 make_surface, write_surface = handlers[fmt] (w, h) = draw.extents (1.0, *res) w = max (w, draw.MIN_IMG_W) surface = make_surface (w, h) ctx = cairo.Context (surface) draw.render (ctx, options, 1.0, *res) write_surface (surface) writer.status ("bootchart written to '%s'" % filename)
def render(writer, trace, app_options, filename): handlers = { "png": (lambda w, h: cairo.ImageSurface(cairo.FORMAT_ARGB32, w, h), \ lambda sfc: sfc.write_to_png(filename)), "pdf": (lambda w, h: cairo.PDFSurface(filename, w, h), lambda sfc: 0), "svg": (lambda w, h: cairo.SVGSurface(filename, w, h), lambda sfc: 0) } if app_options.format is None: fmt = filename.rsplit('.', 1)[1] else: fmt = app_options.format if not (fmt in handlers): writer.error("Unknown format '%s'." % fmt) return 10 make_surface, write_surface = handlers[fmt] options = RenderOptions(app_options) (w, h) = draw.extents(options, 1.0, trace) w = max(w, draw.MIN_IMG_W) surface = make_surface(w, h) ctx = cairo.Context(surface) draw.render(ctx, options, 1.0, trace) write_surface(surface) writer.status("bootchart written to '%s'" % filename)
def render(res, format, filename): handlers = { "png": (lambda w,h: cairo.ImageSurface(cairo.FORMAT_ARGB32,w,h), lambda sfc: sfc.write_to_png(filename)), "pdf": (lambda w,h: cairo.PDFSurface(filename, w, h), lambda sfc: 0), "svg": (lambda w,h: cairo.SVGSurface(filename, w, h), lambda sfc: 0) } if not(handlers.has_key(format)): print "Unknown format '%s'." % format return 10 make_surface, write_surface = handlers[format] w,h = draw.extents(res) w = max(w, draw.MIN_IMG_W) surface = make_surface(w,h) ctx = cairo.Context(surface) draw.render(ctx, res) write_surface(surface)
def render(res, format, filename): handlers = { "png": (lambda w, h: cairo.ImageSurface(cairo.FORMAT_ARGB32, w, h), lambda sfc: sfc.write_to_png(filename)), "pdf": (lambda w, h: cairo.PDFSurface(filename, w, h), lambda sfc: 0), "svg": (lambda w, h: cairo.SVGSurface(filename, w, h), lambda sfc: 0) } if not (handlers.has_key(format)): print "Unknown format '%s'." % format return 10 make_surface, write_surface = handlers[format] w, h = draw.extents(res) w = max(w, draw.MIN_IMG_W) surface = make_surface(w, h) ctx = cairo.Context(surface) draw.render(ctx, res) write_surface(surface)
def set_xscale(self, xscale): old_mid_x = self.x + self.hadj.page_size / 2 self.xscale = xscale self.chart_width, self.chart_height = draw.extents(self.options, self.xscale, self.trace) new_x = old_mid_x self.zoom_image (self.zoom_ratio)