]> git.saurik.com Git - winterboard.git/commitdiff
Add an IconAlpha fix from NickF.
authorJay Freeman (saurik) <saurik@saurik.com>
Wed, 12 Oct 2011 22:39:56 +0000 (22:39 +0000)
committerJay Freeman (saurik) <saurik@saurik.com>
Wed, 12 Oct 2011 22:39:56 +0000 (22:39 +0000)
Library.mm

index 7a5bc3f9008b6ff96b952ee49b425c54d7e3b01b..b36ec0f68686df54e137435f9380b16c950458d7 100644 (file)
@@ -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);