Add AppKit bundle, fix light appearance
This commit is contained in:
parent
75be4141dd
commit
b8a415b6fd
|
@ -18,6 +18,8 @@
|
||||||
D68408E827947D0800E327D2 /* PrefsSceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = D68408E727947D0800E327D2 /* PrefsSceneDelegate.swift */; };
|
D68408E827947D0800E327D2 /* PrefsSceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = D68408E727947D0800E327D2 /* PrefsSceneDelegate.swift */; };
|
||||||
D68408ED2794803D00E327D2 /* PrefsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D68408EC2794803D00E327D2 /* PrefsView.swift */; };
|
D68408ED2794803D00E327D2 /* PrefsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D68408EC2794803D00E327D2 /* PrefsView.swift */; };
|
||||||
D68408EF2794808E00E327D2 /* Preferences.swift in Sources */ = {isa = PBXBuildFile; fileRef = D68408EE2794808E00E327D2 /* Preferences.swift */; };
|
D68408EF2794808E00E327D2 /* Preferences.swift in Sources */ = {isa = PBXBuildFile; fileRef = D68408EE2794808E00E327D2 /* Preferences.swift */; };
|
||||||
|
D68409132794870000E327D2 /* ReaderMac.swift in Sources */ = {isa = PBXBuildFile; fileRef = D68409122794870000E327D2 /* ReaderMac.swift */; };
|
||||||
|
D6840914279487DC00E327D2 /* ReaderMac.bundle in Embed PlugIns */ = {isa = PBXBuildFile; fileRef = D684090D279486BF00E327D2 /* ReaderMac.bundle */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||||
D68B303627907D9200E8B3FA /* ExcerptGenerator.swift in Sources */ = {isa = PBXBuildFile; fileRef = D68B303527907D9200E8B3FA /* ExcerptGenerator.swift */; };
|
D68B303627907D9200E8B3FA /* ExcerptGenerator.swift in Sources */ = {isa = PBXBuildFile; fileRef = D68B303527907D9200E8B3FA /* ExcerptGenerator.swift */; };
|
||||||
D68B303D2792204B00E8B3FA /* read.js in Resources */ = {isa = PBXBuildFile; fileRef = D68B303C2792204B00E8B3FA /* read.js */; };
|
D68B303D2792204B00E8B3FA /* read.js in Resources */ = {isa = PBXBuildFile; fileRef = D68B303C2792204B00E8B3FA /* read.js */; };
|
||||||
D68B30402792729A00E8B3FA /* AppSplitViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D68B303F2792729A00E8B3FA /* AppSplitViewController.swift */; };
|
D68B30402792729A00E8B3FA /* AppSplitViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D68B303F2792729A00E8B3FA /* AppSplitViewController.swift */; };
|
||||||
|
@ -58,6 +60,13 @@
|
||||||
/* End PBXBuildFile section */
|
/* End PBXBuildFile section */
|
||||||
|
|
||||||
/* Begin PBXContainerItemProxy section */
|
/* Begin PBXContainerItemProxy section */
|
||||||
|
D6840915279487DC00E327D2 /* PBXContainerItemProxy */ = {
|
||||||
|
isa = PBXContainerItemProxy;
|
||||||
|
containerPortal = D6C687E0272CD27600874C10 /* Project object */;
|
||||||
|
proxyType = 1;
|
||||||
|
remoteGlobalIDString = D684090C279486BF00E327D2;
|
||||||
|
remoteInfo = ReaderMac;
|
||||||
|
};
|
||||||
D6C68802272CD27700874C10 /* PBXContainerItemProxy */ = {
|
D6C68802272CD27700874C10 /* PBXContainerItemProxy */ = {
|
||||||
isa = PBXContainerItemProxy;
|
isa = PBXContainerItemProxy;
|
||||||
containerPortal = D6C687E0272CD27600874C10 /* Project object */;
|
containerPortal = D6C687E0272CD27600874C10 /* Project object */;
|
||||||
|
@ -82,6 +91,17 @@
|
||||||
/* End PBXContainerItemProxy section */
|
/* End PBXContainerItemProxy section */
|
||||||
|
|
||||||
/* Begin PBXCopyFilesBuildPhase section */
|
/* Begin PBXCopyFilesBuildPhase section */
|
||||||
|
D6840917279487DD00E327D2 /* Embed PlugIns */ = {
|
||||||
|
isa = PBXCopyFilesBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
dstPath = "";
|
||||||
|
dstSubfolderSpec = 13;
|
||||||
|
files = (
|
||||||
|
D6840914279487DC00E327D2 /* ReaderMac.bundle in Embed PlugIns */,
|
||||||
|
);
|
||||||
|
name = "Embed PlugIns";
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
};
|
||||||
D6C6882E272CD2BA00874C10 /* Embed Frameworks */ = {
|
D6C6882E272CD2BA00874C10 /* Embed Frameworks */ = {
|
||||||
isa = PBXCopyFilesBuildPhase;
|
isa = PBXCopyFilesBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
|
@ -107,6 +127,8 @@
|
||||||
D68408E727947D0800E327D2 /* PrefsSceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrefsSceneDelegate.swift; sourceTree = "<group>"; };
|
D68408E727947D0800E327D2 /* PrefsSceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrefsSceneDelegate.swift; sourceTree = "<group>"; };
|
||||||
D68408EC2794803D00E327D2 /* PrefsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrefsView.swift; sourceTree = "<group>"; };
|
D68408EC2794803D00E327D2 /* PrefsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrefsView.swift; sourceTree = "<group>"; };
|
||||||
D68408EE2794808E00E327D2 /* Preferences.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Preferences.swift; sourceTree = "<group>"; };
|
D68408EE2794808E00E327D2 /* Preferences.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Preferences.swift; sourceTree = "<group>"; };
|
||||||
|
D684090D279486BF00E327D2 /* ReaderMac.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ReaderMac.bundle; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
|
D68409122794870000E327D2 /* ReaderMac.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReaderMac.swift; sourceTree = "<group>"; };
|
||||||
D68B3032278FDD1A00E8B3FA /* Reader-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Reader-Bridging-Header.h"; sourceTree = "<group>"; };
|
D68B3032278FDD1A00E8B3FA /* Reader-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Reader-Bridging-Header.h"; sourceTree = "<group>"; };
|
||||||
D68B303527907D9200E8B3FA /* ExcerptGenerator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExcerptGenerator.swift; sourceTree = "<group>"; };
|
D68B303527907D9200E8B3FA /* ExcerptGenerator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExcerptGenerator.swift; sourceTree = "<group>"; };
|
||||||
D68B3037279099FD00E8B3FA /* liblolhtml.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = liblolhtml.a; path = "lol-html/c-api/target/aarch64-apple-ios-sim/release/liblolhtml.a"; sourceTree = "<group>"; };
|
D68B3037279099FD00E8B3FA /* liblolhtml.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = liblolhtml.a; path = "lol-html/c-api/target/aarch64-apple-ios-sim/release/liblolhtml.a"; sourceTree = "<group>"; };
|
||||||
|
@ -152,6 +174,13 @@
|
||||||
/* End PBXFileReference section */
|
/* End PBXFileReference section */
|
||||||
|
|
||||||
/* Begin PBXFrameworksBuildPhase section */
|
/* Begin PBXFrameworksBuildPhase section */
|
||||||
|
D684090A279486BF00E327D2 /* Frameworks */ = {
|
||||||
|
isa = PBXFrameworksBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
};
|
||||||
D6C687E5272CD27600874C10 /* Frameworks */ = {
|
D6C687E5272CD27600874C10 /* Frameworks */ = {
|
||||||
isa = PBXFrameworksBuildPhase;
|
isa = PBXFrameworksBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
|
@ -224,6 +253,14 @@
|
||||||
path = Preferences;
|
path = Preferences;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
};
|
};
|
||||||
|
D6840911279486C400E327D2 /* ReaderMac */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
D68409122794870000E327D2 /* ReaderMac.swift */,
|
||||||
|
);
|
||||||
|
path = ReaderMac;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
D68B302E278FDCE200E8B3FA /* Frameworks */ = {
|
D68B302E278FDCE200E8B3FA /* Frameworks */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
@ -253,6 +290,7 @@
|
||||||
D6C687EA272CD27600874C10 /* Reader */,
|
D6C687EA272CD27600874C10 /* Reader */,
|
||||||
D6C68804272CD27700874C10 /* ReaderTests */,
|
D6C68804272CD27700874C10 /* ReaderTests */,
|
||||||
D6C6880E272CD27700874C10 /* ReaderUITests */,
|
D6C6880E272CD27700874C10 /* ReaderUITests */,
|
||||||
|
D6840911279486C400E327D2 /* ReaderMac */,
|
||||||
D6C68824272CD2BA00874C10 /* Fervor */,
|
D6C68824272CD2BA00874C10 /* Fervor */,
|
||||||
D6C687E9272CD27600874C10 /* Products */,
|
D6C687E9272CD27600874C10 /* Products */,
|
||||||
D68B302E278FDCE200E8B3FA /* Frameworks */,
|
D68B302E278FDCE200E8B3FA /* Frameworks */,
|
||||||
|
@ -266,6 +304,7 @@
|
||||||
D6C68801272CD27700874C10 /* ReaderTests.xctest */,
|
D6C68801272CD27700874C10 /* ReaderTests.xctest */,
|
||||||
D6C6880B272CD27700874C10 /* ReaderUITests.xctest */,
|
D6C6880B272CD27700874C10 /* ReaderUITests.xctest */,
|
||||||
D6C68823272CD2BA00874C10 /* Fervor.framework */,
|
D6C68823272CD2BA00874C10 /* Fervor.framework */,
|
||||||
|
D684090D279486BF00E327D2 /* ReaderMac.bundle */,
|
||||||
);
|
);
|
||||||
name = Products;
|
name = Products;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
|
@ -362,6 +401,23 @@
|
||||||
/* End PBXHeadersBuildPhase section */
|
/* End PBXHeadersBuildPhase section */
|
||||||
|
|
||||||
/* Begin PBXNativeTarget section */
|
/* Begin PBXNativeTarget section */
|
||||||
|
D684090C279486BF00E327D2 /* ReaderMac */ = {
|
||||||
|
isa = PBXNativeTarget;
|
||||||
|
buildConfigurationList = D6840910279486BF00E327D2 /* Build configuration list for PBXNativeTarget "ReaderMac" */;
|
||||||
|
buildPhases = (
|
||||||
|
D6840909279486BF00E327D2 /* Sources */,
|
||||||
|
D684090A279486BF00E327D2 /* Frameworks */,
|
||||||
|
D684090B279486BF00E327D2 /* Resources */,
|
||||||
|
);
|
||||||
|
buildRules = (
|
||||||
|
);
|
||||||
|
dependencies = (
|
||||||
|
);
|
||||||
|
name = ReaderMac;
|
||||||
|
productName = ReaderMac;
|
||||||
|
productReference = D684090D279486BF00E327D2 /* ReaderMac.bundle */;
|
||||||
|
productType = "com.apple.product-type.bundle";
|
||||||
|
};
|
||||||
D6C687E7272CD27600874C10 /* Reader */ = {
|
D6C687E7272CD27600874C10 /* Reader */ = {
|
||||||
isa = PBXNativeTarget;
|
isa = PBXNativeTarget;
|
||||||
buildConfigurationList = D6C68815272CD27700874C10 /* Build configuration list for PBXNativeTarget "Reader" */;
|
buildConfigurationList = D6C68815272CD27700874C10 /* Build configuration list for PBXNativeTarget "Reader" */;
|
||||||
|
@ -371,11 +427,13 @@
|
||||||
D6C687E5272CD27600874C10 /* Frameworks */,
|
D6C687E5272CD27600874C10 /* Frameworks */,
|
||||||
D6C687E6272CD27600874C10 /* Resources */,
|
D6C687E6272CD27600874C10 /* Resources */,
|
||||||
D6C6882E272CD2BA00874C10 /* Embed Frameworks */,
|
D6C6882E272CD2BA00874C10 /* Embed Frameworks */,
|
||||||
|
D6840917279487DD00E327D2 /* Embed PlugIns */,
|
||||||
);
|
);
|
||||||
buildRules = (
|
buildRules = (
|
||||||
);
|
);
|
||||||
dependencies = (
|
dependencies = (
|
||||||
D6C68828272CD2BA00874C10 /* PBXTargetDependency */,
|
D6C68828272CD2BA00874C10 /* PBXTargetDependency */,
|
||||||
|
D6840916279487DC00E327D2 /* PBXTargetDependency */,
|
||||||
);
|
);
|
||||||
name = Reader;
|
name = Reader;
|
||||||
packageProductDependencies = (
|
packageProductDependencies = (
|
||||||
|
@ -449,6 +507,10 @@
|
||||||
LastSwiftUpdateCheck = 1320;
|
LastSwiftUpdateCheck = 1320;
|
||||||
LastUpgradeCheck = 1320;
|
LastUpgradeCheck = 1320;
|
||||||
TargetAttributes = {
|
TargetAttributes = {
|
||||||
|
D684090C279486BF00E327D2 = {
|
||||||
|
CreatedOnToolsVersion = 13.2;
|
||||||
|
LastSwiftMigration = 1320;
|
||||||
|
};
|
||||||
D6C687E7272CD27600874C10 = {
|
D6C687E7272CD27600874C10 = {
|
||||||
CreatedOnToolsVersion = 13.2;
|
CreatedOnToolsVersion = 13.2;
|
||||||
};
|
};
|
||||||
|
@ -486,11 +548,19 @@
|
||||||
D6C68800272CD27700874C10 /* ReaderTests */,
|
D6C68800272CD27700874C10 /* ReaderTests */,
|
||||||
D6C6880A272CD27700874C10 /* ReaderUITests */,
|
D6C6880A272CD27700874C10 /* ReaderUITests */,
|
||||||
D6C68822272CD2BA00874C10 /* Fervor */,
|
D6C68822272CD2BA00874C10 /* Fervor */,
|
||||||
|
D684090C279486BF00E327D2 /* ReaderMac */,
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
/* End PBXProject section */
|
/* End PBXProject section */
|
||||||
|
|
||||||
/* Begin PBXResourcesBuildPhase section */
|
/* Begin PBXResourcesBuildPhase section */
|
||||||
|
D684090B279486BF00E327D2 /* Resources */ = {
|
||||||
|
isa = PBXResourcesBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
};
|
||||||
D6C687E6272CD27600874C10 /* Resources */ = {
|
D6C687E6272CD27600874C10 /* Resources */ = {
|
||||||
isa = PBXResourcesBuildPhase;
|
isa = PBXResourcesBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
|
@ -548,6 +618,14 @@
|
||||||
/* End PBXShellScriptBuildPhase section */
|
/* End PBXShellScriptBuildPhase section */
|
||||||
|
|
||||||
/* Begin PBXSourcesBuildPhase section */
|
/* Begin PBXSourcesBuildPhase section */
|
||||||
|
D6840909279486BF00E327D2 /* Sources */ = {
|
||||||
|
isa = PBXSourcesBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
D68409132794870000E327D2 /* ReaderMac.swift in Sources */,
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
};
|
||||||
D6C687E4272CD27600874C10 /* Sources */ = {
|
D6C687E4272CD27600874C10 /* Sources */ = {
|
||||||
isa = PBXSourcesBuildPhase;
|
isa = PBXSourcesBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
|
@ -619,6 +697,11 @@
|
||||||
/* End PBXSourcesBuildPhase section */
|
/* End PBXSourcesBuildPhase section */
|
||||||
|
|
||||||
/* Begin PBXTargetDependency section */
|
/* Begin PBXTargetDependency section */
|
||||||
|
D6840916279487DC00E327D2 /* PBXTargetDependency */ = {
|
||||||
|
isa = PBXTargetDependency;
|
||||||
|
target = D684090C279486BF00E327D2 /* ReaderMac */;
|
||||||
|
targetProxy = D6840915279487DC00E327D2 /* PBXContainerItemProxy */;
|
||||||
|
};
|
||||||
D6C68803272CD27700874C10 /* PBXTargetDependency */ = {
|
D6C68803272CD27700874C10 /* PBXTargetDependency */ = {
|
||||||
isa = PBXTargetDependency;
|
isa = PBXTargetDependency;
|
||||||
target = D6C687E7272CD27600874C10 /* Reader */;
|
target = D6C687E7272CD27600874C10 /* Reader */;
|
||||||
|
@ -648,6 +731,65 @@
|
||||||
/* End PBXVariantGroup section */
|
/* End PBXVariantGroup section */
|
||||||
|
|
||||||
/* Begin XCBuildConfiguration section */
|
/* Begin XCBuildConfiguration section */
|
||||||
|
D684090E279486BF00E327D2 /* Debug */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
buildSettings = {
|
||||||
|
CLANG_ENABLE_MODULES = YES;
|
||||||
|
CODE_SIGN_STYLE = Automatic;
|
||||||
|
COMBINE_HIDPI_IMAGES = YES;
|
||||||
|
CURRENT_PROJECT_VERSION = 1;
|
||||||
|
DEVELOPMENT_TEAM = ZPBBSK8L8B;
|
||||||
|
GENERATE_INFOPLIST_FILE = YES;
|
||||||
|
INFOPLIST_KEY_NSHumanReadableCopyright = "";
|
||||||
|
INFOPLIST_KEY_NSPrincipalClass = "";
|
||||||
|
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Bundles";
|
||||||
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
|
"$(inherited)",
|
||||||
|
"@executable_path/../Frameworks",
|
||||||
|
"@loader_path/../Frameworks",
|
||||||
|
);
|
||||||
|
MACOSX_DEPLOYMENT_TARGET = 12.1;
|
||||||
|
MARKETING_VERSION = 1.0;
|
||||||
|
PRODUCT_BUNDLE_IDENTIFIER = net.shadowfacts.Reader.ReaderMac;
|
||||||
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
|
SDKROOT = macosx;
|
||||||
|
SKIP_INSTALL = YES;
|
||||||
|
SWIFT_EMIT_LOC_STRINGS = YES;
|
||||||
|
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||||
|
SWIFT_VERSION = 5.0;
|
||||||
|
WRAPPER_EXTENSION = bundle;
|
||||||
|
};
|
||||||
|
name = Debug;
|
||||||
|
};
|
||||||
|
D684090F279486BF00E327D2 /* Release */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
buildSettings = {
|
||||||
|
CLANG_ENABLE_MODULES = YES;
|
||||||
|
CODE_SIGN_STYLE = Automatic;
|
||||||
|
COMBINE_HIDPI_IMAGES = YES;
|
||||||
|
CURRENT_PROJECT_VERSION = 1;
|
||||||
|
DEVELOPMENT_TEAM = ZPBBSK8L8B;
|
||||||
|
GENERATE_INFOPLIST_FILE = YES;
|
||||||
|
INFOPLIST_KEY_NSHumanReadableCopyright = "";
|
||||||
|
INFOPLIST_KEY_NSPrincipalClass = "";
|
||||||
|
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Bundles";
|
||||||
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
|
"$(inherited)",
|
||||||
|
"@executable_path/../Frameworks",
|
||||||
|
"@loader_path/../Frameworks",
|
||||||
|
);
|
||||||
|
MACOSX_DEPLOYMENT_TARGET = 12.1;
|
||||||
|
MARKETING_VERSION = 1.0;
|
||||||
|
PRODUCT_BUNDLE_IDENTIFIER = net.shadowfacts.Reader.ReaderMac;
|
||||||
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
|
SDKROOT = macosx;
|
||||||
|
SKIP_INSTALL = YES;
|
||||||
|
SWIFT_EMIT_LOC_STRINGS = YES;
|
||||||
|
SWIFT_VERSION = 5.0;
|
||||||
|
WRAPPER_EXTENSION = bundle;
|
||||||
|
};
|
||||||
|
name = Release;
|
||||||
|
};
|
||||||
D6C68813272CD27700874C10 /* Debug */ = {
|
D6C68813272CD27700874C10 /* Debug */ = {
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
|
@ -996,6 +1138,15 @@
|
||||||
/* End XCBuildConfiguration section */
|
/* End XCBuildConfiguration section */
|
||||||
|
|
||||||
/* Begin XCConfigurationList section */
|
/* Begin XCConfigurationList section */
|
||||||
|
D6840910279486BF00E327D2 /* Build configuration list for PBXNativeTarget "ReaderMac" */ = {
|
||||||
|
isa = XCConfigurationList;
|
||||||
|
buildConfigurations = (
|
||||||
|
D684090E279486BF00E327D2 /* Debug */,
|
||||||
|
D684090F279486BF00E327D2 /* Release */,
|
||||||
|
);
|
||||||
|
defaultConfigurationIsVisible = 0;
|
||||||
|
defaultConfigurationName = Release;
|
||||||
|
};
|
||||||
D6C687E3272CD27600874C10 /* Build configuration list for PBXProject "Reader" */ = {
|
D6C687E3272CD27600874C10 /* Build configuration list for PBXProject "Reader" */ = {
|
||||||
isa = XCConfigurationList;
|
isa = XCConfigurationList;
|
||||||
buildConfigurations = (
|
buildConfigurations = (
|
||||||
|
|
|
@ -14,6 +14,10 @@ import Combine
|
||||||
class AppDelegate: UIResponder, UIApplicationDelegate {
|
class AppDelegate: UIResponder, UIApplicationDelegate {
|
||||||
|
|
||||||
private var cancellables = Set<AnyCancellable>()
|
private var cancellables = Set<AnyCancellable>()
|
||||||
|
|
||||||
|
#if targetEnvironment(macCatalyst)
|
||||||
|
private var readerMac: NSObject!
|
||||||
|
#endif
|
||||||
|
|
||||||
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
|
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
|
||||||
swizzleWKWebView()
|
swizzleWKWebView()
|
||||||
|
@ -25,6 +29,23 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
|
||||||
}
|
}
|
||||||
.store(in: &cancellables)
|
.store(in: &cancellables)
|
||||||
|
|
||||||
|
#if targetEnvironment(macCatalyst)
|
||||||
|
let macBundleURL = Bundle.main.builtInPlugInsURL!.appendingPathComponent("ReaderMac.bundle")
|
||||||
|
let bundle = Bundle(url: macBundleURL)!
|
||||||
|
do {
|
||||||
|
try bundle.loadAndReturnError()
|
||||||
|
|
||||||
|
let clazz = NSClassFromString("ReaderMac.ReaderMac")! as! NSObject.Type
|
||||||
|
readerMac = clazz.init()
|
||||||
|
readerMac.perform(Selector(("setup")))
|
||||||
|
} catch {
|
||||||
|
print("Unable to load ReaderMac bundle: \(error)")
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
NotificationCenter.default.addObserver(self, selector: #selector(updateAppearance), name: .appearanceChanged, object: nil)
|
||||||
|
updateAppearance()
|
||||||
|
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -112,7 +133,16 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
|
||||||
}
|
}
|
||||||
|
|
||||||
@objc private func showPreferences() {
|
@objc private func showPreferences() {
|
||||||
UIApplication.shared.requestSceneSessionActivation(nil, userActivity: .preferences(), options: nil, errorHandler: nil)
|
let existing = UIApplication.shared.connectedScenes.first {
|
||||||
|
$0.session.configuration.name == "prefs"
|
||||||
|
}
|
||||||
|
UIApplication.shared.requestSceneSessionActivation(existing?.session, userActivity: .preferences(), options: nil, errorHandler: nil)
|
||||||
|
}
|
||||||
|
|
||||||
|
@objc private func updateAppearance() {
|
||||||
|
#if targetEnvironment(macCatalyst)
|
||||||
|
readerMac.perform(Selector(("updateAppearance:")), with: Preferences.shared.appearance.rawValue)
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
// Created by Shadowfacts on 1/16/22.
|
// Created by Shadowfacts on 1/16/22.
|
||||||
//
|
//
|
||||||
|
|
||||||
import UIKit
|
import Foundation
|
||||||
|
|
||||||
class Preferences: Codable, ObservableObject {
|
class Preferences: Codable, ObservableObject {
|
||||||
|
|
||||||
|
@ -36,7 +36,7 @@ class Preferences: Codable, ObservableObject {
|
||||||
|
|
||||||
required init(from decoder: Decoder) throws {
|
required init(from decoder: Decoder) throws {
|
||||||
let container = try decoder.container(keyedBy: CodingKeys.self)
|
let container = try decoder.container(keyedBy: CodingKeys.self)
|
||||||
self.appearance = try container.decode(UIUserInterfaceStyle.self, forKey: .appearance)
|
self.appearance = try container.decode(Appearance.self, forKey: .appearance)
|
||||||
}
|
}
|
||||||
|
|
||||||
func encode(to encoder: Encoder) throws {
|
func encode(to encoder: Encoder) throws {
|
||||||
|
@ -44,12 +44,11 @@ class Preferences: Codable, ObservableObject {
|
||||||
try container.encode(appearance, forKey: .appearance)
|
try container.encode(appearance, forKey: .appearance)
|
||||||
}
|
}
|
||||||
|
|
||||||
var appearance = UIUserInterfaceStyle.unspecified {
|
@Published var appearance = Appearance.unspecified {
|
||||||
willSet {
|
|
||||||
objectWillChange.send()
|
|
||||||
}
|
|
||||||
didSet {
|
didSet {
|
||||||
NotificationCenter.default.post(name: .userInterfaceStyleChanged, object: nil)
|
NotificationCenter.default.post(name: .appearanceChanged, object: nil, userInfo: [
|
||||||
|
"appearance": appearance.rawValue
|
||||||
|
])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -59,9 +58,12 @@ class Preferences: Codable, ObservableObject {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
extension UIUserInterfaceStyle: Codable {
|
enum Appearance: Int, Codable {
|
||||||
|
case unspecified = 0
|
||||||
|
case light = 1
|
||||||
|
case dark = 2
|
||||||
}
|
}
|
||||||
|
|
||||||
extension Notification.Name {
|
extension Notification.Name {
|
||||||
static let userInterfaceStyleChanged = Notification.Name("userInterfaceStyleChanged")
|
static let appearanceChanged = Notification.Name("appearanceChanged")
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,12 +34,19 @@ class PrefsSceneDelegate: UIResponder, UIWindowSceneDelegate {
|
||||||
|
|
||||||
window!.makeKeyAndVisible()
|
window!.makeKeyAndVisible()
|
||||||
|
|
||||||
NotificationCenter.default.addObserver(self, selector: #selector(updateUserInterfaceStyle), name: .userInterfaceStyleChanged, object: nil)
|
NotificationCenter.default.addObserver(self, selector: #selector(updateAppearance), name: .appearanceChanged, object: nil)
|
||||||
updateUserInterfaceStyle()
|
updateAppearance()
|
||||||
}
|
}
|
||||||
|
|
||||||
@objc private func updateUserInterfaceStyle() {
|
@objc private func updateAppearance() {
|
||||||
window?.overrideUserInterfaceStyle = Preferences.shared.appearance
|
switch Preferences.shared.appearance {
|
||||||
|
case .unspecified:
|
||||||
|
window!.overrideUserInterfaceStyle = .unspecified
|
||||||
|
case .light:
|
||||||
|
window!.overrideUserInterfaceStyle = .light
|
||||||
|
case .dark:
|
||||||
|
window!.overrideUserInterfaceStyle = .dark
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -55,8 +55,8 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate {
|
||||||
|
|
||||||
window!.makeKeyAndVisible()
|
window!.makeKeyAndVisible()
|
||||||
|
|
||||||
NotificationCenter.default.addObserver(self, selector: #selector(updateUserInterfaceStyle), name: .userInterfaceStyleChanged, object: nil)
|
NotificationCenter.default.addObserver(self, selector: #selector(updateAppearance), name: .appearanceChanged, object: nil)
|
||||||
updateUserInterfaceStyle()
|
updateAppearance()
|
||||||
}
|
}
|
||||||
|
|
||||||
func sceneDidDisconnect(_ scene: UIScene) {
|
func sceneDidDisconnect(_ scene: UIScene) {
|
||||||
|
@ -120,8 +120,15 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@objc private func updateUserInterfaceStyle() {
|
@objc private func updateAppearance() {
|
||||||
window?.overrideUserInterfaceStyle = Preferences.shared.appearance
|
switch Preferences.shared.appearance {
|
||||||
|
case .unspecified:
|
||||||
|
window!.overrideUserInterfaceStyle = .unspecified
|
||||||
|
case .light:
|
||||||
|
window!.overrideUserInterfaceStyle = .light
|
||||||
|
case .dark:
|
||||||
|
window!.overrideUserInterfaceStyle = .dark
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,9 +24,9 @@ struct PrefsView: View {
|
||||||
|
|
||||||
private var appearance: some View {
|
private var appearance: some View {
|
||||||
Picker("Appearance", selection: $preferences.appearance) {
|
Picker("Appearance", selection: $preferences.appearance) {
|
||||||
Text("System").tag(UIUserInterfaceStyle.unspecified)
|
Text("System").tag(Appearance.unspecified)
|
||||||
Text("Dark").tag(UIUserInterfaceStyle.dark)
|
Text("Dark").tag(Appearance.dark)
|
||||||
Text("Light").tag(UIUserInterfaceStyle.light)
|
Text("Light").tag(Appearance.light)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,40 @@
|
||||||
|
//
|
||||||
|
// ReaderMac.swift
|
||||||
|
// ReaderMac
|
||||||
|
//
|
||||||
|
// Created by Shadowfacts on 1/16/22.
|
||||||
|
//
|
||||||
|
|
||||||
|
import AppKit
|
||||||
|
|
||||||
|
class ReaderMac: NSObject {
|
||||||
|
|
||||||
|
private(set) static var shared: ReaderMac!
|
||||||
|
|
||||||
|
override init() {
|
||||||
|
if ReaderMac.shared != nil {
|
||||||
|
fatalError()
|
||||||
|
}
|
||||||
|
|
||||||
|
super.init()
|
||||||
|
|
||||||
|
ReaderMac.shared = self
|
||||||
|
}
|
||||||
|
|
||||||
|
@objc func setup() {
|
||||||
|
}
|
||||||
|
|
||||||
|
@objc func updateAppearance(_ appearance: NSNumber) {
|
||||||
|
switch appearance {
|
||||||
|
case 0:
|
||||||
|
NSApp.appearance = nil
|
||||||
|
case 1:
|
||||||
|
NSApp.appearance = NSAppearance(named: .aqua)
|
||||||
|
case 2:
|
||||||
|
NSApp.appearance = NSAppearance(named: .darkAqua)
|
||||||
|
default:
|
||||||
|
fatalError("unexpected appeaerance value: \(appearance)")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue