]> git.saurik.com Git - fiveicondock.git/commitdiff
Support iOS 7.0. master v0.9.3400
authorJay Freeman (saurik) <saurik@saurik.com>
Wed, 7 May 2014 23:50:01 +0000 (16:50 -0700)
committerJay Freeman (saurik) <saurik@saurik.com>
Wed, 7 May 2014 23:55:21 +0000 (16:55 -0700)
FiveIconDock.mm

index 2bce48818542e13a9691c2fb5a2ecf00bfa52208..e36254db40857fe5f5530c9ab94f0ccff7d54c4d 100644 (file)
@@ -56,7 +56,7 @@ MSInstanceMessageHook0(int, SBButtonBar, maxIconColumns) {
     return 5;
 }
 
-MSClassMessageHook1(int, SBDockIconListView, iconColumnsForInterfaceOrientation, int, orientation) {
+MSClassMessageHook1(NSUInteger, SBDockIconListView, iconColumnsForInterfaceOrientation, NSInteger, orientation) {
     return 5;
 }
 
@@ -129,9 +129,22 @@ MSInstanceMessageHook2(CGPoint, SBDockIconListView, originForIconAtX,Y, int, x,
     return origin;
 }
 
-/*MSClassMessageHook0(int, SBIconModel, maxIconListCount) {
-    return 16;
-}*/
+// XXX: merge with previous functions if possible, but not until after iPhone 5S ;P
+MSInstanceMessage1(CGPoint, SBDockIconListView, originForIconAtIndex, NSInteger, index) {
+    CGPoint origin(MSOldCall(0));
+
+    unsigned count([[self icons] count]), gap;
+    unsigned space(320 - 60 * count);
+
+    if (count >= 4)
+        gap = space / (count + 1);
+    else // I hate people who love Apple.
+        gap = 16;
+
+    origin.x = (space - gap * (count - 1)) / 2 + (60 + gap) * index;
+
+    return origin;
+}
 
 MSInitialize {
     NSAutoreleasePool *pool([[NSAutoreleasePool alloc] init]);
@@ -140,5 +153,8 @@ MSInitialize {
         if (Class $ISIconSupport = objc_getClass("ISIconSupport"))
             [[$ISIconSupport sharedInstance] addExtension:@"com.saurik.iphone.fid"];
 
+    if (kCFCoreFoundationVersionNumber >= 800)
+        MSHookMessage($SBDockIconListView, @selector(originForIconAtIndex:), MSHake(SBDockIconListView$originForIconAtIndex$));
+
     [pool release];
 }