Add color picker!
This commit is contained in:
1
Makefile
1
Makefile
@ -9,6 +9,7 @@ TWEAK_NAME = ZenithDark
|
||||
ZenithDark_FILES = Tweak.xm
|
||||
ZenithDark_FRAMEWORKS = UIKit CoreGraphics
|
||||
ZenithDark_EXTRA_FRAMEWORKS += Cephei
|
||||
ZenithDark_LIBRARIES = sparkcolourpicker
|
||||
|
||||
include $(THEOS_MAKE_PATH)/tweak.mk
|
||||
|
||||
|
120
Tweak.xm
120
Tweak.xm
@ -1,17 +1,11 @@
|
||||
#import "ZenithDark.h"
|
||||
#import <Cephei/HBPreferences.h>
|
||||
#import <CepheiPrefs/HBRootListController.h>
|
||||
#import <CepheiPrefs/HBAppearanceSettings.h>
|
||||
|
||||
/*
|
||||
|
||||
Dark Mode for Zenith's Grabber view!
|
||||
Copyright 2020 J.K. Hayslip (@iKilledAppl3) & ToxicAppl3 INSDC/iKilledAppl3 LLC.
|
||||
All code was written for learning purposes and credit must be given to the original author.
|
||||
|
||||
Written for Cooper Hull, @mac-user669.
|
||||
|
||||
|
||||
*/
|
||||
|
||||
%group Adaptive
|
||||
@ -25,7 +19,7 @@ Written for Cooper Hull, @mac-user669.
|
||||
// if the tweak is enabled and the version is iOS 13 or later run our code
|
||||
if (@available(iOS 13, *)) {
|
||||
if (self.traitCollection.userInterfaceStyle == UIUserInterfaceStyleDark) {
|
||||
[self setBackgroundColor:kDarkColor];
|
||||
[self setBackgroundColor:kColor1];
|
||||
}
|
||||
|
||||
else {
|
||||
@ -40,17 +34,24 @@ else {
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
// the method we modify is this method that is called from UIImageView to set the backgroundColor of the image view.
|
||||
// Since the grabber view is of type UIImageView we can modify this method :)
|
||||
-(void)setBackgroundColor:(UIColor *)backgroundColor {
|
||||
%orig;
|
||||
if (kEnabled) {
|
||||
NSString* colourString = NULL;
|
||||
NSDictionary* preferencesDictionary = [NSDictionary dictionaryWithContentsOfFile: @"/var/mobile/Library/Preferences/com.mac-user669.zenithdark.plist"];
|
||||
if(preferencesDictionary)
|
||||
{
|
||||
colourString = [preferencesDictionary objectForKey: @"kCustomDarkColor"];
|
||||
}
|
||||
|
||||
UIColor* darkColor = [SparkColourPickerUtils colourWithString: colourString withFallback: @"#FF00FF"];
|
||||
|
||||
// by default have our tweak overide this.
|
||||
if (@available(iOS 13, *)) {
|
||||
if (self.traitCollection.userInterfaceStyle == UIUserInterfaceStyleDark) {
|
||||
%orig(kDarkColor);
|
||||
%orig(darkColor);
|
||||
}
|
||||
}
|
||||
|
||||
@ -63,89 +64,6 @@ else {
|
||||
%end // We need to make sure we tell theos that we are finished hooking this class not doing so with cause the end of the world :P
|
||||
%end
|
||||
|
||||
|
||||
%group justDark
|
||||
|
||||
//We then hook the class in this case Zenith's grabber view is called “ZNGrabberAccessoryView”
|
||||
%hook ZNGrabberAccessoryView
|
||||
// The method we then modify is this method that is called from UIImageView to set the backgroundColor of the image view.
|
||||
// Since the grabber view is of type UIImageView we can modify this method :)
|
||||
|
||||
-(void)setBackgroundColor:(UIColor *)backgroundColor {
|
||||
//call the original function then pass our custom argument to the backgroundColor argument as shown below.
|
||||
%orig(kDarkColor);
|
||||
}
|
||||
|
||||
// We need to make sure we tell theos that we are finished hooking this class not doing so with cause the end of the world :P
|
||||
%end
|
||||
%end
|
||||
|
||||
%group OLEDadaptive
|
||||
// We then hook the class in this case Zenith's grabber view is called “ZNGrabberAccessoryView”
|
||||
%hook ZNGrabberAccessoryView
|
||||
|
||||
// this is called when iOS 13's dark mode is enabled!
|
||||
-(void)traitCollectionDidChange:(UITraitCollection *)previousTraitCollection {
|
||||
%orig(previousTraitCollection);
|
||||
if (kEnabled) {
|
||||
// if the tweak is enabled and the version is iOS 13 or later run our code
|
||||
if (@available(iOS 13, *)) {
|
||||
if (self.traitCollection.userInterfaceStyle == UIUserInterfaceStyleDark) {
|
||||
[self setBackgroundColor:kOLEDColor];
|
||||
}
|
||||
|
||||
else {
|
||||
[self setBackgroundColor:kLightColor];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
else {
|
||||
%orig(previousTraitCollection);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
// the method we modify is this method that is called from UIImageView to set the backgroundColor of the image view.
|
||||
// Since the grabber view is of type UIImageView we can modify this method :)
|
||||
-(void)setBackgroundColor:(UIColor *)backgroundColor {
|
||||
%orig;
|
||||
if (kEnabled) {
|
||||
// by default have our tweak overide this.
|
||||
if (@available(iOS 13, *)) {
|
||||
if (self.traitCollection.userInterfaceStyle == UIUserInterfaceStyleDark) {
|
||||
%orig(kOLEDColor);
|
||||
}
|
||||
}
|
||||
|
||||
else {
|
||||
%orig;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
%end // We need to make sure we tell theos that we are finished hooking this class not doing so with cause the end of the world :P
|
||||
%end
|
||||
|
||||
%group OLEDgroup
|
||||
|
||||
//We then hook the class in this case Zenith's grabber view is called “ZNGrabberAccessoryView”
|
||||
%hook ZNGrabberAccessoryView
|
||||
// The method we then modify is this method that is called from UIImageView to set the backgroundColor of the image view.
|
||||
// Since the grabber view is of type UIImageView we can modify this method :)
|
||||
|
||||
-(void)setBackgroundColor:(UIColor *)backgroundColor {
|
||||
//call the original function then pass our custom argument to the backgroundColor argument as shown below.
|
||||
%orig(kOLEDColor);
|
||||
}
|
||||
|
||||
// We need to make sure we tell theos that we are finished hooking this class not doing so with cause the end of the world :P
|
||||
%end
|
||||
%end
|
||||
|
||||
|
||||
static void loadPrefs() { // Load preferences to make sure changes are written to the plist
|
||||
|
||||
// Thanks to skittyblock!
|
||||
@ -162,8 +80,6 @@ static void loadPrefs() { // Load preferences to make sure changes are written
|
||||
|
||||
}
|
||||
kEnabled = [([prefs objectForKey:@"kEnabled"] ?: @(YES)) boolValue]; //our preference values that write to a plist file when a user selects somethings
|
||||
sortType = [([prefs objectForKey:@"sortingType"] ? [prefs objectForKey:@"sortingType"] : @"0") integerValue];
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -177,21 +93,7 @@ static void PreferencesChangedCallback(CFNotificationCenterRef center, void *obs
|
||||
loadPrefs(); // Load our prefs
|
||||
|
||||
if (kEnabled) { // If enabled
|
||||
if (sortType == ZNDarkSortTypeAdaptive) {
|
||||
%init(Adaptive); // Enable the group "Adaptive"
|
||||
}
|
||||
|
||||
else if (sortType == ZNDarkSortTypeDark) {
|
||||
%init(justDark); // Enable the group "Adaptive"
|
||||
}
|
||||
|
||||
else if (sortType == ZNDarkSortTypeOLEDAdaptive) {
|
||||
%init(OLEDadaptive); // Enable the group "OLEDgroup"
|
||||
}
|
||||
|
||||
else if (sortType == ZNDarkSortTypeOLED) {
|
||||
%init(OLEDgroup); // Enable the group "OLEDgroup"
|
||||
}
|
||||
}
|
||||
|
||||
CFNotificationCenterAddObserver(CFNotificationCenterGetDarwinNotifyCenter(), NULL, (CFNotificationCallback) PreferencesChangedCallback, CFSTR("com.mac-user669.zenithdark.prefschanged"), NULL, CFNotificationSuspensionBehaviorDeliverImmediately);
|
||||
|
15
ZenithDark.h
15
ZenithDark.h
@ -12,6 +12,11 @@ ZenithDark Header file to keep the tweak.x file clean!
|
||||
*/
|
||||
|
||||
|
||||
#import <Cephei/HBPreferences.h>
|
||||
#import <CepheiPrefs/HBRootListController.h>
|
||||
#import <CepheiPrefs/HBAppearanceSettings.h>
|
||||
#import "SparkColourPickerUtils.h"
|
||||
|
||||
// We then import UIKit so we can override the color property without this Theos doesn't have a clue what those properties are.
|
||||
@import UIKit;
|
||||
|
||||
@ -19,14 +24,6 @@ ZenithDark Header file to keep the tweak.x file clean!
|
||||
@interface ZNGrabberAccessoryView : UIImageView
|
||||
@end
|
||||
|
||||
typedef NS_ENUM(NSUInteger, ZNDarkSortType) {
|
||||
ZNDarkSortTypeAdaptive,
|
||||
ZNDarkSortTypeDark,
|
||||
ZNDarkSortTypeOLEDAdaptive,
|
||||
ZNDarkSortTypeOLED
|
||||
};
|
||||
|
||||
static ZNDarkSortType sortType = ZNDarkSortTypeAdaptive;
|
||||
// a boolean value to store to the tweak's property list path to see if the user has enabled or disabled the tweak.
|
||||
BOOL kEnabled;
|
||||
|
||||
@ -39,6 +36,6 @@ NSMutableDictionary *prefs;
|
||||
// Stock Zenith color we are using macros so we can call it later if need be.
|
||||
#define kLightColor [UIColor colorWithWhite:1.0 alpha:0.7]
|
||||
|
||||
#define kOLEDColor [UIColor colorWithWhite:0.0 alpha:0.75]
|
||||
#define kColor1 [UIColor redColor]
|
||||
// the PLIST path where all user settings are stored.
|
||||
#define PLIST_PATH @"/var/mobile/Library/Preferences/com.mac-user669.zenithdark.plist"
|
||||
|
4
control
4
control
@ -1,8 +1,8 @@
|
||||
Package: com.mac-user669.zenithdark
|
||||
Version: 1.4.1
|
||||
Version: 1.5
|
||||
Architecture: iphoneos-arm
|
||||
Maintainer: mac-user669
|
||||
Depends: mobilesubstrate, preferenceloader, com.muirey03.zenith, ws.hbang.common (>= 1.11), firmware (>=13.0)
|
||||
Depends: mobilesubstrate, preferenceloader, com.muirey03.zenith, ws.hbang.common (>= 1.11), firmware (>=13.0), com.spark.libsparkcolourpicker
|
||||
Section: Tweaks
|
||||
Description: Changes Zeniths tabs to a dark blur
|
||||
Author: mac-user669
|
||||
|
BIN
layout/Library/Application Support/ZenithDark/ZNDark 2.png
Normal file
BIN
layout/Library/Application Support/ZenithDark/ZNDark 2.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.2 MiB |
@ -12,7 +12,7 @@ ZenithDarkPrefs_INSTALL_PATH = /Library/PreferenceBundles
|
||||
ZenithDarkPrefs_FRAMEWORKS = UIKit
|
||||
ZenithDarkPrefs_PRIVATE_FRAMEWORKS = Preferences
|
||||
ZenithDarkPrefs_EXTRA_FRAMEWORKS = Cephei CepheiPrefs
|
||||
|
||||
ZenithDarkPrefs_LIBRARIES = sparkcolourpicker
|
||||
|
||||
include $(THEOS_MAKE_PATH)/bundle.mk
|
||||
|
||||
|
@ -40,35 +40,35 @@
|
||||
<key>label</key>
|
||||
<string>Enable</string>
|
||||
</dict>
|
||||
|
||||
<dict>
|
||||
<key>cell</key>
|
||||
<string>PSGroupCell</string>
|
||||
<key>label</key>
|
||||
<string>Color Type</string>
|
||||
<string>Color Options</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>cell</key>
|
||||
<string>PSSegmentCell</string>
|
||||
<key>default</key>
|
||||
<integer>0</integer>
|
||||
<key>defaults</key>
|
||||
<string>com.mac-user669.zenithdark</string>
|
||||
<string>PSLinkCell</string>
|
||||
<key>cellClass</key>
|
||||
<string>SparkColourPickerCell</string>
|
||||
<key>libsparkcolourpicker</key>
|
||||
<dict>
|
||||
<key>defaults</key>
|
||||
<string>com.mac-user669.zenithdark</string>
|
||||
<key>key</key>
|
||||
<string>kCustomDarkColor</string>
|
||||
<key>fallback</key>
|
||||
<string>#000000:0.44</string>
|
||||
<key>alpha</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>label</key>
|
||||
<string>Color</string>
|
||||
<key>key</key>
|
||||
<string>sortingType</string>
|
||||
<key>validValues</key>
|
||||
<array>
|
||||
<integer>0</integer>
|
||||
<integer>1</integer>
|
||||
<integer>2</integer>
|
||||
<integer>3</integer>
|
||||
</array>
|
||||
<key>validTitles</key>
|
||||
<array>
|
||||
<string>Adaptive</string>
|
||||
<string>Dark</string>
|
||||
<string>OLED Adaptive</string>
|
||||
<string>OLED</string>
|
||||
</array>
|
||||
<string>kCustomDarkColor</string>
|
||||
<key>PostNotification</key>
|
||||
<string>com.mac-user669.zenithdark.prefschanged</string>
|
||||
</dict>
|
||||
|
||||
<dict>
|
||||
|
Reference in New Issue
Block a user