From b3a7843c22755fbb01983659a09711870632d99f Mon Sep 17 00:00:00 2001 From: Claire Date: Sat, 1 Oct 2022 13:12:09 -0700 Subject: [PATCH] v1.4.2 - fixed window dupe bug, added emoji icons --- LunaMac.xcodeproj/project.pbxproj | 244 +++++++++++++------- LunaMac/AppDelegate.swift | 49 ++-- LunaMac/Info.plist | 8 +- LunaMac/changelog.txt | 7 + LunaMac/png/{ => dark}/default-dark.png | Bin LunaMac/png/{ => dark}/firstq-dark.png | Bin LunaMac/png/{ => dark}/full-dark.png | Bin LunaMac/png/{ => dark}/lastq-dark.png | Bin LunaMac/png/{ => dark}/new-dark.png | Bin LunaMac/png/{ => dark}/wanc-dark.png | Bin LunaMac/png/{ => dark}/wang-dark.png | Bin LunaMac/png/{ => dark}/waxc-dark.png | Bin LunaMac/png/{ => dark}/waxg-dark.png | Bin LunaMac/png/{ => darkalt}/wanc-alt-dark.png | Bin LunaMac/png/{ => darkalt}/wang-alt-dark.png | Bin LunaMac/png/{ => darkalt}/waxc-alt-dark.png | Bin LunaMac/png/{ => darkalt}/waxg-alt-dark.png | Bin LunaMac/png/{ => default}/default.png | Bin LunaMac/png/{ => default}/firstq.png | Bin LunaMac/png/{ => default}/full.png | Bin LunaMac/png/{ => default}/lastq.png | Bin LunaMac/png/{ => default}/new.png | Bin LunaMac/png/{ => default}/wanc.png | Bin LunaMac/png/{ => default}/wang.png | Bin LunaMac/png/{ => default}/waxc.png | Bin LunaMac/png/{ => default}/waxg.png | Bin LunaMac/png/emoji/default-emoji.png | Bin 0 -> 1542 bytes LunaMac/png/emoji/firstq-emoji.png | Bin 0 -> 1794 bytes LunaMac/png/emoji/full-emoji.png | Bin 0 -> 1752 bytes LunaMac/png/emoji/lastq-emoji.png | Bin 0 -> 1805 bytes LunaMac/png/emoji/new-emoji.png | Bin 0 -> 1766 bytes LunaMac/png/emoji/wanc-emoji.png | Bin 0 -> 1806 bytes LunaMac/png/emoji/wang-emoji.png | Bin 0 -> 1791 bytes LunaMac/png/emoji/waxc-emoji.png | Bin 0 -> 1803 bytes LunaMac/png/emoji/waxg-emoji.png | Bin 0 -> 1782 bytes 35 files changed, 198 insertions(+), 110 deletions(-) rename LunaMac/png/{ => dark}/default-dark.png (100%) rename LunaMac/png/{ => dark}/firstq-dark.png (100%) rename LunaMac/png/{ => dark}/full-dark.png (100%) rename LunaMac/png/{ => dark}/lastq-dark.png (100%) rename LunaMac/png/{ => dark}/new-dark.png (100%) rename LunaMac/png/{ => dark}/wanc-dark.png (100%) rename LunaMac/png/{ => dark}/wang-dark.png (100%) rename LunaMac/png/{ => dark}/waxc-dark.png (100%) rename LunaMac/png/{ => dark}/waxg-dark.png (100%) rename LunaMac/png/{ => darkalt}/wanc-alt-dark.png (100%) rename LunaMac/png/{ => darkalt}/wang-alt-dark.png (100%) rename LunaMac/png/{ => darkalt}/waxc-alt-dark.png (100%) rename LunaMac/png/{ => darkalt}/waxg-alt-dark.png (100%) rename LunaMac/png/{ => default}/default.png (100%) rename LunaMac/png/{ => default}/firstq.png (100%) rename LunaMac/png/{ => default}/full.png (100%) rename LunaMac/png/{ => default}/lastq.png (100%) rename LunaMac/png/{ => default}/new.png (100%) rename LunaMac/png/{ => default}/wanc.png (100%) rename LunaMac/png/{ => default}/wang.png (100%) rename LunaMac/png/{ => default}/waxc.png (100%) rename LunaMac/png/{ => default}/waxg.png (100%) create mode 100644 LunaMac/png/emoji/default-emoji.png create mode 100644 LunaMac/png/emoji/firstq-emoji.png create mode 100644 LunaMac/png/emoji/full-emoji.png create mode 100644 LunaMac/png/emoji/lastq-emoji.png create mode 100644 LunaMac/png/emoji/new-emoji.png create mode 100644 LunaMac/png/emoji/wanc-emoji.png create mode 100644 LunaMac/png/emoji/wang-emoji.png create mode 100644 LunaMac/png/emoji/waxc-emoji.png create mode 100644 LunaMac/png/emoji/waxg-emoji.png diff --git a/LunaMac.xcodeproj/project.pbxproj b/LunaMac.xcodeproj/project.pbxproj index 6a62fbc..001e5f5 100644 --- a/LunaMac.xcodeproj/project.pbxproj +++ b/LunaMac.xcodeproj/project.pbxproj @@ -14,29 +14,38 @@ 7ECD0D7C28DD2A4100B90958 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7ECD0D7B28DD2A4100B90958 /* AppDelegate.swift */; }; 7ECD0D7E28DD2A4100B90958 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7ECD0D7D28DD2A4100B90958 /* ViewController.swift */; }; 7ECD26CC28E002A9000D5E2C /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7ECD26CA28E002A9000D5E2C /* MainMenu.xib */; }; - 7EF1E35728E7FF5A006F8ED9 /* wang-alt-dark.png in Resources */ = {isa = PBXBuildFile; fileRef = 7EF1E35328E7FF59006F8ED9 /* wang-alt-dark.png */; }; - 7EF1E35828E7FF5A006F8ED9 /* wanc-alt-dark.png in Resources */ = {isa = PBXBuildFile; fileRef = 7EF1E35428E7FF59006F8ED9 /* wanc-alt-dark.png */; }; - 7EF1E35928E7FF5A006F8ED9 /* waxc-alt-dark.png in Resources */ = {isa = PBXBuildFile; fileRef = 7EF1E35528E7FF59006F8ED9 /* waxc-alt-dark.png */; }; - 7EF1E35A28E7FF5A006F8ED9 /* waxg-alt-dark.png in Resources */ = {isa = PBXBuildFile; fileRef = 7EF1E35628E7FF5A006F8ED9 /* waxg-alt-dark.png */; }; + 7ED5E25828E8AD0A00FF26EB /* wanc-alt-dark.png in Resources */ = {isa = PBXBuildFile; fileRef = 7ED5E23628E8AD0A00FF26EB /* wanc-alt-dark.png */; }; + 7ED5E25928E8AD0A00FF26EB /* wang-alt-dark.png in Resources */ = {isa = PBXBuildFile; fileRef = 7ED5E23728E8AD0A00FF26EB /* wang-alt-dark.png */; }; + 7ED5E25A28E8AD0A00FF26EB /* waxc-alt-dark.png in Resources */ = {isa = PBXBuildFile; fileRef = 7ED5E23828E8AD0A00FF26EB /* waxc-alt-dark.png */; }; + 7ED5E25B28E8AD0A00FF26EB /* waxg-alt-dark.png in Resources */ = {isa = PBXBuildFile; fileRef = 7ED5E23928E8AD0A00FF26EB /* waxg-alt-dark.png */; }; + 7ED5E26528E8AD0A00FF26EB /* default-dark.png in Resources */ = {isa = PBXBuildFile; fileRef = 7ED5E24528E8AD0A00FF26EB /* default-dark.png */; }; + 7ED5E26628E8AD0A00FF26EB /* firstq-dark.png in Resources */ = {isa = PBXBuildFile; fileRef = 7ED5E24628E8AD0A00FF26EB /* firstq-dark.png */; }; + 7ED5E26728E8AD0A00FF26EB /* full-dark.png in Resources */ = {isa = PBXBuildFile; fileRef = 7ED5E24728E8AD0A00FF26EB /* full-dark.png */; }; + 7ED5E26828E8AD0A00FF26EB /* lastq-dark.png in Resources */ = {isa = PBXBuildFile; fileRef = 7ED5E24828E8AD0A00FF26EB /* lastq-dark.png */; }; + 7ED5E26928E8AD0A00FF26EB /* new-dark.png in Resources */ = {isa = PBXBuildFile; fileRef = 7ED5E24928E8AD0A00FF26EB /* new-dark.png */; }; + 7ED5E26A28E8AD0A00FF26EB /* wanc-dark.png in Resources */ = {isa = PBXBuildFile; fileRef = 7ED5E24A28E8AD0A00FF26EB /* wanc-dark.png */; }; + 7ED5E26B28E8AD0A00FF26EB /* wang-dark.png in Resources */ = {isa = PBXBuildFile; fileRef = 7ED5E24B28E8AD0A00FF26EB /* wang-dark.png */; }; + 7ED5E26C28E8AD0A00FF26EB /* waxc-dark.png in Resources */ = {isa = PBXBuildFile; fileRef = 7ED5E24C28E8AD0A00FF26EB /* waxc-dark.png */; }; + 7ED5E26D28E8AD0A00FF26EB /* waxg-dark.png in Resources */ = {isa = PBXBuildFile; fileRef = 7ED5E24D28E8AD0A00FF26EB /* waxg-dark.png */; }; + 7ED5E26E28E8AD0A00FF26EB /* default.png in Resources */ = {isa = PBXBuildFile; fileRef = 7ED5E24F28E8AD0A00FF26EB /* default.png */; }; + 7ED5E26F28E8AD0A00FF26EB /* firstq.png in Resources */ = {isa = PBXBuildFile; fileRef = 7ED5E25028E8AD0A00FF26EB /* firstq.png */; }; + 7ED5E27028E8AD0A00FF26EB /* full.png in Resources */ = {isa = PBXBuildFile; fileRef = 7ED5E25128E8AD0A00FF26EB /* full.png */; }; + 7ED5E27128E8AD0A00FF26EB /* lastq.png in Resources */ = {isa = PBXBuildFile; fileRef = 7ED5E25228E8AD0A00FF26EB /* lastq.png */; }; + 7ED5E27228E8AD0A00FF26EB /* new.png in Resources */ = {isa = PBXBuildFile; fileRef = 7ED5E25328E8AD0A00FF26EB /* new.png */; }; + 7ED5E27328E8AD0A00FF26EB /* wanc.png in Resources */ = {isa = PBXBuildFile; fileRef = 7ED5E25428E8AD0A00FF26EB /* wanc.png */; }; + 7ED5E27428E8AD0A00FF26EB /* wang.png in Resources */ = {isa = PBXBuildFile; fileRef = 7ED5E25528E8AD0A00FF26EB /* wang.png */; }; + 7ED5E27528E8AD0A00FF26EB /* waxc.png in Resources */ = {isa = PBXBuildFile; fileRef = 7ED5E25628E8AD0A00FF26EB /* waxc.png */; }; + 7ED5E27628E8AD0A00FF26EB /* waxg.png in Resources */ = {isa = PBXBuildFile; fileRef = 7ED5E25728E8AD0A00FF26EB /* waxg.png */; }; + 7ED5E28128E8ADCC00FF26EB /* default-emoji.png in Resources */ = {isa = PBXBuildFile; fileRef = 7ED5E27828E8ADCC00FF26EB /* default-emoji.png */; }; + 7ED5E28228E8ADCC00FF26EB /* firstq-emoji.png in Resources */ = {isa = PBXBuildFile; fileRef = 7ED5E27928E8ADCC00FF26EB /* firstq-emoji.png */; }; + 7ED5E28328E8ADCC00FF26EB /* full-emoji.png in Resources */ = {isa = PBXBuildFile; fileRef = 7ED5E27A28E8ADCC00FF26EB /* full-emoji.png */; }; + 7ED5E28428E8ADCC00FF26EB /* lastq-emoji.png in Resources */ = {isa = PBXBuildFile; fileRef = 7ED5E27B28E8ADCC00FF26EB /* lastq-emoji.png */; }; + 7ED5E28528E8ADCC00FF26EB /* new-emoji.png in Resources */ = {isa = PBXBuildFile; fileRef = 7ED5E27C28E8ADCC00FF26EB /* new-emoji.png */; }; + 7ED5E28628E8ADCC00FF26EB /* wanc-emoji.png in Resources */ = {isa = PBXBuildFile; fileRef = 7ED5E27D28E8ADCC00FF26EB /* wanc-emoji.png */; }; + 7ED5E28728E8ADCC00FF26EB /* wang-emoji.png in Resources */ = {isa = PBXBuildFile; fileRef = 7ED5E27E28E8ADCC00FF26EB /* wang-emoji.png */; }; + 7ED5E28828E8ADCC00FF26EB /* waxc-emoji.png in Resources */ = {isa = PBXBuildFile; fileRef = 7ED5E27F28E8ADCC00FF26EB /* waxc-emoji.png */; }; + 7ED5E28928E8ADCC00FF26EB /* waxg-emoji.png in Resources */ = {isa = PBXBuildFile; fileRef = 7ED5E28028E8ADCC00FF26EB /* waxg-emoji.png */; }; 7EF79B3328DE1E4D00FF1F49 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 7EF79B3228DE1E4D00FF1F49 /* Assets.xcassets */; }; - 7EF79BAE28DE395C00FF1F49 /* firstq-dark.png in Resources */ = {isa = PBXBuildFile; fileRef = 7EF79B9E28DE395C00FF1F49 /* firstq-dark.png */; }; - 7EF79BAF28DE395C00FF1F49 /* firstq.png in Resources */ = {isa = PBXBuildFile; fileRef = 7EF79B9F28DE395C00FF1F49 /* firstq.png */; }; - 7EF79BB028DE395C00FF1F49 /* full-dark.png in Resources */ = {isa = PBXBuildFile; fileRef = 7EF79BA028DE395C00FF1F49 /* full-dark.png */; }; - 7EF79BB128DE395C00FF1F49 /* full.png in Resources */ = {isa = PBXBuildFile; fileRef = 7EF79BA128DE395C00FF1F49 /* full.png */; }; - 7EF79BB228DE395C00FF1F49 /* lastq-dark.png in Resources */ = {isa = PBXBuildFile; fileRef = 7EF79BA228DE395C00FF1F49 /* lastq-dark.png */; }; - 7EF79BB328DE395C00FF1F49 /* lastq.png in Resources */ = {isa = PBXBuildFile; fileRef = 7EF79BA328DE395C00FF1F49 /* lastq.png */; }; - 7EF79BB428DE395C00FF1F49 /* new-dark.png in Resources */ = {isa = PBXBuildFile; fileRef = 7EF79BA428DE395C00FF1F49 /* new-dark.png */; }; - 7EF79BB528DE395C00FF1F49 /* new.png in Resources */ = {isa = PBXBuildFile; fileRef = 7EF79BA528DE395C00FF1F49 /* new.png */; }; - 7EF79BB628DE395C00FF1F49 /* wanc-dark.png in Resources */ = {isa = PBXBuildFile; fileRef = 7EF79BA628DE395C00FF1F49 /* wanc-dark.png */; }; - 7EF79BB728DE395C00FF1F49 /* wanc.png in Resources */ = {isa = PBXBuildFile; fileRef = 7EF79BA728DE395C00FF1F49 /* wanc.png */; }; - 7EF79BB828DE395C00FF1F49 /* wang-dark.png in Resources */ = {isa = PBXBuildFile; fileRef = 7EF79BA828DE395C00FF1F49 /* wang-dark.png */; }; - 7EF79BB928DE395C00FF1F49 /* wang.png in Resources */ = {isa = PBXBuildFile; fileRef = 7EF79BA928DE395C00FF1F49 /* wang.png */; }; - 7EF79BBA28DE395C00FF1F49 /* waxc-dark.png in Resources */ = {isa = PBXBuildFile; fileRef = 7EF79BAA28DE395C00FF1F49 /* waxc-dark.png */; }; - 7EF79BBB28DE395C00FF1F49 /* waxc.png in Resources */ = {isa = PBXBuildFile; fileRef = 7EF79BAB28DE395C00FF1F49 /* waxc.png */; }; - 7EF79BBC28DE395C00FF1F49 /* waxg-dark.png in Resources */ = {isa = PBXBuildFile; fileRef = 7EF79BAC28DE395C00FF1F49 /* waxg-dark.png */; }; - 7EF79BBD28DE395C00FF1F49 /* waxg.png in Resources */ = {isa = PBXBuildFile; fileRef = 7EF79BAD28DE395C00FF1F49 /* waxg.png */; }; - 7EF79BC028DE4D2400FF1F49 /* default-dark.png in Resources */ = {isa = PBXBuildFile; fileRef = 7EF79BBE28DE4D2400FF1F49 /* default-dark.png */; }; - 7EF79BC128DE4D2400FF1F49 /* default.png in Resources */ = {isa = PBXBuildFile; fileRef = 7EF79BBF28DE4D2400FF1F49 /* default.png */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -50,29 +59,38 @@ 7ECD0D8428DD2A4200B90958 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 7ECD0D8528DD2A4200B90958 /* LunaMac.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = LunaMac.entitlements; sourceTree = ""; }; 7ECD26CB28E002A9000D5E2C /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = ""; }; - 7EF1E35328E7FF59006F8ED9 /* wang-alt-dark.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "wang-alt-dark.png"; sourceTree = ""; }; - 7EF1E35428E7FF59006F8ED9 /* wanc-alt-dark.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "wanc-alt-dark.png"; sourceTree = ""; }; - 7EF1E35528E7FF59006F8ED9 /* waxc-alt-dark.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "waxc-alt-dark.png"; sourceTree = ""; }; - 7EF1E35628E7FF5A006F8ED9 /* waxg-alt-dark.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "waxg-alt-dark.png"; sourceTree = ""; }; + 7ED5E23628E8AD0A00FF26EB /* wanc-alt-dark.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "wanc-alt-dark.png"; sourceTree = ""; }; + 7ED5E23728E8AD0A00FF26EB /* wang-alt-dark.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "wang-alt-dark.png"; sourceTree = ""; }; + 7ED5E23828E8AD0A00FF26EB /* waxc-alt-dark.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "waxc-alt-dark.png"; sourceTree = ""; }; + 7ED5E23928E8AD0A00FF26EB /* waxg-alt-dark.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "waxg-alt-dark.png"; sourceTree = ""; }; + 7ED5E24528E8AD0A00FF26EB /* default-dark.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "default-dark.png"; sourceTree = ""; }; + 7ED5E24628E8AD0A00FF26EB /* firstq-dark.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "firstq-dark.png"; sourceTree = ""; }; + 7ED5E24728E8AD0A00FF26EB /* full-dark.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "full-dark.png"; sourceTree = ""; }; + 7ED5E24828E8AD0A00FF26EB /* lastq-dark.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "lastq-dark.png"; sourceTree = ""; }; + 7ED5E24928E8AD0A00FF26EB /* new-dark.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "new-dark.png"; sourceTree = ""; }; + 7ED5E24A28E8AD0A00FF26EB /* wanc-dark.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "wanc-dark.png"; sourceTree = ""; }; + 7ED5E24B28E8AD0A00FF26EB /* wang-dark.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "wang-dark.png"; sourceTree = ""; }; + 7ED5E24C28E8AD0A00FF26EB /* waxc-dark.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "waxc-dark.png"; sourceTree = ""; }; + 7ED5E24D28E8AD0A00FF26EB /* waxg-dark.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "waxg-dark.png"; sourceTree = ""; }; + 7ED5E24F28E8AD0A00FF26EB /* default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = default.png; sourceTree = ""; }; + 7ED5E25028E8AD0A00FF26EB /* firstq.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = firstq.png; sourceTree = ""; }; + 7ED5E25128E8AD0A00FF26EB /* full.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = full.png; sourceTree = ""; }; + 7ED5E25228E8AD0A00FF26EB /* lastq.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = lastq.png; sourceTree = ""; }; + 7ED5E25328E8AD0A00FF26EB /* new.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = new.png; sourceTree = ""; }; + 7ED5E25428E8AD0A00FF26EB /* wanc.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = wanc.png; sourceTree = ""; }; + 7ED5E25528E8AD0A00FF26EB /* wang.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = wang.png; sourceTree = ""; }; + 7ED5E25628E8AD0A00FF26EB /* waxc.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = waxc.png; sourceTree = ""; }; + 7ED5E25728E8AD0A00FF26EB /* waxg.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = waxg.png; sourceTree = ""; }; + 7ED5E27828E8ADCC00FF26EB /* default-emoji.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "default-emoji.png"; sourceTree = ""; }; + 7ED5E27928E8ADCC00FF26EB /* firstq-emoji.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "firstq-emoji.png"; sourceTree = ""; }; + 7ED5E27A28E8ADCC00FF26EB /* full-emoji.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "full-emoji.png"; sourceTree = ""; }; + 7ED5E27B28E8ADCC00FF26EB /* lastq-emoji.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "lastq-emoji.png"; sourceTree = ""; }; + 7ED5E27C28E8ADCC00FF26EB /* new-emoji.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "new-emoji.png"; sourceTree = ""; }; + 7ED5E27D28E8ADCC00FF26EB /* wanc-emoji.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "wanc-emoji.png"; sourceTree = ""; }; + 7ED5E27E28E8ADCC00FF26EB /* wang-emoji.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "wang-emoji.png"; sourceTree = ""; }; + 7ED5E27F28E8ADCC00FF26EB /* waxc-emoji.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "waxc-emoji.png"; sourceTree = ""; }; + 7ED5E28028E8ADCC00FF26EB /* waxg-emoji.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "waxg-emoji.png"; sourceTree = ""; }; 7EF79B3228DE1E4D00FF1F49 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - 7EF79B9E28DE395C00FF1F49 /* firstq-dark.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "firstq-dark.png"; sourceTree = ""; }; - 7EF79B9F28DE395C00FF1F49 /* firstq.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = firstq.png; sourceTree = ""; }; - 7EF79BA028DE395C00FF1F49 /* full-dark.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "full-dark.png"; sourceTree = ""; }; - 7EF79BA128DE395C00FF1F49 /* full.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = full.png; sourceTree = ""; }; - 7EF79BA228DE395C00FF1F49 /* lastq-dark.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "lastq-dark.png"; sourceTree = ""; }; - 7EF79BA328DE395C00FF1F49 /* lastq.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = lastq.png; sourceTree = ""; }; - 7EF79BA428DE395C00FF1F49 /* new-dark.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "new-dark.png"; sourceTree = ""; }; - 7EF79BA528DE395C00FF1F49 /* new.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = new.png; sourceTree = ""; }; - 7EF79BA628DE395C00FF1F49 /* wanc-dark.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "wanc-dark.png"; sourceTree = ""; }; - 7EF79BA728DE395C00FF1F49 /* wanc.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = wanc.png; sourceTree = ""; }; - 7EF79BA828DE395C00FF1F49 /* wang-dark.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "wang-dark.png"; sourceTree = ""; }; - 7EF79BA928DE395C00FF1F49 /* wang.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = wang.png; sourceTree = ""; }; - 7EF79BAA28DE395C00FF1F49 /* waxc-dark.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "waxc-dark.png"; sourceTree = ""; }; - 7EF79BAB28DE395C00FF1F49 /* waxc.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = waxc.png; sourceTree = ""; }; - 7EF79BAC28DE395C00FF1F49 /* waxg-dark.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "waxg-dark.png"; sourceTree = ""; }; - 7EF79BAD28DE395C00FF1F49 /* waxg.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = waxg.png; sourceTree = ""; }; - 7EF79BBE28DE4D2400FF1F49 /* default-dark.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "default-dark.png"; sourceTree = ""; }; - 7EF79BBF28DE4D2400FF1F49 /* default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = default.png; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -120,31 +138,72 @@ path = LunaMac; sourceTree = ""; }; + 7ED5E23528E8AD0A00FF26EB /* darkalt */ = { + isa = PBXGroup; + children = ( + 7ED5E23628E8AD0A00FF26EB /* wanc-alt-dark.png */, + 7ED5E23728E8AD0A00FF26EB /* wang-alt-dark.png */, + 7ED5E23828E8AD0A00FF26EB /* waxc-alt-dark.png */, + 7ED5E23928E8AD0A00FF26EB /* waxg-alt-dark.png */, + ); + path = darkalt; + sourceTree = ""; + }; + 7ED5E24428E8AD0A00FF26EB /* dark */ = { + isa = PBXGroup; + children = ( + 7ED5E24528E8AD0A00FF26EB /* default-dark.png */, + 7ED5E24628E8AD0A00FF26EB /* firstq-dark.png */, + 7ED5E24728E8AD0A00FF26EB /* full-dark.png */, + 7ED5E24828E8AD0A00FF26EB /* lastq-dark.png */, + 7ED5E24928E8AD0A00FF26EB /* new-dark.png */, + 7ED5E24A28E8AD0A00FF26EB /* wanc-dark.png */, + 7ED5E24B28E8AD0A00FF26EB /* wang-dark.png */, + 7ED5E24C28E8AD0A00FF26EB /* waxc-dark.png */, + 7ED5E24D28E8AD0A00FF26EB /* waxg-dark.png */, + ); + path = dark; + sourceTree = ""; + }; + 7ED5E24E28E8AD0A00FF26EB /* default */ = { + isa = PBXGroup; + children = ( + 7ED5E24F28E8AD0A00FF26EB /* default.png */, + 7ED5E25028E8AD0A00FF26EB /* firstq.png */, + 7ED5E25128E8AD0A00FF26EB /* full.png */, + 7ED5E25228E8AD0A00FF26EB /* lastq.png */, + 7ED5E25328E8AD0A00FF26EB /* new.png */, + 7ED5E25428E8AD0A00FF26EB /* wanc.png */, + 7ED5E25528E8AD0A00FF26EB /* wang.png */, + 7ED5E25628E8AD0A00FF26EB /* waxc.png */, + 7ED5E25728E8AD0A00FF26EB /* waxg.png */, + ); + path = default; + sourceTree = ""; + }; + 7ED5E27728E8ADCC00FF26EB /* emoji */ = { + isa = PBXGroup; + children = ( + 7ED5E27828E8ADCC00FF26EB /* default-emoji.png */, + 7ED5E27928E8ADCC00FF26EB /* firstq-emoji.png */, + 7ED5E27A28E8ADCC00FF26EB /* full-emoji.png */, + 7ED5E27B28E8ADCC00FF26EB /* lastq-emoji.png */, + 7ED5E27C28E8ADCC00FF26EB /* new-emoji.png */, + 7ED5E27D28E8ADCC00FF26EB /* wanc-emoji.png */, + 7ED5E27E28E8ADCC00FF26EB /* wang-emoji.png */, + 7ED5E27F28E8ADCC00FF26EB /* waxc-emoji.png */, + 7ED5E28028E8ADCC00FF26EB /* waxg-emoji.png */, + ); + path = emoji; + sourceTree = ""; + }; 7EF79B9D28DE395C00FF1F49 /* png */ = { isa = PBXGroup; children = ( - 7EF1E35428E7FF59006F8ED9 /* wanc-alt-dark.png */, - 7EF1E35328E7FF59006F8ED9 /* wang-alt-dark.png */, - 7EF1E35528E7FF59006F8ED9 /* waxc-alt-dark.png */, - 7EF1E35628E7FF5A006F8ED9 /* waxg-alt-dark.png */, - 7EF79BBE28DE4D2400FF1F49 /* default-dark.png */, - 7EF79BBF28DE4D2400FF1F49 /* default.png */, - 7EF79B9E28DE395C00FF1F49 /* firstq-dark.png */, - 7EF79B9F28DE395C00FF1F49 /* firstq.png */, - 7EF79BA028DE395C00FF1F49 /* full-dark.png */, - 7EF79BA128DE395C00FF1F49 /* full.png */, - 7EF79BA228DE395C00FF1F49 /* lastq-dark.png */, - 7EF79BA328DE395C00FF1F49 /* lastq.png */, - 7EF79BA428DE395C00FF1F49 /* new-dark.png */, - 7EF79BA528DE395C00FF1F49 /* new.png */, - 7EF79BA628DE395C00FF1F49 /* wanc-dark.png */, - 7EF79BA728DE395C00FF1F49 /* wanc.png */, - 7EF79BA828DE395C00FF1F49 /* wang-dark.png */, - 7EF79BA928DE395C00FF1F49 /* wang.png */, - 7EF79BAA28DE395C00FF1F49 /* waxc-dark.png */, - 7EF79BAB28DE395C00FF1F49 /* waxc.png */, - 7EF79BAC28DE395C00FF1F49 /* waxg-dark.png */, - 7EF79BAD28DE395C00FF1F49 /* waxg.png */, + 7ED5E24428E8AD0A00FF26EB /* dark */, + 7ED5E23528E8AD0A00FF26EB /* darkalt */, + 7ED5E24E28E8AD0A00FF26EB /* default */, + 7ED5E27728E8ADCC00FF26EB /* emoji */, ); path = png; sourceTree = ""; @@ -212,33 +271,42 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 7ED5E28328E8ADCC00FF26EB /* full-emoji.png in Resources */, + 7ED5E27128E8AD0A00FF26EB /* lastq.png in Resources */, + 7ED5E28128E8ADCC00FF26EB /* default-emoji.png in Resources */, + 7ED5E27528E8AD0A00FF26EB /* waxc.png in Resources */, + 7ED5E26F28E8AD0A00FF26EB /* firstq.png in Resources */, + 7ED5E28828E8ADCC00FF26EB /* waxc-emoji.png in Resources */, + 7ED5E26E28E8AD0A00FF26EB /* default.png in Resources */, + 7ED5E26D28E8AD0A00FF26EB /* waxg-dark.png in Resources */, + 7ED5E27228E8AD0A00FF26EB /* new.png in Resources */, + 7ED5E28428E8ADCC00FF26EB /* lastq-emoji.png in Resources */, + 7ED5E26B28E8AD0A00FF26EB /* wang-dark.png in Resources */, 7E8188BB28DD423B0080C707 /* InfoBox.xib in Resources */, - 7EF79BBD28DE395C00FF1F49 /* waxg.png in Resources */, - 7EF79BAF28DE395C00FF1F49 /* firstq.png in Resources */, + 7ED5E28728E8ADCC00FF26EB /* wang-emoji.png in Resources */, + 7ED5E27028E8AD0A00FF26EB /* full.png in Resources */, + 7ED5E26528E8AD0A00FF26EB /* default-dark.png in Resources */, + 7ED5E26828E8AD0A00FF26EB /* lastq-dark.png in Resources */, + 7ED5E28528E8ADCC00FF26EB /* new-emoji.png in Resources */, + 7ED5E27628E8AD0A00FF26EB /* waxg.png in Resources */, + 7ED5E25828E8AD0A00FF26EB /* wanc-alt-dark.png in Resources */, + 7ED5E26C28E8AD0A00FF26EB /* waxc-dark.png in Resources */, + 7ED5E26928E8AD0A00FF26EB /* new-dark.png in Resources */, 7E0CBEA628DEBA80009967CD /* changelog.txt in Resources */, - 7EF79BB428DE395C00FF1F49 /* new-dark.png in Resources */, - 7EF79BB828DE395C00FF1F49 /* wang-dark.png in Resources */, - 7EF79BC028DE4D2400FF1F49 /* default-dark.png in Resources */, - 7EF79BB928DE395C00FF1F49 /* wang.png in Resources */, - 7EF1E35828E7FF5A006F8ED9 /* wanc-alt-dark.png in Resources */, - 7EF1E35728E7FF5A006F8ED9 /* wang-alt-dark.png in Resources */, - 7EF79BB628DE395C00FF1F49 /* wanc-dark.png in Resources */, - 7EF79BBB28DE395C00FF1F49 /* waxc.png in Resources */, - 7EF1E35A28E7FF5A006F8ED9 /* waxg-alt-dark.png in Resources */, - 7EF79BB528DE395C00FF1F49 /* new.png in Resources */, - 7EF1E35928E7FF5A006F8ED9 /* waxc-alt-dark.png in Resources */, - 7EF79BB228DE395C00FF1F49 /* lastq-dark.png in Resources */, - 7EF79BB328DE395C00FF1F49 /* lastq.png in Resources */, 7E0CBEA428DEB998009967CD /* Changelog.xib in Resources */, - 7EF79BB028DE395C00FF1F49 /* full-dark.png in Resources */, - 7EF79BB128DE395C00FF1F49 /* full.png in Resources */, - 7EF79BC128DE4D2400FF1F49 /* default.png in Resources */, - 7EF79BBC28DE395C00FF1F49 /* waxg-dark.png in Resources */, + 7ED5E28928E8ADCC00FF26EB /* waxg-emoji.png in Resources */, + 7ED5E25B28E8AD0A00FF26EB /* waxg-alt-dark.png in Resources */, + 7ED5E28228E8ADCC00FF26EB /* firstq-emoji.png in Resources */, + 7ED5E26728E8AD0A00FF26EB /* full-dark.png in Resources */, + 7ED5E27328E8AD0A00FF26EB /* wanc.png in Resources */, + 7ED5E25A28E8AD0A00FF26EB /* waxc-alt-dark.png in Resources */, + 7ED5E27428E8AD0A00FF26EB /* wang.png in Resources */, + 7ED5E28628E8ADCC00FF26EB /* wanc-emoji.png in Resources */, 7EF79B3328DE1E4D00FF1F49 /* Assets.xcassets in Resources */, - 7EF79BAE28DE395C00FF1F49 /* firstq-dark.png in Resources */, + 7ED5E26628E8AD0A00FF26EB /* firstq-dark.png in Resources */, 7E96D61628DD75BE00999EAE /* LunaMac.icns in Resources */, - 7EF79BB728DE395C00FF1F49 /* wanc.png in Resources */, - 7EF79BBA28DE395C00FF1F49 /* waxc-dark.png in Resources */, + 7ED5E25928E8AD0A00FF26EB /* wang-alt-dark.png in Resources */, + 7ED5E26A28E8AD0A00FF26EB /* wanc-dark.png in Resources */, 7ECD26CC28E002A9000D5E2C /* MainMenu.xib in Resources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/LunaMac/AppDelegate.swift b/LunaMac/AppDelegate.swift index 08368da..9c40b6a 100644 --- a/LunaMac/AppDelegate.swift +++ b/LunaMac/AppDelegate.swift @@ -17,7 +17,7 @@ import Foundation import CoreFoundation @NSApplicationMain -class AppDelegate: NSObject, NSApplicationDelegate { +class AppDelegate: NSObject, NSApplicationDelegate, NSMenuDelegate { // static array of possible lunar values let phaseArray:[String:[String:NSString]] = [ @@ -89,9 +89,6 @@ class AppDelegate: NSObject, NSApplicationDelegate { // make sure applet stays in memory var statusBarItem: NSStatusItem? - // create a menu for the icon - let statusBarMenu = NSMenu(title: "LunaMac Menu") - // create empty timer for event loop var lunaTimer = Timer() @@ -121,10 +118,19 @@ class AppDelegate: NSObject, NSApplicationDelegate { RunLoop.current.add(lunaTimer, forMode: RunLoop.Mode.common) } + @objc func menuWillOpen(_ menu: NSMenu) { + lunaTimer.invalidate() + } + + @objc func menuDidClose(_ menu: NSMenu) { + startTimer() + } + @objc func buildMenu(key: String = "default") { - // clear the menu - statusBarMenu.removeAllItems() - statusBarItem?.isVisible = false + // create a menu for the icon + let statusBarMenu = NSMenu(title: "LunaMac Menu") + + statusBarMenu.delegate = self // get system-wide menu bar let statusBar = NSStatusBar.system @@ -132,22 +138,31 @@ class AppDelegate: NSObject, NSApplicationDelegate { // set icon size to square statusBarItem = statusBar.statusItem(withLength: NSStatusItem.squareLength) + // filename suffix + /* + -dark dark mode + -alt-dark dark mode inverted + -emoji emoji + */ + var suffix = "" + + // if key is new2, rename to new + var key2 = key.contains("2") ? "new" : key + // if iconPref is set to emoji if (defaults.string(forKey: "iconPref") == "emoji") { // change font size // still not aligned properly + /* let iconString = phaseArray[key]?["icon"] as String? ?? "⨂" let iconAttrib = [ NSAttributedString.Key.font: NSFont.menuFont(ofSize: 12.0) ] let iconAttrString = NSAttributedString(string: iconString, attributes: iconAttrib) statusBarItem?.button?.attributedTitle = iconAttrString + */ + suffix += "-emoji" } // otherwise use icons else { - var suffix = "" - - // if key is new2, rename to new - var key2 = key.contains("2") ? "new" : key - // check for dark mode and set the right image file if #available(OSX 10.14, *) { let darkMode = UserDefaults.standard.string(forKey: "AppleInterfaceStyle") @@ -179,14 +194,12 @@ class AppDelegate: NSObject, NSApplicationDelegate { suffix += "-dark" } } - - // set image filename - let imgName = key2 + suffix + ".png" - - statusBarItem?.button?.image = NSImage(named: imgName) } - statusBarItem?.isVisible = true + // set image filename + let imgName = key2 + suffix + ".png" + + statusBarItem?.button?.image = NSImage(named: imgName) // add the menu to the menu bar icon statusBarItem?.menu = statusBarMenu diff --git a/LunaMac/Info.plist b/LunaMac/Info.plist index 3fb18da..d0dad0b 100644 --- a/LunaMac/Info.plist +++ b/LunaMac/Info.plist @@ -18,12 +18,12 @@ $(PRODUCT_NAME) CFBundlePackageType APPL + CFBundleDisplayName + LunaMac CFBundleShortVersionString - 1.4 + 1.4.1 CFBundleVersion - 1.4 - LSApplicationCategoryType - + 1.4.1 LSMinimumSystemVersion $(MACOSX_DEPLOYMENT_TARGET) NSHumanReadableCopyright diff --git a/LunaMac/changelog.txt b/LunaMac/changelog.txt index e14e335..15a59de 100644 --- a/LunaMac/changelog.txt +++ b/LunaMac/changelog.txt @@ -1,4 +1,11 @@ ====== Changelog ====== +v1.4.2 + - Fixed icon duplication bug + +v1.4.1 + - Emoji icons use images, so they're aligned properly + - Known bug with menu duplication and jumping in the status bar + v1.4 - Added user preference for icon style - Alt dark icons (inverted in dark mode to better represent phase) diff --git a/LunaMac/png/default-dark.png b/LunaMac/png/dark/default-dark.png similarity index 100% rename from LunaMac/png/default-dark.png rename to LunaMac/png/dark/default-dark.png diff --git a/LunaMac/png/firstq-dark.png b/LunaMac/png/dark/firstq-dark.png similarity index 100% rename from LunaMac/png/firstq-dark.png rename to LunaMac/png/dark/firstq-dark.png diff --git a/LunaMac/png/full-dark.png b/LunaMac/png/dark/full-dark.png similarity index 100% rename from LunaMac/png/full-dark.png rename to LunaMac/png/dark/full-dark.png diff --git a/LunaMac/png/lastq-dark.png b/LunaMac/png/dark/lastq-dark.png similarity index 100% rename from LunaMac/png/lastq-dark.png rename to LunaMac/png/dark/lastq-dark.png diff --git a/LunaMac/png/new-dark.png b/LunaMac/png/dark/new-dark.png similarity index 100% rename from LunaMac/png/new-dark.png rename to LunaMac/png/dark/new-dark.png diff --git a/LunaMac/png/wanc-dark.png b/LunaMac/png/dark/wanc-dark.png similarity index 100% rename from LunaMac/png/wanc-dark.png rename to LunaMac/png/dark/wanc-dark.png diff --git a/LunaMac/png/wang-dark.png b/LunaMac/png/dark/wang-dark.png similarity index 100% rename from LunaMac/png/wang-dark.png rename to LunaMac/png/dark/wang-dark.png diff --git a/LunaMac/png/waxc-dark.png b/LunaMac/png/dark/waxc-dark.png similarity index 100% rename from LunaMac/png/waxc-dark.png rename to LunaMac/png/dark/waxc-dark.png diff --git a/LunaMac/png/waxg-dark.png b/LunaMac/png/dark/waxg-dark.png similarity index 100% rename from LunaMac/png/waxg-dark.png rename to LunaMac/png/dark/waxg-dark.png diff --git a/LunaMac/png/wanc-alt-dark.png b/LunaMac/png/darkalt/wanc-alt-dark.png similarity index 100% rename from LunaMac/png/wanc-alt-dark.png rename to LunaMac/png/darkalt/wanc-alt-dark.png diff --git a/LunaMac/png/wang-alt-dark.png b/LunaMac/png/darkalt/wang-alt-dark.png similarity index 100% rename from LunaMac/png/wang-alt-dark.png rename to LunaMac/png/darkalt/wang-alt-dark.png diff --git a/LunaMac/png/waxc-alt-dark.png b/LunaMac/png/darkalt/waxc-alt-dark.png similarity index 100% rename from LunaMac/png/waxc-alt-dark.png rename to LunaMac/png/darkalt/waxc-alt-dark.png diff --git a/LunaMac/png/waxg-alt-dark.png b/LunaMac/png/darkalt/waxg-alt-dark.png similarity index 100% rename from LunaMac/png/waxg-alt-dark.png rename to LunaMac/png/darkalt/waxg-alt-dark.png diff --git a/LunaMac/png/default.png b/LunaMac/png/default/default.png similarity index 100% rename from LunaMac/png/default.png rename to LunaMac/png/default/default.png diff --git a/LunaMac/png/firstq.png b/LunaMac/png/default/firstq.png similarity index 100% rename from LunaMac/png/firstq.png rename to LunaMac/png/default/firstq.png diff --git a/LunaMac/png/full.png b/LunaMac/png/default/full.png similarity index 100% rename from LunaMac/png/full.png rename to LunaMac/png/default/full.png diff --git a/LunaMac/png/lastq.png b/LunaMac/png/default/lastq.png similarity index 100% rename from LunaMac/png/lastq.png rename to LunaMac/png/default/lastq.png diff --git a/LunaMac/png/new.png b/LunaMac/png/default/new.png similarity index 100% rename from LunaMac/png/new.png rename to LunaMac/png/default/new.png diff --git a/LunaMac/png/wanc.png b/LunaMac/png/default/wanc.png similarity index 100% rename from LunaMac/png/wanc.png rename to LunaMac/png/default/wanc.png diff --git a/LunaMac/png/wang.png b/LunaMac/png/default/wang.png similarity index 100% rename from LunaMac/png/wang.png rename to LunaMac/png/default/wang.png diff --git a/LunaMac/png/waxc.png b/LunaMac/png/default/waxc.png similarity index 100% rename from LunaMac/png/waxc.png rename to LunaMac/png/default/waxc.png diff --git a/LunaMac/png/waxg.png b/LunaMac/png/default/waxg.png similarity index 100% rename from LunaMac/png/waxg.png rename to LunaMac/png/default/waxg.png diff --git a/LunaMac/png/emoji/default-emoji.png b/LunaMac/png/emoji/default-emoji.png new file mode 100644 index 0000000000000000000000000000000000000000..9e442abe14d6b8e662c126355ae8a3d5d3ffb937 GIT binary patch literal 1542 zcmeAS@N?(olHy`uVBq!ia0vp^q9Dw{1|(OCFP#RYBuiW)N`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrIztFqdV9M3hAM`dB6B=jtVb)aX^@765fKFxc2v6eK2Rr0UTq__OB&@Hb09I0xZL0)vRD^GUf^&XRs)CuGfo`&aftiB2rCv&6 zQetval8%CrfsvuUfr-AMiLQZxm9eFjiHQOfC;_c2N=dT{a&d!N2ISc)Wt5Z@Sn2DR zmzV368|&p4rRy77T3YHG80i}s=>k>g7FXt#Bv$C=6)VF`a7isrF3Kz@$;{7F0GXJW zlwVq6s|0i^#1FXzzP@mS^NOJ%1q?I&io^naLp=li++2{yz^aQ&f>IIAz^b}9q_QAY zKPa_0zqBYB7$IrOFwMZg!*3BtA<#8e{zaLL#V68tNKZS{R!fni-j-8W_UN!KUBb%*Dde$-u(c(%H?> z(ACA#*v-}1)xgcn!qU;m)yx^D*E6rUBrz{J6=ruP&~B(+bG&-3oQqNuOY)0C^7C_G z$siyjza+mnBfmhw$VksbLBlsOIWrF=q6vy6h^Jjri!#enQ{0O3a}~hBY?X<{38|(Q zsU{YQsk(_tX$HC`rskHqmd0j=x{2l~Danb6#>ploW=c@~DdYy9KG0G6ptORNc3?ul z1PNlovjUI<&rGR#z#LQr%qqJcER|wlU{dpRaSW-r_2kOgY+*+ch7abOcTdidy1u0J z>JQ$~j{!?Fqq;84{_?<)#r{8||6AV)P2&7jLH=A*9hR_buWetH{_(NW*9#H09aB40 zaupO-dYavQt1^48r1?aTsGy58=GAPNK69>o{}|Rox{eFC{XO=by?*hb zQ*Q#wKK_cF=TTAD%d{ZvxxTTh6BnPJ@X;MH2J3uhom_eM>&0ES%a++U*Hzz)jTeDBHhyR=-I>9p~HHTzqJ#O3RC&fK-VBq(xu zkKzS0#|=BDPrv-!x;ZO~UujZwDbtEsohIi`<}N;B!O6iqox{O&_21%U&z8G0FL-jE z^Y~hm?G7gv-dU#Mf9#O9|Ff(28-HGZ&%7l2;WVAcwP&;#-1Od9e@Xl7vo~zV^B;$Q zd!J9Lj%r*fZq8=2kiFkfaQVycOdd6&GE3^&;_qMn>c8aWCGL;gW~VPQJZ-@Dyl3Cc zPqV%!&%8A0KKrhCZ9evLD{0-o#x=t?(96WU2XCrvD&( zvqvbKb{iYtj~rL0mWosXQMNFePh3$J<2z3r+jtSyhmxC2}b2@yu;5*;$J%k34p=Y&`y}H79Pv z+N*WPwCa|X?AFYiKYhuAn1mO8r(zGxs`kkKvj6oTdlm_XP0s~BDrMy@1(nR6u6{1- HoD!M<7{Eov literal 0 HcmV?d00001 diff --git a/LunaMac/png/emoji/firstq-emoji.png b/LunaMac/png/emoji/firstq-emoji.png new file mode 100644 index 0000000000000000000000000000000000000000..f3d3850ea753af41d26167fb5f68fe044116ce7e GIT binary patch literal 1794 zcmbVNX;2eq7>)>NVYH(lh!$KThgOr_Y(g%L8c2X3XGj$+7B|U~tR~sGSxmsQAZYPK z4ym+)RzyUoQUjxw!{RaCTD6L(gW>_AA}VMbt=%Bl{&4)!o!R}q@BN^E<2QamWJ~t=| ziZX_vS}Z)BK;zS+6{_?_DuJ3la|SToBBT`PQ4#?xdY!=}w20{adWF>9E(Ym9KZIN) zqQ7@4Au1LK!3h-LG9iWvg17)rz*HkjM5RJrZfYISQrM=#6b-b)TAOX zBZ=V#z^)Nd;;E#FPPzI%2E8#V>Vsl~X&_Tn&Oi%d1X)Z7)a&hm^`lLs9R1ggkD^VA zG$RViQ4^j@sHlRZOdKRr$@{b+JCO257(-xGRS=y7SEcGv11Xb;=+q5Ujj4tF6fVMt zP?*6-lqv=XhJzSNHOgYZ0zR9^;=&vhVh!r~7+=ET2l0c%!E8ZDD2pYP2-u<05GfSO zOsIjHAc7hd=d5jx)CAIH60yQ^ z<6eG@)=lhwqVfA%E$0HPEUfC-=z|5ZSw06Xv2n-pfQ%e^6%bs%wscovPKWqtaZZ~w z?n-7xX=&T3%wb>-V2RaLS|cj;R_lY6+h!h_*52wKA-$F-I<#L0+xmFjwg>em^X0Fv zd7gAga&@@+@Ex-L+}k;?x)*6|w&FDnkx$N}8m`VzDLGu*F;h9a86+!veeo{ul67S< ztP5dpW2T+DP*U}ysQgGnSxs2{p-0>HHt*NvW)qjPizjs7ecG`?Q)+{gQ`<*9{8du% zhJYKzSaVz7{9)%CyvNC$yT(f=xo7Qg46P9sIThXUlIPF=`MPmfz^hy7+(|LIdFNg< zZ2vMf+dQGO)t2(CeKE3n^+m@a{G#2>E@R!BSbxrM3p+e&>K8!?mPgM{6r9Smdak%w z%ya9xhCBb|$2kW@5;>V}*Ij2H8~bReOO{vm!o=UIuUxA6tYCcf>9bakaN-KrFs?cpEsS7K@<#ca{P%Lrk()+F( zc*lJ>L94^`&ky_&NX~ZnI@s5vtXzym)TNC09Ba#U$=AMVI(tl%ti^F#xn%Z>F--yO z?geg{(1yOBRomDZ|Oa-zVT{Y=gZzI+vio@-X%{J!)J}XvVEh* z$-1XKSiXU%bo^?ntYb>`jIzMO zUE#7XKchH)0#etv%#4@Ztli+bQuPMjm8g%dXenI2H!yFLTV6|&#y2nV+NF7Ver;=H z*iU!1wyk^m{OZFsokPvH&p!M1Z*$(ea@tTD=rgA>poryX|0~I)(UR)m1sVSU;=a1{ literal 0 HcmV?d00001 diff --git a/LunaMac/png/emoji/full-emoji.png b/LunaMac/png/emoji/full-emoji.png new file mode 100644 index 0000000000000000000000000000000000000000..f8a7a9ff0481dba0921d7a983a7ef7d5ba2f2d26 GIT binary patch literal 1752 zcmbVNc~BE)6p!FR5$q@^ViA_06)VYZLK2cS5pzl`mjN-wi%qgQ2+77|Apw;#v?yK( zf=E43r-D)yL_}&Fv7-WtGL{iVl;W)vi>56iYAxL$*#6=8M|WoT`@Z+R-+RAz&2ET| zUf}6I&7DLdc}gQhGGd+VeBH(p-wL0yVq)>d#d16jQ{z^|jFR{&Oo0MY1EN7?D56SV zbqVE?NUmwRcsVYQiiDMzfr>bFs5XO%K$A$^aGMEH>QNj}pc?v z)UZq>8FogTcw{Y(n_v*MTCG%TC>1knKpKa`0U0*{}1S>UKaKxxYM||rD-@{n`N3pQbj3PK@j>oW+kv53cVmM~eVkUr2r!s)x zC`73KfN;|A{x@UeLo7s;r%e7Mq+}@#Hf6kH#&$!av6|{ z`0=(|4~v!_@?12vX;9x{xZ3rmbK3(mYgXW%WwHa^5nbGfPfl?iX)^L`_))_*<6<@n z{2jqL_rF?b9zRpIa6um1`*xT5YAJ7Zi+w;n;a2pPS*1r3w8HVZQHo*1n`}M?q@F zYp;yK`hK4sVZVjESp0Hn=8t|;&ftE4G%LZyH#NLX@vH*mg&8M!91C`}n#%=O?=TvA zYi>-RQ@kPoANzXx4F9BwwQ>M5L^h7Drl%SA*Vl973hvdM&upzu+E~%= zq4kJqcP(NpT~HX z^k#_<^b1MXLIj6<*0gkCS91P%cs{W?yX`=9>%ni;keAH|ED%3B<;OEA;0_Y zc8AZ(OF0R7eyfA_jM01#%%~aTJ<8BSZ9hpb+nIH|RpNI+J7!dN#^sxj%4UsQvZemb z(M{#0hZ0-*GVQf}yY*eY!2`=p<9~4+3N9=?oN{_0<7W@y(YO08US~d)v{z~F1#H!& zxiyydt;x(x+MCz7AcZm3x9)g7b7z)JQ2mUyLT%r~2H|Q##T;I%lTW~_N%pYEbcvwsRTD)~x_t(}xzxGKYNz1q0x1Xz4 PJO4FOakQvXkd*xoXPd41 literal 0 HcmV?d00001 diff --git a/LunaMac/png/emoji/lastq-emoji.png b/LunaMac/png/emoji/lastq-emoji.png new file mode 100644 index 0000000000000000000000000000000000000000..1cb892fcf2d36ebac0fccc8781f467aecc028345 GIT binary patch literal 1805 zcmbVNc~BEq7!Pz5q=G0Ym%0_6dU;l)#QtCL3)c zt&mG2rYCc0DVuTieGC?xM)N_j)jp6ZCTFk%v%x$r0$VJuz}}(lv=;p9#z)b1UA_&# zT3{!0DV!;YVZtDpN#3Uoxqyr}k{OhVsS0LRl6bBKSm`9Cl+E052@@d^8HAV!0Vqd= z>2Zz#MWZ-+0`NGfSj3O!2~hz+c!PRA#*Y`P)S~z(K3}X*^LQ$yn6FkTRESzA633$| zp<4O=kU{|mFr*{TLOhdZ1A4Y*Wd>AHRWhRJXMrHP$1y7g>Y+TKd}dBX8RQmL)~QZAqct~0Jlfk?bxnRawdBTR z&)vH=$fGkKPE)4&&WYlU@HS1_8g7s@K5JNGcRpI&rit5ceZ1G>Y2($P2{=ZeHkNstOGkUVJC(e@c+Dw0ZTHz|)0`o}ang*Vl)h zgL4u>&Z42eMuXkXs-pJ7z_0(*)jiJ5*LbH;D`yl0hHjHQFQU78dJ`0~3$?ZLW>;Jz zu5UbkR3?h>yR*Lc_U_n%=9z6LCV!safK6RUa_0a3W)xaimSNVPFG)~rZdx<;ZS3}) zWT8j(y0G5o1RVT*HJDP@9#s~cUh!nIdDgP9nrk}0tzU)Kb}v{|bcj0Xytw~u4S(X8 zBaOC$5g}Kb^(Xc<{8-!)B+!)Xt96Jk-f0-Vy*GL1#*~uu;`1{SV#5LhBhD3}4%*H^O@pGlE;g%U8zLYHxNH`kcyafBjcg*!1nY@$=)Wb ziHuxwa%+0@ z@zfnB=Q{6CG9NyHu5Ug*>2%lQ#vMC&?*3$OVt2pvb^plutnPB^n9X#z-1UP>QcYLx Ilg}^y2ell#3;+NC literal 0 HcmV?d00001 diff --git a/LunaMac/png/emoji/new-emoji.png b/LunaMac/png/emoji/new-emoji.png new file mode 100644 index 0000000000000000000000000000000000000000..6baf5c4759f08df3ca4c944285fe4320c6ef2606 GIT binary patch literal 1766 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