Fix encoding issue with OpenRA.Utility. Refactor SidebarEntry. Add launcher pages to all mods.
This commit is contained in:
@@ -17,45 +17,48 @@
|
||||
|
||||
+ (id)headerWithTitle:(NSString *)aTitle;
|
||||
{
|
||||
id newObject = [[self alloc] initWithTitle:aTitle object:nil icon:nil isHeader:YES];
|
||||
id newObject = [[self alloc] initWithTitle:aTitle url:nil icon:nil isHeader:YES];
|
||||
[newObject autorelease];
|
||||
return newObject;
|
||||
}
|
||||
|
||||
+ (id)entryWithTitle:(NSString *)aTitle object:(id)anObject icon:(id)anIcon
|
||||
+ (id)entryWithTitle:(NSString *)aTitle url:(NSURL *)aURL icon:(id)anIcon
|
||||
{
|
||||
id newObject = [[self alloc] initWithTitle:aTitle object:anObject icon:anIcon isHeader:NO];
|
||||
id newObject = [[self alloc] initWithTitle:aTitle url:aURL icon:anIcon isHeader:NO];
|
||||
[newObject autorelease];
|
||||
return newObject;
|
||||
}
|
||||
|
||||
+ (id)entryWithMod:(Mod *)baseMod allMods:(NSArray *)allMods
|
||||
+ (id)entryWithMod:(Mod *)baseMod allMods:(NSArray *)allMods baseURL:(NSURL *)baseURL
|
||||
{
|
||||
// TODO: Get the mod icon from the Mod
|
||||
// Temporary hack until mods define an icon
|
||||
NSString* imageName = [[NSBundle mainBundle] pathForResource:@"OpenRA" ofType:@"icns"];
|
||||
id icon = [[[NSImage alloc] initWithContentsOfFile:imageName] autorelease];
|
||||
id ret = [SidebarEntry entryWithTitle:[baseMod title] object:baseMod icon:icon];
|
||||
id url = [[baseURL URLByAppendingPathComponent:[baseMod mod]]
|
||||
URLByAppendingPathComponent:@"mod.html"];
|
||||
|
||||
id ret = [SidebarEntry entryWithTitle:[baseMod title] url:url icon:icon];
|
||||
|
||||
for (id aMod in allMods)
|
||||
{
|
||||
if (![[aMod requires] isEqualToString:[baseMod mod]])
|
||||
continue;
|
||||
|
||||
id child = [SidebarEntry entryWithMod:aMod allMods:allMods];
|
||||
id child = [SidebarEntry entryWithMod:aMod allMods:allMods baseURL:baseURL];
|
||||
[ret addChild:child];
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
- (id)initWithTitle:(NSString *)aTitle object:(id)anObject icon:(id)anIcon isHeader:(BOOL)isaHeader
|
||||
- (id)initWithTitle:(NSString *)aTitle url:(NSURL *)aURL icon:(id)anIcon isHeader:(BOOL)isaHeader
|
||||
{
|
||||
self = [super init];
|
||||
if (self)
|
||||
{
|
||||
isHeader = isaHeader;
|
||||
title = [aTitle retain];
|
||||
object = [anObject retain];
|
||||
url = [aURL retain];
|
||||
icon = [anIcon retain];
|
||||
children = [[NSMutableArray alloc] init];
|
||||
}
|
||||
@@ -64,30 +67,18 @@
|
||||
|
||||
- (void)addChild:(Mod *)child
|
||||
{
|
||||
NSLog(@"Adding sidebar child %@ to %@",[child title], title);
|
||||
[children addObject:child];
|
||||
}
|
||||
|
||||
- (BOOL)shouldSelect
|
||||
{
|
||||
return [object shouldSelect];
|
||||
}
|
||||
|
||||
- (NSURL *)url
|
||||
{
|
||||
if (object == nil)
|
||||
{
|
||||
NSLog(@"object is nil");
|
||||
return nil;
|
||||
}
|
||||
|
||||
return [object pageURL];
|
||||
return url;
|
||||
}
|
||||
|
||||
- (void) dealloc
|
||||
{
|
||||
[title release]; title = nil;
|
||||
[object release]; object = nil;
|
||||
[url release]; url = nil;
|
||||
[icon release]; icon = nil;
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user