+MSHook(UIImage *, SBIconModel$getCachedImagedForIcon$, SBIconModel *self, SEL sel, SBIcon *icon) {
+ NSString *key([icon displayIdentifier]);
+ if (UIImage *image = [Cache_ objectForKey:key])
+ return image;
+ else
+ return _SBIconModel$getCachedImagedForIcon$(self, sel, icon);
+}
+
+MSHook(UIImage *, SBIconModel$getCachedImagedForIcon$smallIcon$, SBIconModel *self, SEL sel, SBIcon *icon, BOOL small) {
+ if (small)
+ return _SBIconModel$getCachedImagedForIcon$smallIcon$(self, sel, icon, small);
+ NSString *key([icon displayIdentifier]);
+ if (UIImage *image = [Cache_ objectForKey:key])
+ return image;
+ else
+ return _SBIconModel$getCachedImagedForIcon$smallIcon$(self, sel, icon, small);
+}
+
+MSHook(id, SBSearchView$initWithFrame$, id /* XXX: SBSearchView */ self, SEL sel, struct CGRect frame) {
+ if ((self = _SBSearchView$initWithFrame$(self, sel, frame)) != nil) {
+ [self setBackgroundColor:[UIColor clearColor]];
+ for (UIView *child in [self subviews])
+ [child setBackgroundColor:[UIColor clearColor]];
+ } return self;
+}
+
+MSHook(id, SBSearchTableViewCell$initWithStyle$reuseIdentifier$, SBSearchTableViewCell *self, SEL sel, int style, NSString *reuse) {
+ if ((self = _SBSearchTableViewCell$initWithStyle$reuseIdentifier$(self, sel, style, reuse)) != nil) {
+ [self setBackgroundColor:[UIColor clearColor]];
+ } return self;
+}
+
+MSHook(void, SBSearchTableViewCell$drawRect$, SBSearchTableViewCell *self, SEL sel, struct CGRect rect, BOOL selected) {
+ _SBSearchTableViewCell$drawRect$(self, sel, rect, selected);
+ float inset([self edgeInset]);
+ [[UIColor clearColor] set];
+ UIRectFill(CGRectMake(0, 0, inset, rect.size.height));
+ UIRectFill(CGRectMake(rect.size.width - inset, 0, inset, rect.size.height));
+}
+
+MSHook(UIImage *, SBApplicationIcon$icon, SBApplicationIcon *self, SEL sel) {
+ if (![Info_ wb$boolForKey:@"ComposeStoreIcons"])
+ if (NSString *path = $pathForIcon$([self application]))
+ return [UIImage imageWithContentsOfFile:path];
+ return _SBApplicationIcon$icon(self, sel);
+}
+
+MSHook(UIImage *, SBApplicationIcon$generateIconImage$, SBApplicationIcon *self, SEL sel, int type) {
+ if (type == 2)
+ if (![Info_ wb$boolForKey:@"ComposeStoreIcons"]) {
+ if (IsWild_ && false) // XXX: delete this code, it should not be supported
+ if (NSString *path72 = $pathForIcon$([self application], @"-72"))
+ return [UIImage imageWithContentsOfFile:path72];
+ if (NSString *path = $pathForIcon$([self application]))
+ if (UIImage *image = [UIImage imageWithContentsOfFile:path]) {
+ float width;
+ if ([$SBIcon respondsToSelector:@selector(defaultIconImageSize)])
+ width = [$SBIcon defaultIconImageSize].width;
+ else
+ width = 59;
+ return width == 59 ? image : [image _imageScaledToProportion:(width / 59.0) interpolationQuality:5];
+ }
+ }
+ return _SBApplicationIcon$generateIconImage$(self, sel, type);
+}
+
+MSHook(UIImage *, SBWidgetApplicationIcon$icon, SBWidgetApplicationIcon *self, SEL sel) {
+ if (Debug_)
+ NSLog(@"WB:Debug:Widget(%@:%@)", [self displayIdentifier], [self displayName]);
+ if (NSString *path = $getTheme$([NSArray arrayWithObject:[NSString stringWithFormat:@"Icons/%@.png", [self displayName]]]))
+ return [UIImage imageWithContentsOfFile:path];
+ return _SBWidgetApplicationIcon$icon(self, sel);
+}
+
+MSHook(UIImage *, SBBookmarkIcon$icon, SBBookmarkIcon *self, SEL sel) {
+ if (Debug_)
+ NSLog(@"WB:Debug:Bookmark(%@:%@)", [self displayIdentifier], [self displayName]);
+ if (NSString *path = $getTheme$([NSArray arrayWithObject:[NSString stringWithFormat:@"Icons/%@.png", [self displayName]]]))
+ return [UIImage imageWithContentsOfFile:path];
+ return _SBBookmarkIcon$icon(self, sel);
+}
+
+MSHook(NSString *, SBApplication$pathForIcon, SBApplication *self, SEL sel) {
+ if (NSString *path = $pathForIcon$(self))
+ return path;
+ return _SBApplication$pathForIcon(self, sel);