From a99dcf71d19a9f4e9ac28992b326bae766484d1c Mon Sep 17 00:00:00 2001 From: Derk-Jan Hartman Date: Wed, 9 Apr 2003 20:53:28 +0000 Subject: [PATCH] * All : added an about VLC panel. It scrolls the names and the work of the AUTHORS file. * AUTHORS: updated my own info --- AUTHORS | 6 +- Makefile.am | 1 + .../English.lproj/MainMenu.nib/classes.nib | 13 ++ .../English.lproj/MainMenu.nib/info.nib | 4 +- .../English.lproj/MainMenu.nib/objects.nib | Bin 42843 -> 44874 bytes extras/MacOSX/Resources/about_bg.png | Bin 0 -> 18527 bytes extras/MacOSX/vlc.pbproj/project.pbxproj | 30 +++ modules/gui/macosx/Modules.am | 2 + modules/gui/macosx/about.h | 52 ++++++ modules/gui/macosx/about.m | 176 ++++++++++++++++++ 10 files changed, 280 insertions(+), 4 deletions(-) create mode 100755 extras/MacOSX/Resources/about_bg.png create mode 100644 modules/gui/macosx/about.h create mode 100644 modules/gui/macosx/about.m diff --git a/AUTHORS b/AUTHORS index 7465659401..976a8fd8d2 100644 --- a/AUTHORS +++ b/AUTHORS @@ -1,4 +1,4 @@ -# $Id: AUTHORS,v 1.92 2003/02/27 12:44:01 marcari Exp $ +# $Id: AUTHORS,v 1.93 2003/04/09 20:53:28 hartman Exp $ # # The format of this file was inspired by the Linux kernel CREDITS file. # Authors are listed alphabetically. @@ -148,9 +148,11 @@ D: Gnome and Gtk+ interface enhancements S: United Kingdom N: Derk-Jan Hartman -E: pjotr@sidekick.student.utwente.nl +E: thedj@users.sourceforge.net C: hartman D: Mac OS X interface +D: Dutch translation +D: Directory input S: Netherlands N: Gaƫl Hendryckx diff --git a/Makefile.am b/Makefile.am index 1967fea1c9..61b6def08c 100644 --- a/Makefile.am +++ b/Makefile.am @@ -263,6 +263,7 @@ EXTRA_DIST += \ extras/MacOSX/Resources/slow.png \ extras/MacOSX/Resources/stop.png \ extras/MacOSX/Resources/vlc_hg.png \ + extras/MacOSX/Resources/about_bg.png \ extras/MacOSX/Resources/vlc.scriptSuite \ extras/MacOSX/Resources/README \ extras/MacOSX/vlc.pbproj/project.pbxproj \ diff --git a/extras/MacOSX/Resources/English.lproj/MainMenu.nib/classes.nib b/extras/MacOSX/Resources/English.lproj/MainMenu.nib/classes.nib index 50d02434ee..8e3794c1bb 100644 --- a/extras/MacOSX/Resources/English.lproj/MainMenu.nib/classes.nib +++ b/extras/MacOSX/Resources/English.lproj/MainMenu.nib/classes.nib @@ -1,6 +1,19 @@ { IBClasses = ( {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, + { + ACTIONS = {showPanel = id; }; + CLASS = VLAboutBox; + LANGUAGE = ObjC; + OUTLETS = { + "o_about_window" = id; + "o_copyright_field" = id; + "o_credits_scrollview" = id; + "o_credits_textview" = id; + "o_name_version_field" = id; + }; + SUPERCLASS = NSObject; + }, {CLASS = VLBrushedMetalImageView; LANGUAGE = ObjC; SUPERCLASS = NSImageView; }, {CLASS = VLCApplication; LANGUAGE = ObjC; SUPERCLASS = NSApplication; }, { diff --git a/extras/MacOSX/Resources/English.lproj/MainMenu.nib/info.nib b/extras/MacOSX/Resources/English.lproj/MainMenu.nib/info.nib index c1fb1478df..af17fe2198 100644 --- a/extras/MacOSX/Resources/English.lproj/MainMenu.nib/info.nib +++ b/extras/MacOSX/Resources/English.lproj/MainMenu.nib/info.nib @@ -7,7 +7,7 @@ IBEditorPositions 29 - 14 602 419 44 0 0 1152 746 + 16 822 419 44 0 0 1280 1002 303 60 509 104 114 0 0 1280 1002 909 @@ -23,8 +23,8 @@ IBOpenObjects + 1345 29 - 636 IBSystem Version 6I32 diff --git a/extras/MacOSX/Resources/English.lproj/MainMenu.nib/objects.nib b/extras/MacOSX/Resources/English.lproj/MainMenu.nib/objects.nib index b0767605f482c76b19faa56b7b68bd548f8a95d9..33509d562dff6fa2cab23f03686a9c3e1eada5d2 100644 GIT binary patch literal 44874 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 BEm8mg literal 42843 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 diff --git a/extras/MacOSX/Resources/about_bg.png b/extras/MacOSX/Resources/about_bg.png new file mode 100755 index 0000000000000000000000000000000000000000..b4177ec29d8687ddd6c7eefc41e0a6c8e4a109f6 GIT binary patch literal 18527 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 + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. + *****************************************************************************/ + +/***************************************************************************** + * VLAboutBox interface + *****************************************************************************/ +@interface VLAboutBox : NSObject +{ + IBOutlet id o_about_window; + IBOutlet id o_name_version_field; + IBOutlet id o_copyright_field; + IBOutlet id o_credits_textview; + IBOutlet id o_credits_scrollview; + + NSTimer *o_scroll_timer; + float f_current; + NSTimeInterval i_start; + BOOL b_restart; + + NSString *o_credits_path; + NSString *o_credits; + NSString *o_name_version; + NSString *o_copyright; + NSDictionary *o_info_dict; + CFBundleRef localInfoBundle; + NSDictionary *o_local_dict; +} + ++ (VLAboutBox *)sharedInstance; +- (IBAction)showPanel:(id)sender; + +@end diff --git a/modules/gui/macosx/about.m b/modules/gui/macosx/about.m new file mode 100644 index 0000000000..134f5cb3ac --- /dev/null +++ b/modules/gui/macosx/about.m @@ -0,0 +1,176 @@ +/***************************************************************************** + * about.m: MacOS X About Panel + ***************************************************************************** + * Copyright (C) 2001-2003 VideoLAN + * $Id: about.m,v 1.1 2003/04/09 20:53:28 hartman Exp $ + * + * Authors: Derk-Jan Hartman + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. + *****************************************************************************/ + +/***************************************************************************** + * Preamble + *****************************************************************************/ +#include "intf.h" +#include "about.h" + +/***************************************************************************** + * VLAboutBox implementation + *****************************************************************************/ +@implementation VLAboutBox + +static VLAboutBox *_o_sharedInstance = nil; + ++ (VLAboutBox *)sharedInstance +{ + return _o_sharedInstance ? _o_sharedInstance : [[self alloc] init]; +} + +- (id)init +{ + if (_o_sharedInstance) { + [self dealloc]; + } else { + _o_sharedInstance = [super init]; + } + + return _o_sharedInstance; +} + +- (IBAction)showPanel:(id)sender +{ + if (!o_credits_path) + { + NSString *o_name; + NSString *o_version; + + // Get the info dictionary (Info.plist) + o_info_dict = [[NSBundle mainBundle] infoDictionary]; + + // Get the localized info dictionary (InfoPlist.strings) + localInfoBundle = CFBundleGetMainBundle(); + o_local_dict = (NSDictionary *) + CFBundleGetLocalInfoDictionary( localInfoBundle ); + + // Setup the app name field + o_name = [o_local_dict objectForKey:@"CFBundleName"]; + + // Set the about box window title + [o_about_window setTitle:_NS("About VLC media player")]; + + // Setup the version field + o_version = [o_info_dict objectForKey:@"CFBundleVersion"]; + + // Setup the appnameversion field + o_name_version = [NSString stringWithFormat:@"%@ - Version %@", o_name, o_version]; + [o_name_version_field setStringValue: o_name_version]; + + // Setup our credits + o_credits_path = [[NSBundle mainBundle] pathForResource:@"AUTHORS" ofType:nil]; + o_credits = [NSString stringWithContentsOfFile: o_credits_path ]; + + // Parse the string + NSMutableString *o_outString = [NSMutableString string]; + NSScanner *o_scan_credits = [NSScanner scannerWithString: o_credits]; + NSCharacterSet *o_stopSet = [NSCharacterSet characterSetWithCharactersInString:@"\n\r"]; + + while( ![o_scan_credits isAtEnd] ) + { + NSString *o_person; + NSScanner *o_scan_person; + + [o_scan_credits scanUpToString:@"N:" intoString: nil]; + [o_scan_credits scanString:@"N:" intoString: nil]; + [o_scan_credits scanUpToString:@"N:" intoString: &o_person]; + o_scan_person = [NSScanner scannerWithString: o_person]; + + NSString *o_name; + NSString *o_email; + NSMutableString *o_jobs = [NSMutableString string]; + NSString *o_next; + + [o_scan_person scanUpToCharactersFromSet: o_stopSet intoString: &o_name]; + [o_scan_person scanString:@"E:" intoString: nil]; + [o_scan_person scanUpToCharactersFromSet: o_stopSet intoString: &o_email]; + [o_scan_person scanUpToString:@"D:" intoString: &o_next]; + [o_scan_person scanUpToString:@":" intoString: &o_next]; + [o_scan_person scanString:@":" intoString: nil]; + + while ( [o_next characterAtIndex:[o_next length] - 1] == 'D' ) + { + NSString *o_job; + [o_scan_person scanUpToCharactersFromSet: o_stopSet intoString: &o_job ]; + [o_jobs appendFormat: @"%@, ", o_job]; + [o_scan_person scanUpToString:@":" intoString: &o_next]; + [o_scan_person scanString:@":" intoString: nil]; + } + + [o_outString appendFormat: @"%@ <%@>\n%@\n\n", o_name, o_email, o_jobs]; + [o_credits_textview setString:o_outString]; + } + + // Setup the copyright field + o_copyright = [o_local_dict objectForKey:@"NSHumanReadableCopyright"]; + [o_copyright_field setStringValue:o_copyright]; + + // Setup the window + [o_credits_textview setDrawsBackground: NO]; + [o_credits_scrollview setDrawsBackground: NO]; + [o_about_window setExcludedFromWindowsMenu:YES]; + [o_about_window setMenu:nil]; + [o_about_window center]; + } + + // Show the window + b_restart = YES; + [o_about_window makeKeyAndOrderFront:nil]; +} + +- (void)windowDidBecomeKey:(NSNotification *)notification +{ + o_scroll_timer = [NSTimer scheduledTimerWithTimeInterval:1/6 + target:self + selector:@selector(scrollCredits:) + userInfo:nil + repeats:YES]; +} + +- (void)windowDidResignKey:(NSNotification *)notification +{ + [o_scroll_timer invalidate]; +} + +- (void)scrollCredits:(NSTimer *)timer +{ + if (b_restart) + { + // Reset the startTime + i_start = [NSDate timeIntervalSinceReferenceDate] + 3.0; + f_current = 0; + b_restart = NO; + } + + if ([NSDate timeIntervalSinceReferenceDate] >= i_start) + { + // Scroll to the position + [o_credits_textview scrollPoint:NSMakePoint( 0, f_current )]; + + // Increment the scroll position + f_current += 0.005; + } +} + +@end -- 2.39.2