From: Jay Freeman (saurik) Date: Wed, 12 Oct 2011 22:39:56 +0000 (+0000) Subject: Add an IconAlpha fix from NickF. X-Git-Tag: v0.9.3901~28 X-Git-Url: https://git.saurik.com/winterboard.git/commitdiff_plain/8e4d2f42c06dc61bad263c6c01a26c6debdcce17 Add an IconAlpha fix from NickF. --- diff --git a/Library.mm b/Library.mm index 7a5bc3f..b36ec0f 100644 --- a/Library.mm +++ b/Library.mm @@ -137,6 +137,7 @@ Class $SBIconController; Class $SBIconLabel; Class $SBIconList; Class $SBIconModel; +Class $SBIconView; //Class $SBImageCache; Class $SBSearchView; Class $SBSearchTableViewCell; @@ -147,6 +148,8 @@ Class $SBStatusBarTimeView; Class $SBUIController; Class $SBWidgetApplicationIcon; +#define SBIconView SBIcon + static bool IsWild_; static bool Four_; @@ -1093,6 +1096,29 @@ WBDelegate(badge_) @end /* }}} */ +MSHook(void, SBIconView$setIconImageAlpha$, SBIconView *self, SEL sel, float alpha) { + if (NSNumber *number = [Info_ objectForKey:@"IconAlpha"]) + alpha = [number floatValue]; + return _SBIconView$setIconImageAlpha$(self, sel, alpha); +} + +MSHook(void, SBIconView$setIconLabelAlpha$, SBIconView *self, SEL sel, float alpha) { + if (NSNumber *number = [Info_ objectForKey:@"IconAlpha"]) + alpha = [number floatValue]; + return _SBIconView$setIconLabelAlpha$(self, sel, alpha); +} + +MSHook(id, SBIconView$initWithDefaultSize, SBIconView *self, SEL sel) { + if ((self = _SBIconView$initWithDefaultSize(self, sel)) != nil) { + if (NSNumber *number = [Info_ objectForKey:@"IconAlpha"]) { + // XXX: note: this is overridden above, which is silly + float alpha([number floatValue]); + [self setIconImageAlpha:alpha]; + [self setIconLabelAlpha:alpha]; + } + } return self; +} + MSHook(void, SBIcon$setAlpha$, SBIcon *self, SEL sel, float alpha) { if (NSNumber *number = [Info_ objectForKey:@"IconAlpha"]) alpha = [number floatValue]; @@ -1761,6 +1787,7 @@ extern "C" void WBInitialize() { $SBIconLabel = objc_getClass("SBIconLabel"); $SBIconList = objc_getClass("SBIconList"); $SBIconModel = objc_getClass("SBIconModel"); + $SBIconView = objc_getClass("SBIconView"); //$SBImageCache = objc_getClass("SBImageCache"); $SBSearchView = objc_getClass("SBSearchView"); $SBSearchTableViewCell = objc_getClass("SBSearchTableViewCell"); @@ -1771,6 +1798,9 @@ extern "C" void WBInitialize() { $SBUIController = objc_getClass("SBUIController"); $SBWidgetApplicationIcon = objc_getClass("SBWidgetApplicationIcon"); + if ($SBIconView == nil) + $SBIconView = $SBIcon; + Four_ = $SBDockIconListView != nil; WBRename(WebCoreFrameBridge, renderedSizeOfNode:constrainedToWidth:, renderedSizeOfNode$constrainedToWidth$); @@ -1787,6 +1817,9 @@ extern "C" void WBInitialize() { WBRename(SBIcon, setAlpha:, setAlpha$); WBRename(SBIconBadge, initWithBadge:, initWithBadge$); WBRename(SBIconController, noteNumberOfIconListsChanged, noteNumberOfIconListsChanged); + WBRename(SBIconView, initWithDefaultSize, initWithDefaultSize); + WBRename(SBIconView, setIconImageAlpha:, setIconImageAlpha$); + WBRename(SBIconView, setIconLabelAlpha:, setIconLabelAlpha$); WBRename(SBUIController, init, init); WBRename(SBWidgetApplicationIcon, icon, icon);