Added splash screen progress notification, version number display

ver1_5_1
Da Woon Jung 2006-01-04 12:59:38 +00:00
parent 75c5dd0dff
commit 883cb007e1
6 changed files with 106 additions and 14 deletions

View File

@ -38,6 +38,20 @@ public:
}
};
class MacOSXSplashProgressNotifier : public ProgressNotifier
{
public:
MacOSXSplashProgressNotifier() {};
virtual ~MacOSXSplashProgressNotifier() {};
virtual void update(const string& msg)
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
[[[CelestiaController shared] valueForKey: @"splashWindowController"] performSelector: @selector(setStatusText:) withObject: [NSString stringWithStdString: msg]];
[pool release];
};
};
CelestiaAppCore *_sharedCelestiaAppCore;
CelestiaCore *appCore;
@ -254,6 +268,7 @@ static NSMutableDictionary* tagDict;
NSArray *extrasDirsSetting;
std::vector<std::string> extrasDirs;
NSString *extrasDir;
MacOSXSplashProgressNotifier progressNotifier;
if ((confFileSetting = [prefs stringForKey:@"conf"]))
{
@ -268,7 +283,8 @@ static NSMutableDictionary* tagDict;
}
return (BOOL)appCore->initSimulation(confFileSetting ? &confFile : nil,
extrasDirsSetting ? &extrasDirs : nil);
extrasDirsSetting ? &extrasDirs : nil,
&progressNotifier);
}
-(BOOL)initRenderer

View File

@ -13,6 +13,7 @@
#import "BrowserWindowController.h"
@class SplashWindow;
@class SplashWindowController;
@interface CelestiaController : NSWindowController
{
@ -21,8 +22,7 @@
BOOL ready;
BOOL isDirty;
BOOL isFullScreen;
IBOutlet SplashWindow *loadingPanel;
IBOutlet NSTextField *loadingIndicator;
IBOutlet SplashWindowController *splashWindowController;
IBOutlet NSTextView *glInfo;
IBOutlet NSPanel *glInfoPanel;
IBOutlet NSOpenGLView *glView;

View File

@ -30,6 +30,7 @@
backing: NSBackingStoreBuffered
defer:YES])
{
[self setReleasedWhenClosed: YES];
[self setBackgroundColor: [NSColor clearColor]];
[self setAlphaValue: 1.0f];
[self setOpaque: NO];
@ -47,9 +48,4 @@
return self;
}
- (BOOL)canBecomeKeyWindow
{
return YES;
}
@end

View File

@ -0,0 +1,20 @@
//
// SplashWindowController.h
// celestia
//
// Created by Da Woon Jung on 2005-12-31.
// Copyright 2005 Chris Laurel. All rights reserved.
//
@interface SplashWindowController : NSObject
{
IBOutlet NSTextField *status;
IBOutlet NSTextField *version;
IBOutlet NSWindow *window;
}
- (void)setStatusText: (NSString *)statusText;
- (void)showWindow;
- (void)close;
- (NSWindow *)window;
@end

View File

@ -0,0 +1,50 @@
//
// SplashWindowController.m
// celestia
//
// Created by Da Woon Jung on 2005-12-31.
// Copyright 2005 Chris Laurel. All rights reserved.
//
#import "SplashWindowController.h"
@implementation SplashWindowController
- (void)awakeFromNib
{
if (version)
{
NSDictionary *infoDict = [[NSBundle mainBundle] infoDictionary];
NSString *shortVersion = [infoDict objectForKey: @"CFBundleShortVersionString"];
if (infoDict && shortVersion && [shortVersion length]>0)
[version setStringValue: shortVersion];
}
}
- (void)setStatusText: (NSString *)statusText
{
[status setStringValue: statusText];
[status displayIfNeeded];
}
- (void)showWindow
{
if (window)
{
[window makeKeyAndOrderFront: self];
[window displayIfNeeded];
}
}
- (void)close
{
[window close];
window = nil; // released on close is set in SplashWindow
}
- (NSWindow *)window
{
return window;
}
@end

View File

