def show_context(self, options, x, y): y = self.frame().size.height - y menu = DropboxNSMenu.menuWithDropboxMenuDescriptor_(options) if MAC_VERSION >= SNOW_LEOPARD: menu.popUpMenuPositioningItem_atLocation_inView_(None, NSMakePoint(x, y), self) return fake_event = NSEvent.mouseEventWithType_location_modifierFlags_timestamp_windowNumber_context_eventNumber_clickCount_pressure_(NSLeftMouseDown, NSMakePoint(x, y), 0, 0, self.window().windowNumber(), None, 0, 0, 0) NSMenu.popUpContextMenu_withEvent_forView_withFont_(menu, fake_event, self, NSFont.systemFontOfSize_(12.75))
def changeFont_(self, sender): "This is the message the font panel sends when a new font is selected" # Get selected font fontManager = NSFontManager.sharedFontManager() selectedFont = fontManager.selectedFont() if selectedFont is None: selectedFont = NSFont.systemFontOfSize_(NSFont.systemFontSize()) panelFont = fontManager.convertFont_(selectedFont) # Get and store details of selected font # Note: use fontName, not displayName. The font name identifies the font to # the system, we use a value transformer to show the user the display name fontSize = panelFont.pointSize() defaults = NSUserDefaultsController.sharedUserDefaultsController().values() defaults.setValue_forKey_(panelFont.fontName(), "FontName") defaults.setValue_forKey_(fontSize, "FontSize")
def changeTextFont_(self, sender): "The user changed the current font selection, so update the default font" # Get font name and size from user defaults defaults = NSUserDefaultsController.sharedUserDefaultsController().values() fontName = getKey(defaults, 'FontName') fontSize = getKey(defaults, 'FontSize') # Create font from name and size; initialize font panel font = NSFont.fontWithName_size_(fontName, fontSize) if font is None: font = NSFont.systemFontOfSize_(NSFont.systemFontSize()) NSFontManager.sharedFontManager().setSelectedFont_isMultiple_(font, False) NSFontManager.sharedFontManager().orderFrontFontPanel_(self) # Set window as firstResponder so we get changeFont: messages self.window().makeFirstResponder_(self.window())
def changeFont_(self, sender): "This is the message the font panel sends when a new font is selected" # Get selected font fontManager = NSFontManager.sharedFontManager() selectedFont = fontManager.selectedFont() if selectedFont is None: selectedFont = NSFont.systemFontOfSize_(NSFont.systemFontSize()) panelFont = fontManager.convertFont_(selectedFont) # Get and store details of selected font # Note: use fontName, not displayName. The font name identifies the font to # the system, we use a value transformer to show the user the display name fontSize = panelFont.pointSize() defaults = NSUserDefaultsController.sharedUserDefaultsController( ).values() defaults.setValue_forKey_(panelFont.fontName(), "FontName") defaults.setValue_forKey_(fontSize, "FontSize")
def changeTextFont_(self, sender): "The user changed the current font selection, so update the default font" # Get font name and size from user defaults defaults = NSUserDefaultsController.sharedUserDefaultsController( ).values() fontName = getKey(defaults, "FontName") fontSize = getKey(defaults, "FontSize") # Create font from name and size; initialize font panel font = NSFont.fontWithName_size_(fontName, fontSize) if font is None: font = NSFont.systemFontOfSize_(NSFont.systemFontSize()) NSFontManager.sharedFontManager().setSelectedFont_isMultiple_( font, False) NSFontManager.sharedFontManager().orderFrontFontPanel_(self) # Set window as firstResponder so we get changeFont: messages self.window().makeFirstResponder_(self.window())
# Get and store details of selected font # Note: use fontName, not displayName. The font name identifies the font to # the system, we use a value transformer to show the user the display name fontSize = panelFont.pointSize() defaults = NSUserDefaultsController.sharedUserDefaultsController().values() defaults.setValue_forKey_(panelFont.fontName(), "FontName") defaults.setValue_forKey_(fontSize, "FontSize") # Set up initial values for defaults: # Create dictionary with keys and values for WordOfTheDay, FontName, # FontSize, and FavoriteColor. Mostly straightforward, but: # # Store the fontName of the font as the default; the textfield displays # the font's displayName using a value transformer. # # The color must be archived -- you can't store NSColors directly in NSUserDefaults. dictionary = {} dictionary['WordOfTheDay'] = 'Today' systemFont = NSFont.systemFontOfSize_(NSFont.systemFontSize()) dictionary["FontName"] = systemFont.fontName() dictionary["FontSize"] = systemFont.pointSize() archivedColor = NSArchiver.archivedDataWithRootObject_(NSColor.greenColor()) dictionary['FavoriteColor'] = archivedColor NSUserDefaultsController.sharedUserDefaultsController().setInitialValues_(dictionary) # Create and register font name value transformer transformer = FontNameToDisplayNameTransformer.alloc().init() NSValueTransformer.setValueTransformer_forName_(transformer, 'FontNameToDisplayNameTransformer')
fontSize = panelFont.pointSize() defaults = NSUserDefaultsController.sharedUserDefaultsController( ).values() defaults.setValue_forKey_(panelFont.fontName(), "FontName") defaults.setValue_forKey_(fontSize, "FontSize") # Set up initial values for defaults: # Create dictionary with keys and values for WordOfTheDay, FontName, # FontSize, and FavoriteColor. Mostly straightforward, but: # # Store the fontName of the font as the default; the textfield displays # the font's displayName using a value transformer. # # The color must be archived -- you can't store NSColors directly in NSUserDefaults. dictionary = {} dictionary["WordOfTheDay"] = "Today" systemFont = NSFont.systemFontOfSize_(NSFont.systemFontSize()) dictionary["FontName"] = systemFont.fontName() dictionary["FontSize"] = systemFont.pointSize() archivedColor = NSArchiver.archivedDataWithRootObject_(NSColor.greenColor()) dictionary["FavoriteColor"] = archivedColor NSUserDefaultsController.sharedUserDefaultsController().setInitialValues_( dictionary) # Create and register font name value transformer transformer = FontNameToDisplayNameTransformer.alloc().init() NSValueTransformer.setValueTransformer_forName_( transformer, "FontNameToDisplayNameTransformer")