diff --git a/MacPass/MPIconHelper.m b/MacPass/MPIconHelper.m index 2e36df1f..19c950dd 100644 --- a/MacPass/MPIconHelper.m +++ b/MacPass/MPIconHelper.m @@ -28,16 +28,18 @@ @implementation MPIconHelper + (NSImage *)icon:(MPIconType)type { - static NSDictionary *symbols; - - if(!symbols) { - symbols = MPIconHelper.availableSymbolNames; - } - if([symbols.allKeys containsObject:@(type)]) { - NSString *imageName = symbols[@(type)]; - NSImage *image = [NSImage imageWithSystemSymbolName:imageName accessibilityDescription:nil]; - if(image) { - return image; + if (@available(macOS 11.0, *)) { + static NSDictionary *symbols; + if(!symbols) { + symbols = MPIconHelper.availableSymbolNames; + } + if([symbols.allKeys containsObject:@(type)]) { + NSString *imageName = symbols[@(type)]; + + NSImage *image = [NSImage imageWithSystemSymbolName:imageName accessibilityDescription:nil]; + if(image) { + return image; + } } } @@ -103,86 +105,86 @@ static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ symbolNames = @{ - @(MPIconPassword): @"ellipsis.rectangle", - @(MPIconPackageNetwork): @"globe", - @(MPIconWarning): @"exclamationmark.circle", - @(MPIconServer): @"macpro.gen3.server", - @(MPIconKlipper): @"paperclip", - @(MPIconLanguages): @"mouth", - @(MPIconBlockDevice): @"06_BlockDeviceTemplate", - @(MPIconNotepad): @"07_NotepadTemplate", - @(MPIconSocket): @"08_SocketTemplate", - @(MPIconIdentity): @"09_IdentityTemplate", - @(MPIconContact): @"10_ContactTemplate", - @(MPIconCamera): @"11_CameraTemplate", - @(MPIconRemote): @"12_RemoteTemplate", - @(MPIconKeys): @"key", - @(MPIconBattery): @"14_BatteryTemplate", - @(MPIconScanner): @"15_ScannerTemplate", - @(MPIconBrowser): @"16_BrowserTemplate", - @(MPIconCDRom): @"17_CDRomTemplate", - @(MPIconDisplay): @"18_DisplayTemplate", - @(MPIconEmail): @"19_EmailTemplate", - @(MPIconMisc): @"20_MiscTemplate", - @(MPIconOrganizer): @"21_OrganizerTemplate", - @(MPIconASCII): @"22_ASCIITemplate", - @(MPIconIcons): @"23_IconsTemplate", - @(MPIconEstablishedConnection): @"24_EstablishedConnectionTemplate", - @(MPIconMailFolder): @"25_MailFolderTemplate", - @(MPIconFileSave): @"26_FileSaveTemplate", - @(MPIconNFSUnmount) :@"27_NFSUnmountTemplate", - @(MPIconQuickTime) : @"28_QuickTimeTemplate", - @(MPIconSecureTerminal) : @"29_SecureTerminalTemplate", - @(MPIconTerminal) : @"30_TerminalTemplate", - @(MPIconPrint) : @"31_PrintTemplate", - @(MPIconFileSystemView) : @"32_FileSystemViewTemplate", - @(MPIconRun) : @"33_RunTemplate", - @(MPIconConfigure) : @"34_ConfigureTemplate", - @(MPIconBrowserWindow) : @"35_BrowserWindowTemplate", - @(MPIconArchive) : @"36_ArchiveTemplate", - @(MPIconPercentage) : @"37_PercentageTemplate", - @(MPIconSambaUnmount) : @"38_SambaUnmountTemplate", - @(MPIconHistory) : @"39_HistoryTemplate", - @(MPIconFindMail) : @"40_FindMailTemplate", - @(MPIconVector) : @"41_VectorTemplate", - @(MPIconMemory) : @"42_MemoryTemplate", - @(MPIconTrash): @"43_TrashTemplate", - @(MPIconNotes) : @"44_NotesTemplate", - @(MPIconCancel) : @"45_CancelTemplate", - @(MPIconHelp) : @"46_HelpTemplate", - @(MPIconPackage) : @"47_PackageTemplate", - @(MPIconFolder): @"48_FolderTemplate", - @(MPIconFolderOpen) : @"49_FolderOpenTemplate", - @(MPIconFolderTar) : @"50_FolderTarTemplate", - @(MPIconDecrypted) : @"51_DecryptedTemplate", - @(MPIconEncrypted) : @"52_EncryptedTemplate", - @(MPIconApply) : @"53_ApplyTemplate", - @(MPIconSignature) : @"54_SignatureTemplate", - @(MPIconThumbnail) : @"55_ThumbnailTemplate", - @(MPIconAddressBook) : @"56_AddressBookTemplate", - @(MPIconTextView) : @"57_TextViewTemplate", - @(MPIconSecureAccount) : @"58_SecureAccountTemplate", - @(MPIconDevelopment) : @"59_DevelopmentTemplate", - @(MPIconHome) : @"60_HomeTemplate", - @(MPIconServices) : @"61_ServicesTemplate", - @(MPIconTux) : @"62_TuxTemplate", - @(MPIconFeather) : @"63_FeatherTemplate", - @(MPIconApple) : @"64_AppleTemplate", - @(MPIconWiki) : @"65_WikiTemplate", - @(MPIconMoney) : @"66_MoneyTemplate", - @(MPIconCertificat) : @"67_CertificatTemplate", - @(MPIconPhone): @"68_PhoneTemplate", + @(MPIconPassword) : @"ellipsis.rectangle", + @(MPIconPackageNetwork) : @"globe", + @(MPIconWarning) : @"exclamationmark.triangle", + @(MPIconServer) : @"server.rack", + @(MPIconKlipper) : @"pin", + @(MPIconLanguages) : @"mouth", + @(MPIconBlockDevice) : @"gearshape.2", + @(MPIconNotepad) : @"note.text", + @(MPIconSocket) : @"rectangle.connected.to.line.below", + @(MPIconIdentity) : @"person.crop.square.fill.and.at.rectangle", + @(MPIconContact) : @"at", + @(MPIconCamera) : @"camera", + @(MPIconRemote) : @"icloud.fill", + @(MPIconKeys) : @"key", + @(MPIconBattery) : @"bolt.fill.batteryblock", + @(MPIconScanner) : @"scanner", + @(MPIconBrowser) : @"safari", + @(MPIconCDRom) : @"opticaldisc", + @(MPIconDisplay) : @"display", + @(MPIconEmail) : @"envelope", + @(MPIconMisc) : @"ellipsis.circle", + @(MPIconOrganizer) : @"list.number", + @(MPIconASCII) : @"doc.text", + @(MPIconIcons) : @"square.grid.3x3.fill.square", + @(MPIconEstablishedConnection) : @"bolt", + @(MPIconMailFolder) : @"tray.full", + @(MPIconFileSave) : @"square.and.arrow.down", + @(MPIconNFSUnmount) : @"externaldrive.connected.to.line.below", + @(MPIconQuickTime) : @"film", + @(MPIconSecureTerminal) : @"terminal", + @(MPIconTerminal) : @"terminal", + @(MPIconPrint) : @"printer", + @(MPIconFileSystemView) : @"square.grid.2x2", + @(MPIconRun) : @"figure.walk.diamond", + @(MPIconConfigure) : @"slider.vertical.3", + @(MPIconBrowserWindow) : @"macwindow", + @(MPIconArchive) : @"doc.zipper", + @(MPIconPercentage) : @"percent", + @(MPIconSambaUnmount) : @"externaldrive.badge.xmark", + @(MPIconHistory) : @"clock.arrow.circlepath", + @(MPIconFindMail) : @"mail.and.text.magnifyingglass", + @(MPIconVector) : @"skew", + @(MPIconMemory) : @"memorychip", + @(MPIconTrash) : @"trash", + @(MPIconNotes) : @"note.text", + @(MPIconCancel) : @"xmark.circle", + @(MPIconHelp) : @"questionmark.circle.fill", + @(MPIconPackage) : @"shippingbox", + @(MPIconFolder) : @"folder", + @(MPIconFolderOpen) : @"folder", + @(MPIconFolderTar) : @"archivebox", + @(MPIconDecrypted) : @"lock.open", + @(MPIconEncrypted) : @"lock", + @(MPIconApply) : @"checkmark.square", + @(MPIconSignature) : @"signature", + @(MPIconThumbnail) : @"photo", + @(MPIconAddressBook) : @"rectangle.stack.person.crop", + @(MPIconTextView) : @"text.justifyleft", + @(MPIconSecureAccount) : @"person.fill.viewfinder", + @(MPIconDevelopment) : @"hammer", + @(MPIconHome) : @"house", + @(MPIconServices) : @"star", + @(MPIconTux) : @"ladybug", + @(MPIconFeather) : @"lightbulb", + @(MPIconApple) : @"applelogo", + @(MPIconWiki) : @"w.circle", + @(MPIconMoney) : @"dollarsign.circle", + @(MPIconCertificat) : @"signature", // FIXME: find better icon + @(MPIconPhone) : @"iphone", /* Custom */ - @(MPIconInfo): @"sidebar.trailing", - @(MPIconAddFolder): @"addFolderTemplate", - @(MPIconHardDisk): @"harddiskTemplate", - @(MPIconCreated): @"createdTemplate", - @(MPIconAddEntry): @"addEntryTemplate", - @(MPIconContextTriangle): @"contextTriangleTemplate", - @(MPIconKeyboard): @"keyboardTemplate", + @(MPIconSidebar) : @"sidebar.trailing", + @(MPIconAddFolder) : @"folder.badge.plus", + @(MPIconHardDisk) : @"internaldrive", + @(MPIconCreated) : @"staroflife", // FIXME: find better icon + @(MPIconAddEntry) : @"ellipsis.rectangle", // FIXME: find better icon + @(MPIconContextTriangle) : @"arrowtriangle.down.fill", + @(MPIconKeyboard) : @"keyboard", - @(MPIconExpiredEntry): NSImageNameCaution, - @(MPIconExpiredGroup): NSImageNameCaution + @(MPIconExpiredEntry) : @"exclamationmark.octagon.fill", + @(MPIconExpiredGroup) : @"exclamationmark.octagon.fill" }; }); @@ -200,87 +202,87 @@ static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ imageNames = @{ - @(MPIconPassword) : @"00_PasswordTemplate", - @(MPIconPackageNetwork) : @"01_PackageNetworkTemplate", - @(MPIconWarning) : @"02_MessageBoxWarningTemplate", - @(MPIconServer) : @"03_ServerTemplate", - @(MPIconKlipper) : @"04_KlipperTemplate", - @(MPIconLanguages) : @"05_LanguagesTemplate", - @(MPIconBlockDevice) : @"06_BlockDeviceTemplate", - @(MPIconNotepad) : @"07_NotepadTemplate", - @(MPIconSocket) : @"08_SocketTemplate", - @(MPIconIdentity) : @"09_IdentityTemplate", - @(MPIconContact) : @"10_ContactTemplate", - @(MPIconCamera) : @"11_CameraTemplate", - @(MPIconRemote) : @"12_RemoteTemplate", - @(MPIconKeys) : @"13_KeysTemplate", - @(MPIconBattery) : @"14_BatteryTemplate", - @(MPIconScanner) : @"15_ScannerTemplate", - @(MPIconBrowser) : @"16_BrowserTemplate", - @(MPIconCDRom) : @"17_CDRomTemplate", - @(MPIconDisplay) : @"18_DisplayTemplate", - @(MPIconEmail) : @"19_EmailTemplate", - @(MPIconMisc) : @"20_MiscTemplate", - @(MPIconOrganizer) : @"21_OrganizerTemplate", - @(MPIconASCII) : @"22_ASCIITemplate", - @(MPIconIcons) : @"23_IconsTemplate", - @(MPIconEstablishedConnection) : @"24_EstablishedConnectionTemplate", - @(MPIconMailFolder) : @"25_MailFolderTemplate", - @(MPIconFileSave) : @"26_FileSaveTemplate", - @(MPIconNFSUnmount) : @"27_NFSUnmountTemplate", - @(MPIconQuickTime) : @"28_QuickTimeTemplate", - @(MPIconSecureTerminal) : @"29_SecureTerminalTemplate", - @(MPIconTerminal) : @"30_TerminalTemplate", - @(MPIconPrint) : @"31_PrintTemplate", - @(MPIconFileSystemView) : @"32_FileSystemViewTemplate", - @(MPIconRun) : @"33_RunTemplate", - @(MPIconConfigure) : @"34_ConfigureTemplate", - @(MPIconBrowserWindow) : @"35_BrowserWindowTemplate", - @(MPIconArchive) : @"36_ArchiveTemplate", - @(MPIconPercentage) : @"37_PercentageTemplate", - @(MPIconSambaUnmount) : @"38_SambaUnmountTemplate", - @(MPIconHistory) : @"39_HistoryTemplate", - @(MPIconFindMail) : @"40_FindMailTemplate", - @(MPIconVector) : @"41_VectorTemplate", - @(MPIconMemory) : @"42_MemoryTemplate", - @(MPIconTrash) : @"43_TrashTemplate", - @(MPIconNotes) : @"44_NotesTemplate", - @(MPIconCancel) : @"45_CancelTemplate", - @(MPIconHelp) : @"46_HelpTemplate", - @(MPIconPackage) : @"47_PackageTemplate", - @(MPIconFolder) : @"48_FolderTemplate", - @(MPIconFolderOpen) : @"49_FolderOpenTemplate", - @(MPIconFolderTar) : @"50_FolderTarTemplate", - @(MPIconDecrypted) : @"51_DecryptedTemplate", - @(MPIconEncrypted) : @"52_EncryptedTemplate", - @(MPIconApply) : @"53_ApplyTemplate", - @(MPIconSignature) : @"54_SignatureTemplate", - @(MPIconThumbnail) : @"55_ThumbnailTemplate", - @(MPIconAddressBook) : @"56_AddressBookTemplate", - @(MPIconTextView) : @"57_TextViewTemplate", - @(MPIconSecureAccount) : @"58_SecureAccountTemplate", - @(MPIconDevelopment) : @"59_DevelopmentTemplate", - @(MPIconHome) : @"60_HomeTemplate", - @(MPIconServices) : @"61_ServicesTemplate", - @(MPIconTux) : @"62_TuxTemplate", - @(MPIconFeather) : @"63_FeatherTemplate", - @(MPIconApple) : @"64_AppleTemplate", - @(MPIconWiki) : @"65_WikiTemplate", - @(MPIconMoney) : @"66_MoneyTemplate", - @(MPIconCertificat) : @"67_CertificatTemplate", - @(MPIconPhone) : @"68_PhoneTemplate", - /* Custom */ - @(MPIconSidebar) : NSImageNameTouchBarGetInfoTemplate, - @(MPIconAddFolder) : @"addFolderTemplate", - @(MPIconHardDisk) : @"harddiskTemplate", - @(MPIconCreated) : @"createdTemplate", - @(MPIconAddEntry) : @"addEntryTemplate", - @(MPIconContextTriangle) : @"contextTriangleTemplate", - @(MPIconKeyboard) : @"keyboardTemplate", - - @(MPIconExpiredEntry) : NSImageNameCaution, - @(MPIconExpiredGroup) : NSImageNameCaution - }; + @(MPIconPassword) : @"00_PasswordTemplate", + @(MPIconPackageNetwork) : @"01_PackageNetworkTemplate", + @(MPIconWarning) : @"02_MessageBoxWarningTemplate", + @(MPIconServer) : @"03_ServerTemplate", + @(MPIconKlipper) : @"04_KlipperTemplate", + @(MPIconLanguages) : @"05_LanguagesTemplate", + @(MPIconBlockDevice) : @"06_BlockDeviceTemplate", + @(MPIconNotepad) : @"07_NotepadTemplate", + @(MPIconSocket) : @"08_SocketTemplate", + @(MPIconIdentity) : @"09_IdentityTemplate", + @(MPIconContact) : @"10_ContactTemplate", + @(MPIconCamera) : @"11_CameraTemplate", + @(MPIconRemote) : @"12_RemoteTemplate", + @(MPIconKeys) : @"13_KeysTemplate", + @(MPIconBattery) : @"14_BatteryTemplate", + @(MPIconScanner) : @"15_ScannerTemplate", + @(MPIconBrowser) : @"16_BrowserTemplate", + @(MPIconCDRom) : @"17_CDRomTemplate", + @(MPIconDisplay) : @"18_DisplayTemplate", + @(MPIconEmail) : @"19_EmailTemplate", + @(MPIconMisc) : @"20_MiscTemplate", + @(MPIconOrganizer) : @"21_OrganizerTemplate", + @(MPIconASCII) : @"22_ASCIITemplate", + @(MPIconIcons) : @"23_IconsTemplate", + @(MPIconEstablishedConnection) : @"24_EstablishedConnectionTemplate", + @(MPIconMailFolder) : @"25_MailFolderTemplate", + @(MPIconFileSave) : @"26_FileSaveTemplate", + @(MPIconNFSUnmount) : @"27_NFSUnmountTemplate", + @(MPIconQuickTime) : @"28_QuickTimeTemplate", + @(MPIconSecureTerminal) : @"29_SecureTerminalTemplate", + @(MPIconTerminal) : @"30_TerminalTemplate", + @(MPIconPrint) : @"31_PrintTemplate", + @(MPIconFileSystemView) : @"32_FileSystemViewTemplate", + @(MPIconRun) : @"33_RunTemplate", + @(MPIconConfigure) : @"34_ConfigureTemplate", + @(MPIconBrowserWindow) : @"35_BrowserWindowTemplate", + @(MPIconArchive) : @"36_ArchiveTemplate", + @(MPIconPercentage) : @"37_PercentageTemplate", + @(MPIconSambaUnmount) : @"38_SambaUnmountTemplate", + @(MPIconHistory) : @"39_HistoryTemplate", + @(MPIconFindMail) : @"40_FindMailTemplate", + @(MPIconVector) : @"41_VectorTemplate", + @(MPIconMemory) : @"42_MemoryTemplate", + @(MPIconTrash) : @"43_TrashTemplate", + @(MPIconNotes) : @"44_NotesTemplate", + @(MPIconCancel) : @"45_CancelTemplate", + @(MPIconHelp) : @"46_HelpTemplate", + @(MPIconPackage) : @"47_PackageTemplate", + @(MPIconFolder) : @"48_FolderTemplate", + @(MPIconFolderOpen) : @"49_FolderOpenTemplate", + @(MPIconFolderTar) : @"50_FolderTarTemplate", + @(MPIconDecrypted) : @"51_DecryptedTemplate", + @(MPIconEncrypted) : @"52_EncryptedTemplate", + @(MPIconApply) : @"53_ApplyTemplate", + @(MPIconSignature) : @"54_SignatureTemplate", + @(MPIconThumbnail) : @"55_ThumbnailTemplate", + @(MPIconAddressBook) : @"56_AddressBookTemplate", + @(MPIconTextView) : @"57_TextViewTemplate", + @(MPIconSecureAccount) : @"58_SecureAccountTemplate", + @(MPIconDevelopment) : @"59_DevelopmentTemplate", + @(MPIconHome) : @"60_HomeTemplate", + @(MPIconServices) : @"61_ServicesTemplate", + @(MPIconTux) : @"62_TuxTemplate", + @(MPIconFeather) : @"63_FeatherTemplate", + @(MPIconApple) : @"64_AppleTemplate", + @(MPIconWiki) : @"65_WikiTemplate", + @(MPIconMoney) : @"66_MoneyTemplate", + @(MPIconCertificat) : @"67_CertificatTemplate", + @(MPIconPhone) : @"68_PhoneTemplate", + /* Custom */ + @(MPIconSidebar) : NSImageNameTouchBarGetInfoTemplate, + @(MPIconAddFolder) : @"addFolderTemplate", + @(MPIconHardDisk) : @"harddiskTemplate", + @(MPIconCreated) : @"createdTemplate", + @(MPIconAddEntry) : @"addEntryTemplate", + @(MPIconContextTriangle) : @"contextTriangleTemplate", + @(MPIconKeyboard) : @"keyboardTemplate", + + @(MPIconExpiredEntry) : NSImageNameCaution, + @(MPIconExpiredGroup) : NSImageNameCaution + }; }); return imageNames; }