def initWithFrame_imageDir_(self, frame, imageDir): self = super(IntroView, self).initWithFrame_(frame) if not self: return None dropboxImage = NSImage.alloc().initWithContentsOfFile_(os.path.join(imageDir, u'box_stroked_150.png')) iW, iH = dropboxImage.size() newHeight = iH * 300.0 / iW self.dropboxViewFinalPosition = NSRect((25, frame.size[1] - 43 - newHeight), (300, newHeight)) self.dropboxView = ShadowedImage.alloc().initWithFrame_(self.dropboxViewFinalPosition) self.dropboxView.setImageScaling_(NSScaleToFit) self.dropboxView.setImage_(dropboxImage) self.dropboxView.setShadowColor_(NSColor.colorWithCalibratedRed_green_blue_alpha_(0, 0, 0, 0.5)) self.dropboxView.setShadowOffset_((0.0, -2.0)) self.dropboxView.setShadowBlurRadius_(5.0) logoImage = NSImage.alloc().initWithContentsOfFile_(os.path.join(imageDir, u'dropboxlogo.png')) iW, iH = logoImage.size() newHeight = iH * 300.0 / iW self.logoViewFinalPosition = NSRect((25, frame.size[1] - 334 - newHeight), (300, newHeight)) self.logoView = NSImageView.alloc().initWithFrame_(self.logoViewFinalPosition) self.logoView.setImage_(logoImage) self.versionView = NSTextView.alloc().initWithFrame_(NSRect((0, 0), frame.size)) self.versionView.setDrawsBackground_(NO) self.versionView.setEditable_(NO) self.versionView.setSelectable_(NO) self.versionView.textStorage().mutableString().setString_(u'Version %s' % build_number.VERSION) self.versionView.textStorage().setFont_(NSFont.labelFontOfSize_(14)) self.versionView.layoutManager().glyphRangeForTextContainer_(self.versionView.textContainer()) textSize1 = self.versionView.layoutManager().usedRectForTextContainer_(self.versionView.textContainer()).size textAnchor1 = 5 self.versionView2 = NSTextView.alloc().initWithFrame_(NSRect((0, 0), frame.size)) self.versionView2.setDrawsBackground_(NO) self.versionView2.setEditable_(NO) self.versionView2.setSelectable_(NO) self.versionView2.textStorage().mutableString().setString_(u'Copyright \xa9 2007-2010 Dropbox Inc.') self.versionView2.setFont_(NSFont.systemFontOfSize_(NSFont.systemFontSizeForControlSize_(NSSmallControlSize))) self.versionView2.layoutManager().glyphRangeForTextContainer_(self.versionView2.textContainer()) textSize2 = self.versionView2.layoutManager().usedRectForTextContainer_(self.versionView2.textContainer()).size textAnchor2 = 4 bottomToLogoViewBaseline = self.logoView.frame().origin[1] + 17 textSeparation = 10 combinedHeight = textSize1[1] + textSize2[1] + textSeparation self.versionView2FinalPosition = NSRect(((frame.size[0] - textSize2[0]) / 2.0, (bottomToLogoViewBaseline - combinedHeight) / 2.0), (textSize2[0], textSize2[1] + textAnchor2)) self.versionView2.setFrame_(self.versionView2FinalPosition) self.versionViewFinalPosition = NSRect(((frame.size[0] - textSize1[0]) / 2.0, self.versionView2.frame().origin[1] + textSeparation + self.versionView2.frame().size[1]), (textSize1[0], textSize1[1] + textAnchor1)) self.versionView.setFrame_(self.versionViewFinalPosition) for _view in (self.dropboxView, self.logoView, self.versionView, self.versionView2): self.addSubview_(_view) return self
def initWithFrame_view_size_name_captionText_(self, frame, view, size, name, caption_text): self = super(PictureView, self).initWithFrame_(frame) if not self: return _size = iW, iH = size xOffset = (frame.size[0] - iW) / 2.0 yOffset = frame.size[1] - xOffset - iH self.dropboxViewFinalPosition = NSRect((xOffset, yOffset), _size) self.dropboxView = view self.dropboxView.setFrame_(self.dropboxViewFinalPosition) self.addSubview_(self.dropboxView) self.versionView = NSTextView.alloc().initWithFrame_(NSRect((0, 0), frame.size)) self.versionView.setDrawsBackground_(NO) self.versionView.setEditable_(NO) self.versionView.setSelectable_(NO) self.versionView.textStorage().beginEditing() self.versionView.textStorage().mutableString().setString_(name) self.versionView.textStorage().setForegroundColor_(NSColor.whiteColor()) self.versionView.textStorage().setFont_(NSFont.labelFontOfSize_(18)) self.versionView.textStorage().endEditing() self.versionView.setAlignment_range_(NSCenterTextAlignment, NSMakeRange(0, self.versionView.string().length())) self.versionView.layoutManager().glyphRangeForTextContainer_(self.versionView.textContainer()) textSize1 = self.versionView.layoutManager().usedRectForTextContainer_(self.versionView.textContainer()).size textAnchor1 = 0 self.versionView2 = NSTextView.alloc().initWithFrame_(NSRect((0, 0), frame.size)) self.versionView2.setDrawsBackground_(NO) self.versionView2.setEditable_(NO) self.versionView2.setSelectable_(NO) self.versionView2.textStorage().beginEditing() self.versionView2.textStorage().mutableString().setString_(u'"%s"' % (caption_text,)) self.versionView2.textStorage().setForegroundColor_(NSColor.whiteColor()) self.versionView2.textStorage().setFont_(NSFont.labelFontOfSize_(13)) self.versionView2.textStorage().endEditing() self.versionView2.setAlignment_range_(NSCenterTextAlignment, NSMakeRange(0, self.versionView2.string().length())) self.versionView2.layoutManager().glyphRangeForTextContainer_(self.versionView2.textContainer()) textSize2 = self.versionView2.layoutManager().usedRectForTextContainer_(self.versionView2.textContainer()).size textAnchor2 = 0 bottomToLogoViewBaseline = yOffset textSeparation = (yOffset - textSize1[1] - textSize2[1]) * 0.2 combinedHeight = textSize1[1] + textSize2[1] + textSeparation self.versionView2FinalPosition = NSRect(((frame.size[0] - textSize2[0]) / 2.0, (bottomToLogoViewBaseline - combinedHeight) / 2.0), (textSize2[0], textSize2[1] + textAnchor2)) self.versionView2.setFrame_(self.versionView2FinalPosition) self.versionViewFinalPosition = NSRect(((frame.size[0] - textSize1[0]) / 2.0, self.versionView2.frame().origin[1] + textSeparation + self.versionView2.frame().size[1]), (textSize1[0], textSize1[1] + textAnchor1)) self.versionView.setFrame_(self.versionViewFinalPosition) self.addSubview_(self.versionView) self.addSubview_(self.versionView2) return self
def setupUI(self): self.statusbar = NSStatusBar.systemStatusBar() # Create the statusbar item self.statusitem = self.statusbar.statusItemWithLength_(NSVariableStatusItemLength) # Set initial image raw_data = base64.b64decode(''.join(GOAGENT_ICON_DATA.strip().splitlines())) self.image_data = NSData.dataWithBytes_length_(raw_data, len(raw_data)) self.image = NSImage.alloc().initWithData_(self.image_data) self.statusitem.setImage_(self.image) # Let it highlight upon clicking self.statusitem.setHighlightMode_(1) # Set a tooltip self.statusitem.setToolTip_(GOAGENT_TITLE) # Build a very simple menu self.menu = NSMenu.alloc().init() # Show Menu Item menuitem = NSMenuItem.alloc().initWithTitle_action_keyEquivalent_('Show', 'show:', '') self.menu.addItem_(menuitem) # Hide Menu Item menuitem = NSMenuItem.alloc().initWithTitle_action_keyEquivalent_('Hide', 'hide2:', '') self.menu.addItem_(menuitem) # Rest Menu Item menuitem = NSMenuItem.alloc().initWithTitle_action_keyEquivalent_('Reload', 'reset:', '') self.menu.addItem_(menuitem) # Default event menuitem = NSMenuItem.alloc().initWithTitle_action_keyEquivalent_('Quit', 'exit:', '') self.menu.addItem_(menuitem) # Bind it to the status item self.statusitem.setMenu_(self.menu) # Console window frame = NSMakeRect(0,0,550,350) self.console_window = NSWindow.alloc().initWithContentRect_styleMask_backing_defer_(frame, NSClosableWindowMask|NSTitledWindowMask, NSBackingStoreBuffered, False) self.console_window.setTitle_(GOAGENT_TITLE) self.console_window.setDelegate_(self) # Console view inside a scrollview self.scroll_view = NSScrollView.alloc().initWithFrame_(frame) self.scroll_view.setBorderType_(NSNoBorder) self.scroll_view.setHasVerticalScroller_(True) self.scroll_view.setHasHorizontalScroller_(False) self.scroll_view.setAutoresizingMask_(NSViewWidthSizable|NSViewHeightSizable) self.console_view = NSTextView.alloc().initWithFrame_(frame) self.console_view.setVerticallyResizable_(True) self.console_view.setHorizontallyResizable_(True) self.console_view.setAutoresizingMask_(NSViewWidthSizable) self.scroll_view.setDocumentView_(self.console_view) contentView = self.console_window.contentView() contentView.addSubview_(self.scroll_view) # Hide dock icon NSApp.setActivationPolicy_(NSApplicationActivationPolicyProhibited)
def initWithFrame_(self, frame): self = super(GreetingsTo, self).initWithFrame_(frame) if not self: return self.timers = [] for __text in ('greetings', 'to', 'AAPL', 'GOOG', 'MSFT', (':)', '_smile'), (':P', '_wink')): if type(__text) is str: _text = attr = __text else: _text, attr = __text vv = NSTextView.alloc().initWithFrame_(NSRect((0, 0), frame.size)) vv.setDrawsBackground_(NO) vv.setEditable_(NO) vv.setSelectable_(NO) vv.setAlignment_range_(NSCenterTextAlignment, NSMakeRange(0, vv.string().length())) vv.textStorage().beginEditing() vv.textStorage().mutableString().setString_(_text) vv.textStorage().setFont_(NSFont.labelFontOfSize_(42 if _text in ('greetings', 'to') else 36)) vv.textStorage().setForegroundColor_(NSColor.whiteColor()) vv.textStorage().endEditing() vv.layoutManager().glyphRangeForTextContainer_(vv.textContainer()) vv.setFrameSize_(vv.layoutManager().usedRectForTextContainer_(vv.textContainer()).size) setattr(self, attr, vv) vv.setHidden_(True) self.addSubview_(vv) self.blast_order = (self.greetings, self.to, self.AAPL, self.GOOG, self.MSFT, self._smile) self.greetings.setHidden_(False) self.greetings.setFrameOrigin_(((frame.size[0] - self.greetings.frame().size[0]) / 2.0, BASE_HEIGHT - 100)) self.to.setFrameOrigin_(((frame.size[0] - self.to.frame().size[0]) / 2.0, BASE_HEIGHT - 100 - self.greetings.frame().size[1] - 20)) offset = (frame.size[0] - (self.AAPL.frame().size[0] + self.GOOG.frame().size[0] + 60)) / 2.0 self.AAPL_POS = (offset, 220) self.GOOG_POS = (WIDTH - self.GOOG.frame().size[0] - offset, 220) self.MSFT_POS = ((frame.size[0] - self.MSFT.frame().size[0]) / 2.0, 200 - self.AAPL.frame().size[1] - 80) self._wink.setFrameOrigin_(((frame.size[0] - self._wink.frame().size[0]) / 2.0, 200 - self._wink.frame().size[1])) self._smile.setFrameOrigin_(((frame.size[0] - self._wink.frame().size[0]) / 2.0, 200 - self._wink.frame().size[1])) return self
def __init__(self): text = "Python " + sys.version + "\n\n" + sys.copyright title = "HalfCaff " + halfcaff.version.version if halfcaff.util.is_dev_mode(): title += '-dev' super(AboutWindow, self).__init__(title=title, message=_message, default_text=_text) self.icon = halfcaff.util.icon('halfcaff.icns') #self._textfield.dealloc() self._textfield = NSTextView.alloc().initWithFrame_( NSMakeRect(0, 0, 320, 160)) self._textfield.setSelectable_(True) #self._textfield.usesRuler_(True) self._alert.setAccessoryView_(self._textfield) self._textfield.setString_(rumps.compat.text_type(_text))
def initWithFrame_andText_(self, frame, text): self = super(TextPane, self).initWithFrame_(frame) if not self: return self.tx = NSTextView.alloc().initWithFrame_(NSRect((0, 0), frame.size)) self.tx.setDrawsBackground_(NO) self.tx.setEditable_(NO) self.tx.setSelectable_(NO) self.tx.textStorage().mutableString().setString_(text) self.tx.setAlignment_range_(NSCenterTextAlignment, NSMakeRange(0, self.tx.string().length())) self.tx.setFont_(NSFont.userFontOfSize_(self.SIZE)) self.tx.layoutManager().glyphRangeForTextContainer_(self.tx.textContainer()) textSize2 = self.tx.layoutManager().usedRectForTextContainer_(self.tx.textContainer()).size self.tx.setFrame_(NSRect(((frame.size[0] - textSize2[0]) / 2.0, (frame.size[1] - textSize2[1]) / 2.0), textSize2)) self.addSubview_(self.tx) return self
def open_license(_): print(0) alert = NSAlert.alertWithMessageText_defaultButton_alternateButton_otherButton_informativeTextWithFormat_( 'License', None, None, None, 'GNU General Public License, version 3') alert.setAlertStyle_(0) textview = NSTextView.alloc().initWithFrame_(NSMakeRect(0, 0, 420, 180)) textview.setEditable_(False) if getattr(sys, 'frozen', False): # noinspection PyUnresolvedReferences textview.setString_('\n' + open(sys._MEIPASS[:len(sys._MEIPASS) - 5] + 'Resources/LICENSE').read()) else: textview.setString_('\n' + open('LICENSE').read()) sv = NSScrollView.alloc().initWithFrame_(textview.frame()) sv.setBorderType_(1) sv.setHasVerticalScroller_(True) sv.setAutoresizingMask_(2 | 16) sv.setDocumentView_(textview) alert.setAccessoryView_(sv) alert.runModal()
def initWithFrame_(self, frame): self = super(GreetingsToView, self).initWithFrame_(frame) if not self: return None self.timers = [] poem = ('thanks for watching!', 'we love working on', 'Dropbox', 'and we really hope', 'it makes your life', 'easier.', '~~~', 'remember,', "do what's right", 'love thy neighbor', 'and', 'be yourself', '<3', '~~~', 'find us on the web at', 'http://dropbox.com/', '~~~', '4/15/2011') self.views = [] total_height = 0 for a in poem: vv = NSTextView.alloc().initWithFrame_(NSRect((0, 0), frame.size)) vv.setDrawsBackground_(NO) vv.setEditable_(NO) vv.setSelectable_(NO) vv.setAlignment_range_(NSCenterTextAlignment, NSMakeRange(0, vv.string().length())) vv.textStorage().beginEditing() vv.textStorage().mutableString().setString_(a) vv.textStorage().setFont_(NSFont.labelFontOfSize_(14)) vv.textStorage().setForegroundColor_(NSColor.colorWithCalibratedRed_green_blue_alpha_(1.0, 1.0, 1.0, 0.0)) vv.textStorage().endEditing() vv.layoutManager().glyphRangeForTextContainer_(vv.textContainer()) size = vv.layoutManager().usedRectForTextContainer_(vv.textContainer()).size vv.setFrameSize_(size) total_height += size[1] self.addSubview_(vv) self.views.append(vv) SPACING = 11 total_height += SPACING * (len(self.views) - 1) placement = frame.size[1] - (frame.size[1] - total_height) / 2.0 for a in self.views: w, h = a.frame().size placement -= h a.setFrameOrigin_(((frame.size[0] - w) / 2.0, placement)) placement -= SPACING return self
def setupUI(self): self.statusbar = NSStatusBar.systemStatusBar() # Create the statusbar item self.statusitem = self.statusbar.statusItemWithLength_( NSVariableStatusItemLength) # Set initial image raw_data = base64.b64decode(''.join( GOAGENT_ICON_DATA.strip().splitlines())) self.image_data = NSData.dataWithBytes_length_(raw_data, len(raw_data)) self.image = NSImage.alloc().initWithData_(self.image_data) self.statusitem.setImage_(self.image) # Let it highlight upon clicking self.statusitem.setHighlightMode_(1) # Set a tooltip self.statusitem.setToolTip_(GOAGENT_TITLE) # Build a very simple menu self.menu = NSMenu.alloc().init() # Show Menu Item menuitem = NSMenuItem.alloc().initWithTitle_action_keyEquivalent_( 'Show', 'show:', '') self.menu.addItem_(menuitem) # Hide Menu Item menuitem = NSMenuItem.alloc().initWithTitle_action_keyEquivalent_( 'Hide', 'hide2:', '') self.menu.addItem_(menuitem) # Rest Menu Item menuitem = NSMenuItem.alloc().initWithTitle_action_keyEquivalent_( 'Reload', 'reset:', '') self.menu.addItem_(menuitem) # Default event menuitem = NSMenuItem.alloc().initWithTitle_action_keyEquivalent_( 'Quit', 'exit:', '') self.menu.addItem_(menuitem) # Bind it to the status item self.statusitem.setMenu_(self.menu) # Console window frame = NSMakeRect(0, 0, 550, 350) self.console_window = NSWindow.alloc( ).initWithContentRect_styleMask_backing_defer_( frame, NSClosableWindowMask | NSTitledWindowMask, NSBackingStoreBuffered, False) self.console_window.setTitle_(GOAGENT_TITLE) self.console_window.setDelegate_(self) # Console view inside a scrollview self.scroll_view = NSScrollView.alloc().initWithFrame_(frame) self.scroll_view.setBorderType_(NSNoBorder) self.scroll_view.setHasVerticalScroller_(True) self.scroll_view.setHasHorizontalScroller_(False) self.scroll_view.setAutoresizingMask_(NSViewWidthSizable | NSViewHeightSizable) self.console_view = NSTextView.alloc().initWithFrame_(frame) self.console_view.setVerticallyResizable_(True) self.console_view.setHorizontallyResizable_(True) self.console_view.setAutoresizingMask_(NSViewWidthSizable) self.scroll_view.setDocumentView_(self.console_view) contentView = self.console_window.contentView() contentView.addSubview_(self.scroll_view) # Hide dock icon NSApp.setActivationPolicy_(NSApplicationActivationPolicyProhibited)