def drawHistogram(self, originX, originY, width, height): NSColor.colorWithWhite_alpha_(0, .5).set() path = NSBezierPath.bezierPath() path.moveToPoint_((originX, originY - 2)) prevY = 0 for x in range(width): if x in self.histogram: y = (self.histogram[x] / float(self.maxhistogram)) * height path.lineToPoint_((x + .5 + originX, y + originY)) else: path.lineToPoint_((x + .5 + originX, originY - 2)) path.lineToPoint_((originX + width, originY - 2)) path.closePath() path.fill()
return height <= rect.size.height class TextView(NSView): def drawRect_(self, rect): rect = NSInsetRect(rect, 40, 40) size = 50 stride = 10 while attr_string_fits_in_rect( attributed_text_at_size(text, size + stride), rect): size += stride attr = attributed_text_at_size(text, size) attr.drawInRect_(rect) window.setExcludedFromWindowsMenu_(True) window.setOpaque_(False) window.setBackgroundColor_(NSColor.colorWithWhite_alpha_(0, 0.7)) window.setAlphaValue_(0) window.setCollectionBehavior_(NSWindowCollectionBehaviorCanJoinAllSpaces | NSWindowCollectionBehaviorStationary | NSWindowCollectionBehaviorIgnoresCycle) window.setContentView_(TextView.new()) NSApp.activateIgnoringOtherApps_(True) window.makeKeyAndOrderFront_(None) from PyObjCTools import AppHelper AppHelper.runEventLoop()
return NSAttributedString.alloc().initWithString_attributes_(text, attrs) def attr_string_fits_in_rect(attr_string, rect): height = attr_string.boundingRectWithSize_options_(NSMakeSize(rect.size.width, 99999), NSStringDrawingUsesLineFragmentOrigin).size.height return height <= rect.size.height class TextView(NSView): def drawRect_(self, rect): rect = NSInsetRect(rect, 40, 40) size = 50 stride = 10 while attr_string_fits_in_rect(attributed_text_at_size(text, size+stride), rect): size += stride attr = attributed_text_at_size(text, size) attr.drawInRect_(rect) window.setExcludedFromWindowsMenu_(True) window.setOpaque_(False) window.setBackgroundColor_(NSColor.colorWithWhite_alpha_(0, 0.7)) window.setAlphaValue_(0) window.setCollectionBehavior_(NSWindowCollectionBehaviorCanJoinAllSpaces | NSWindowCollectionBehaviorStationary | NSWindowCollectionBehaviorIgnoresCycle) window.setContentView_(TextView.new()) NSApp.activateIgnoringOtherApps_(True) window.makeKeyAndOrderFront_(None) from PyObjCTools import AppHelper AppHelper.runEventLoop()