From: Yanagi Asakura Date: Sat, 19 Sep 2009 09:08:20 +0000 (+0900) Subject: add small window mode X-Git-Url: http://git.osdn.net/view?p=eliscolors%2Fmain.git;a=commitdiff_plain;h=be1fea1e335d65ed6d1073b2876cdc5a3db292f1 add small window mode --- diff --git a/Elis Colors.xcodeproj/project.pbxproj b/Elis Colors.xcodeproj/project.pbxproj index 91931c0..8ee4dfc 100644 --- a/Elis Colors.xcodeproj/project.pbxproj +++ b/Elis Colors.xcodeproj/project.pbxproj @@ -9,6 +9,7 @@ /* Begin PBXBuildFile section */ 1DDD58160DA1D0A300B32029 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1DDD58140DA1D0A300B32029 /* MainMenu.xib */; }; 256AC3DA0F4B6AC300CF3369 /* Elis_ColorsAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 256AC3D90F4B6AC300CF3369 /* Elis_ColorsAppDelegate.m */; }; + 5C01A8C11064ACFB0076B735 /* MainMenuForSmallDisplay.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5C01A8BF1064ACFB0076B735 /* MainMenuForSmallDisplay.xib */; }; 5C56077F105FB3B70094F837 /* ElisPropertyTableController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5C56077E105FB3B70094F837 /* ElisPropertyTableController.m */; }; 5C560820105FCA140094F837 /* ElisCoreImageKernel.cikernel in Sources */ = {isa = PBXBuildFile; fileRef = 5C56081D105FCA140094F837 /* ElisCoreImageKernel.cikernel */; }; 5C560821105FCA140094F837 /* ElisCustomFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = 5C56081F105FCA140094F837 /* ElisCustomFilter.m */; }; @@ -17,6 +18,8 @@ 5C808EC5105CEE6E00818B1A /* trackgray.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 5C808EC4105CEE6E00818B1A /* trackgray.jpg */; }; 5C9F358B105F7BEA00D87A46 /* ElisEffect.m in Sources */ = {isa = PBXBuildFile; fileRef = 5C9F358A105F7BEA00D87A46 /* ElisEffect.m */; }; 5C9F358E105F7C0F00D87A46 /* ElisKeyframe.m in Sources */ = {isa = PBXBuildFile; fileRef = 5C9F358D105F7C0F00D87A46 /* ElisKeyframe.m */; }; + 5CB6798C10637CA400FC5F9F /* lightgreen.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 5CB6798A10637CA400FC5F9F /* lightgreen.jpg */; }; + 5CB6798D10637CA400FC5F9F /* orange.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 5CB6798B10637CA400FC5F9F /* orange.jpg */; }; 5CE2691F105B6FCE0082C63A /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5CE2691E105B6FCE0082C63A /* QuartzCore.framework */; }; 5CE26923105B6FDE0082C63A /* Quartz.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5CE26922105B6FDE0082C63A /* Quartz.framework */; }; 5CE26928105B6FE90082C63A /* QTKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5CE26927105B6FE90082C63A /* QTKit.framework */; }; @@ -49,6 +52,7 @@ 29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; 29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = ""; }; 29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = ""; }; + 5C01A8C01064ACFB0076B735 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = English.lproj/MainMenuForSmallDisplay.xib; sourceTree = ""; }; 5C56077D105FB3B70094F837 /* ElisPropertyTableController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ElisPropertyTableController.h; sourceTree = ""; }; 5C56077E105FB3B70094F837 /* ElisPropertyTableController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ElisPropertyTableController.m; sourceTree = ""; }; 5C56081D105FCA140094F837 /* ElisCoreImageKernel.cikernel */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.glsl; name = ElisCoreImageKernel.cikernel; path = ../Elis/ElisCoreImageKernel.cikernel; sourceTree = SOURCE_ROOT; }; @@ -62,6 +66,8 @@ 5C9F358A105F7BEA00D87A46 /* ElisEffect.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ElisEffect.m; sourceTree = ""; }; 5C9F358C105F7C0F00D87A46 /* ElisKeyframe.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ElisKeyframe.h; sourceTree = ""; }; 5C9F358D105F7C0F00D87A46 /* ElisKeyframe.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ElisKeyframe.m; sourceTree = ""; }; + 5CB6798A10637CA400FC5F9F /* lightgreen.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; name = lightgreen.jpg; path = image/lightgreen.jpg; sourceTree = ""; }; + 5CB6798B10637CA400FC5F9F /* orange.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; name = orange.jpg; path = image/orange.jpg; sourceTree = ""; }; 5CE26911105B6F880082C63A /* ElisBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ElisBase.h; sourceTree = ""; }; 5CE2691E105B6FCE0082C63A /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = /System/Library/Frameworks/QuartzCore.framework; sourceTree = ""; }; 5CE26922105B6FDE0082C63A /* Quartz.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Quartz.framework; path = /System/Library/Frameworks/Quartz.framework; sourceTree = ""; }; @@ -181,6 +187,7 @@ 29B97317FDCFA39411CA2CEA /* Resources */, 29B97323FDCFA39411CA2CEA /* Frameworks */, 19C28FACFE9D520D11CA2CBB /* Products */, + 5C01A8BF1064ACFB0076B735 /* MainMenuForSmallDisplay.xib */, ); name = "Elis Colors"; sourceTree = ""; @@ -199,6 +206,8 @@ children = ( 5CE26AD8105BD8F20082C63A /* skyblue.jpg */, 5C808EC4105CEE6E00818B1A /* trackgray.jpg */, + 5CB6798A10637CA400FC5F9F /* lightgreen.jpg */, + 5CB6798B10637CA400FC5F9F /* orange.jpg */, 8D1107310486CEB800E47090 /* Elis_Colors-Info.plist */, 5C808EAB105CEDCB00818B1A /* white.jpg */, 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */, @@ -312,6 +321,9 @@ 5CE26AD9105BD8F20082C63A /* skyblue.jpg in Resources */, 5C808EAC105CEDCB00818B1A /* white.jpg in Resources */, 5C808EC5105CEE6E00818B1A /* trackgray.jpg in Resources */, + 5CB6798C10637CA400FC5F9F /* lightgreen.jpg in Resources */, + 5CB6798D10637CA400FC5F9F /* orange.jpg in Resources */, + 5C01A8C11064ACFB0076B735 /* MainMenuForSmallDisplay.xib in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -361,9 +373,47 @@ name = MainMenu.xib; sourceTree = ""; }; + 5C01A8BF1064ACFB0076B735 /* MainMenuForSmallDisplay.xib */ = { + isa = PBXVariantGroup; + children = ( + 5C01A8C01064ACFB0076B735 /* English */, + ); + name = MainMenuForSmallDisplay.xib; + sourceTree = ""; + }; /* End PBXVariantGroup section */ /* Begin XCBuildConfiguration section */ + 5CB67A3610638D0900FC5F9F /* Release (Leopard) */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_BIT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_OBJC_GC = required; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + PREBINDING = NO; + SDKROOT = macosx10.5; + }; + name = "Release (Leopard)"; + }; + 5CB67A3710638D0900FC5F9F /* Release (Leopard) */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_STANDARD_32_BIT)"; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + GCC_ENABLE_OBJC_GC = required; + GCC_MODEL_TUNING = G5; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = Elis_Colors_Prefix.pch; + INFOPLIST_FILE = "Elis_Colors-Info.plist"; + INSTALL_PATH = "$(HOME)/Applications"; + PRODUCT_NAME = "Elis Colors"; + VALID_ARCHS = "i386 x86_64"; + }; + name = "Release (Leopard)"; + }; C01FCF4B08A954540054247B /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -417,7 +467,7 @@ C01FCF5008A954540054247B /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + ARCHS = "$(ARCHS_STANDARD_32_BIT)"; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNUSED_VARIABLE = YES; @@ -434,18 +484,20 @@ buildConfigurations = ( C01FCF4B08A954540054247B /* Debug */, C01FCF4C08A954540054247B /* Release */, + 5CB67A3710638D0900FC5F9F /* Release (Leopard) */, ); defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; + defaultConfigurationName = "Release (Leopard)"; }; C01FCF4E08A954540054247B /* Build configuration list for PBXProject "Elis Colors" */ = { isa = XCConfigurationList; buildConfigurations = ( C01FCF4F08A954540054247B /* Debug */, C01FCF5008A954540054247B /* Release */, + 5CB67A3610638D0900FC5F9F /* Release (Leopard) */, ); defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; + defaultConfigurationName = "Release (Leopard)"; }; /* End XCConfigurationList section */ }; diff --git a/ElisAnimationLayerFactory.h b/ElisAnimationLayerFactory.h index d9f311d..0dc5545 100644 --- a/ElisAnimationLayerFactory.h +++ b/ElisAnimationLayerFactory.h @@ -15,6 +15,6 @@ NSBundle *bundle; CALayer* parentLayer; } -- (CALayer*)createNewMovieLayer:(float)d name:(NSString*)name; +- (CALayer*)createNewAnimationLayer:(float)d name:(NSString*)name type:(NSString*)t_type; - (CALayer*)createKeyframeLevelLayer; @end diff --git a/ElisAnimationLayerFactory.m b/ElisAnimationLayerFactory.m index 9a92488..74c3dce 100644 --- a/ElisAnimationLayerFactory.m +++ b/ElisAnimationLayerFactory.m @@ -19,12 +19,18 @@ return self; } -- (CALayer*)createNewMovieLayer:(float)d name:(NSString*)name +- (CALayer*)createNewAnimationLayer:(float)d name:(NSString*)name type:(NSString*)t_type { CALayer* layer = [CALayer layer]; // layer.contents = mediaImage; // なぜかGCされる - mediaImage = [[NSBitmapImageRep imageRepWithContentsOfFile:[bundle pathForResource:@"skyblue" ofType:@"jpg"]] CGImage]; + + if([t_type isEqualToString:@"movie"]) + mediaImage = [[NSBitmapImageRep imageRepWithContentsOfFile:[bundle pathForResource:@"skyblue" ofType:@"jpg"]] CGImage]; + else if([t_type isEqualToString:@"sound"]) + mediaImage = [[NSBitmapImageRep imageRepWithContentsOfFile:[bundle pathForResource:@"orange" ofType:@"jpg"]] CGImage]; + else if([t_type isEqualToString:@"image"]) + mediaImage = [[NSBitmapImageRep imageRepWithContentsOfFile:[bundle pathForResource:@"lightgreen" ofType:@"jpg"]] CGImage]; layer.contents = (id)mediaImage; layer.opacity = 0.75; // [layer setValue:(id)mediaImage forKey:@"contents"]; diff --git a/ElisBase.h b/ElisBase.h index ae0896d..1342bf6 100644 --- a/ElisBase.h +++ b/ElisBase.h @@ -6,9 +6,8 @@ // Copyright 2009 __MyCompanyName__. All rights reserved. // -// 俺のエリスかわいい。 - // ElisからElis Colorsへ。 +// もっとかわいく。もっとエレガントに。 // 高速化の努力をするべきところ : // ElisController#timeSliderChanged @@ -18,7 +17,14 @@ // エフェクト/キーフレーム/プロパティテーブルまわりが激重。どうにかしないと。 -//#import +// GCD使ったら表示がちらつくようになった。どういうことなの... + +//#define __SNOW_LEOPARD__ +//#define __SNOW_LEOPARD_GCD__ + +#ifdef __SNOW_LEOPARD_GCD__ +#import +#endif #import #import @@ -39,4 +45,5 @@ extern float timeLineScale; extern QTTime globalCurrentTime; extern CGRect ProjectMovieSize; -extern BOOL recording; \ No newline at end of file +extern BOOL recording; +extern int timeLineXShift; \ No newline at end of file diff --git a/ElisController.h b/ElisController.h index 0097726..a4afb1c 100644 --- a/ElisController.h +++ b/ElisController.h @@ -25,6 +25,7 @@ CGRect ProjectMovieSize; QTTime globalCurrentTime; BOOL recording; +int timeLineXShift; @interface ElisController : NSObject { NSMutableArray* layers; // 全てのレイヤーはここに束縛 @@ -32,14 +33,21 @@ BOOL recording; ElisAnimationLayerFactory* _animationLayerFactory; IBOutlet ElisTimeLineController* _timeLineController; IBOutlet ElisPropertyTableController* _tableController; + IBOutlet NSWindow* _mainWindow; + IBOutlet ElisWriter* _writer; float hipTime; QTTime _currentTime; BOOL playing; // YES = 再生中 NSGarbageCollector* collector; // GCの制御用。 + NSString* savePath; IBOutlet NSSlider* timeSlider; IBOutlet NSTextField* timeCodeField; + +#ifdef __SNOW_LEOPARD_GCD__ + dispatch_queue_t diq; +#endif } - (float)getHipTime; @@ -49,11 +57,17 @@ BOOL recording; - (IBAction)timeSliderChanged:(id)sender; - (void)moveSliderTo:(QTTime)time; - (void)refresh; +- (void)getSoundTrack:(NSMutableArray*)soundTrack; - (IBAction)deleteSelectLayer:(id)sender; - (IBAction)recordingStateChanged:(id)sender; - (IBAction)removeAllKeyFrame:(id)sender; - (IBAction)removeEffect:(id)sender; - (IBAction)writeToFile:(id)sender; +- (IBAction)openProjectSaveDialog:(id)sender; +- (IBAction)openProjectLoadDialog:(id)sender; +- (IBAction)rewriteProject:(id)sender; + +- (IBAction)changeToSmallWindiw:(id)sender; @end diff --git a/ElisController.m b/ElisController.m index b0489df..fffaaf9 100644 --- a/ElisController.m +++ b/ElisController.m @@ -22,6 +22,8 @@ static float convertQTTimeToSecond(QTTime t) _animationLayerFactory = [[ElisAnimationLayerFactory alloc] init]; playing = NO; recording = NO; + hipTime = 0.0; + savePath = nil; ProjectMovieSize = CGRectMake(0, 0, 640, 480); @@ -31,6 +33,12 @@ static float convertQTTimeToSecond(QTTime t) NSLog(@"Building effects ..."); // エフェクトメニューを構築。 [self buildEffectMenu]; + + timeLineXShift = 0; + +#ifdef __SNOW_LEOPARD_GCD__ + diq = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0); +#endif } - (CALayer*)createNewLayer:(NSString*)path @@ -39,9 +47,39 @@ static float convertQTTimeToSecond(QTTime t) CALayer* alayer; ElisMedia* m; layer = [[ElisLayer alloc] init]; - m = [[ElisMedia alloc] initWithMovieFile:path]; + + NSWorkspace* sharedWorkspace = [NSWorkspace sharedWorkspace]; + + // 読めるメディアかチェック + if([sharedWorkspace type:[sharedWorkspace typeOfFile:path error:nil] + conformsToType:@"public.image"]) + { + m = [[ElisMedia alloc] initWithImageFile:path]; + alayer = [_animationLayerFactory createNewAnimationLayer:convertQTTimeToSecond([m duration]) + name:[path lastPathComponent] type:@"image"]; + } + else if([sharedWorkspace type:[sharedWorkspace typeOfFile:path error:nil] + conformsToType:@"public.audio"]) + { + m = [[ElisMedia alloc] initWithSoundFile:path]; + alayer = [_animationLayerFactory createNewAnimationLayer:convertQTTimeToSecond([m duration]) + name:[path lastPathComponent] type:@"sound"]; + } + else if([sharedWorkspace type:[sharedWorkspace typeOfFile:path error:nil] + conformsToType:@"public.movie"] || + [sharedWorkspace type:[sharedWorkspace typeOfFile:path error:nil] + conformsToType:@"com.apple.quartz-composer-composition"]) + { + m = [[ElisMedia alloc] initWithMovieFile:path]; + alayer = [_animationLayerFactory createNewAnimationLayer:convertQTTimeToSecond([m duration]) + name:[path lastPathComponent] type:@"movie"]; + } + else { + NSLog(@"error: cannot open %@", path); + return nil; + } + layer.media = m; - alayer = [_animationLayerFactory createNewMovieLayer:convertQTTimeToSecond([m duration]) name:[path lastPathComponent]]; // [alayer setValue:layer forKey:@"ElisLayer"]; [layer setAlayer:alayer]; @@ -53,8 +91,7 @@ static float convertQTTimeToSecond(QTTime t) // 絶対時間qttimeと関係があるレイヤーをまとめて返す。 - (void)getFrameForTime:(QTTime)qttime result:(NSMutableArray*)layerSet { - int i, size = [layers count]; - ElisLayer* l; + int size = [layers count]; // 再生時間オーバー。停止。 if(convertQTTimeToSecond(qttime) >= hipTime){ @@ -67,7 +104,21 @@ static float convertQTTimeToSecond(QTTime t) [self moveSliderTo:qttime]; [_tableController reload]; + // GCD使ってみたら画面がちらつく。どういうことなの...? +#ifdef __SNOW_LEOPARD_GCD__ + dispatch_apply(size, diq, ^(size_t i) { + ElisLayer* l = [layers objectAtIndex:i]; + if([l isInclude:qttime]){ + if(playing) [l play]; + [layerSet addObject:l]; + }else{ + if(playing) [l stop]; + } + }); +#else // GCDなりOpenMPなりで並列化すること。 + int i; + ElisLayer* l; for(i = 0; i < size; i++){ l = [layers objectAtIndex:i]; if([l isInclude:qttime]){ @@ -77,6 +128,7 @@ static float convertQTTimeToSecond(QTTime t) if(playing) [l stop]; } } +#endif } - (void)play:(QTTime)time @@ -188,6 +240,13 @@ static float convertQTTimeToSecond(QTTime t) [_mainView getFrameForQTTime:_currentTime]; } +- (void)getSoundTrack:(NSMutableArray*)soundTrack +{ + int i, size = [layers count]; + for(i = 0; i < size; i++) + [[layers objectAtIndex:i] getSoundTrack:soundTrack]; +} + - (IBAction)deleteSelectLayer:(id)sender { CALayer* selected = [_timeLineController getSelectLayer]; @@ -220,11 +279,26 @@ static float convertQTTimeToSecond(QTTime t) - (IBAction)writeToFile:(id)sender { - ElisWriter* writer = [[ElisWriter alloc] init]; - [writer setView:_mainView]; - [writer setContoller:self]; + NSSavePanel* sp = [NSSavePanel savePanel]; + + [sp setRequiredFileType:@"mov"]; + [sp beginSheetForDirectory:nil + file:nil + modalForWindow:_mainWindow + modalDelegate:self + didEndSelector:@selector(writeMovie:returnCode:contextInfo:) + contextInfo:NULL]; +} + +- (void)writeMovie:(NSSavePanel*)sheet returnCode:(int)code contextInfo:(void*)info +{ + NSString* path = [sheet filename]; - [writer write:@"/Users/yanagi/Desktop/result.mov"]; + if(code == NSCancelButton) return; + [sheet close]; + +// [_writer write:path]; + [NSThread detachNewThreadSelector:@selector(write:) toTarget:_writer withObject:path]; } // エフェクトのメニュー項目を構築 @@ -265,6 +339,7 @@ static float convertQTTimeToSecond(QTTime t) filter = [CIFilter filterWithName:name]; attrs = [filter attributes]; inputKeys = [filter inputKeys]; + if([inputKeys count] == 1) goto jimp; for(elm in inputKeys){ if([elm isEqualToString:@"inputImage"]) continue; if([[[attrs valueForKey:elm] valueForKey:kCIAttributeClass] isEqualToString:@"CIVector"]){ @@ -283,11 +358,9 @@ static float convertQTTimeToSecond(QTTime t) c++; [menu addItem:child]; - // [menu addItemWithTitle:name action:@selector(effectMenuPushed:) keyEquivalent:@""]; jimp: - ; - // [filter release]; + ; // ラベルの後ろには必ずstatementがないといけないらしい。なんで? } NSLog(@"%d effetcs usable.", c); [item setSubmenu:menu]; @@ -305,7 +378,104 @@ static float convertQTTimeToSecond(QTTime t) [[l valueForKey:@"ElisLayer"] addEffect:[sender title]]; [self refresh]; [_tableController createPropertyTable:[l valueForKey:@"ElisLayer"]]; + [_tableController reload]; +} + +- (void)saveProjectToFile:(NSSavePanel*)sheet returnCode:(int)code contextInfo:(void*)info +{ + NSString* path = [sheet filename]; + NSMutableData* data = [NSMutableData data]; + NSKeyedArchiver* encoder = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data]; + + [encoder encodeObject:layers forKey:@"layers"]; + [encoder finishEncoding]; + + savePath = path; + + [data writeToFile:path atomically:YES]; +} + +- (void)loadProjectFromFile:(NSString*)path +{ + NSMutableData* data = [NSMutableData dataWithContentsOfFile:path]; + NSKeyedUnarchiver* decoder = [[NSKeyedUnarchiver alloc] initForReadingWithData:data]; + + [_timeLineController awakeFromNib]; // これはひどい。 + layers = [decoder decodeObjectForKey:@"layers"]; + [decoder finishDecoding]; + + int i, size = [layers count]; + ElisLayer* l; + CALayer* al; + + for(i = 0; i < size; i++){ + l = [layers objectAtIndex:i]; + al = [_animationLayerFactory createNewAnimationLayer:[l duration] name:[l getPath] type:[l getType]]; + [l setLayer:al]; + [_timeLineController addLayer:al]; + } + + savePath = path; + + [self refresh]; +} + +- (IBAction)openProjectSaveDialog:(id)sender +{ + NSSavePanel* sp = [NSSavePanel savePanel]; + + [sp setRequiredFileType:@"elis"]; + [sp beginSheetForDirectory:nil + file:nil + modalForWindow:_mainWindow + modalDelegate:self + didEndSelector:@selector(saveProjectToFile:returnCode:contextInfo:) + contextInfo:NULL]; +} + +- (IBAction)openProjectLoadDialog:(id)sender +{ + NSOpenPanel* op = [NSOpenPanel openPanel]; + + int st; + st = [op runModalForTypes:[NSArray arrayWithObject:@"elis"]]; + + if(st == NSOKButton) + [self loadProjectFromFile:[op filename]]; +} + +- (BOOL)validateMenuItem:(NSMenuItem *)menuItem +{ + if([menuItem action] == @selector(rewriteProject:)) + return savePath != nil; + +// if([menuItem action] == @selector(removeAllKeyFrame:)) +// return [_tableController canRemoveAllKeyframe]; + + if([menuItem action] == @selector(removeEffect:)) + return [_tableController canRemoveEffect]; + + if([menuItem action] == @selector(deleteSelectLayer:)) + return [_timeLineController canDeleteLayer]; + + return YES; } +- (IBAction)rewriteProject:(id)sender +{ + NSMutableData* data = [NSMutableData data]; + NSKeyedArchiver* encoder = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data]; + + [encoder encodeObject:layers forKey:@"layers"]; + [encoder finishEncoding]; + + [data writeToFile:savePath atomically:YES]; +} + +- (IBAction)changeToSmallWindiw:(id)sender +{ + [_mainWindow close]; + [NSBundle loadNibNamed:@"MainMenuForSmallDisplay" owner:self]; +} @end diff --git a/ElisEffect.m b/ElisEffect.m index 2024ce0..f21c74b 100644 --- a/ElisEffect.m +++ b/ElisEffect.m @@ -233,4 +233,34 @@ [params setValue:k forKey:key]; } +- (void)encodeWithCoder:(NSCoder*)encoder +{ + [encoder encodeObject:[attrs valueForKey:kCIAttributeFilterName] forKey:@"filterName"]; + [encoder encodeObject:name forKey:@"name"]; + [encoder encodeObject:attrs forKey:@"attrs"]; + [encoder encodeObject:colors forKey:@"colors"]; + [encoder encodeObject:vecs forKey:@"vecs"]; + [encoder encodeObject:affine forKey:@"affine"]; + [encoder encodeObject:params forKey:@"params"]; + [encoder encodeBool:generator forKey:@"generator"]; +} + +- (id)initWithCoder:(NSCoder*)coder +{ + name = [coder decodeObjectForKey:@"name"]; + attrs = [coder decodeObjectForKey:@"attrs"]; + colors = [coder decodeObjectForKey:@"colors"]; + vecs = [coder decodeObjectForKey:@"vecs"]; + affine = [coder decodeObjectForKey:@"affine"]; + params = [coder decodeObjectForKey:@"params"]; + generator = [coder decodeBoolForKey:@"generator"]; + + NSString* filterName = [coder decodeObjectForKey:@"filterName"]; + filter = [[CIFilter filterWithName:filterName] retain]; + [filter setDefaults]; + + return self; +} + + @end diff --git a/ElisKeyframe.m b/ElisKeyframe.m index f3e2414..f79601f 100644 --- a/ElisKeyframe.m +++ b/ElisKeyframe.m @@ -111,4 +111,19 @@ static float convertQTTimeToSecond(QTTime t) return cacheValue; } +- (void)encodeWithCoder:(NSCoder*)encoder +{ + [encoder encodeObject:timesAndValues forKey:@"timesAndValues"]; + [encoder encodeObject:sortedTimes forKey:@"sortedTimes"]; +} + +- (id)initWithCoder:(NSCoder*)coder +{ + timesAndValues = [coder decodeObjectForKey:@"timesAndValues"]; + sortedTimes = [coder decodeObjectForKey:@"sortedTimes"]; + cacheTime = NAN; + + return self; +} + @end diff --git a/ElisLayer.h b/ElisLayer.h index a8bfefa..59affc8 100644 --- a/ElisLayer.h +++ b/ElisLayer.h @@ -19,11 +19,10 @@ @interface ElisLayer : NSObject { ElisMedia* media; // メディアオブジェクト int trackNumber; // トラック番号。0から - QTTimeRange mapping; - CALayer* alayer; - NSPoint position; - QTTime offset; - NSMutableArray* effects; + QTTimeRange mapping; // プロジェクト上の配置情報 + CALayer* alayer; // タイムラインで表示するレイヤー + QTTime offset; // 再生時間オフセット + NSMutableArray* effects; // エフェクトの配列 ElisKeyframe *pxKeyframe, *pyKeyframe; // Positionのキーフレーム } @@ -62,4 +61,8 @@ - (void)removePositionXKeyframe; - (void)removePositionYKerframe; +- (float)duration; +- (id)initWithCoder:(NSCoder*)coder; +- (void)encodeWithCoder:(NSCoder*)encoder; + @end diff --git a/ElisLayer.m b/ElisLayer.m index c27ff5c..4108c9a 100644 --- a/ElisLayer.m +++ b/ElisLayer.m @@ -20,8 +20,8 @@ static float convertQTTimeToSecond(QTTime t) - (id)init { self.media = nil; - position.x = 0; - position.y = 0; +// position.x = 0; +// position.y = 0; offset = QTZeroTime; effects = [[NSMutableArray alloc] init]; pxKeyframe = [[ElisKeyframe alloc] init]; @@ -60,6 +60,7 @@ static float convertQTTimeToSecond(QTTime t) [effects addObject:[[ElisEffect alloc] initWithName:name]]; } +// mappingとtrackNumberを変化させる。 - (void)changeMapping { CGRect frame = alayer.frame; @@ -68,8 +69,6 @@ static float convertQTTimeToSecond(QTTime t) trackNumber = floor(frame.origin.y/51.0); mapping = QTMakeTimeRange(begin, d); - - // mappingとtrackNumberを変化させる。 } - (void)changeOffset:(float)df @@ -81,7 +80,13 @@ static float convertQTTimeToSecond(QTTime t) - (BOOL)canChangeMapping:(CGRect)rect { - QTTime duration = [media duration]; + QTTime duration; + + if([[media type] isEqualToString:@"image"]) + duration = QTMakeTime(60*10, 1); + else + duration = [media duration]; + QTTime wantDuration = QTMakeTime(rect.size.width*DEFAULT_FPS/timeLineScale, DEFAULT_FPS); float d = convertQTTimeToSecond(duration) - convertQTTimeToSecond(offset); float wd = convertQTTimeToSecond(wantDuration); @@ -262,4 +267,65 @@ static float convertQTTimeToSecond(QTTime t) [effects removeObject:ef]; } +- (void)getSoundTrack:(NSMutableArray*)soundTrack +{ + QTTrack* t; + t = [media getSoundTrack]; + if(t){ + [soundTrack addObject:t]; + [soundTrack addObject:[NSValue valueWithQTTime:offset]]; + [soundTrack addObject:[NSValue valueWithQTTimeRange:mapping]]; + } +} + +- (void)encodeWithCoder:(NSCoder*)encoder +{ + [encoder encodeObject:media forKey:@"media"]; + [encoder encodeInt:trackNumber forKey:@"trackNumber"]; + [encoder encodeObject:QTStringFromTimeRange(mapping) forKey:@"mapping"]; + [encoder encodeObject:QTStringFromTime(offset) forKey:@"offset"]; + [encoder encodeObject:effects forKey:@"effects"]; + [encoder encodeObject:pxKeyframe forKey:@"pxKerframe"]; + [encoder encodeObject:pyKeyframe forKey:@"pyKeyframe"]; + + NSLog(@"encoding layer"); +} + +- (id)initWithCoder:(NSCoder*)coder +{ + media = [coder decodeObjectForKey:@"media"]; + trackNumber = [coder decodeIntForKey:@"trackNumber"]; + mapping = QTTimeRangeFromString([coder decodeObjectForKey:@"mapping"]); + offset = QTTimeFromString([coder decodeObjectForKey:@"offset"]); + effects = [coder decodeObjectForKey:@"effects"]; + pxKeyframe = [coder decodeObjectForKey:@"pxKeyframe"]; + pyKeyframe = [coder decodeObjectForKey:@"pyKeyframe"]; + + NSLog(@"decoding layer"); + + return self; +} + +- (void)setLayer:(CALayer*)layer +{ + layer.frame = CGRectMake(convertQTTimeToSecond(mapping.time)*timeLineScale, trackNumber*51+1, + (convertQTTimeToSecond(mapping.time) + convertQTTimeToSecond(mapping.duration))*timeLineScale, 50); + [self setAlayer:layer]; +} + +- (float)duration +{ + return convertQTTimeToSecond(mapping.time) + convertQTTimeToSecond(mapping.duration); +} + +- (NSString*)getPath +{ + return [[media path] lastPathComponent]; +} + +- (NSString*)getType +{ + return [media type]; +} + @end diff --git a/ElisMainView.m b/ElisMainView.m index 316fccd..9b68405 100644 --- a/ElisMainView.m +++ b/ElisMainView.m @@ -53,6 +53,9 @@ static CVReturn MyRenderCallback(CVDisplayLinkRef displayLink, CVDisplayLinkSetOutputCallback(displayLink, &MyRenderCallback, self); } +// [self setBounds:NSMakeRect(0, 0, 640, 480)]; +// [self setFrame:NSMakeRect(0, 0, 640*2, 480*2)]; + NSLog(@"Elis Colors, Stand by ready."); } @@ -72,7 +75,6 @@ static CVReturn MyRenderCallback(CVDisplayLinkRef displayLink, // [layerSet removeAllObjects]; [_mainController getFrameForTime:_qt result:layerSet]; -// [now release]; [self drawRect:NSZeroRect]; [lock unlock]; return kCVReturnSuccess; @@ -170,34 +172,14 @@ static CVReturn MyRenderCallback(CVDisplayLinkRef displayLink, // fromRect:imageRect]; } + glFlush(); + // あとかたづけ for(i = 0; i < size; i++) [[layerSet objectAtIndex:i] releaseContext]; [layerSet removeAllObjects]; - // int size = [imageSet count], i; -// NSPoint np; -// CIImage* ci; -// CGRect imRect; -// for(i = 0; i < size; i += 2){ -// ci = [imageSet objectAtIndex:i]; -// np = [[imageSet objectAtIndex:i+1] pointValue]; -// imRect = [ci extent]; -// -// if(imRect.size.width >= 4096.0) -// imRect = CGRectMake(0, 0, 640, 480); -// [ciContext drawImage:ci inRect:imRect//CGRectMake(np.x, np.y, 640, 480) -// fromRect:CGRectMake(np.x, np.y, 640, 480)]; -// } - glFlush(); - -// size = [contexts count]; -// for(i = 0; i < size; i++) -// QTVisualContextTask([contexts objectAtIndex:i]); -// -// [imageSet release]; -// imageSet = nil; [lock unlock]; } diff --git a/ElisMedia.m b/ElisMedia.m index 41ab263..78083a8 100644 --- a/ElisMedia.m +++ b/ElisMedia.m @@ -11,10 +11,11 @@ @implementation ElisMedia -// QuickTime X を試すためにかなり書き換えた。 +// QuickTime X を試すためにかなり書き換えた。けど戻した、 - (id)initWithMovieFile:(NSString*)path { image = nil; + sound = nil; movie = [[QTMovie alloc] initWithFile:path error:nil]; [movie gotoBeginning]; @@ -26,21 +27,23 @@ &textureContext); SetMovieVisualContext([movie quickTimeMovie], textureContext); -// [mainView setContext:textureContext]; attr = [NSDictionary dictionaryWithObjectsAndKeys: QTMovieFrameImageTypeCIImage, QTMovieFrameImageType, +#ifdef __SNOW_LEOPARD__ [NSNumber numberWithBool:YES], QTMovieFrameImageSessionMode, // 内部でキャッシュしろ +#endif [NSNumber numberWithBool:YES], QTMovieFrameImageHighQuality, // 画質低下を許さない [movie attributeForKey:QTMovieNaturalSizeAttribute], QTMovieFrameImageSize, // 勝手にリサイズするな [NSNumber numberWithBool:NO], QTMovieFrameImageSingleField, // インターレース解除? nil]; -// [attr retain]; speed = 1.0; _path = path; playing = NO; + [movie setVolume:0.0f]; + return self; } @@ -63,7 +66,7 @@ image = nil; textureContext = nil; sound = [[QTMovie alloc] initWithFile:path error:nil]; - [sound setVolume:0.5]; // あまりにうるさい。 + [sound setVolume:0.2]; // あまりにうるさい。 speed = 1.0; _path = path; return self; @@ -156,7 +159,7 @@ [movie stop]; playing = NO; } - if(sound && playing){ + if(sound && YES){ [sound stop]; playing = NO; } @@ -166,6 +169,10 @@ { if(movie) return [movie duration]; + if(sound) + return [sound duration]; + if(image) + return QTMakeTime(10, 1); } - (void)finalize @@ -181,4 +188,70 @@ [super finalize]; } +- (QTTrack*)getSoundTrack +{ + int size; + NSArray* tracks; + + if(sound){ + tracks = [sound tracksOfMediaType:QTMediaTypeSound]; + size = [tracks count]; + if(size > 0) return [tracks objectAtIndex:0]; + } + else if(image) + return nil; + + return nil; +} + +- (NSString*)type +{ + if(image) + return @"image"; + if(movie) + return @"movie"; + if(sound) + return @"sound"; + + return @"other"; +} + +- (NSString*)path +{ + return _path; +} + +- (void)encodeWithCoder:(NSCoder*)encoder +{ + int flag; + [encoder encodeObject:_path forKey:@"path"]; + [encoder encodeObject:text forKey:@"text"]; + + if(movie) flag = 0; + else if(sound) flag = 1; + else if(image) flag = 2; + else if(text) flag = 3; + + [encoder encodeInt:flag forKey:@"flag"]; +} + +- (id)initWithCoder:(NSCoder*)coder +{ + int flag; + NSString* path = [coder decodeObjectForKey:@"path"]; + NSString* t = [coder decodeObjectForKey:@"text"]; + flag = [coder decodeIntForKey:@"flag"]; + + if(flag == 0) + return [self initWithMovieFile:path]; + else if(flag == 1) + return [self initWithSoundFile:path]; + else if(flag == 2) + return [self initWithImageFile:path]; + else { + return [self initWithText:t]; + } + +} + @end diff --git a/ElisMediaBrowserController.m b/ElisMediaBrowserController.m index 978d7ab..56c47ae 100644 --- a/ElisMediaBrowserController.m +++ b/ElisMediaBrowserController.m @@ -137,9 +137,7 @@ static NSArray *openFiles() // 読めるメディアかチェック if([sharedWorkspace type:[sharedWorkspace typeOfFile:path error:nil] - conformsToType:@"public.image"] || - [sharedWorkspace type:[sharedWorkspace typeOfFile:path error:nil] - conformsToType:@"public.audio"]) { + conformsToType:@"public.image"]) { /* add a path to our temporary array */ p = [[myImageObject alloc] init]; @@ -149,6 +147,8 @@ static NSArray *openFiles() else if([sharedWorkspace type:[sharedWorkspace typeOfFile:path error:nil] conformsToType:@"public.movie"] || [sharedWorkspace type:[sharedWorkspace typeOfFile:path error:nil] + conformsToType:@"public.audio"] || + [sharedWorkspace type:[sharedWorkspace typeOfFile:path error:nil] conformsToType:@"com.apple.quartz-composer-composition"]) { p = [[myImageObject alloc] init]; diff --git a/ElisPropertyTableController.h b/ElisPropertyTableController.h index 7322629..7265bb4 100644 --- a/ElisPropertyTableController.h +++ b/ElisPropertyTableController.h @@ -38,4 +38,8 @@ - (BOOL)isSelected; - (BOOL)tableView:(NSTableView *)aTableView shouldSelectRow:(int)rowIndex; + +- (BOOL)canRemoveAllKeyframe; +- (BOOL)canRemoveEffect; + @end diff --git a/ElisPropertyTableController.m b/ElisPropertyTableController.m index eb8311c..97a23f2 100644 --- a/ElisPropertyTableController.m +++ b/ElisPropertyTableController.m @@ -179,4 +179,19 @@ } } +- (BOOL)canRemoveAllKeyframe +{ + return [_propertyView selectedRow] > 2; +} + +- (BOOL)canRemoveEffect +{ + return [_propertyView selectedRow] >= 5; +} + +- (void)selectDefault +{ + _rowIndex = 0; +} + @end diff --git a/ElisTimeLineController.h b/ElisTimeLineController.h index 70bbf95..60b3139 100644 --- a/ElisTimeLineController.h +++ b/ElisTimeLineController.h @@ -46,5 +46,6 @@ float timeLineScale; - (void)dragging:(NSPoint)point; - (BOOL)isInclude:(CALayer*)layer point:(NSPoint)point; - (void)changeLayerPosition:(CALayer*)layer position:(NSPoint)point; +- (BOOL)canDeleteLayer; @end diff --git a/ElisTimeLineController.m b/ElisTimeLineController.m index 95ea864..d379371 100644 --- a/ElisTimeLineController.m +++ b/ElisTimeLineController.m @@ -81,6 +81,13 @@ if(draggingLayer) draggingLayer.opacity = 0.75; draggingLayer = newLayer; [timeLine addSublayer:newLayer]; + clickedPosition.x = -1; +} + +- (void)readyInDrag:(NSPoint)p +{ + clickedPosition = p; + clickedLayerPosition = *(CGPoint*)&p; } - (void)dragging:(NSPoint)point @@ -108,10 +115,15 @@ } if(dragging == NO) dragging = YES; - if(clickedPosition.x == -1){ - point.x -= 25; - point.y -= 25; - } else { + if(clickedPosition.x == -1 && NO){ + NSLog(@"called? %f", point.x); +// point.x -= 600; +// point.y -= 25; + clickedPosition = point; + clickedLayerPosition = *(CGPoint*)&point; + [self changeLayerPosition:draggingLayer position:point]; + NSLog(@"%f", draggingLayer.frame.origin.x); + } /*else*/ { float dx = clickedPosition.x - point.x; float dy = clickedPosition.y - point.y; point = NSMakePoint(clickedLayerPosition.x - dx, clickedLayerPosition.y - dy); @@ -173,6 +185,8 @@ if(draggingLayer){ draggingLayer.opacity = 0.75; draggingLayer = nil; + [_tableController createPropertyTable:nil]; + [_tableController reload]; } NSArray* layers; @@ -195,7 +209,7 @@ return; } } - if(draggingLayer){ + if(draggingLayer){ // これなに? draggingLayer.opacity = 0.75; draggingLayer = nil; } @@ -207,7 +221,6 @@ { if(draggingLayer == nil) return; if([[draggingLayer valueForKey:@"have keyframeLayer"] boolValue]){ - NSLog(@"release"); [[[draggingLayer sublayers] lastObject] removeFromSuperlayer]; [draggingLayer setValue:[NSNumber numberWithBool:NO] forKey:@"have keyframeLayer"]; [_layerFactory removeParentLayer]; // 参照を切る = GCで回収されるようにする @@ -225,7 +238,8 @@ [draggingLayer addSublayer:keyframeLayer]; [draggingLayer setValue:[NSNumber numberWithBool:YES] forKey:@"have keyframeLayer"]; - if([_tableController isSelected] == NO) return; + if([_tableController isSelected] == NO) + [_tableController selectDefault]; for(x = 0.0; x < size-1; x += MINI_LAYER_WIDTH){ miniLayer = [_layerFactory createKeyframeLevelLayer]; @@ -287,4 +301,14 @@ draggingLayer = nil; } +- (void)addLayer:(CALayer*)l +{ + [timeLine addSublayer:l]; +} + +- (BOOL)canDeleteLayer +{ + return draggingLayer != nil; +} + @end diff --git a/ElisTimeLineView.m b/ElisTimeLineView.m index fcf0a12..d7802e0 100644 --- a/ElisTimeLineView.m +++ b/ElisTimeLineView.m @@ -44,12 +44,13 @@ path = [filenames objectAtIndex:0]; [_timeLineController addMedia:path]; + [_timeLineController readyInDrag:[self convertPoint:[sender draggingLocation] fromView:nil]]; return 1; } - (unsigned int)draggingUpdated:(id )sender { - [_timeLineController dragging:[sender draggingLocation]]; + [_timeLineController dragging:[self convertPoint:[sender draggingLocation] fromView:nil]]; return 1; } diff --git a/ElisWriter.h b/ElisWriter.h index 270c560..793dc66 100644 --- a/ElisWriter.h +++ b/ElisWriter.h @@ -18,13 +18,17 @@ int fps; NSNumber* imageQuality; NSString* imageCodec; - id _mainView; - id _mainController; + IBOutlet id _mainView; + IBOutlet id _mainController; + IBOutlet id _mainWindow; + IBOutlet id _barSheet; + IBOutlet id _bar; QTMovie* outputMovie; NSDictionary* attrs; unsigned char* gamma_table; } - (void)gammaAdjust:(unsigned char*)pixels size:(int)s; +- (void)addSoundTrack; @end diff --git a/ElisWriter.m b/ElisWriter.m index a796dfd..e65e051 100644 --- a/ElisWriter.m +++ b/ElisWriter.m @@ -11,24 +11,12 @@ @implementation ElisWriter -- (id)init +- (void)awakeFromNib { fps = 30; - imageCodec = @"mp4v"; - imageQuality = [NSNumber numberWithLong:codecMaxQuality]; + imageCodec = @"pxlt"; // 8BPS rle pxlt 見つけたぞーッ! pxltの圧縮率マジ最高!! + imageQuality = [NSNumber numberWithLong:codecLosslessQuality]; gamma_table = malloc(sizeof(unsigned char) * 256); - - return self; -} - -- (void)setView:(id)v -{ - _mainView = v; -} - -- (void)setContoller:(id)c -{ - _mainController = c; } - (void)write:(NSString*)path @@ -58,8 +46,12 @@ [self readyGammmaTable]; - for(frame = 1; frame < 300/*totalFrames*/; frame++){ - NSLog(@"%d", frame); + // プログレスバーを表示 + [NSApp beginSheet:_barSheet modalForWindow:_mainWindow + modalDelegate:self didEndSelector:nil contextInfo:NULL]; + + + for(frame = 1; frame < totalFrames; frame++){ now = QTMakeTime(frame, fps); [_mainView getFrameForQTTime:now]; [_mainView getCurrentPixelData:rect buffer:buffer]; @@ -84,13 +76,22 @@ image = [[NSImage alloc] init]; [image addRepresentation:rep]; - [outputMovie addImage:image forDuration:QTMakeTime(1, fps) withAttributes:attrs]; + [outputMovie addImage:image forDuration:QTMakeTime(1, fps) withAttributes:attrs]; +// [_bar setDoubleValue:frame/totalFrames]; + [self performSelectorOnMainThread:@selector(changeBarValue:) + withObject:[NSNumber numberWithDouble:(double)frame/totalFrames] waitUntilDone:YES]; } free(buffer); free(pixels); + [self addSoundTrack]; + + [outputMovie setVolume:0.2]; [outputMovie updateMovieFile]; + + [_barSheet close]; + [NSApp endSheet:_barSheet]; } - (void)initializeMovie:(NSString*)path @@ -98,6 +99,30 @@ outputMovie = [[QTMovie alloc] initToWritableFile:path error:nil]; } +- (void)changeBarValue:(NSNumber*)v +{ + [_bar setDoubleValue:[v doubleValue]]; +} + +- (void)addSoundTrack +{ + NSMutableArray* soundTrack = [[NSMutableArray alloc] init]; + QTTrack* track; + int i, size; + QTTime offset; + QTTimeRange mapping; + + [_mainController getSoundTrack:soundTrack]; + size = [soundTrack count]; + + for(i = 0; i < size; i += 3){ + track = [soundTrack objectAtIndex:i]; + offset = [[soundTrack objectAtIndex:i+1] QTTimeValue]; + mapping = [[soundTrack objectAtIndex:i+2] QTTimeRangeValue]; + [outputMovie insertSegmentOfTrack:track timeRange:QTMakeTimeRange(offset, mapping.duration) atTime:mapping.time]; + } +} + - (void)finalize { free(gamma_table); diff --git a/Elis_Colors-Info.plist b/Elis_Colors-Info.plist index f5e01d9..5b3b5b8 100644 --- a/Elis_Colors-Info.plist +++ b/Elis_Colors-Info.plist @@ -19,7 +19,7 @@ CFBundleSignature ???? CFBundleShortVersionString - 1.0 + 0.1 LSMinimumSystemVersion ${MACOSX_DEPLOYMENT_TARGET} CFBundleVersion diff --git a/Elis_ColorsAppDelegate.h b/Elis_ColorsAppDelegate.h index 53fb0b8..ff906c2 100644 --- a/Elis_ColorsAppDelegate.h +++ b/Elis_ColorsAppDelegate.h @@ -8,6 +8,10 @@ #import +//#define __SNOW_LEOPARD__ + +#ifdef __SNOW_LEOPARD__ + @interface Elis_ColorsAppDelegate : NSObject { NSWindow *window; } @@ -15,3 +19,5 @@ @property (assign) IBOutlet NSWindow *window; @end + +#endif \ No newline at end of file diff --git a/Elis_ColorsAppDelegate.m b/Elis_ColorsAppDelegate.m index 2ea0dcc..6c3dcb6 100644 --- a/Elis_ColorsAppDelegate.m +++ b/Elis_ColorsAppDelegate.m @@ -8,6 +8,8 @@ #import "Elis_ColorsAppDelegate.h" +#ifdef __SNOW_LEOPARD__ + @implementation Elis_ColorsAppDelegate @synthesize window; @@ -17,3 +19,5 @@ } @end + +#endif \ No newline at end of file diff --git a/English.lproj/MainMenu.xib b/English.lproj/MainMenu.xib index b049293..997dd87 100644 --- a/English.lproj/MainMenu.xib +++ b/English.lproj/MainMenu.xib @@ -21,8 +21,8 @@ YES - - + + YES @@ -100,6 +100,14 @@ + + + Change Small Window + + 2147483647 + + + YES @@ -212,6 +220,14 @@ + + + Open Project + + 2147483647 + + + Open Media @@ -1348,18 +1364,6 @@ 256 YES - - - 1292 - - {{20, 403}, {640, 480}} - - - - AAAAYAAAAAA - - - 268 @@ -1771,75 +1775,6 @@ QSAAAEEgAABC8gAAQwgAAA - - - 268 - {{17, 3}, {151, 22}} - - YES - - 343014976 - 268436544 - - - - YES - 1 - - 6 - System - textBackgroundColor - - 3 - MQA - - - - - 130560 - 0 - search - - _searchFieldSearch: - - 138690815 - 0 - - 400 - 75 - - - 130560 - 0 - clear - - YES - - YES - - YES - AXDescription - NSAccessibilityEncodedAttributesValueType - - - YES - cancel - - - - - - _searchFieldCancel: - - 138690815 - 0 - - 400 - 75 - - 255 - - {{10, 33}, {542, 447}} @@ -1970,7 +1905,10 @@ 6 System headerColor - + + 3 + MQA + @@ -2129,6 +2067,18 @@ + + + 1292 + + {{19, 406}, {640, 480}} + + + + AAAAYAAAAAA + + + {1262, 903} @@ -2155,6 +2105,54 @@ ElisMediaBrowserController + + ElisWriter + + + 23 + 2 + {{235, 473}, {480, 86}} + 611844096 + Window + NSPanel + + {1.79769e+308, 1.79769e+308} + + + 256 + + YES + + + 1292 + + {{18, 16}, {444, 20}} + + 16392 + 1 + + + + 268 + {{221, 49}, {66, 17}} + + YES + + 68288064 + 272630784 + Writing ... + + + + + + + + {480, 86} + + {{0, 0}, {1920, 1178}} + {1.79769e+308, 1.79769e+308} + @@ -2361,22 +2359,6 @@ - saveDocument: - - - - 362 - - - - saveDocumentAs: - - - - 363 - - - runToolbarCustomizationPalette: @@ -3056,12 +3038,92 @@ 615 + + _mainWindow + + + + 619 + + - searchFieldUpdate: - - + openProjectSaveDialog: + + - 618 + 620 + + + + openProjectLoadDialog: + + + + 622 + + + + rewriteProject: + + + + 624 + + + + _writer + + + + 631 + + + + _mainController + + + + 632 + + + + _mainView + + + + 633 + + + + _bar + + + + 634 + + + + _barSheet + + + + 635 + + + + _mainWindow + + + + 636 + + + + changeToSmallWindiw: + + + + 646 @@ -3158,6 +3220,7 @@ + @@ -3404,6 +3467,7 @@ + @@ -3619,13 +3683,13 @@ YES - + - + @@ -4116,11 +4180,6 @@ - 533 - - - - 534 @@ -4263,7 +4322,6 @@ YES - @@ -4426,18 +4484,62 @@ - 616 - + 621 + + + + + 625 + YES - + - + - 617 - - + 626 + + + YES + + + + + + + 627 + + + + + 628 + + + YES + + + + + + 629 + + + + + 630 + + + + + 533 + + + + + 645 + + @@ -4450,6 +4552,7 @@ 112.ImportedFromIB2 124.IBPluginDependency 124.ImportedFromIB2 + 125.IBEditorWindowLastContentRect 125.IBPluginDependency 125.ImportedFromIB2 125.editorWindowContentRectSynchronizationRect @@ -4712,8 +4815,16 @@ 609.IBPluginDependency 610.IBPluginDependency 611.IBPluginDependency - 616.IBPluginDependency - 617.IBPluginDependency + 621.IBPluginDependency + 625.IBEditorWindowLastContentRect + 625.IBPluginDependency + 625.IBWindowTemplateEditedContentRect + 625.NSWindowTemplate.visibleAtLaunch + 626.IBPluginDependency + 627.IBPluginDependency + 628.IBPluginDependency + 629.IBPluginDependency + 645.IBPluginDependency 72.IBPluginDependency 72.ImportedFromIB2 73.IBPluginDependency @@ -4748,6 +4859,7 @@ com.apple.InterfaceBuilder.CocoaPlugin + {{339, 860}, {143, 23}} com.apple.InterfaceBuilder.CocoaPlugin {{522, 812}, {146, 23}} @@ -4847,13 +4959,13 @@ com.apple.InterfaceBuilder.CocoaPlugin {{525, 802}, {197, 73}} - {{53, 923}, {441, 20}} + {{109, 1027}, {441, 20}} com.apple.InterfaceBuilder.CocoaPlugin {74, 862} {{6, 978}, {478, 20}} com.apple.InterfaceBuilder.CocoaPlugin - {{639, 793}, {231, 43}} + {{312, 880}, {231, 43}} com.apple.InterfaceBuilder.CocoaPlugin {{475, 832}, {234, 43}} com.apple.InterfaceBuilder.CocoaPlugin @@ -4872,9 +4984,9 @@ com.apple.InterfaceBuilder.CocoaPlugin - {{80, 227}, {1262, 903}} + {{7, 227}, {1262, 903}} com.apple.InterfaceBuilder.CocoaPlugin - {{80, 227}, {1262, 903}} + {{7, 227}, {1262, 903}} {{33, 99}, {480, 360}} @@ -4982,7 +5094,7 @@ com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - {{392, 653}, {207, 183}} + {{121, 824}, {240, 203}} com.apple.InterfaceBuilder.CocoaPlugin {{23, 794}, {245, 183}} @@ -5011,6 +5123,14 @@ com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + {{427, 660}, {480, 86}} + com.apple.InterfaceBuilder.CocoaPlugin + {{427, 660}, {480, 86}} + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -5028,7 +5148,7 @@ com.apple.InterfaceBuilder.CocoaPlugin - {{160, 720}, {179, 203}} + {{216, 804}, {179, 223}} com.apple.InterfaceBuilder.CocoaPlugin {{145, 474}, {199, 203}} @@ -5056,7 +5176,7 @@ - 618 + 646 @@ -5068,10 +5188,14 @@ YES YES + changeToSmallWindiw: deleteSelectLayer: + openProjectLoadDialog: + openProjectSaveDialog: recordingStateChanged: removeAllKeyFrame: removeEffect: + rewriteProject: startPlay: stopPlay: timeSliderChanged: @@ -5087,6 +5211,10 @@ id id id + id + id + id + id @@ -5094,16 +5222,20 @@ YES _mainView + _mainWindow _tableController _timeLineController + _writer timeCodeField timeSlider YES ElisMainView + NSWindow ElisPropertyTableController ElisTimeLineController + ElisWriter NSTextField NSSlider @@ -5237,6 +5369,33 @@ + ElisWriter + NSObject + + YES + + YES + _bar + _barSheet + _mainController + _mainView + _mainWindow + + + YES + id + id + id + id + id + + + + IBProjectSource + ElisWriter.h + + + Elis_ColorsAppDelegate NSObject @@ -5858,6 +6017,22 @@ + NSPanel + NSWindow + + IBFrameworkSource + AppKit.framework/Headers/NSPanel.h + + + + NSProgressIndicator + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSProgressIndicator.h + + + NSResponder IBFrameworkSource @@ -5889,22 +6064,6 @@ - NSSearchField - NSTextField - - IBFrameworkSource - AppKit.framework/Headers/NSSearchField.h - - - - NSSearchFieldCell - NSTextFieldCell - - IBFrameworkSource - AppKit.framework/Headers/NSSearchFieldCell.h - - - NSSlider NSControl diff --git a/English.lproj/MainMenuForSmallDisplay.xib b/English.lproj/MainMenuForSmallDisplay.xib new file mode 100644 index 0000000..05866e6 --- /dev/null +++ b/English.lproj/MainMenuForSmallDisplay.xib @@ -0,0 +1,6288 @@ + + + + 1060 + 10B504 + 732 + 1038.2 + 437.00 + + YES + + YES + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.imagekit.ibplugin + + + YES + 732 + 1.1 + + + + YES + + + + + YES + com.apple.imagekit.ibplugin + com.apple.InterfaceBuilder.CocoaPlugin + + + YES + + YES + + + YES + + + + YES + + NSApplication + + + FirstResponder + + + NSApplication + + + AMainMenu + + YES + + + Elis Colors + + 1048576 + 2147483647 + + NSImage + NSMenuCheckmark + + + NSImage + NSMenuMixedState + + submenuAction: + + Elis Colors + + YES + + + About Elis Colors + + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Preferences… + , + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Services + + 1048576 + 2147483647 + + + submenuAction: + + Services + + YES + + _NSServicesMenu + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Hide Elis Colors + h + 1048576 + 2147483647 + + + + + + Hide Others + h + 1572864 + 2147483647 + + + + + + Show All + + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Quit Elis Colors + q + 1048576 + 2147483647 + + + + + _NSAppleMenu + + + + + File + + 1048576 + 2147483647 + + + submenuAction: + + File + + YES + + + New + n + 1048576 + 2147483647 + + + + + + Open Project + + 2147483647 + + + + + + Open Media + o + 1048576 + 2147483647 + + + + + + Open Recent + + 1048576 + 2147483647 + + + submenuAction: + + Open Recent + + YES + + + Clear Menu + + 1048576 + 2147483647 + + + + + _NSRecentDocumentsMenu + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Close + w + 1048576 + 2147483647 + + + + + + Save + s + 1048576 + 2147483647 + + + + + + Save As… + S + 1179648 + 2147483647 + + + + + + Write Movie + + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Page Setup... + P + 1179648 + 2147483647 + + + + + + + Print… + p + 1048576 + 2147483647 + + + + + + + + + Edit + + 1048576 + 2147483647 + + + submenuAction: + + Edit + + YES + + + Undo + z + 1048576 + 2147483647 + + + + + + Redo + Z + 1179648 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Cut + x + 1048576 + 2147483647 + + + + + + Copy + c + 1048576 + 2147483647 + + + + + + Paste + v + 1048576 + 2147483647 + + + + + + Paste and Match Style + V + 1572864 + 2147483647 + + + + + + Delete Layer + + 1048576 + 2147483647 + + + + + + Delete Effect + + 2147483647 + + + + + + Select All + a + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Find + + 1048576 + 2147483647 + + + submenuAction: + + Find + + YES + + + Find… + f + 1048576 + 2147483647 + + + 1 + + + + Find Next + g + 1048576 + 2147483647 + + + 2 + + + + Find Previous + G + 1179648 + 2147483647 + + + 3 + + + + Use Selection for Find + e + 1048576 + 2147483647 + + + 7 + + + + Jump to Selection + j + 1048576 + 2147483647 + + + + + + + + + Spelling and Grammar + + 1048576 + 2147483647 + + + submenuAction: + + Spelling and Grammar + + YES + + + Show Spelling and Grammar + : + 1048576 + 2147483647 + + + + + + Check Document Now + ; + 1048576 + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + Check Spelling While Typing + + 1048576 + 2147483647 + + + + + + Check Grammar With Spelling + + 1048576 + 2147483647 + + + + + + Correct Spelling Automatically + + 2147483647 + + + + + + + + + Substitutions + + 1048576 + 2147483647 + + + submenuAction: + + Substitutions + + YES + + + Show Substitutions + + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + Smart Copy/Paste + f + 1048576 + 2147483647 + + + 1 + + + + Smart Quotes + g + 1048576 + 2147483647 + + + 2 + + + + Smart Dashes + + 2147483647 + + + + + + Smart Links + G + 1179648 + 2147483647 + + + 3 + + + + Text Replacement + + 2147483647 + + + + + + + + + Transformations + + 2147483647 + + + submenuAction: + + Transformations + + YES + + + Make Upper Case + + 2147483647 + + + + + + Make Lower Case + + 2147483647 + + + + + + Capitalize + + 2147483647 + + + + + + + + + Speech + + 1048576 + 2147483647 + + + submenuAction: + + Speech + + YES + + + Start Speaking + + 1048576 + 2147483647 + + + + + + Stop Speaking + + 1048576 + 2147483647 + + + + + + + + + + + + Format + + 2147483647 + + + submenuAction: + + Format + + YES + + + Font + + 2147483647 + + + submenuAction: + + Font + + YES + + + Show Fonts + t + 1048576 + 2147483647 + + + + + + Bold + b + 1048576 + 2147483647 + + + 2 + + + + Italic + i + 1048576 + 2147483647 + + + 1 + + + + Underline + u + 1048576 + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + Bigger + + + 1048576 + 2147483647 + + + 3 + + + + Smaller + - + 1048576 + 2147483647 + + + 4 + + + + YES + YES + + + 2147483647 + + + + + + Kern + + 2147483647 + + + submenuAction: + + Kern + + YES + + + Use Default + + 2147483647 + + + + + + Use None + + 2147483647 + + + + + + Tighten + + 2147483647 + + + + + + Loosen + + 2147483647 + + + + + + + + + Ligature + + 2147483647 + + + submenuAction: + + Ligature + + YES + + + Use Default + + 2147483647 + + + + + + Use None + + 2147483647 + + + + + + Use All + + 2147483647 + + + + + + + + + Baseline + + 2147483647 + + + submenuAction: + + Baseline + + YES + + + Use Default + + 2147483647 + + + + + + Superscript + + 2147483647 + + + + + + Subscript + + 2147483647 + + + + + + Raise + + 2147483647 + + + + + + Lower + + 2147483647 + + + + + + + + + YES + YES + + + 2147483647 + + + + + + Show Colors + C + 1048576 + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + Copy Style + c + 1572864 + 2147483647 + + + + + + Paste Style + v + 1572864 + 2147483647 + + + + + _NSFontMenu + + + + + Text + + 2147483647 + + + submenuAction: + + Text + + YES + + + Align Left + { + 1048576 + 2147483647 + + + + + + Center + | + 1048576 + 2147483647 + + + + + + Justify + + 2147483647 + + + + + + Align Right + } + 1048576 + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + Writing Direction + + 2147483647 + + + submenuAction: + + Writing Direction + + YES + + + YES + Paragraph + + 2147483647 + + + + + + CURlZmF1bHQ + + 2147483647 + + + + + + CUxlZnQgdG8gUmlnaHQ + + 2147483647 + + + + + + CVJpZ2h0IHRvIExlZnQ + + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + YES + Selection + + 2147483647 + + + + + + CURlZmF1bHQ + + 2147483647 + + + + + + CUxlZnQgdG8gUmlnaHQ + + 2147483647 + + + + + + CVJpZ2h0IHRvIExlZnQ + + 2147483647 + + + + + + + + + YES + YES + + + 2147483647 + + + + + + Show Ruler + + 2147483647 + + + + + + Copy Ruler + c + 1310720 + 2147483647 + + + + + + Paste Ruler + v + 1310720 + 2147483647 + + + + + + + + + + + + View + + 1048576 + 2147483647 + + + submenuAction: + + View + + YES + + + Show Toolbar + t + 1572864 + 2147483647 + + + + + + Customize Toolbar… + + 1048576 + 2147483647 + + + + + + + + + Window + + 1048576 + 2147483647 + + + submenuAction: + + Window + + YES + + + Minimize + m + 1048576 + 2147483647 + + + + + + Zoom + + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Bring All to Front + + 1048576 + 2147483647 + + + + + _NSWindowsMenu + + + + + Help + + 2147483647 + + + submenuAction: + + Help + + YES + + + Elis Colors Help + ? + 1048576 + 2147483647 + + + + + _NSHelpMenu + + + + _NSMainMenu + + + 271 + 2 + {{80, 425}, {1262, 705}} + 1954021376 + Elis Colors + NSWindow + + {1.79769e+308, 1.79769e+308} + {800, 600} + + + 256 + + YES + + + 268 + {{199, 147}, {118, 25}} + + YES + + -2080244224 + 134217728 + Play + + LucidaGrande + 13 + 1044 + + + -2038152961 + 163 + + + 400 + 75 + + + + + 268 + {{18, 178}, {644, 21}} + + YES + + -2079981824 + 0 + + + 1 + 0.0 + 0.0 + 0.0 + 0 + 1 + NO + NO + + + + + 268 + {{531, 151}, {182, 17}} + + YES + + 68288064 + 272630784 + Time Code + + + + 6 + System + controlColor + + 3 + MC42NjY2NjY2NjY3AA + + + + 6 + System + controlTextColor + + 3 + MAA + + + + + + + 268 + {{343, 147}, {118, 25}} + + YES + + -2080244224 + 134217728 + Stop + + + -2038152961 + 163 + + + 400 + 75 + + + + + 10 + {{685, 367}, {564, 324}} + + + YES + + 2 + + + 256 + + YES + + + 265 + {{418, 12}, {129, 25}} + + YES + + -2079981824 + 0 + + + 1 + 0.10000000000000001 + 0.40000000000000002 + 0.0 + 10 + 0 + YES + NO + + + + + 266 + + YES + + + 2304 + + YES + + + 18 + + YES + + YES + Apple PDF pasteboard type + Apple PICT pasteboard type + Apple PNG pasteboard type + Apple URL pasteboard type + NSFilenamesPboardType + NSTypedFilenamesPboardType:'.SGI' + NSTypedFilenamesPboardType:'8BPS' + NSTypedFilenamesPboardType:'BMP ' + NSTypedFilenamesPboardType:'BMPf' + NSTypedFilenamesPboardType:'EPSF' + NSTypedFilenamesPboardType:'FPix' + NSTypedFilenamesPboardType:'GIFf' + NSTypedFilenamesPboardType:'ICO ' + NSTypedFilenamesPboardType:'JPEG' + NSTypedFilenamesPboardType:'PDF ' + NSTypedFilenamesPboardType:'PICT' + NSTypedFilenamesPboardType:'PNGf' + NSTypedFilenamesPboardType:'PNTG' + NSTypedFilenamesPboardType:'TIFF' + NSTypedFilenamesPboardType:'TPIC' + NSTypedFilenamesPboardType:'icns' + NSTypedFilenamesPboardType:'jp2 ' + NSTypedFilenamesPboardType:'qtif' + NSTypedFilenamesPboardType:3FR + NSTypedFilenamesPboardType:3fr + NSTypedFilenamesPboardType:ARW + NSTypedFilenamesPboardType:BMP + NSTypedFilenamesPboardType:CR2 + NSTypedFilenamesPboardType:CRW + NSTypedFilenamesPboardType:CUR + NSTypedFilenamesPboardType:DCR + NSTypedFilenamesPboardType:DNG + NSTypedFilenamesPboardType:EFX + NSTypedFilenamesPboardType:EPI + NSTypedFilenamesPboardType:EPS + NSTypedFilenamesPboardType:EPSF + NSTypedFilenamesPboardType:EPSI + NSTypedFilenamesPboardType:ERF + NSTypedFilenamesPboardType:EXR + NSTypedFilenamesPboardType:FAX + NSTypedFilenamesPboardType:FFF + NSTypedFilenamesPboardType:FPIX + NSTypedFilenamesPboardType:FPX + NSTypedFilenamesPboardType:G3 + NSTypedFilenamesPboardType:GIF + NSTypedFilenamesPboardType:HDR + NSTypedFilenamesPboardType:ICNS + NSTypedFilenamesPboardType:ICO + NSTypedFilenamesPboardType:JFAX + NSTypedFilenamesPboardType:JFX + NSTypedFilenamesPboardType:JP2 + NSTypedFilenamesPboardType:JPE + NSTypedFilenamesPboardType:JPEG + NSTypedFilenamesPboardType:JPF + NSTypedFilenamesPboardType:JPG + NSTypedFilenamesPboardType:MAC + NSTypedFilenamesPboardType:MOS + NSTypedFilenamesPboardType:MRW + NSTypedFilenamesPboardType:NEF + NSTypedFilenamesPboardType:NRW + NSTypedFilenamesPboardType:ORF + NSTypedFilenamesPboardType:PCT + NSTypedFilenamesPboardType:PDF + NSTypedFilenamesPboardType:PEF + NSTypedFilenamesPboardType:PIC + NSTypedFilenamesPboardType:PICT + NSTypedFilenamesPboardType:PNG + NSTypedFilenamesPboardType:PNT + NSTypedFilenamesPboardType:PNTG + NSTypedFilenamesPboardType:PS + NSTypedFilenamesPboardType:PSD + NSTypedFilenamesPboardType:PWL + NSTypedFilenamesPboardType:QTI + NSTypedFilenamesPboardType:QTIF + NSTypedFilenamesPboardType:RAF + NSTypedFilenamesPboardType:RAW + NSTypedFilenamesPboardType:RGB + NSTypedFilenamesPboardType:RW2 + NSTypedFilenamesPboardType:RWL + NSTypedFilenamesPboardType:SGI + NSTypedFilenamesPboardType:SR2 + NSTypedFilenamesPboardType:SRF + NSTypedFilenamesPboardType:TARGA + NSTypedFilenamesPboardType:TGA + NSTypedFilenamesPboardType:TIF + NSTypedFilenamesPboardType:TIFF + NSTypedFilenamesPboardType:XBM + NSTypedFilenamesPboardType:arw + NSTypedFilenamesPboardType:bmp + NSTypedFilenamesPboardType:cr2 + NSTypedFilenamesPboardType:crw + NSTypedFilenamesPboardType:cur + NSTypedFilenamesPboardType:dcr + NSTypedFilenamesPboardType:dng + NSTypedFilenamesPboardType:efx + NSTypedFilenamesPboardType:epi + NSTypedFilenamesPboardType:eps + NSTypedFilenamesPboardType:epsf + NSTypedFilenamesPboardType:epsi + NSTypedFilenamesPboardType:erf + NSTypedFilenamesPboardType:exr + NSTypedFilenamesPboardType:fax + NSTypedFilenamesPboardType:fff + NSTypedFilenamesPboardType:fpix + NSTypedFilenamesPboardType:fpx + NSTypedFilenamesPboardType:g3 + NSTypedFilenamesPboardType:gif + NSTypedFilenamesPboardType:hdr + NSTypedFilenamesPboardType:icns + NSTypedFilenamesPboardType:ico + NSTypedFilenamesPboardType:jfax + NSTypedFilenamesPboardType:jfx + NSTypedFilenamesPboardType:jp2 + NSTypedFilenamesPboardType:jpe + NSTypedFilenamesPboardType:jpeg + NSTypedFilenamesPboardType:jpf + NSTypedFilenamesPboardType:jpg + NSTypedFilenamesPboardType:mac + NSTypedFilenamesPboardType:mos + NSTypedFilenamesPboardType:mrw + NSTypedFilenamesPboardType:nef + NSTypedFilenamesPboardType:nrw + NSTypedFilenamesPboardType:orf + NSTypedFilenamesPboardType:pct + NSTypedFilenamesPboardType:pdf + NSTypedFilenamesPboardType:pef + NSTypedFilenamesPboardType:pic + NSTypedFilenamesPboardType:pict + NSTypedFilenamesPboardType:png + NSTypedFilenamesPboardType:pnt + NSTypedFilenamesPboardType:pntg + NSTypedFilenamesPboardType:ps + NSTypedFilenamesPboardType:psd + NSTypedFilenamesPboardType:pwl + NSTypedFilenamesPboardType:qti + NSTypedFilenamesPboardType:qtif + NSTypedFilenamesPboardType:raf + NSTypedFilenamesPboardType:raw + NSTypedFilenamesPboardType:rgb + NSTypedFilenamesPboardType:rw2 + NSTypedFilenamesPboardType:rwl + NSTypedFilenamesPboardType:sgi + NSTypedFilenamesPboardType:sr2 + NSTypedFilenamesPboardType:srf + NSTypedFilenamesPboardType:targa + NSTypedFilenamesPboardType:tga + NSTypedFilenamesPboardType:tif + NSTypedFilenamesPboardType:tiff + NSTypedFilenamesPboardType:xbm + NeXT Encapsulated PostScript v1.2 pasteboard type + NeXT TIFF v4.0 pasteboard type + + + {531, 229} + + NO + NO + YES + NO + YES + NO + NO + YES + 96 + 96 + + + + + {{1, 1}, {531, 229}} + + + + + 6 + + + + 256 + {{532, 1}, {15, 229}} + + + _doScroller: + 1 + 0.96363627910614014 + + + + -2147483392 + {{-100, -100}, {318, 15}} + + 1 + + _doScroller: + 0.50602412223815918 + + + {{-3, 44}, {548, 231}} + + + 18 + + + + QSAAAEEgAABC8gAAQwgAAA + + + {{10, 33}, {544, 278}} + + + Media Browser + + + + + 1 + + + 256 + + YES + + + 298 + + YES + + + 2304 + + YES + + + 256 + {546, 209} + + YES + + + 256 + {546, 17} + + + + + + -2147483392 + {{492, 0}, {16, 17}} + + + + YES + + name + 252 + 40 + 1000 + + 75628096 + 2048 + + + LucidaGrande + 11 + 3100 + + + 3 + MC4zMzMzMzI5ODU2AA + + + 6 + System + headerTextColor + + + + + 337772096 + 2048 + Text Cell + + + + 6 + System + controlBackgroundColor + + + + + 3 + YES + + + + number + 64 + 40 + 1000 + + 75628096 + 2048 + + + + + + + 337772096 + 2048 + Text Cell + + + + + + 3 + YES + YES + + + + slider + 221 + 10 + 3.4028234663852886e+38 + + 75628096 + 2048 + + + + 6 + System + headerColor + + 3 + MQA + + + + + + -2079981824 + 0 + + + 1 + 0.0 + 1 + 0.0 + 0 + 1 + NO + NO + + 3 + YES + YES + + + + 3 + 2 + + + 6 + System + gridColor + + 3 + MC41AA + + + 17 + -700448768 + + + 4 + 15 + 0 + YES + 0 + + + {{1, 17}, {546, 209}} + + + + + 4 + + + + -2147483392 + {{492, 17}, {15, 281}} + + + _doScroller: + 0.94932432432432434 + + + + -2147483392 + {{1, 298}, {506, 15}} + + 1 + + _doScroller: + 1 + 0.70967741935483875 + + + + 2304 + + YES + + + {{1, 0}, {546, 17}} + + + + + 4 + + + + {{-3, 48}, {548, 227}} + + + 562 + + + + + + QSAAAEEgAABBmAAAQZgAAA + + + + 268 + {{17, 15}, {155, 25}} + + YES + + 67239424 + 134217728 + Recording Animation + + + 914637055 + 163 + + + 400 + 75 + + + + + 265 + {{388, 15}, {148, 25}} + + YES + + -2080244224 + 134217728 + Delete Animation + + + -2038152961 + 163 + + + 400 + 75 + + + + {{10, 33}, {544, 278}} + + Property + + + + + + + 0 + YES + YES + + YES + + + + + + 1292 + + {{19, 208}, {640, 480}} + + + + AAAAYAAAAAA + + + + + + 282 + + YES + + + 2304 + + YES + + + 256 + {454, 261} + + ElisTimeLineView + + + {{1, 1}, {533, 332}} + + + + + 4 + + + + 256 + {{534, 1}, {15, 332}} + + + _doScroller: + 1 + 0.96363627910614014 + + + + 256 + {{1, 333}, {533, 15}} + + 1 + + _doScroller: + 0.50602412223815918 + + + {{692, 20}, {550, 349}} + + + 50 + + + + + + {1262, 705} + + + {{0, 0}, {1920, 1178}} + {800, 622} + {1.79769e+308, 1.79769e+308} + + + Elis_ColorsAppDelegate + + + NSFontManager + + + ElisController + + + ElisTimeLineController + + + ElisPropertyTableController + + + ElisMediaBrowserController + + + ElisWriter + + + 23 + 2 + {{235, 473}, {480, 86}} + 611844096 + Window + NSPanel + + {1.79769e+308, 1.79769e+308} + + + 256 + + YES + + + 1292 + + {{18, 16}, {444, 20}} + + 16392 + 1 + + + + 268 + {{221, 49}, {66, 17}} + + YES + + 68288064 + 272630784 + Writing ... + + + + + + + + {480, 86} + + {{0, 0}, {1920, 1178}} + {1.79769e+308, 1.79769e+308} + + + + + YES + + + performMiniaturize: + + + + 37 + + + + arrangeInFront: + + + + 39 + + + + print: + + + + 86 + + + + runPageLayout: + + + + 87 + + + + clearRecentDocuments: + + + + 127 + + + + orderFrontStandardAboutPanel: + + + + 142 + + + + performClose: + + + + 193 + + + + toggleContinuousSpellChecking: + + + + 222 + + + + undo: + + + + 223 + + + + copy: + + + + 224 + + + + checkSpelling: + + + + 225 + + + + paste: + + + + 226 + + + + stopSpeaking: + + + + 227 + + + + cut: + + + + 228 + + + + showGuessPanel: + + + + 230 + + + + redo: + + + + 231 + + + + selectAll: + + + + 232 + + + + startSpeaking: + + + + 233 + + + + performZoom: + + + + 240 + + + + performFindPanelAction: + + + + 241 + + + + centerSelectionInVisibleArea: + + + + 245 + + + + toggleGrammarChecking: + + + + 347 + + + + toggleSmartInsertDelete: + + + + 355 + + + + toggleAutomaticQuoteSubstitution: + + + + 356 + + + + toggleAutomaticLinkDetection: + + + + 357 + + + + runToolbarCustomizationPalette: + + + + 365 + + + + toggleToolbarShown: + + + + 366 + + + + hide: + + + + 367 + + + + hideOtherApplications: + + + + 368 + + + + unhideAllApplications: + + + + 370 + + + + newDocument: + + + + 373 + + + + addFontTrait: + + + + 421 + + + + addFontTrait: + + + + 422 + + + + modifyFont: + + + + 423 + + + + orderFrontFontPanel: + + + + 424 + + + + modifyFont: + + + + 425 + + + + raiseBaseline: + + + + 426 + + + + lowerBaseline: + + + + 427 + + + + copyFont: + + + + 428 + + + + subscript: + + + + 429 + + + + superscript: + + + + 430 + + + + tightenKerning: + + + + 431 + + + + underline: + + + + 432 + + + + orderFrontColorPanel: + + + + 433 + + + + useAllLigatures: + + + + 434 + + + + loosenKerning: + + + + 435 + + + + pasteFont: + + + + 436 + + + + unscript: + + + + 437 + + + + useStandardKerning: + + + + 438 + + + + useStandardLigatures: + + + + 439 + + + + turnOffLigatures: + + + + 440 + + + + turnOffKerning: + + + + 441 + + + + terminate: + + + + 449 + + + + toggleAutomaticSpellingCorrection: + + + + 456 + + + + orderFrontSubstitutionsPanel: + + + + 458 + + + + toggleAutomaticDashSubstitution: + + + + 461 + + + + toggleAutomaticTextReplacement: + + + + 463 + + + + uppercaseWord: + + + + 464 + + + + capitalizeWord: + + + + 467 + + + + lowercaseWord: + + + + 468 + + + + pasteAsPlainText: + + + + 486 + + + + performFindPanelAction: + + + + 487 + + + + performFindPanelAction: + + + + 488 + + + + performFindPanelAction: + + + + 489 + + + + showHelp: + + + + 493 + + + + delegate + + + + 495 + + + + alignCenter: + + + + 518 + + + + pasteRuler: + + + + 519 + + + + toggleRuler: + + + + 520 + + + + alignRight: + + + + 521 + + + + copyRuler: + + + + 522 + + + + alignJustified: + + + + 523 + + + + alignLeft: + + + + 524 + + + + makeBaseWritingDirectionNatural: + + + + 525 + + + + makeBaseWritingDirectionLeftToRight: + + + + 526 + + + + makeBaseWritingDirectionRightToLeft: + + + + 527 + + + + makeTextWritingDirectionNatural: + + + + 528 + + + + makeTextWritingDirectionLeftToRight: + + + + 529 + + + + makeTextWritingDirectionRightToLeft: + + + + 530 + + + + window + + + + 532 + + + + _mainView + + + + 535 + + + + _mainController + + + + 536 + + + + _timeLineController + + + + 539 + + + + _timeLineView + + + + 540 + + + + _mainController + + + + 541 + + + + startPlay: + + + + 544 + + + + timeCodeField + + + + 552 + + + + timeSlider + + + + 553 + + + + timeSliderChanged: + + + + 554 + + + + stopPlay: + + + + 557 + + + + _timeLineController + + + + 558 + + + + _propertyView + + + + 574 + + + + _mainController + + + + 575 + + + + _tableController + + + + 576 + + + + dataSource + + + + 577 + + + + _tableController + + + + 581 + + + + sliderChanged: + + + + 582 + + + + _timeLineController + + + + 583 + + + + delegate + + + + 584 + + + + deleteSelectLayer: + + + + 585 + + + + recordingStateChanged: + + + + 595 + + + + removeAllKeyFrame: + + + + 596 + + + + removeEffect: + + + + 598 + + + + zoomSliderDidChange: + + + + 604 + + + + dataSource + + + + 605 + + + + delegate + + + + 606 + + + + addImageMenuClicked: + + + + 607 + + + + _mediaBrowser + + + + 608 + + + + _mainController + + + + 614 + + + + writeToFile: + + + + 615 + + + + _mainWindow + + + + 619 + + + + openProjectSaveDialog: + + + + 620 + + + + openProjectLoadDialog: + + + + 622 + + + + rewriteProject: + + + + 624 + + + + _writer + + + + 631 + + + + _mainController + + + + 632 + + + + _mainView + + + + 633 + + + + _bar + + + + 634 + + + + _barSheet + + + + 635 + + + + _mainWindow + + + + 636 + + + + + YES + + 0 + + + + + + -2 + + + File's Owner + + + -1 + + + First Responder + + + -3 + + + Application + + + 29 + + + YES + + + + + + + + + + + + 19 + + + YES + + + + + + 56 + + + YES + + + + + + 217 + + + YES + + + + + + 83 + + + YES + + + + + + 81 + + + YES + + + + + + + + + + + + + + + + + 75 + + + + + 80 + + + + + 78 + + + + + 72 + + + + + 82 + + + + + 124 + + + YES + + + + + + 77 + + + + + 73 + + + + + 79 + + + + + 112 + + + + + 74 + + + + + 125 + + + YES + + + + + + 126 + + + + + 205 + + + YES + + + + + + + + + + + + + + + + + + + + + 202 + + + + + 198 + + + + + 207 + + + + + 214 + + + + + 199 + + + + + 203 + + + + + 197 + + + + + 206 + + + + + 215 + + + + + 218 + + + YES + + + + + + 216 + + + YES + + + + + + 200 + + + YES + + + + + + + + + + + 219 + + + + + 201 + + + + + 204 + + + + + 220 + + + YES + + + + + + + + + + 213 + + + + + 210 + + + + + 221 + + + + + 208 + + + + + 209 + + + + + 57 + + + YES + + + + + + + + + + + + + + + + 58 + + + + + 134 + + + + + 150 + + + + + 136 + + + + + 144 + + + + + 129 + + + + + 143 + + + + + 236 + + + + + 131 + + + YES + + + + + + 149 + + + + + 145 + + + + + 130 + + + + + 24 + + + YES + + + + + + + + + 92 + + + + + 5 + + + + + 239 + + + + + 23 + + + + + 295 + + + YES + + + + + + 296 + + + YES + + + + + + + 297 + + + + + 298 + + + + + 211 + + + YES + + + + + + 212 + + + YES + + + + + + + 195 + + + + + 196 + + + + + 346 + + + + + 348 + + + YES + + + + + + 349 + + + YES + + + + + + + + + + + + 350 + + + + + 351 + + + + + 354 + + + + + 371 + + + YES + + + + + + 372 + + + YES + + + + + + + + + + + + 375 + + + YES + + + + + + 376 + + + YES + + + + + + + 377 + + + YES + + + + + + 388 + + + YES + + + + + + + + + + + + + + + + + + + + + 389 + + + + + 390 + + + + + 391 + + + + + 392 + + + + + 393 + + + + + 394 + + + + + 395 + + + + + 396 + + + + + 397 + + + YES + + + + + + 398 + + + YES + + + + + + 399 + + + YES + + + + + + 400 + + + + + 401 + + + + + 402 + + + + + 403 + + + + + 404 + + + + + 405 + + + YES + + + + + + + + + + 406 + + + + + 407 + + + + + 408 + + + + + 409 + + + + + 410 + + + + + 411 + + + YES + + + + + + + + 412 + + + + + 413 + + + + + 414 + + + + + 415 + + + YES + + + + + + + + + 416 + + + + + 417 + + + + + 418 + + + + + 419 + + + + + 420 + + + + + 450 + + + YES + + + + + + 451 + + + YES + + + + + + + + 452 + + + + + 453 + + + + + 454 + + + + + 457 + + + + + 459 + + + + + 460 + + + + + 462 + + + + + 465 + + + + + 466 + + + + + 485 + + + + + 490 + + + YES + + + + + + 491 + + + YES + + + + + + 492 + + + + + 494 + + + + + 496 + + + YES + + + + + + 497 + + + YES + + + + + + + + + + + + + + + 498 + + + + + 499 + + + + + 500 + + + + + 501 + + + + + 502 + + + + + 503 + + + YES + + + + + + 504 + + + + + 505 + + + + + 506 + + + + + 507 + + + + + 508 + + + YES + + + + + + + + + + + + + + 509 + + + + + 510 + + + + + 511 + + + + + 512 + + + + + 513 + + + + + 514 + + + + + 515 + + + + + 516 + + + + + 517 + + + + + 534 + + + + + 538 + + + + + 542 + + + YES + + + + + + 543 + + + + + 548 + + + YES + + + + + + 549 + + + + + 550 + + + YES + + + + + + 551 + + + + + 555 + + + YES + + + + + + 556 + + + + + 564 + + + + + 586 + + + YES + + + + + + + 587 + + + YES + + + + + + 588 + + + YES + + + + + + + + 589 + + + YES + + + + + + 590 + + + YES + + + + + + + 565 + + + YES + + + + + + + + + 569 + + + + + 568 + + + YES + + + + + + + + 567 + + + + + 566 + + + + + 578 + + + YES + + + + + + 571 + + + YES + + + + + + 570 + + + YES + + + + + + 573 + + + + + 572 + + + + + 580 + + + + + 591 + + + YES + + + + + + 592 + + + + + 593 + + + YES + + + + + + 594 + + + + + 597 + + + + + 600 + + + + + 602 + + + YES + + + + + + 603 + + + + + 609 + + + YES + + + + + + + + 610 + + + + + 611 + + + + + 601 + + + + + 621 + + + + + 625 + + + YES + + + + + + 626 + + + YES + + + + + + + 627 + + + + + 628 + + + YES + + + + + + 629 + + + + + 630 + + + + + 533 + + + + + 649 + + + YES + + + + + + + + 650 + + + + + 651 + + + + + 537 + + + + + + + YES + + YES + -3.IBPluginDependency + 112.IBPluginDependency + 112.ImportedFromIB2 + 124.IBPluginDependency + 124.ImportedFromIB2 + 125.IBEditorWindowLastContentRect + 125.IBPluginDependency + 125.ImportedFromIB2 + 125.editorWindowContentRectSynchronizationRect + 126.IBPluginDependency + 126.ImportedFromIB2 + 129.IBPluginDependency + 129.ImportedFromIB2 + 130.IBPluginDependency + 130.ImportedFromIB2 + 130.editorWindowContentRectSynchronizationRect + 131.IBPluginDependency + 131.ImportedFromIB2 + 134.IBPluginDependency + 134.ImportedFromIB2 + 136.IBPluginDependency + 136.ImportedFromIB2 + 143.IBPluginDependency + 143.ImportedFromIB2 + 144.IBPluginDependency + 144.ImportedFromIB2 + 145.IBPluginDependency + 145.ImportedFromIB2 + 149.IBPluginDependency + 149.ImportedFromIB2 + 150.IBPluginDependency + 150.ImportedFromIB2 + 19.IBPluginDependency + 19.ImportedFromIB2 + 195.IBPluginDependency + 195.ImportedFromIB2 + 196.IBPluginDependency + 196.ImportedFromIB2 + 197.IBPluginDependency + 197.ImportedFromIB2 + 198.IBPluginDependency + 198.ImportedFromIB2 + 199.IBPluginDependency + 199.ImportedFromIB2 + 200.IBEditorWindowLastContentRect + 200.IBPluginDependency + 200.ImportedFromIB2 + 200.editorWindowContentRectSynchronizationRect + 201.IBPluginDependency + 201.ImportedFromIB2 + 202.IBPluginDependency + 202.ImportedFromIB2 + 203.IBPluginDependency + 203.ImportedFromIB2 + 204.IBPluginDependency + 204.ImportedFromIB2 + 205.IBEditorWindowLastContentRect + 205.IBPluginDependency + 205.ImportedFromIB2 + 205.editorWindowContentRectSynchronizationRect + 206.IBPluginDependency + 206.ImportedFromIB2 + 207.IBPluginDependency + 207.ImportedFromIB2 + 208.IBPluginDependency + 208.ImportedFromIB2 + 209.IBPluginDependency + 209.ImportedFromIB2 + 210.IBPluginDependency + 210.ImportedFromIB2 + 211.IBPluginDependency + 211.ImportedFromIB2 + 212.IBPluginDependency + 212.ImportedFromIB2 + 212.editorWindowContentRectSynchronizationRect + 213.IBPluginDependency + 213.ImportedFromIB2 + 214.IBPluginDependency + 214.ImportedFromIB2 + 215.IBPluginDependency + 215.ImportedFromIB2 + 216.IBPluginDependency + 216.ImportedFromIB2 + 217.IBPluginDependency + 217.ImportedFromIB2 + 218.IBPluginDependency + 218.ImportedFromIB2 + 219.IBPluginDependency + 219.ImportedFromIB2 + 220.IBEditorWindowLastContentRect + 220.IBPluginDependency + 220.ImportedFromIB2 + 220.editorWindowContentRectSynchronizationRect + 221.IBPluginDependency + 221.ImportedFromIB2 + 23.IBPluginDependency + 23.ImportedFromIB2 + 236.IBPluginDependency + 236.ImportedFromIB2 + 239.IBPluginDependency + 239.ImportedFromIB2 + 24.IBEditorWindowLastContentRect + 24.IBPluginDependency + 24.ImportedFromIB2 + 24.editorWindowContentRectSynchronizationRect + 29.IBEditorWindowLastContentRect + 29.IBPluginDependency + 29.ImportedFromIB2 + 29.WindowOrigin + 29.editorWindowContentRectSynchronizationRect + 295.IBPluginDependency + 296.IBEditorWindowLastContentRect + 296.IBPluginDependency + 296.editorWindowContentRectSynchronizationRect + 297.IBPluginDependency + 298.IBPluginDependency + 346.IBPluginDependency + 346.ImportedFromIB2 + 348.IBPluginDependency + 348.ImportedFromIB2 + 349.IBEditorWindowLastContentRect + 349.IBPluginDependency + 349.ImportedFromIB2 + 349.editorWindowContentRectSynchronizationRect + 350.IBPluginDependency + 350.ImportedFromIB2 + 351.IBPluginDependency + 351.ImportedFromIB2 + 354.IBPluginDependency + 354.ImportedFromIB2 + 371.IBEditorWindowLastContentRect + 371.IBPluginDependency + 371.IBWindowTemplateEditedContentRect + 371.NSWindowTemplate.visibleAtLaunch + 371.editorWindowContentRectSynchronizationRect + 371.windowTemplate.hasMinSize + 371.windowTemplate.maxSize + 371.windowTemplate.minSize + 372.IBPluginDependency + 375.IBPluginDependency + 376.IBEditorWindowLastContentRect + 376.IBPluginDependency + 377.IBPluginDependency + 388.IBEditorWindowLastContentRect + 388.IBPluginDependency + 389.IBPluginDependency + 390.IBPluginDependency + 391.IBPluginDependency + 392.IBPluginDependency + 393.IBPluginDependency + 394.IBPluginDependency + 395.IBPluginDependency + 396.IBPluginDependency + 397.IBPluginDependency + 398.IBPluginDependency + 399.IBPluginDependency + 400.IBPluginDependency + 401.IBPluginDependency + 402.IBPluginDependency + 403.IBPluginDependency + 404.IBPluginDependency + 405.IBPluginDependency + 406.IBPluginDependency + 407.IBPluginDependency + 408.IBPluginDependency + 409.IBPluginDependency + 410.IBPluginDependency + 411.IBPluginDependency + 412.IBPluginDependency + 413.IBPluginDependency + 414.IBPluginDependency + 415.IBPluginDependency + 416.IBPluginDependency + 417.IBPluginDependency + 418.IBPluginDependency + 419.IBPluginDependency + 450.IBPluginDependency + 451.IBEditorWindowLastContentRect + 451.IBPluginDependency + 452.IBPluginDependency + 453.IBPluginDependency + 454.IBPluginDependency + 457.IBPluginDependency + 459.IBPluginDependency + 460.IBPluginDependency + 462.IBPluginDependency + 465.IBPluginDependency + 466.IBPluginDependency + 485.IBPluginDependency + 490.IBPluginDependency + 491.IBEditorWindowLastContentRect + 491.IBPluginDependency + 492.IBPluginDependency + 496.IBPluginDependency + 497.IBEditorWindowLastContentRect + 497.IBPluginDependency + 498.IBPluginDependency + 499.IBPluginDependency + 5.IBPluginDependency + 5.ImportedFromIB2 + 500.IBPluginDependency + 501.IBPluginDependency + 502.IBPluginDependency + 503.IBPluginDependency + 504.IBPluginDependency + 505.IBPluginDependency + 506.IBPluginDependency + 507.IBPluginDependency + 508.IBEditorWindowLastContentRect + 508.IBPluginDependency + 509.IBPluginDependency + 510.IBPluginDependency + 511.IBPluginDependency + 512.IBPluginDependency + 513.IBPluginDependency + 514.IBPluginDependency + 515.IBPluginDependency + 516.IBPluginDependency + 517.IBPluginDependency + 533.CustomClassName + 533.IBPluginDependency + 537.IBPluginDependency + 542.IBPluginDependency + 543.IBPluginDependency + 548.IBPluginDependency + 549.IBPluginDependency + 550.IBPluginDependency + 551.IBPluginDependency + 555.IBPluginDependency + 556.IBPluginDependency + 56.IBPluginDependency + 56.ImportedFromIB2 + 565.IBPluginDependency + 566.IBPluginDependency + 567.IBPluginDependency + 568.IBPluginDependency + 569.IBPluginDependency + 57.IBEditorWindowLastContentRect + 57.IBPluginDependency + 57.ImportedFromIB2 + 57.editorWindowContentRectSynchronizationRect + 570.IBPluginDependency + 571.IBPluginDependency + 572.IBPluginDependency + 573.IBPluginDependency + 578.IBPluginDependency + 58.IBPluginDependency + 58.ImportedFromIB2 + 580.IBPluginDependency + 586.IBPluginDependency + 587.IBPluginDependency + 588.IBPluginDependency + 589.IBPluginDependency + 590.IBPluginDependency + 591.IBPluginDependency + 592.IBPluginDependency + 593.IBPluginDependency + 594.IBPluginDependency + 597.IBPluginDependency + 601.IBPluginDependency + 602.IBPluginDependency + 603.IBPluginDependency + 609.IBPluginDependency + 610.IBPluginDependency + 611.IBPluginDependency + 621.IBPluginDependency + 625.IBEditorWindowLastContentRect + 625.IBPluginDependency + 625.IBWindowTemplateEditedContentRect + 625.NSWindowTemplate.visibleAtLaunch + 626.IBPluginDependency + 627.IBPluginDependency + 628.IBPluginDependency + 629.IBPluginDependency + 72.IBPluginDependency + 72.ImportedFromIB2 + 73.IBPluginDependency + 73.ImportedFromIB2 + 74.IBPluginDependency + 74.ImportedFromIB2 + 75.IBPluginDependency + 75.ImportedFromIB2 + 77.IBPluginDependency + 77.ImportedFromIB2 + 78.IBPluginDependency + 78.ImportedFromIB2 + 79.IBPluginDependency + 79.ImportedFromIB2 + 80.IBPluginDependency + 80.ImportedFromIB2 + 81.IBEditorWindowLastContentRect + 81.IBPluginDependency + 81.ImportedFromIB2 + 81.editorWindowContentRectSynchronizationRect + 82.IBPluginDependency + 82.ImportedFromIB2 + 83.IBPluginDependency + 83.ImportedFromIB2 + 92.IBPluginDependency + 92.ImportedFromIB2 + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{339, 860}, {143, 23}} + com.apple.InterfaceBuilder.CocoaPlugin + + {{522, 812}, {146, 23}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{436, 809}, {64, 6}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{753, 187}, {275, 113}} + com.apple.InterfaceBuilder.CocoaPlugin + + {{608, 612}, {275, 83}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{202, 620}, {254, 303}} + com.apple.InterfaceBuilder.CocoaPlugin + + {{187, 434}, {243, 243}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{608, 612}, {167, 43}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{753, 217}, {238, 103}} + com.apple.InterfaceBuilder.CocoaPlugin + + {{608, 612}, {241, 103}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{689, 763}, {194, 73}} + com.apple.InterfaceBuilder.CocoaPlugin + + {{525, 802}, {197, 73}} + {{1251, 1012}, {441, 20}} + com.apple.InterfaceBuilder.CocoaPlugin + + {74, 862} + {{6, 978}, {478, 20}} + com.apple.InterfaceBuilder.CocoaPlugin + {{312, 880}, {231, 43}} + com.apple.InterfaceBuilder.CocoaPlugin + {{475, 832}, {234, 43}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{746, 287}, {220, 133}} + com.apple.InterfaceBuilder.CocoaPlugin + + {{608, 612}, {215, 63}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{7, 425}, {1262, 705}} + com.apple.InterfaceBuilder.CocoaPlugin + {{7, 425}, {1262, 705}} + + {{33, 99}, {480, 360}} + + {3.40282e+38, 3.40282e+38} + {800, 600} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{573, 793}, {83, 43}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{656, 553}, {175, 283}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{753, 197}, {170, 63}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{725, 289}, {246, 23}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{656, 633}, {204, 183}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{878, 180}, {164, 173}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + ElisMainView + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{392, 653}, {207, 183}} + com.apple.InterfaceBuilder.CocoaPlugin + + {{23, 794}, {245, 183}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.imagekit.ibplugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{427, 660}, {480, 86}} + com.apple.InterfaceBuilder.CocoaPlugin + {{427, 660}, {480, 86}} + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{1358, 789}, {179, 223}} + com.apple.InterfaceBuilder.CocoaPlugin + + {{145, 474}, {199, 203}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + + + + YES + + + YES + + + + + YES + + + YES + + + + 652 + + + + YES + + ElisController + NSObject + + YES + + YES + changeToSmallWindiw: + deleteSelectLayer: + openProjectLoadDialog: + openProjectSaveDialog: + recordingStateChanged: + removeAllKeyFrame: + removeEffect: + rewriteProject: + startPlay: + stopPlay: + timeSliderChanged: + writeToFile: + + + YES + id + id + id + id + id + id + id + id + id + id + id + id + + + + YES + + YES + _mainView + _mainWindow + _tableController + _timeLineController + _writer + timeCodeField + timeSlider + + + YES + ElisMainView + NSWindow + ElisPropertyTableController + ElisTimeLineController + ElisWriter + NSTextField + NSSlider + + + + IBProjectSource + ElisController.h + + + + ElisMainView + NSOpenGLView + + _mainController + ElisController + + + IBProjectSource + ElisMainView.h + + + + ElisMediaBrowserController + NSObject + + YES + + YES + addImageMenuClicked: + searchFieldUpdate: + zoomSliderDidChange: + + + YES + id + id + id + + + + YES + + YES + _mediaBrowser + _status + + + YES + id + id + + + + IBProjectSource + ElisMediaBrowserController.h + + + + ElisPropertyTableController + NSObject + + sliderChanged: + id + + + YES + + YES + _mainController + _propertyView + _timeLineController + + + YES + id + id + id + + + + IBProjectSource + ElisPropertyTableController.h + + + + ElisTimeLineController + NSObject + + add: + id + + + YES + + YES + _mainController + _tableController + _timeLineView + + + YES + id + id + id + + + + IBProjectSource + ElisTimeLineController.h + + + + ElisTimeLineView + NSView + + YES + + YES + _mainController + _timeLineController + + + YES + id + id + + + + IBProjectSource + ElisTimeLineView.h + + + + ElisWriter + NSObject + + YES + + YES + _bar + _barSheet + _mainController + _mainView + _mainWindow + + + YES + id + id + id + id + id + + + + IBProjectSource + ElisWriter.h + + + + Elis_ColorsAppDelegate + NSObject + + window + NSWindow + + + IBProjectSource + Elis_ColorsAppDelegate.h + + + + + YES + + IKImageBrowserView + NSView + + YES + + YES + _dataSource + _delegate + _dragDestinationDelegate + _horizontalScroller + _verticalScroller + + + YES + id + id + id + NSScroller + NSScroller + + + + IBFrameworkSource + ImageKit.framework/Headers/IKImageBrowserView.h + + + + NSActionCell + NSCell + + IBFrameworkSource + AppKit.framework/Headers/NSActionCell.h + + + + NSApplication + NSResponder + + IBFrameworkSource + AppKit.framework/Headers/NSApplication.h + + + + NSApplication + + IBFrameworkSource + AppKit.framework/Headers/NSApplicationScripting.h + + + + NSApplication + + IBFrameworkSource + AppKit.framework/Headers/NSColorPanel.h + + + + NSApplication + + IBFrameworkSource + AppKit.framework/Headers/NSHelpManager.h + + + + NSApplication + + IBFrameworkSource + AppKit.framework/Headers/NSPageLayout.h + + + + NSApplication + + IBFrameworkSource + AppKit.framework/Headers/NSUserInterfaceItemSearching.h + + + + NSBrowser + NSControl + + IBFrameworkSource + AppKit.framework/Headers/NSBrowser.h + + + + NSButton + NSControl + + IBFrameworkSource + AppKit.framework/Headers/NSButton.h + + + + NSButtonCell + NSActionCell + + IBFrameworkSource + AppKit.framework/Headers/NSButtonCell.h + + + + NSCell + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSCell.h + + + + NSControl + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSControl.h + + + + NSDocument + NSObject + + YES + + YES + printDocument: + revertDocumentToSaved: + runPageLayout: + saveDocument: + saveDocumentAs: + saveDocumentTo: + + + YES + id + id + id + id + id + id + + + + IBFrameworkSource + AppKit.framework/Headers/NSDocument.h + + + + NSDocument + + IBFrameworkSource + AppKit.framework/Headers/NSDocumentScripting.h + + + + NSDocumentController + NSObject + + YES + + YES + clearRecentDocuments: + newDocument: + openDocument: + saveAllDocuments: + + + YES + id + id + id + id + + + + IBFrameworkSource + AppKit.framework/Headers/NSDocumentController.h + + + + NSFontManager + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSFontManager.h + + + + NSFormatter + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSFormatter.h + + + + NSMatrix + NSControl + + IBFrameworkSource + AppKit.framework/Headers/NSMatrix.h + + + + NSMenu + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSMenu.h + + + + NSMenuItem + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSMenuItem.h + + + + NSMovieView + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSMovieView.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSAccessibility.h + + + + NSObject + + + + NSObject + + + + NSObject + + + + NSObject + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSDictionaryController.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSDragging.h + + + + NSObject + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSFontPanel.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSKeyValueBinding.h + + + + NSObject + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSNibLoading.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSOutlineView.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSPasteboard.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSSavePanel.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSTableView.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSToolbarItem.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSView.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSArchiver.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSClassDescription.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSError.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSFileManager.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyValueCoding.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyValueObserving.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyedArchiver.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSObject.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSObjectScripting.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSPortCoder.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSRunLoop.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSScriptClassDescription.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSScriptKeyValueCoding.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSScriptObjectSpecifiers.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSScriptWhoseTests.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSThread.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURL.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURLConnection.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURLDownload.h + + + + NSObject + + + + NSObject + + IBFrameworkSource + ImageKit.framework/Headers/IKSaveOptions.h + + + + NSObject + + IBFrameworkSource + ImageKit.framework/Headers/ImageKitDeprecated.h + + + + NSObject + + IBFrameworkSource + PDFKit.framework/Headers/PDFDocument.h + + + + NSObject + + IBFrameworkSource + PDFKit.framework/Headers/PDFView.h + + + + NSObject + + IBFrameworkSource + QTKit.framework/Headers/QTCaptureDecompressedAudioOutput.h + + + + NSObject + + IBFrameworkSource + QTKit.framework/Headers/QTCaptureDecompressedVideoOutput.h + + + + NSObject + + IBFrameworkSource + QTKit.framework/Headers/QTCaptureFileOutput.h + + + + NSObject + + IBFrameworkSource + QTKit.framework/Headers/QTCaptureVideoPreviewOutput.h + + + + NSObject + + IBFrameworkSource + QTKit.framework/Headers/QTCaptureView.h + + + + NSObject + + IBFrameworkSource + QTKit.framework/Headers/QTMovie.h + + + + NSObject + + IBFrameworkSource + QTKit.framework/Headers/QTMovieView.h + + + + NSObject + + IBFrameworkSource + QuartzComposer.framework/Headers/QCCompositionParameterView.h + + + + NSObject + + IBFrameworkSource + QuartzComposer.framework/Headers/QCCompositionPickerView.h + + + + NSObject + + IBFrameworkSource + QuartzCore.framework/Headers/CAAnimation.h + + + + NSObject + + IBFrameworkSource + QuartzCore.framework/Headers/CALayer.h + + + + NSObject + + IBFrameworkSource + QuartzCore.framework/Headers/CIImageProvider.h + + + + NSObject + + IBFrameworkSource + QuartzFilters.framework/Headers/QuartzFilterManager.h + + + + NSObject + + IBFrameworkSource + QuickLookUI.framework/Headers/QLPreviewPanel.h + + + + NSOpenGLView + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSOpenGLView.h + + + + NSPanel + NSWindow + + IBFrameworkSource + AppKit.framework/Headers/NSPanel.h + + + + NSProgressIndicator + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSProgressIndicator.h + + + + NSResponder + + IBFrameworkSource + AppKit.framework/Headers/NSInterfaceStyle.h + + + + NSResponder + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSResponder.h + + + + NSScrollView + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSScrollView.h + + + + NSScroller + NSControl + + IBFrameworkSource + AppKit.framework/Headers/NSScroller.h + + + + NSSlider + NSControl + + IBFrameworkSource + AppKit.framework/Headers/NSSlider.h + + + + NSSliderCell + NSActionCell + + IBFrameworkSource + AppKit.framework/Headers/NSSliderCell.h + + + + NSTabView + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSTabView.h + + + + NSTabViewItem + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSTabViewItem.h + + + + NSTableColumn + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSTableColumn.h + + + + NSTableHeaderView + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSTableHeaderView.h + + + + NSTableView + NSControl + + + + NSText + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSText.h + + + + NSTextField + NSControl + + IBFrameworkSource + AppKit.framework/Headers/NSTextField.h + + + + NSTextFieldCell + NSActionCell + + IBFrameworkSource + AppKit.framework/Headers/NSTextFieldCell.h + + + + NSTextView + NSText + + IBFrameworkSource + AppKit.framework/Headers/NSTextView.h + + + + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSClipView.h + + + + NSView + + + + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSRulerView.h + + + + NSView + NSResponder + + + + NSWindow + + IBFrameworkSource + AppKit.framework/Headers/NSDrawer.h + + + + NSWindow + NSResponder + + IBFrameworkSource + AppKit.framework/Headers/NSWindow.h + + + + NSWindow + + IBFrameworkSource + AppKit.framework/Headers/NSWindowScripting.h + + + + PDFView + NSView + + YES + + YES + goBack: + goForward: + goToFirstPage: + goToLastPage: + goToNextPage: + goToPreviousPage: + selectAll: + takeBackgroundColorFrom: + zoomIn: + zoomOut: + + + YES + id + id + id + id + id + id + id + id + id + id + + + + + + QCView + NSView + + YES + + YES + play: + start: + stop: + + + YES + id + id + id + + + + IBFrameworkSource + QuartzComposer.framework/Headers/QCView.h + + + + QTMovieView + NSView + + YES + + YES + add: + addScaled: + copy: + cut: + delete: + gotoBeginning: + gotoEnd: + gotoNextSelectionPoint: + gotoPosterFrame: + gotoPreviousSelectionPoint: + paste: + pause: + play: + replace: + selectAll: + selectNone: + stepBackward: + stepForward: + trim: + + + YES + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + + + + + + + 0 + + com.apple.InterfaceBuilder.CocoaPlugin.macosx + + + + com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 + + + YES + ../Elis Colors.xcodeproj + 3 + + diff --git a/image/lightgreen.jpg b/image/lightgreen.jpg new file mode 100644 index 0000000..2afc174 Binary files /dev/null and b/image/lightgreen.jpg differ diff --git a/image/orange.jpg b/image/orange.jpg new file mode 100644 index 0000000..51b360b Binary files /dev/null and b/image/orange.jpg differ