]> git.saurik.com Git - winterboard.git/blobdiff - Library.mm
Finally update WBRename() to use MSHookMessageEx().
[winterboard.git] / Library.mm
index 54dfec6866017cd6fae72c3e29d82f4dd233356e..a25d6625772084f26921338f419808b7190fbba2 100644 (file)
@@ -122,6 +122,7 @@ MSMetaClassHook(UIImage)
 MSClassHook(UINavigationBar)
 MSClassHook(UIToolbar)
 MSClassHook(UIStatusBarTimeItemView)
+MSClassHook(UIWebDocumentView)
 
 MSClassHook(CKBalloonView)
 MSClassHook(CKMessageCell)
@@ -162,6 +163,7 @@ MSClassHook(SBWidgetApplicationIcon)
 extern "C" void WKSetCurrentGraphicsContext(CGContextRef);
 
 static struct MSFixClass { MSFixClass() {
+    $UIWebDocumentView = objc_getClass("UIWebBrowserView") ?: $UIWebDocumentView;
     $SBIcon = objc_getClass("SBIconView") ?: $SBIcon;
 
     if ($SBIconList == nil)
@@ -868,7 +870,7 @@ MSInstanceMessageHook1(CGSize, NSString, sizeWithFont, UIFont *, font) {
 }
 
 MSInstanceMessageHook1(UIImage *, SBIconBadgeFactory, checkoutBadgeImageForText, NSString *, text) {
-    WBStringDrawingState badgeState = {NULL, 1, @""
+    WBStringDrawingState badgeState = {NULL, -1, @""
     , @"BadgeStyle"};
 
     stringDrawingState_ = &badgeState;
@@ -1202,7 +1204,7 @@ MSInstanceMessageHook0(id, SBUIController, init) {
         if (NSString *path = $getTheme$([NSArray arrayWithObject:@"Wallpaper.html"], themes)) {
             CGRect bounds = [indirect bounds];
 
-            UIWebDocumentView *view([[[UIWebDocumentView alloc] initWithFrame:bounds] autorelease]);
+            UIWebDocumentView *view([[[$UIWebDocumentView alloc] initWithFrame:bounds] autorelease]);
             [view setAutoresizes:true];
 
             WallpaperPage_ = [view retain];
@@ -1225,7 +1227,7 @@ MSInstanceMessageHook0(id, SBUIController, init) {
         if ([Manager_ fileExistsAtPath:html]) {
             CGRect bounds = [indirect bounds];
 
-            UIWebDocumentView *view([[[UIWebDocumentView alloc] initWithFrame:bounds] autorelease]);
+            UIWebDocumentView *view([[[$UIWebDocumentView alloc] initWithFrame:bounds] autorelease]);
             [view setAutoresizes:true];
 
             NSURL *url = [NSURL fileURLWithPath:html];
@@ -1256,7 +1258,7 @@ MSHook(void, SBAwayView$updateDesktopImage$, SBAwayView *self, SEL sel, UIImage
     if (path != nil) {
         CGRect bounds = [self bounds];
 
-        UIWebDocumentView *view([[[UIWebDocumentView alloc] initWithFrame:bounds] autorelease]);
+        UIWebDocumentView *view([[[$UIWebDocumentView alloc] initWithFrame:bounds] autorelease]);
         [view setAutoresizes:true];
 
         if (WallpaperPage_ != nil)
@@ -1927,7 +1929,7 @@ static void ChangeWallpaper(
 }
 
 #define WBRename(name, sel, imp) \
-    _ ## name ## $ ## imp = MSHookMessage($ ## name, @selector(sel), &$ ## name ## $ ## imp)
+    MSHookMessage($ ## name, @selector(sel), &$ ## name ## $ ## imp, &_ ## name ## $ ## imp)
 
 template <typename Type_>
 static void msset(Type_ &function, MSImageRef image, const char *name) {
@@ -1963,7 +1965,7 @@ static void NSString$drawAtPoint$withStyle$(NSString *self, SEL _cmd, CGPoint po
     WKSetCurrentGraphicsContext(UIGraphicsGetCurrentContext());
     if (style == nil || [style length] == 0)
         style = @"font-family: Helvetica; font-size: 12px";
-    //NSLog(@"XXX:draw(%@)", [style stringByReplacingOccurrencesOfString:@"\n" withString:@" "]);
+    //NSLog(@"XXX:drawP(%@)", [style stringByReplacingOccurrencesOfString:@"\n" withString:@" "]);
     return [[WBMarkup sharedMarkup] drawString:self atPoint:point withStyle:style];
 }
 
@@ -1971,6 +1973,7 @@ static void NSString$drawInRect$withStyle$(NSString *self, SEL _cmd, CGRect rect
     WKSetCurrentGraphicsContext(UIGraphicsGetCurrentContext());
     if (style == nil || [style length] == 0)
         style = @"font-family: Helvetica; font-size: 12px";
+    //NSLog(@"XXX:drawR(%@)", [style stringByReplacingOccurrencesOfString:@"\n" withString:@" "]);
     return [[WBMarkup sharedMarkup] drawString:self inRect:rect withStyle:style];
 }