[view setBackgroundColor:[UIColor clearColor]];
[self insertSubview:view aboveSubview:_backgroundView];
+
+ if ($objc_setAssociatedObject != NULL)
+ $objc_setAssociatedObject(self, @selector(wb$widgetView), view, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}
}
+MSHook(void, SBAwayView$_addSubview$positioned$relativeTo$, SBAwayView *self, SEL sel, UIView *view, int positioned, UIView *relative) {
+ UIView *&_backgroundView(MSHookIvar<UIView *>(self, "_backgroundView"));
+ UIView *&_chargingView(MSHookIvar<UIView *>(self, "_chargingView"));
+ if (&_chargingView != NULL)
+ if (positioned == -2 && (relative == _backgroundView && _chargingView == nil || relative == _chargingView))
+ if ($objc_getAssociatedObject != NULL)
+ if (UIView *widget = $objc_getAssociatedObject(self, @selector(wb$widgetView)))
+ relative = widget;
+ return _SBAwayView$_addSubview$positioned$relativeTo$(self, sel, view, positioned, relative);
+}
+
/*extern "C" CGColorRef CGGStateGetSystemColor(void *);
extern "C" CGColorRef CGGStateGetFillColor(void *);
extern "C" CGColorRef CGGStateGetStrokeColor(void *);
#define AudioToolbox "/System/Library/Frameworks/AudioToolbox.framework/AudioToolbox"
#define UIKit "/System/Library/Frameworks/UIKit.framework/UIKit"
-bool (*_Z24GetFileNameForThisActionmPcRb)(unsigned long a0, char *a1, bool &a2);
-
-MSHook(bool, _Z24GetFileNameForThisActionmPcRb, unsigned long a0, char *a1, bool &a2) {
- if (Debug_)
- NSLog(@"WB:Debug:GetFileNameForThisAction(%u, %p, %u)", a0, a1, a2);
- bool value = __Z24GetFileNameForThisActionmPcRb(a0, a1, a2);
+static bool GetFileNameForThisAction$(bool value, unsigned long a0, char *a1, unsigned long a2, bool &a3) {
if (Debug_)
- NSLog(@"WB:Debug:GetFileNameForThisAction(%u, %s, %u) = %u", a0, value ? a1 : NULL, a2, value);
+ NSLog(@"WB:Debug:GetFileNameForThisAction(%u, %s, %u, %u) = %u", a0, value ? a1 : NULL, a2, a3, value);
if (value) {
NSString *path = [NSString stringWithUTF8String:a1];
return value;
}
+MSHook(bool, _Z24GetFileNameForThisActionmPcRb, unsigned long a0, char *a1, bool &a3) {
+ bool value(__Z24GetFileNameForThisActionmPcRb(a0, a1, a3));
+ return GetFileNameForThisAction$(value, a0, a1, 0, a3);
+}
+
+MSHook(bool, _Z24GetFileNameForThisActionmPcmRb, unsigned long a0, char *a1, unsigned long a2, bool &a3) {
+ bool value(__Z24GetFileNameForThisActionmPcmRb(a0, a1, a2, a3));
+ return GetFileNameForThisAction$(value, a0, a1, a2, a3);
+}
+
static void ChangeWallpaper(
CFNotificationCenterRef center,
void *observer,
} return images;
}
+MSHook(void, BKSDisplayServicesSetSystemAppExitedImagePath, NSString *path) {
+ if (NSString *themed = $getTheme$($useScale$([NSArray arrayWithObject:@"SystemAppExited.png"])))
+ path = themed;
+ _BKSDisplayServicesSetSystemAppExitedImagePath(path);
+}
+
#define WBRename(name, sel, imp) \
MSHookMessage($ ## name, @selector(sel), &$ ## name ## $ ## imp, &_ ## name ## $ ## imp)
//WBRename(SBImageCache, initWithName:forImageWidth:imageHeight:initialCapacity:, initWithName$forImageWidth$imageHeight$initialCapacity$);
WBRename(SBAwayView, updateDesktopImage:, updateDesktopImage$);
+ if (kCFCoreFoundationVersionNumber >= 700)
+ WBRename(SBAwayView, _addSubview:positioned:relativeTo:, _addSubview$positioned$relativeTo$);
+
WBRename(SBStatusBarContentsView, didMoveToSuperview, didMoveToSuperview);
//WBRename(SBStatusBarContentsView, initWithStatusBar:mode:, initWithStatusBar$mode$);
//WBRename(SBStatusBarController, setStatusBarMode:orientation:duration:animation:, setStatusBarMode$orientation$duration$animation$);
// }}}
// AudioToolbox {{{
if (MSImageRef image = MSGetImageByName(AudioToolbox)) {
+ bool (*_Z24GetFileNameForThisActionmPcRb)(unsigned long, char *, bool &);
msset(_Z24GetFileNameForThisActionmPcRb, image, "__Z24GetFileNameForThisActionmPcRb");
MSHookFunction(_Z24GetFileNameForThisActionmPcRb, &$_Z24GetFileNameForThisActionmPcRb, &__Z24GetFileNameForThisActionmPcRb);
+
+ bool (*_Z24GetFileNameForThisActionmPcmRb)(unsigned long, char *, unsigned long, bool &);
+ msset(_Z24GetFileNameForThisActionmPcmRb, image, "__Z24GetFileNameForThisActionmPcmRb");
+ MSHookFunction(_Z24GetFileNameForThisActionmPcmRb, &$_Z24GetFileNameForThisActionmPcmRb, &__Z24GetFileNameForThisActionmPcmRb);
+ }
+ // }}}
+ // BackBoardServices {{{
+ if (MSImageRef image = MSGetImageByName("/System/Library/PrivateFrameworks/BackBoardServices.framework/BackBoardServices")) {
+ void (*BKSDisplayServicesSetSystemAppExitedImagePath)(NSString *path);
+ msset(BKSDisplayServicesSetSystemAppExitedImagePath, image, "_BKSDisplayServicesSetSystemAppExitedImagePath");
+ MSHookFunction(BKSDisplayServicesSetSystemAppExitedImagePath, MSHake(BKSDisplayServicesSetSystemAppExitedImagePath));
}
// }}}
// GraphicsServices {{{