static bool Debug_ = false;
static bool UIDebug_ = false;
static bool Engineer_ = false;
-static bool SummerBoard_ = true;
+static bool SummerBoard_ = false;
static bool SpringBoard_;
static UIImage *(*_UIApplicationImageWithName)(NSString *name);
style = [style stringByAppendingString:custom];
CGSize size = [label sizeWithStyle:style forWidth:rect.size.width];
- [label drawAtPoint:CGPointMake((rect.size.width - size.width) / 2, 0) withStyle:style];
+ [label drawAtPoint:CGPointMake((rect.size.width - size.width) / 2 + rect.origin.x, rect.origin.y) withStyle:style];
}
static struct WBStringDrawingState {
} *stringDrawingState_;
MSInstanceMessageHook6(CGSize, NSString, drawAtPoint,forWidth,withFont,lineBreakMode,letterSpacing,includeEmoji, CGPoint, point, float, width, UIFont *, font, UILineBreakMode, mode, float, spacing, BOOL, emoji) {
+ //NSLog(@"XXX: @\"%@\" %g", self, spacing);
+
WBStringDrawingState *state(stringDrawingState_);
if (state == NULL)
return MSOldCall(point, width, font, mode, spacing, emoji);
return CGSizeZero;
}
+extern "C" NSString *NSStringFromCGRect(CGRect rect);
+
MSInstanceMessageHook7(CGSize, NSString, _drawInRect,withFont,lineBreakMode,alignment,lineSpacing,includeEmoji,truncationRect, CGRect, rect, UIFont *, font, UILineBreakMode, mode, UITextAlignment, alignment, float, spacing, BOOL, emoji, CGRect, truncation) {
+ //NSLog(@"XXX: &\"%@\" %@ \"%@\" %u %u %g %u %@", self, NSStringFromCGRect(rect), font, mode, alignment, spacing, emoji, NSStringFromCGRect(truncation));
+
WBStringDrawingState *state(stringDrawingState_);
if (state == NULL)
return MSOldCall(rect, font, mode, alignment, spacing, emoji, truncation);
NSString *base(state->base_ ?: @"");
NSString *extra([NSString stringWithFormat:@"text-align: %@", textAlign]);
- [self drawInRect:rect withStyle:[NSString stringWithFormat:@"%@;%@;%@;%@", [font markupDescription], extra, base, info]];
+
+ if (true)
+ $drawLabel$(self, rect, [NSString stringWithFormat:@"%@;%@", [font markupDescription], base], info);
+ else
+ [self drawInRect:rect withStyle:[NSString stringWithFormat:@"%@;%@;%@;%@", [font markupDescription], extra, base, info]];
+
return CGSizeZero;
}
MSInstanceMessageHook4(CGSize, NSString, sizeWithFont,forWidth,lineBreakMode,letterSpacing, UIFont *, font, float, width, UILineBreakMode, mode, float, spacing) {
+ //NSLog(@"XXX: #\"%@\" \"%@\" %g %u %g", self, font, width, mode, spacing);
+
WBStringDrawingState *state(stringDrawingState_);
if (state == NULL)
return MSOldCall(font, width, mode, spacing);
}
MSInstanceMessageHook1(CGSize, NSString, sizeWithFont, UIFont *, font) {
+ //NSLog(@"XXX: ?\"%@\"", self);
+
WBStringDrawingState *state(stringDrawingState_);
if (state == NULL)
return MSOldCall(font);
MSInstanceMessage0(CGImageRef, SBIconLabel, buildLabelImage) {
bool docked((MSHookIvar<unsigned>(self, "_inDock") & 0x2) != 0);
- WBStringDrawingState labelState = {NULL, 0, [NSString stringWithFormat:@""
- "color: %@;"
- ,
- (docked || !SummerBoard_ ? @"white" : @"#b3b3b3")
- ], docked ? @"DockedIconLabelStyle" : @"UndockedIconLabelStyle"};
+ WBStringDrawingState labelState = {NULL, 0, @""
+ "color: white;"
+ , docked ? @"DockedIconLabelStyle" : @"UndockedIconLabelStyle"};
stringDrawingState_ = &labelState;
+ //NSLog(@"XXX: +");
CGImageRef image(MSOldCall());
+ //NSLog(@"XXX: -");
stringDrawingState_ = NULL;
return image;
NSString *path([NSString stringWithFormat:@"%@/UISounds/%@", theme, file]);
if ([Manager_ fileExistsAtPath:path]) {
strcpy(a1, [path UTF8String]);
- continue;
+ break;
}
}
}
WKSetCurrentGraphicsContext(UIGraphicsGetCurrentContext());
if (style == nil || [style length] == 0)
style = @"font-family: Helvetica; font-size: 12px";
+ //NSLog(@"XXX:draw(%@)", [style stringByReplacingOccurrencesOfString:@"\n" withString:@" "]);
return [[WBMarkup sharedMarkup] drawString:self atPoint:point withStyle:style];
}
static CGSize NSString$sizeWithStyle$forWidth$(NSString *self, SEL _cmd, NSString *style, float width) {
if (style == nil || [style length] == 0)
style = @"font-family: Helvetica; font-size: 12px";
+ //NSLog(@"XXX:size(%@)", [style stringByReplacingOccurrencesOfString:@"\n" withString:@" "]);
return [[WBMarkup sharedMarkup] sizeOfString:self withStyle:style forWidth:width];
}
WBRename(SBDockIconListView, setFrame:, setFrame$);
MSHookMessage(object_getClass($SBDockIconListView), @selector(shouldShowNewDock), &$SBDockIconListView$shouldShowNewDock, &_SBDockIconListView$shouldShowNewDock);
- if (kCFCoreFoundationVersionNumber < 600)
+ if (kCFCoreFoundationVersionNumber < 600 || SummerBoard_)
WBRename(SBIconLabel, drawRect:, drawRect$);
else
WBRename(SBIconLabel, buildLabelImage, buildLabelImage);
if (NSDictionary *settings = [NSDictionary dictionaryWithContentsOfFile:[NSString stringWithFormat:@"/User/Library/Preferences/com.saurik.WinterBoard.plist"]]) {
if (NSNumber *value = [settings objectForKey:@"SummerBoard"])
SummerBoard_ = [value boolValue];
+ else
+ SummerBoard_ = true;
+
if (NSNumber *value = [settings objectForKey:@"Debug"])
Debug_ = [value boolValue];
if (NSNumber *value = [settings objectForKey:@"RecordUI"])