@ -15,6 +15,7 @@
E53C2FBF079433D300C76766 /* KbdMouseJoyControls.txt in Resources */ = {isa = PBXBuildFile; fileRef = E53C2FBE079433D300C76766 /* KbdMouseJoyControls.txt */; };
E54343120783C3F200053094 /* BrowserWindow.nib in Resources */ = {isa = PBXBuildFile; fileRef = E54343100783C3F200053094 /* BrowserWindow.nib */; };
E54343170783C42500053094 /* BrowserWindowController.mm in Sources */ = {isa = PBXBuildFile; fileRef = E54343150783C42500053094 /* BrowserWindowController.mm */; };
E54742D009631D3600E89E09 /* defaults.plist in Resources */ = {isa = PBXBuildFile; fileRef = E54742CF09631D3600E89E09 /* defaults.plist */; };
E56430BB07769C9000E2C4A3 /* MainMenu.nib in Resources */ = {isa = PBXBuildFile; fileRef = 29B97318FDCFA39411CA2CEA /* MainMenu.nib */; };
E56430BC07769C9000E2C4A3 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; };
E56430C107769C9000E2C4A3 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; settings = {ATTRIBUTES = (); }; };
@ -155,8 +156,9 @@
E5D4467607772B6C00A1577D /* CelestiaSettings.mm in Sources */ = {isa = PBXBuildFile; fileRef = E5D4467407772B6C00A1577D /* CelestiaSettings.mm */; };
E5D4467807772BA000A1577D /* CGLInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = F505BFFA02CA9DAE0100020A /* CGLInfo.m */; };
E5D471270778E33C007731C3 /* libpng.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = E5D471260778E33C007731C3 /* libpng.dylib */; };
E5D956E00966520700CB02B2 /* SplashWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = E5D956DF096651DF00CB02B2 /* SplashWindowController.m */; };
E5E365AD095C11B500B14224 /* SplashScreen.m in Sources */ = {isa = PBXBuildFile; fileRef = E5E365AB095C11B500B14224 /* SplashScreen.m */; };
E5E365AF095C123E00B14224 /* splash.tiff in Resources */ = {isa = PBXBuildFile; fileRef = E5E365AE095C123E00B14224 /* splash.tiff */; };
E5E365AF095C123E00B14224 /* splash.png in Resources */ = {isa = PBXBuildFile; fileRef = E5E365AE095C123E00B14224 /* splash.png */; };
E5F8C9690795232900D1DAF2 /* libpng.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = E5D471260778E33C007731C3 /* libpng.dylib */; };
E5F8C9E50795235E00D1DAF2 /* liblua.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = E5F8C9E30795235E00D1DAF2 /* liblua.dylib */; };
E5F8C9E60795235E00D1DAF2 /* liblualib.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = E5F8C9E40795235E00D1DAF2 /* liblualib.dylib */; };
@ -307,6 +309,7 @@
E54343110783C3F200053094 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/BrowserWindow.nib; sourceTree = "<group>"; };
E54343140783C42500053094 /* BrowserWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BrowserWindowController.h; sourceTree = "<group>"; };
E54343150783C42500053094 /* BrowserWindowController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = BrowserWindowController.mm; sourceTree = "<group>"; };
E54742CF09631D3600E89E09 /* defaults.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = defaults.plist; sourceTree = "<group>"; };
E564312D07769C9000E2C4A3 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = Info.plist; sourceTree = "<group>"; };
E564312E07769C9000E2C4A3 /* Celestia.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Celestia.app; sourceTree = BUILT_PRODUCTS_DIR; };
E56431450776D52D00E2C4A3 /* celx.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = celx.cpp; path = ../src/celestia/celx.cpp; sourceTree = SOURCE_ROOT; };
@ -357,9 +360,11 @@
E5D4467307772B6C00A1577D /* CelestiaSettings.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CelestiaSettings.h; sourceTree = "<group>"; };
E5D4467407772B6C00A1577D /* CelestiaSettings.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = CelestiaSettings.mm; sourceTree = "<group>"; };
E5D471260778E33C007731C3 /* libpng.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libpng.dylib; path = Frameworks/libpng.dylib; sourceTree = "<group>"; };
E5D956DE096651DF00CB02B2 /* SplashWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SplashWindowController.h; sourceTree = "<group>"; };
E5D956DF096651DF00CB02B2 /* SplashWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SplashWindowController.m; sourceTree = "<group>"; };
E5E365AA095C11B500B14224 /* SplashScreen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SplashScreen.h; sourceTree = "<group>"; };
E5E365AB095C11B500B14224 /* SplashScreen.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SplashScreen.m; sourceTree = "<group>"; };
E5E365AE095C123E00B14224 /* splash.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = splash.tiff; sourceTree = "<group>"; };
E5E365AE095C123E00B14224 /* splash.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = splash.png; path = ../splash.png; sourceTree = "<group>"; };
E5E365B0095C12BD00B14224 /* es */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = es; path = es.lproj/MainMenu.nib; sourceTree = "<group>"; };
E5E365B1095C12C900B14224 /* es */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = es; path = es.lproj/BrowserWindow.nib; sourceTree = "<group>"; };
E5E365B2095C12D200B14224 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/InfoPlist.strings; sourceTree = "<group>"; };
@ -657,6 +662,7 @@
F565A8B202EB418701000006 /* RenderPanelController.m */,
F5EDC6BA0456666601000002 /* SetTimeWindowController.m */,
E5E365AB095C11B500B14224 /* SplashScreen.m */,
E5D956DF096651DF00CB02B2 /* SplashWindowController.m */,
F5040B0E02A484DA014901DC /* CelestiaController.h */,
F5231C7202C2997601000006 /* CelestiaFavorites.h */,
F5274ED202AE88260100020A /* CelestiaOpenGLView.h */,
@ -671,6 +677,7 @@
F565A8B102EB418701000006 /* RenderPanelController.h */,
F5EDC6B90456666601000002 /* SetTimeWindowController.h */,
E5E365AA095C11B500B14224 /* SplashScreen.h */,
E5D956DE096651DF00CB02B2 /* SplashWindowController.h */,
F578B79D02B3E2AD0100020A /* Cocoa Extensions */,
F55A246702B2D4FF0100020A /* Wrappers */,
);
@ -736,6 +743,7 @@
29B97317FDCFA39411CA2CEA /* Resources */ = {
isa = PBXGroup;
children = (
E54742CF09631D3600E89E09 /* defaults.plist */,
E5C9B46B084909B90071B1EE /* README for Mac OS X.rtf */,
E53C2FBE079433D300C76766 /* KbdMouseJoyControls.txt */,
E57283AD0793FC7300C1F239 /* README */,
@ -744,7 +752,7 @@
E572839A0793F82A00C1F239 /* COPYING */,
E5B615060777307F001BB2BF /* celestia.icns */,
E56A5AD00848F24D00A21D7E /* caution.tiff */,
E5E365AE095C123E00B14224 /* splash.tiff */,
E5E365AE095C123E00B14224 /* splash.png */,
F578B7AE02B3E35F0100020A /* Celestia Data */,
29B97318FDCFA39411CA2CEA /* MainMenu.nib */,
E54343100783C3F200053094 /* BrowserWindow.nib */,
@ -1222,7 +1230,8 @@
E54343120783C3F200053094 /* BrowserWindow.nib in Resources */,
E53C2FBF079433D300C76766 /* KbdMouseJoyControls.txt in Resources */,
E56A5AD10848F24D00A21D7E /* caution.tiff in Resources */,
E5E365AF095C123E00B14224 /* splash.tiff in Resources */,
E5E365AF095C123E00B14224 /* splash.png in Resources */,
E54742D009631D3600E89E09 /* defaults.plist in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -1232,7 +1241,7 @@
E572837307939E0200C1F239 /* ShellScript */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 8;
comments = "1. Removes extraneous Makefiles from CelestiaResources\n2. Creates writable disk image containing Celestia.app, CelestiaResources, and readme files.";
comments = "1. Removes extraneous files from CelestiaResources\n2. Creates writable disk image containing Celestia.app, CelestiaResources, and readme files.";
files = (
);
inputPaths = (
@ -1243,7 +1252,7 @@
);
runOnlyForDeploymentPostprocessing = 1;
shellPath = /bin/sh;
shellScript = "find $BUILT_PRODUCTS_DIR/Celestia -name 'Makefile*' -delete\nhdiutil create -srcfolder $BUILT_PRODUCTS_DIR/Celestia -format UDRW -ov $TARGET_BUILD_DIR/$PRODUCT_NAME.dmg\n";
shellScript = "find $BUILT_PRODUCTS_DIR/Celestia -name 'Makefile*' -delete\nrm -f $BUILT_PRODUCTS_DIR/Celestia/CelestiaResources/data/stars.txt\nhdiutil create -srcfolder $BUILT_PRODUCTS_DIR/Celestia -format UDRW -ov $TARGET_BUILD_DIR/$PRODUCT_NAME.dmg\n";
};
/* End PBXShellScriptBuildPhase section */
@ -1374,6 +1383,7 @@
E532F4F50933331800D7D5B3 /* dsooctree.cpp in Sources */,
E532F4F80933331800D7D5B3 /* staroctree.cpp in Sources */,
E5E365AD095C11B500B14224 /* SplashScreen.m in Sources */,
E5D956E00966520700CB02B2 /* SplashWindowController.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};