return 5;
}
-MSClassMessageHook1(int, SBDockIconListView, iconColumnsForInterfaceOrientation, int, orientation) {
+MSClassMessageHook1(NSUInteger, SBDockIconListView, iconColumnsForInterfaceOrientation, NSInteger, orientation) {
return 5;
}
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]);
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];
}