diff options
author | dynaflash <[email protected]> | 2009-01-12 00:07:38 +0000 |
---|---|---|
committer | dynaflash <[email protected]> | 2009-01-12 00:07:38 +0000 |
commit | 7e73b3884143ae1fb8c8cd9a384c1ef959fa0a86 (patch) | |
tree | 3921b193dd1dbf5aafbe206d525ad4d40bf702fb /macosx | |
parent | f2bd5d8c9da510bfc2969d0cf23a68196d61faa5 (diff) |
MacGui: Separate Picture Settings and Preview Window Initial Implementation
- Picture Settings is now a hud style inspector panel:
-- Allows more room to be displayed along with Main Window.
-- Has button (though ugly ... for now) to open the preview window.
- Separate Preview Window:
-- Preview Window can now show the entire preview content via a hud style overlay controller (ala iTunes, DvdPlayer controls) activated by mouse movement.
-- Has button to allow opening the Picture Settings inspector.
-- Full Screen Mode (ala iTunes, DvdPlayer) which should help for max preview size for HD sources.
- Note: all hud style controls in this implementation are created only using core animation filters, I decided against a third party hud control framework, though one can certainly be implemented at any time.
- Known Issues:
-- WARNING: Quitting HB while in full screen mode will crash the macgui.
-- The hud overlay controls in the Preview Window will align kind of wonky when the resolution is scaled way below the source.
-- Ideally, after moving the mouse within the preview area then stopping, after a certain amount of time the hud overlay control box should disappear.
-- Hud style controls still need alot of development to fit within the HIG.
-- Need a keboard shortcut for the Preview Window.
-- As usual with initial implementations there are likely many more Bugs/Issues.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2076 b64f7644-9d1e-0410-96f1-a4d463321fa5
Diffstat (limited to 'macosx')
-rw-r--r-- | macosx/Controller.h | 10 | ||||
-rw-r--r-- | macosx/Controller.mm | 42 | ||||
-rw-r--r-- | macosx/English.lproj/MainMenu.xib | 52 | ||||
-rw-r--r-- | macosx/English.lproj/PicturePreview.xib | 1306 | ||||
-rw-r--r-- | macosx/English.lproj/PictureSettings.xib | 1351 | ||||
-rw-r--r-- | macosx/HBPreviewController.h | 99 | ||||
-rw-r--r-- | macosx/HBPreviewController.mm | 1148 | ||||
-rw-r--r-- | macosx/HandBrake.xcodeproj/project.pbxproj | 42 | ||||
-rw-r--r-- | macosx/PictureController.h | 54 | ||||
-rw-r--r-- | macosx/PictureController.mm | 804 |
10 files changed, 3365 insertions, 1543 deletions
diff --git a/macosx/Controller.h b/macosx/Controller.h index e05b0afd8..6ca336a36 100644 --- a/macosx/Controller.h +++ b/macosx/Controller.h @@ -11,6 +11,7 @@ #import "ChapterTitles.h" #import "PictureController.h" +#import "HBPreviewController.h" #import "HBQueueController.h" #import "HBAdvancedController.h" #import "HBPreferencesController.h" @@ -26,6 +27,7 @@ BOOL fIsDragging; } @end + @interface HBController : NSObject <GrowlApplicationBridgeDelegate> { IBOutlet NSWindow * fWindow; @@ -41,8 +43,10 @@ BOOL fIsDragging; IBOutlet NSButton * fScanSrcTitleCancelButton; IBOutlet NSButton * fScanSrcTitleOpenButton; - /* Picture panel */ + /* Picture Settings */ PictureController * fPictureController; + /* Picture Preview */ + PreviewController * fPreviewController; /* Advanced options tab */ HBAdvancedController * fAdvancedOptions; @@ -299,6 +303,10 @@ BOOL fIsDragging; - (IBAction) audioDRCSliderChanged: (id) sender; - (IBAction) showPicturePanel: (id) sender; +- (void) picturePanelFullScreen; +- (void) picturePanelWindowed; + +- (IBAction) showPreviewWindow: (id) sender; - (void)pictureSettingsDidChange; - (IBAction) calculatePictureSizing: (id) sender; - (IBAction) openMainWindow: (id) sender; diff --git a/macosx/Controller.mm b/macosx/Controller.mm index d507bbcba..3ca252b3c 100644 --- a/macosx/Controller.mm +++ b/macosx/Controller.mm @@ -9,6 +9,7 @@ #import "HBPreferencesController.h" #import "HBDVDDetector.h" #import "HBPresets.h" +#import "HBPreviewController.h" #define DragDropSimplePboardType @"MyCustomOutlineViewPboardType" @@ -61,6 +62,7 @@ static NSString * ChooseSourceIdentifier = @"Choose Source It } outputPanel = [[HBOutputPanelController alloc] init]; fPictureController = [[PictureController alloc] init]; + //fPreviewController = [[PreviewController alloc] init]; fQueueController = [[HBQueueController alloc] init]; fAdvancedOptions = [[HBAdvancedController alloc] init]; /* we init the HBPresets class which currently is only used @@ -90,6 +92,10 @@ static NSString * ChooseSourceIdentifier = @"Choose Source It /* Init others controllers */ [fPictureController SetHandle: fHandle]; [fPictureController setHBController: self]; + /* fPreviewController */ + //[fPreviewController SetHandle: fHandle]; + //[fPreviewController setHBController: self]; + [fQueueController setHandle: fQueueEncodeLibhb]; [fQueueController setHBController: self]; @@ -198,7 +204,7 @@ static NSString * ChooseSourceIdentifier = @"Choose Source It - (NSApplicationTerminateReply) applicationShouldTerminate: (NSApplication *) app { - + [fPreviewController goWindowedScreen:nil]; // Warn if encoding a movie hb_state_t s; hb_get_state( fQueueEncodeLibhb, &s ); @@ -241,6 +247,8 @@ static NSString * ChooseSourceIdentifier = @"Choose Source It [outputPanel release]; [fQueueController release]; [fPictureController release]; + + [fPreviewController release]; hb_close(&fHandle); hb_close(&fQueueEncodeLibhb); } @@ -3599,9 +3607,9 @@ fWorkingCount = 0; AutoCropLeft = job->crop[2]; AutoCropRight = job->crop[3]; - /* Reset the new title in fPictureController */ + /* Reset the new title in fPictureController && fPreviewController*/ [fPictureController SetTitle:title]; - + //[fPreviewController SetTitle:title]; /* Update subtitle popups */ hb_subtitle_t * subtitle; [fSubPopUp removeAllItems]; @@ -5161,13 +5169,22 @@ the user is using "Custom" settings by determining the sender*/ - (IBAction) showPicturePanel: (id) sender { - /* - hb_list_t * list = hb_get_titles( fHandle ); - hb_title_t * title = (hb_title_t *) hb_list_item( list, - [fSrcTitlePopUp indexOfSelectedItem] ); - */ - //[fPictureController showPreviewPanel:sender forTitle:title]; - [fPictureController showPictureWindow:sender]; + [fPictureController showPictureWindow:sender]; +} + +- (void) picturePanelFullScreen +{ + [fPictureController setToFullScreenMode]; +} + +- (void) picturePanelWindowed +{ + [fPictureController setToWindowedMode]; +} + +- (IBAction) showPreviewWindow: (id) sender +{ + [fPictureController showPreviewWindow:sender]; } #pragma mark - @@ -5758,8 +5775,9 @@ return YES; if (fTitle->width < [[chosenPreset objectForKey:@"PictureWidth"] intValue] || fTitle->height < [[chosenPreset objectForKey:@"PictureHeight"] intValue]) { /* if so, then we use the sources height and width to avoid scaling up */ - job->width = fTitle->width; - job->height = fTitle->height; + //job->width = fTitle->width; + //job->height = fTitle->height; + [self revertPictureSizeToMax:nil]; } else // source width/height is >= the preset height/width { diff --git a/macosx/English.lproj/MainMenu.xib b/macosx/English.lproj/MainMenu.xib index aa14d9342..6abcd884d 100644 --- a/macosx/English.lproj/MainMenu.xib +++ b/macosx/English.lproj/MainMenu.xib @@ -2,13 +2,13 @@ <archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.02"> <data> <int key="IBDocument.SystemTarget">1050</int> - <string key="IBDocument.SystemVersion">9F33</string> + <string key="IBDocument.SystemVersion">9G55</string> <string key="IBDocument.InterfaceBuilderVersion">670</string> - <string key="IBDocument.AppKitVersion">949.34</string> - <string key="IBDocument.HIToolboxVersion">352.00</string> + <string key="IBDocument.AppKitVersion">949.43</string> + <string key="IBDocument.HIToolboxVersion">353.00</string> <object class="NSMutableArray" key="IBDocument.EditedObjectIDs"> <bool key="EncodedWithXMLCoder">YES</bool> - <integer value="1478"/> + <integer value="1192"/> </object> <object class="NSArray" key="IBDocument.PluginDependencies"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -40,7 +40,7 @@ <string key="NSWindowContentMaxSize">{3.40282e+38, 3.40282e+38}</string> <string key="NSWindowContentMinSize">{213, 107}</string> <object class="NSView" key="NSWindowView" id="168918359"> - <reference key="NSNextResponder"/> + <nil key="NSNextResponder"/> <int key="NSvFlags">256</int> <object class="NSMutableArray" key="NSSubviews"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -3219,7 +3219,6 @@ </object> </object> <string key="NSFrameSize">{760, 550}</string> - <reference key="NSSuperview"/> </object> <string key="NSScreenRect">{{0, 0}, {1920, 1178}}</string> <string key="NSMinSize">{213, 129}</string> @@ -3836,6 +3835,14 @@ <reference key="NSOnImage" ref="447995298"/> <reference key="NSMixedImage" ref="760317610"/> </object> + <object class="NSMenuItem" id="157409278"> + <reference key="NSMenu" ref="919178355"/> + <string key="NSTitle">Preview Window</string> + <string key="NSKeyEquiv"/> + <int key="NSMnemonicLoc">2147483647</int> + <reference key="NSOnImage" ref="447995298"/> + <reference key="NSMixedImage" ref="760317610"/> + </object> <object class="NSMenuItem" id="302989927"> <reference key="NSMenu" ref="919178355"/> <string key="NSTitle">Activity Window</string> @@ -6526,6 +6533,14 @@ </object> <int key="connectionID">5156</int> </object> + <object class="IBConnectionRecord"> + <object class="IBActionConnection" key="connection"> + <string key="label">showPreviewWindow:</string> + <reference key="source" ref="2258723"/> + <reference key="destination" ref="157409278"/> + </object> + <int key="connectionID">5158</int> + </object> </object> <object class="IBMutableOrderedSet" key="objectRecords"> <object class="NSArray" key="orderedObjects"> @@ -7664,6 +7679,7 @@ <reference ref="87484946"/> <reference ref="849279674"/> <reference ref="1034427275"/> + <reference ref="157409278"/> </object> <reference key="parent" ref="610133626"/> </object> @@ -9934,6 +9950,11 @@ <reference key="object" ref="977106207"/> <reference key="parent" ref="786415813"/> </object> + <object class="IBObjectRecord"> + <int key="objectID">5157</int> + <reference key="object" ref="157409278"/> + <reference key="parent" ref="919178355"/> + </object> </object> </object> <object class="NSMutableDictionary" key="flattenedProperties"> @@ -9952,6 +9973,7 @@ <string>1190.ImportedFromIB2</string> <string>1191.IBPluginDependency</string> <string>1191.ImportedFromIB2</string> + <string>1192.IBEditorWindowLastContentRect</string> <string>1192.IBPluginDependency</string> <string>1192.ImportedFromIB2</string> <string>1193.IBPluginDependency</string> @@ -10232,6 +10254,7 @@ <string>1900.ImportedFromIB2</string> <string>1948.IBPluginDependency</string> <string>1948.ImportedFromIB2</string> + <string>1949.IBEditorWindowLastContentRect</string> <string>1949.IBPluginDependency</string> <string>1949.ImportedFromIB2</string> <string>1950.IBPluginDependency</string> @@ -10403,6 +10426,7 @@ <string>2839.ImportedFromIB2</string> <string>2840.IBPluginDependency</string> <string>2840.ImportedFromIB2</string> + <string>29.IBEditorWindowLastContentRect</string> <string>29.IBPluginDependency</string> <string>29.ImportedFromIB2</string> <string>29.editorWindowContentRectSynchronizationRect</string> @@ -10598,6 +10622,7 @@ <string>5135.IBPluginDependency</string> <string>5153.IBPluginDependency</string> <string>5153.ImportedFromIB2</string> + <string>5157.IBPluginDependency</string> <string>56.IBPluginDependency</string> <string>56.ImportedFromIB2</string> <string>57.IBPluginDependency</string> @@ -10626,6 +10651,7 @@ <reference ref="9"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <reference ref="9"/> + <string>{{262, 642}, {211, 183}}</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <reference ref="9"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> @@ -10913,6 +10939,7 @@ <reference ref="9"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <reference ref="9"/> + <string>{{195, 732}, {236, 93}}</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <reference ref="9"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> @@ -11091,6 +11118,7 @@ <reference ref="9"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <reference ref="9"/> + <string>{{0, 825}, {394, 20}}</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <reference ref="9"/> <string>{{63, 836}, {394, 20}}</string> @@ -11301,6 +11329,7 @@ <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <reference ref="9"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <reference ref="9"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <reference ref="9"/> @@ -11335,7 +11364,7 @@ </object> </object> <nil key="sourceID"/> - <int key="maxID">5156</int> + <int key="maxID">5158</int> </object> <object class="IBClassDescriber" key="IBDocument.Classes"> <object class="NSMutableArray" key="referencedPartialClassDescriptions"> @@ -11389,6 +11418,7 @@ <string>showNewScan:</string> <string>showPicturePanel:</string> <string>showPreferencesWindow:</string> + <string>showPreviewWindow:</string> <string>showQueueWindow:</string> <string>showSourceTitleScanPanel:</string> <string>subtitleSelectionChanged:</string> @@ -11450,6 +11480,7 @@ <string>id</string> <string>id</string> <string>id</string> + <string>id</string> </object> </object> <object class="NSMutableDictionary" key="outlets"> @@ -11750,13 +11781,6 @@ <object class="IBPartialClassDescription"> <string key="className">NSObject</string> <object class="IBClassDescriptionSource" key="sourceIdentifier"> - <string key="majorKey">IBProjectSource</string> - <string key="minorKey">PictureController.h</string> - </object> - </object> - <object class="IBPartialClassDescription"> - <string key="className">NSObject</string> - <object class="IBClassDescriptionSource" key="sourceIdentifier"> <string key="majorKey">IBUserSource</string> <string key="minorKey"/> </object> diff --git a/macosx/English.lproj/PicturePreview.xib b/macosx/English.lproj/PicturePreview.xib new file mode 100644 index 000000000..adf47df43 --- /dev/null +++ b/macosx/English.lproj/PicturePreview.xib @@ -0,0 +1,1306 @@ +<?xml version="1.0" encoding="UTF-8"?> +<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.02"> + <data> + <int key="IBDocument.SystemTarget">1050</int> + <string key="IBDocument.SystemVersion">9G55</string> + <string key="IBDocument.InterfaceBuilderVersion">670</string> + <string key="IBDocument.AppKitVersion">949.43</string> + <string key="IBDocument.HIToolboxVersion">353.00</string> + <object class="NSMutableArray" key="IBDocument.EditedObjectIDs"> + <bool key="EncodedWithXMLCoder">YES</bool> + <integer value="5"/> + </object> + <object class="NSArray" key="IBDocument.PluginDependencies"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>com.apple.QTKitIBPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + </object> + <object class="NSMutableArray" key="IBDocument.RootObjects" id="273418435"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSCustomObject" id="355312334"> + <string key="NSClassName">PreviewController</string> + </object> + <object class="NSCustomObject" id="844574444"> + <string key="NSClassName">FirstResponder</string> + </object> + <object class="NSCustomObject" id="837220151"> + <string key="NSClassName">NSApplication</string> + </object> + <object class="NSWindowTemplate" id="616825745"> + <int key="NSWindowStyleMask">7</int> + <int key="NSWindowBacking">2</int> + <string key="NSWindowRect">{{482, 423}, {475, 433}}</string> + <int key="NSWTFlags">1886913536</int> + <string key="NSWindowTitle">HandBrake Preview</string> + <string key="NSWindowClass">NSPanel</string> + <object class="NSMutableString" key="NSViewClass"> + <characters key="NS.bytes">View</characters> + </object> + <string key="NSWindowContentMaxSize">{3.40282e+38, 3.40282e+38}</string> + <object class="NSView" key="NSWindowView" id="49161063"> + <reference key="NSNextResponder"/> + <int key="NSvFlags">256</int> + <object class="NSMutableArray" key="NSSubviews"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSBox" id="289177107"> + <reference key="NSNextResponder" ref="49161063"/> + <int key="NSvFlags">18</int> + <object class="NSMutableArray" key="NSSubviews"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSView" id="353606868"> + <reference key="NSNextResponder" ref="289177107"/> + <int key="NSvFlags">256</int> + <object class="NSMutableArray" key="NSSubviews"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSImageView" id="844127024"> + <reference key="NSNextResponder" ref="353606868"/> + <int key="NSvFlags">274</int> + <object class="NSMutableSet" key="NSDragTypes"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSMutableArray" key="set.sortedObjects"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>Apple PDF pasteboard type</string> + <string>Apple PICT pasteboard type</string> + <string>Apple PNG pasteboard type</string> + <string>NSFilenamesPboardType</string> + <string>NeXT Encapsulated PostScript v1.2 pasteboard type</string> + <string>NeXT TIFF v4.0 pasteboard type</string> + </object> + </object> + <string key="NSFrame">{{-1, -2}, {475, 450}}</string> + <reference key="NSSuperview" ref="353606868"/> + <bool key="NSEnabled">YES</bool> + <object class="NSImageCell" key="NSCell" id="955430771"> + <int key="NSCellFlags">130560</int> + <int key="NSCellFlags2">33554432</int> + <int key="NSAlign">0</int> + <int key="NSScale">1</int> + <int key="NSStyle">0</int> + <bool key="NSAnimates">NO</bool> + </object> + <bool key="NSEditable">YES</bool> + </object> + <object class="QTMovieView" id="48693112"> + <reference key="NSNextResponder" ref="353606868"/> + <int key="NSvFlags">274</int> + <object class="NSMutableSet" key="NSDragTypes"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSMutableArray" key="set.sortedObjects"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>Apple URL pasteboard type</string> + <string>CorePasteboardFlavorType 0x6D6F6F76</string> + <string>NSFilenamesPboardType</string> + <string>QTMoviePasteboardType</string> + </object> + </object> + <string key="NSFrame">{{-10, -2}, {484, 450}}</string> + <reference key="NSSuperview" ref="353606868"/> + <object class="NSColor" key="kCoderFillColor"> + <int key="NSColorSpace">1</int> + <bytes key="NSRGB">MC44MDAwMDAwMSAwLjgwMDAwMDAxIDAuODAwMDAwMDEAA</bytes> + </object> + <integer value="1" key="kCoderControllerVisible"/> + <integer value="0" key="kCoderPreservesAspectRatio" id="6"/> + <nil key="kCoderMovie"/> + <reference key="kCoderEditable" ref="6"/> + </object> + <object class="NSBox" id="92351498"> + <reference key="NSNextResponder" ref="353606868"/> + <int key="NSvFlags">45</int> + <object class="NSMutableArray" key="NSSubviews"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSView" id="385854969"> + <reference key="NSNextResponder" ref="92351498"/> + <int key="NSvFlags">256</int> + <object class="NSMutableArray" key="NSSubviews"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSButton" id="798240356"> + <reference key="NSNextResponder" ref="385854969"/> + <int key="NSvFlags">292</int> + <string key="NSFrame">{{18, 12}, {77, 17}}</string> + <reference key="NSSuperview" ref="385854969"/> + <object class="NSArray" key="NSViewContentFilters"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="CIColorMonochrome"> + <object class="CIColor" key="CI_inputColor"> + <float key="red">7.019608e-01</float> + <float key="green">7.019608e-01</float> + <float key="blue">7.019608e-01</float> + <float key="alpha">1.000000e+00</float> + </object> + <integer value="1" key="CI_inputIntensity" id="9"/> + <bool key="CIEnabled">YES</bool> + </object> + </object> + <bool key="NSEnabled">YES</bool> + <object class="NSButtonCell" key="NSCell" id="975305481"> + <int key="NSCellFlags">67239424</int> + <int key="NSCellFlags2">134479872</int> + <string key="NSContents">Live Preview</string> + <object class="NSFont" key="NSSupport" id="22"> + <string key="NSName">LucidaGrande</string> + <double key="NSSize">9.000000e+00</double> + <int key="NSfFlags">3614</int> + </object> + <reference key="NSControlView" ref="798240356"/> + <int key="NSButtonFlags">-2038284033</int> + <int key="NSButtonFlags2">164</int> + <string key="NSAlternateContents"/> + <string key="NSKeyEquivalent"/> + <int key="NSPeriodicDelay">200</int> + <int key="NSPeriodicInterval">25</int> + </object> + </object> + <object class="NSButton" id="537831590"> + <reference key="NSNextResponder" ref="385854969"/> + <int key="NSvFlags">289</int> + <string key="NSFrame">{{271, 11}, {69, 17}}</string> + <reference key="NSSuperview" ref="385854969"/> + <object class="NSArray" key="NSViewContentFilters"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="CIColorMonochrome"> + <object class="CIColor" key="CI_inputColor"> + <float key="red">7.019608e-01</float> + <float key="green">7.019608e-01</float> + <float key="blue">7.019608e-01</float> + <float key="alpha">1.000000e+00</float> + </object> + <reference key="CI_inputIntensity" ref="9"/> + <bool key="CIEnabled">YES</bool> + </object> + </object> + <bool key="NSEnabled">YES</bool> + <object class="NSButtonCell" key="NSCell" id="29238952"> + <int key="NSCellFlags">67239424</int> + <int key="NSCellFlags2">134479872</int> + <string key="NSContents">Full Screen</string> + <reference key="NSSupport" ref="22"/> + <reference key="NSControlView" ref="537831590"/> + <int key="NSButtonFlags">-2038284033</int> + <int key="NSButtonFlags2">164</int> + <string key="NSAlternateContents"/> + <string key="NSKeyEquivalent"/> + <int key="NSPeriodicDelay">200</int> + <int key="NSPeriodicInterval">25</int> + </object> + </object> + <object class="NSButton" id="141370142"> + <reference key="NSNextResponder" ref="385854969"/> + <int key="NSvFlags">289</int> + <string key="NSFrame">{{346, 11}, {54, 17}}</string> + <reference key="NSSuperview" ref="385854969"/> + <object class="NSArray" key="NSViewContentFilters"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="CIColorMonochrome"> + <object class="CIColor" key="CI_inputColor"> + <float key="red">7.019608e-01</float> + <float key="green">7.019608e-01</float> + <float key="blue">7.019608e-01</float> + <float key="alpha">1.000000e+00</float> + </object> + <reference key="CI_inputIntensity" ref="9"/> + <bool key="CIEnabled">YES</bool> + </object> + </object> + <bool key="NSEnabled">YES</bool> + <object class="NSButtonCell" key="NSCell" id="606007744"> + <int key="NSCellFlags">67239424</int> + <int key="NSCellFlags2">134479872</int> + <string key="NSContents">Settings</string> + <reference key="NSSupport" ref="22"/> + <reference key="NSControlView" ref="141370142"/> + <int key="NSButtonFlags">-2038284033</int> + <int key="NSButtonFlags2">164</int> + <string key="NSAlternateContents"/> + <string key="NSKeyEquivalent"/> + <int key="NSPeriodicDelay">200</int> + <int key="NSPeriodicInterval">25</int> + </object> + </object> + <object class="NSTextField" id="66510867"> + <reference key="NSNextResponder" ref="385854969"/> + <int key="NSvFlags">289</int> + <string key="NSFrame">{{108, 15}, {89, 11}}</string> + <reference key="NSSuperview" ref="385854969"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="567286013"> + <int key="NSCellFlags">68288064</int> + <int key="NSCellFlags2">71566336</int> + <string key="NSContents">Duration (seconds):</string> + <reference key="NSSupport" ref="22"/> + <reference key="NSControlView" ref="66510867"/> + <object class="NSColor" key="NSBackgroundColor" id="407686733"> + <int key="NSColorSpace">6</int> + <string key="NSCatalogName">System</string> + <string key="NSColorName">controlColor</string> + <object class="NSColor" key="NSColor"> + <int key="NSColorSpace">3</int> + <bytes key="NSWhite">MC42NjY2NjY2OQA</bytes> + </object> + </object> + <object class="NSColor" key="NSTextColor"> + <int key="NSColorSpace">1</int> + <bytes key="NSRGB">MC44MDAwMDAwMSAwLjgwMDAwMDAxIDAuODAwMDAwMDEAA</bytes> + </object> + </object> + </object> + <object class="NSPopUpButton" id="598619000"> + <reference key="NSNextResponder" ref="385854969"/> + <int key="NSvFlags">289</int> + <string key="NSFrame">{{199, 12}, {45, 15}}</string> + <reference key="NSSuperview" ref="385854969"/> + <object class="NSArray" key="NSViewContentFilters"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="CIColorMonochrome"> + <object class="CIColor" key="CI_inputColor"> + <float key="red">7.019608e-01</float> + <float key="green">7.019608e-01</float> + <float key="blue">7.019608e-01</float> + <float key="alpha">1.000000e+00</float> + </object> + <reference key="CI_inputIntensity" ref="9"/> + <bool key="CIEnabled">YES</bool> + </object> + </object> + <bool key="NSEnabled">YES</bool> + <object class="NSPopUpButtonCell" key="NSCell" id="953108737"> + <int key="NSCellFlags">-2076049856</int> + <int key="NSCellFlags2">264192</int> + <reference key="NSSupport" ref="22"/> + <reference key="NSControlView" ref="598619000"/> + <int key="NSButtonFlags">109199615</int> + <int key="NSButtonFlags2">1</int> + <string key="NSAlternateContents"/> + <string key="NSKeyEquivalent"/> + <int key="NSPeriodicDelay">400</int> + <int key="NSPeriodicInterval">75</int> + <object class="NSMenuItem" key="NSMenuItem" id="372655630"> + <reference key="NSMenu" ref="501672847"/> + <string key="NSTitle">Item 1</string> + <string key="NSKeyEquiv"/> + <int key="NSKeyEquivModMask">1048576</int> + <int key="NSMnemonicLoc">2147483647</int> + <int key="NSState">1</int> + <object class="NSCustomResource" key="NSOnImage" id="858043985"> + <string key="NSClassName">NSImage</string> + <string key="NSResourceName">NSMenuCheckmark</string> + </object> + <object class="NSCustomResource" key="NSMixedImage" id="700487240"> + <string key="NSClassName">NSImage</string> + <string key="NSResourceName">NSMenuMixedState</string> + </object> + <string key="NSAction">_popUpItemAction:</string> + <reference key="NSTarget" ref="953108737"/> + </object> + <bool key="NSMenuItemRespectAlignment">YES</bool> + <object class="NSMenu" key="NSMenu" id="501672847"> + <string key="NSTitle">OtherViews</string> + <object class="NSMutableArray" key="NSMenuItems"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="372655630"/> + <object class="NSMenuItem" id="607756368"> + <reference key="NSMenu" ref="501672847"/> + <string key="NSTitle">Item 2</string> + <string key="NSKeyEquiv"/> + <int key="NSKeyEquivModMask">1048576</int> + <int key="NSMnemonicLoc">2147483647</int> + <reference key="NSOnImage" ref="858043985"/> + <reference key="NSMixedImage" ref="700487240"/> + <string key="NSAction">_popUpItemAction:</string> + <reference key="NSTarget" ref="953108737"/> + </object> + <object class="NSMenuItem" id="272743761"> + <reference key="NSMenu" ref="501672847"/> + <string key="NSTitle">Item 3</string> + <string key="NSKeyEquiv"/> + <int key="NSKeyEquivModMask">1048576</int> + <int key="NSMnemonicLoc">2147483647</int> + <reference key="NSOnImage" ref="858043985"/> + <reference key="NSMixedImage" ref="700487240"/> + <string key="NSAction">_popUpItemAction:</string> + <reference key="NSTarget" ref="953108737"/> + </object> + </object> + </object> + <int key="NSPreferredEdge">1</int> + <bool key="NSUsesItemFromMenu">YES</bool> + <bool key="NSAltersState">YES</bool> + <int key="NSArrowPosition">2</int> + </object> + </object> + <object class="NSSlider" id="396925210"> + <reference key="NSNextResponder" ref="385854969"/> + <int key="NSvFlags">290</int> + <string key="NSFrame">{{18, 40}, {382, 16}}</string> + <reference key="NSSuperview" ref="385854969"/> + <object class="NSArray" key="NSViewContentFilters"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="CIColorMonochrome"> + <object class="CIColor" key="CI_inputColor"> + <float key="red">7.019608e-01</float> + <float key="green">7.019608e-01</float> + <float key="blue">7.019608e-01</float> + <float key="alpha">1.000000e+00</float> + </object> + <reference key="CI_inputIntensity" ref="9"/> + <bool key="CIEnabled">YES</bool> + </object> + </object> + <bool key="NSEnabled">YES</bool> + <object class="NSSliderCell" key="NSCell" id="639767004"> + <int key="NSCellFlags">67501824</int> + <int key="NSCellFlags2">262144</int> + <string key="NSContents"/> + <reference key="NSSupport" ref="22"/> + <reference key="NSControlView" ref="396925210"/> + <double key="NSMaxValue">9.000000e+00</double> + <double key="NSMinValue">0.000000e+00</double> + <double key="NSValue">0.000000e+00</double> + <double key="NSAltIncValue">0.000000e+00</double> + <int key="NSNumberOfTickMarks">10</int> + <int key="NSTickMarkPosition">1</int> + <bool key="NSAllowsTickMarkValuesOnly">YES</bool> + <bool key="NSVertical">NO</bool> + </object> + </object> + <object class="NSTextField" id="628196212"> + <reference key="NSNextResponder" ref="385854969"/> + <int key="NSvFlags">290</int> + <string key="NSFrame">{{15, 66}, {388, 14}}</string> + <reference key="NSSuperview" ref="385854969"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="921881842"> + <int key="NSCellFlags">67239424</int> + <int key="NSCellFlags2">4325376</int> + <string key="NSContents"/> + <object class="NSFont" key="NSSupport" id="26"> + <string key="NSName">LucidaGrande</string> + <double key="NSSize">1.100000e+01</double> + <int key="NSfFlags">3100</int> + </object> + <reference key="NSControlView" ref="628196212"/> + <bool key="NSDrawsBackground">YES</bool> + <reference key="NSBackgroundColor" ref="407686733"/> + <object class="NSColor" key="NSTextColor" id="978544139"> + <int key="NSColorSpace">1</int> + <bytes key="NSRGB">MSAxIDEAA</bytes> + </object> + </object> + </object> + </object> + <string key="NSFrame">{{1, 1}, {418, 98}}</string> + <reference key="NSSuperview" ref="92351498"/> + </object> + </object> + <string key="NSFrame">{{30, 114}, {420, 100}}</string> + <reference key="NSSuperview" ref="353606868"/> + <string key="NSOffsets">{0, 0}</string> + <object class="NSTextFieldCell" key="NSTitleCell"> + <int key="NSCellFlags">67239424</int> + <int key="NSCellFlags2">0</int> + <string key="NSContents">Picture Controls</string> + <reference key="NSSupport" ref="26"/> + <object class="NSColor" key="NSBackgroundColor" id="384686844"> + <int key="NSColorSpace">6</int> + <string key="NSCatalogName">System</string> + <string key="NSColorName">textBackgroundColor</string> + <object class="NSColor" key="NSColor"> + <int key="NSColorSpace">3</int> + <bytes key="NSWhite">MQA</bytes> + </object> + </object> + <object class="NSColor" key="NSTextColor"> + <int key="NSColorSpace">3</int> + <bytes key="NSWhite">MCAwLjgwMDAwMDAxAA</bytes> + </object> + </object> + <reference key="NSContentView" ref="385854969"/> + <int key="NSBorderType">1</int> + <int key="NSBoxType">4</int> + <int key="NSTitlePosition">0</int> + <bool key="NSTransparent">NO</bool> + <double key="NSCornerRadius2">6.000000e+00</double> + <reference key="NSBorderColor2" ref="978544139"/> + <object class="NSColor" key="NSFillColor2"> + <int key="NSColorSpace">1</int> + <bytes key="NSRGB">MCAwIDAgMC43NQA</bytes> + </object> + </object> + <object class="NSBox" id="768906858"> + <reference key="NSNextResponder" ref="353606868"/> + <int key="NSvFlags">45</int> + <object class="NSMutableArray" key="NSSubviews"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSView" id="1067699710"> + <reference key="NSNextResponder" ref="768906858"/> + <int key="NSvFlags">256</int> + <object class="NSMutableArray" key="NSSubviews"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSProgressIndicator" id="196868285"> + <reference key="NSNextResponder" ref="1067699710"/> + <int key="NSvFlags">-2147482368</int> + <object class="NSPSMatrix" key="NSDrawMatrix"/> + <string key="NSFrame">{{17, 27}, {325, 12}}</string> + <reference key="NSSuperview" ref="1067699710"/> + <object class="NSArray" key="NSViewContentFilters"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="CIColorMonochrome"> + <object class="CIColor" key="CI_inputColor"> + <float key="red">7.019608e-01</float> + <float key="green">7.019608e-01</float> + <float key="blue">7.019608e-01</float> + <float key="alpha">1.000000e+00</float> + </object> + <reference key="CI_inputIntensity" ref="9"/> + <bool key="CIEnabled">YES</bool> + </object> + </object> + <int key="NSpiFlags">16650</int> + <double key="NSMinValue">2.000000e+01</double> + <double key="NSMaxValue">1.000000e+02</double> + </object> + <object class="NSButton" id="569473100"> + <reference key="NSNextResponder" ref="1067699710"/> + <int key="NSvFlags">265</int> + <string key="NSFrame">{{357, 24}, {46, 17}}</string> + <reference key="NSSuperview" ref="1067699710"/> + <object class="NSArray" key="NSViewContentFilters"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="CIColorMonochrome"> + <object class="CIColor" key="CI_inputColor"> + <float key="red">7.019608e-01</float> + <float key="green">7.019608e-01</float> + <float key="blue">7.019608e-01</float> + <float key="alpha">1.000000e+00</float> + </object> + <reference key="CI_inputIntensity" ref="9"/> + <bool key="CIEnabled">YES</bool> + </object> + </object> + <bool key="NSEnabled">YES</bool> + <object class="NSButtonCell" key="NSCell" id="908165435"> + <int key="NSCellFlags">67239424</int> + <int key="NSCellFlags2">134479872</int> + <string key="NSContents">Cancel</string> + <reference key="NSSupport" ref="22"/> + <reference key="NSControlView" ref="569473100"/> + <int key="NSButtonFlags">-2038284033</int> + <int key="NSButtonFlags2">164</int> + <string key="NSAlternateContents"/> + <string key="NSKeyEquivalent"/> + <int key="NSPeriodicDelay">200</int> + <int key="NSPeriodicInterval">25</int> + </object> + </object> + <object class="NSTextField" id="986015194"> + <reference key="NSNextResponder" ref="1067699710"/> + <int key="NSvFlags">256</int> + <string key="NSFrame">{{15, 61}, {391, 12}}</string> + <reference key="NSSuperview" ref="1067699710"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="304208899"> + <int key="NSCellFlags">68288064</int> + <int key="NSCellFlags2">4326400</int> + <string key="NSContents">Preparing Preview</string> + <reference key="NSSupport" ref="26"/> + <reference key="NSControlView" ref="986015194"/> + <object class="NSColor" key="NSBackgroundColor"> + <int key="NSColorSpace">2</int> + <bytes key="NSRGB">MC45MDE5NjA4NSAwLjkwMTk2MDg1IDAuOTAxOTYwODUgMAA</bytes> + </object> + <reference key="NSTextColor" ref="978544139"/> + </object> + </object> + </object> + <string key="NSFrame">{{1, 1}, {418, 98}}</string> + <reference key="NSSuperview" ref="768906858"/> + </object> + </object> + <string key="NSFrame">{{29, 266}, {420, 100}}</string> + <reference key="NSSuperview" ref="353606868"/> + <string key="NSOffsets">{0, 0}</string> + <object class="NSTextFieldCell" key="NSTitleCell"> + <int key="NSCellFlags">67239424</int> + <int key="NSCellFlags2">0</int> + <string key="NSContents">Encoding Controls</string> + <reference key="NSSupport" ref="26"/> + <reference key="NSBackgroundColor" ref="384686844"/> + <object class="NSColor" key="NSTextColor"> + <int key="NSColorSpace">3</int> + <bytes key="NSWhite">MCAwLjgwMDAwMDAxAA</bytes> + </object> + </object> + <reference key="NSContentView" ref="1067699710"/> + <int key="NSBorderType">1</int> + <int key="NSBoxType">4</int> + <int key="NSTitlePosition">0</int> + <bool key="NSTransparent">NO</bool> + <double key="NSCornerRadius2">6.000000e+00</double> + <reference key="NSBorderColor2" ref="978544139"/> + <object class="NSColor" key="NSFillColor2"> + <int key="NSColorSpace">1</int> + <bytes key="NSRGB">MCAwIDAgMC43NQA</bytes> + </object> + </object> + </object> + <string key="NSFrame">{{1, 1}, {473, 431}}</string> + <reference key="NSSuperview" ref="289177107"/> + </object> + </object> + <string key="NSFrameSize">{475, 433}</string> + <reference key="NSSuperview" ref="49161063"/> + <string key="NSOffsets">{0, 0}</string> + <object class="NSTextFieldCell" key="NSTitleCell"> + <int key="NSCellFlags">67239424</int> + <int key="NSCellFlags2">0</int> + <string key="NSContents">Box</string> + <reference key="NSSupport" ref="26"/> + <reference key="NSBackgroundColor" ref="384686844"/> + <object class="NSColor" key="NSTextColor"> + <int key="NSColorSpace">3</int> + <bytes key="NSWhite">MCAwLjgwMDAwMDAxAA</bytes> + </object> + </object> + <reference key="NSContentView" ref="353606868"/> + <int key="NSBorderType">1</int> + <int key="NSBoxType">3</int> + <int key="NSTitlePosition">0</int> + <bool key="NSTransparent">NO</bool> + </object> + </object> + <string key="NSFrameSize">{475, 433}</string> + <reference key="NSSuperview"/> + </object> + <string key="NSScreenRect">{{0, 0}, {1440, 878}}</string> + <string key="NSMaxSize">{3.40282e+38, 3.40282e+38}</string> + </object> + </object> + <object class="IBObjectContainer" key="IBDocument.Objects"> + <object class="NSMutableArray" key="connectionRecords"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">fInfoField</string> + <reference key="source" ref="355312334"/> + <reference key="destination" ref="628196212"/> + </object> + <int key="connectionID">73</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">fPictureView</string> + <reference key="source" ref="355312334"/> + <reference key="destination" ref="844127024"/> + </object> + <int key="connectionID">181</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">window</string> + <reference key="source" ref="355312334"/> + <reference key="destination" ref="616825745"/> + </object> + <int key="connectionID">184</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">fMovieView</string> + <reference key="source" ref="355312334"/> + <reference key="destination" ref="48693112"/> + </object> + <int key="connectionID">208</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">fPictureSlider</string> + <reference key="source" ref="355312334"/> + <reference key="destination" ref="396925210"/> + </object> + <int key="connectionID">211</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBActionConnection" key="connection"> + <string key="label">pictureSliderChanged:</string> + <reference key="source" ref="355312334"/> + <reference key="destination" ref="396925210"/> + </object> + <int key="connectionID">212</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">fMovieCreationProgressIndicator</string> + <reference key="source" ref="355312334"/> + <reference key="destination" ref="196868285"/> + </object> + <int key="connectionID">214</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">fCreatePreviewMovieButton</string> + <reference key="source" ref="355312334"/> + <reference key="destination" ref="798240356"/> + </object> + <int key="connectionID">217</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBActionConnection" key="connection"> + <string key="label">createMoviePreview:</string> + <reference key="source" ref="355312334"/> + <reference key="destination" ref="798240356"/> + </object> + <int key="connectionID">218</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">fPreviewMovieStatusField</string> + <reference key="source" ref="355312334"/> + <reference key="destination" ref="986015194"/> + </object> + <int key="connectionID">225</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">fPreviewMovieLengthPopUp</string> + <reference key="source" ref="355312334"/> + <reference key="destination" ref="598619000"/> + </object> + <int key="connectionID">232</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBActionConnection" key="connection"> + <string key="label">previewDurationPopUpChanged:</string> + <reference key="source" ref="355312334"/> + <reference key="destination" ref="598619000"/> + </object> + <int key="connectionID">233</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">fPreviewWindow</string> + <reference key="source" ref="355312334"/> + <reference key="destination" ref="616825745"/> + </object> + <int key="connectionID">244</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">fEncodingControlBox</string> + <reference key="source" ref="355312334"/> + <reference key="destination" ref="768906858"/> + </object> + <int key="connectionID">253</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">fPictureControlBox</string> + <reference key="source" ref="355312334"/> + <reference key="destination" ref="92351498"/> + </object> + <int key="connectionID">254</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">fPictureViewArea</string> + <reference key="source" ref="355312334"/> + <reference key="destination" ref="289177107"/> + </object> + <int key="connectionID">258</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">fCancelPreviewMovieButton</string> + <reference key="source" ref="355312334"/> + <reference key="destination" ref="569473100"/> + </object> + <int key="connectionID">263</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBActionConnection" key="connection"> + <string key="label">createMoviePreview:</string> + <reference key="source" ref="355312334"/> + <reference key="destination" ref="569473100"/> + </object> + <int key="connectionID">264</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">fFullScreenToggleButton</string> + <reference key="source" ref="355312334"/> + <reference key="destination" ref="537831590"/> + </object> + <int key="connectionID">267</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBActionConnection" key="connection"> + <string key="label">toggleScreenMode:</string> + <reference key="source" ref="355312334"/> + <reference key="destination" ref="537831590"/> + </object> + <int key="connectionID">270</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">fPictureSettingsToggleButton</string> + <reference key="source" ref="355312334"/> + <reference key="destination" ref="141370142"/> + </object> + <int key="connectionID">273</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBActionConnection" key="connection"> + <string key="label">showPictureSettings:</string> + <reference key="source" ref="355312334"/> + <reference key="destination" ref="141370142"/> + </object> + <int key="connectionID">274</int> + </object> + </object> + <object class="IBMutableOrderedSet" key="objectRecords"> + <object class="NSArray" key="orderedObjects"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="IBObjectRecord"> + <int key="objectID">0</int> + <object class="NSArray" key="object" id="48079043"> + <bool key="EncodedWithXMLCoder">YES</bool> + </object> + <reference key="children" ref="273418435"/> + <nil key="parent"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">-2</int> + <reference key="object" ref="355312334"/> + <reference key="parent" ref="48079043"/> + <string type="base64-UTF8" key="objectName">RmlsZSdzIE93bmVyA</string> + </object> + <object class="IBObjectRecord"> + <int key="objectID">-1</int> + <reference key="object" ref="844574444"/> + <reference key="parent" ref="48079043"/> + <string key="objectName">First Responder</string> + </object> + <object class="IBObjectRecord"> + <int key="objectID">-3</int> + <reference key="object" ref="837220151"/> + <reference key="parent" ref="48079043"/> + <string key="objectName">Application</string> + </object> + <object class="IBObjectRecord"> + <int key="objectID">5</int> + <reference key="object" ref="616825745"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="49161063"/> + </object> + <reference key="parent" ref="48079043"/> + <string key="objectName">PreviewPanel</string> + </object> + <object class="IBObjectRecord"> + <int key="objectID">6</int> + <reference key="object" ref="49161063"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="289177107"/> + </object> + <reference key="parent" ref="616825745"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">257</int> + <reference key="object" ref="289177107"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="48693112"/> + <reference ref="768906858"/> + <reference ref="92351498"/> + <reference ref="844127024"/> + </object> + <reference key="parent" ref="49161063"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">179</int> + <reference key="object" ref="844127024"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="955430771"/> + </object> + <reference key="parent" ref="289177107"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">180</int> + <reference key="object" ref="955430771"/> + <reference key="parent" ref="844127024"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">207</int> + <reference key="object" ref="48693112"/> + <reference key="parent" ref="289177107"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">252</int> + <reference key="object" ref="768906858"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="196868285"/> + <reference ref="569473100"/> + <reference ref="986015194"/> + </object> + <reference key="parent" ref="289177107"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">213</int> + <reference key="object" ref="196868285"/> + <reference key="parent" ref="768906858"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">223</int> + <reference key="object" ref="986015194"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="304208899"/> + </object> + <reference key="parent" ref="768906858"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">224</int> + <reference key="object" ref="304208899"/> + <reference key="parent" ref="986015194"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">251</int> + <reference key="object" ref="92351498"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="628196212"/> + <reference ref="66510867"/> + <reference ref="798240356"/> + <reference ref="396925210"/> + <reference ref="598619000"/> + <reference ref="537831590"/> + <reference ref="141370142"/> + </object> + <reference key="parent" ref="289177107"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">38</int> + <reference key="object" ref="628196212"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="921881842"/> + </object> + <reference key="parent" ref="92351498"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">215</int> + <reference key="object" ref="798240356"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="975305481"/> + </object> + <reference key="parent" ref="92351498"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">234</int> + <reference key="object" ref="66510867"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="567286013"/> + </object> + <reference key="parent" ref="92351498"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">226</int> + <reference key="object" ref="598619000"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="953108737"/> + </object> + <reference key="parent" ref="92351498"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">209</int> + <reference key="object" ref="396925210"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="639767004"/> + </object> + <reference key="parent" ref="92351498"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">210</int> + <reference key="object" ref="639767004"/> + <reference key="parent" ref="396925210"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">227</int> + <reference key="object" ref="953108737"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="501672847"/> + </object> + <reference key="parent" ref="598619000"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">228</int> + <reference key="object" ref="501672847"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="372655630"/> + <reference ref="607756368"/> + <reference ref="272743761"/> + </object> + <reference key="parent" ref="953108737"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">231</int> + <reference key="object" ref="372655630"/> + <reference key="parent" ref="501672847"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">230</int> + <reference key="object" ref="607756368"/> + <reference key="parent" ref="501672847"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">229</int> + <reference key="object" ref="272743761"/> + <reference key="parent" ref="501672847"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">235</int> + <reference key="object" ref="567286013"/> + <reference key="parent" ref="66510867"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">216</int> + <reference key="object" ref="975305481"/> + <reference key="parent" ref="798240356"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">165</int> + <reference key="object" ref="921881842"/> + <reference key="parent" ref="628196212"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">261</int> + <reference key="object" ref="569473100"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="908165435"/> + </object> + <reference key="parent" ref="768906858"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">262</int> + <reference key="object" ref="908165435"/> + <reference key="parent" ref="569473100"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">265</int> + <reference key="object" ref="537831590"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="29238952"/> + </object> + <reference key="parent" ref="92351498"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">266</int> + <reference key="object" ref="29238952"/> + <reference key="parent" ref="537831590"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">271</int> + <reference key="object" ref="141370142"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="606007744"/> + </object> + <reference key="parent" ref="92351498"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">272</int> + <reference key="object" ref="606007744"/> + <reference key="parent" ref="141370142"/> + </object> + </object> + </object> + <object class="NSMutableDictionary" key="flattenedProperties"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSMutableArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>-1.IBPluginDependency</string> + <string>-2.IBPluginDependency</string> + <string>-3.IBPluginDependency</string> + <string>-3.ImportedFromIB2</string> + <string>179.IBPluginDependency</string> + <string>180.IBPluginDependency</string> + <string>207.IBPluginDependency</string> + <string>209.IBPluginDependency</string> + <string>210.IBPluginDependency</string> + <string>213.IBPluginDependency</string> + <string>215.IBPluginDependency</string> + <string>215.IBViewIntegration.shadowBlurRadius</string> + <string>215.IBViewIntegration.shadowColor</string> + <string>215.IBViewIntegration.shadowOffsetHeight</string> + <string>215.IBViewIntegration.shadowOffsetWidth</string> + <string>216.IBPluginDependency</string> + <string>223.IBPluginDependency</string> + <string>224.IBPluginDependency</string> + <string>226.IBPluginDependency</string> + <string>226.ImportedFromIB2</string> + <string>228.IBEditorWindowLastContentRect</string> + <string>228.IBPluginDependency</string> + <string>228.ImportedFromIB2</string> + <string>229.IBPluginDependency</string> + <string>229.ImportedFromIB2</string> + <string>230.IBPluginDependency</string> + <string>230.ImportedFromIB2</string> + <string>231.IBPluginDependency</string> + <string>231.ImportedFromIB2</string> + <string>234.IBPluginDependency</string> + <string>235.IBPluginDependency</string> + <string>251.IBViewIntegration.shadowBlurRadius</string> + <string>251.IBViewIntegration.shadowColor</string> + <string>251.IBViewIntegration.shadowOffsetHeight</string> + <string>251.IBViewIntegration.shadowOffsetWidth</string> + <string>252.IBViewIntegration.shadowBlurRadius</string> + <string>252.IBViewIntegration.shadowColor</string> + <string>252.IBViewIntegration.shadowOffsetHeight</string> + <string>252.IBViewIntegration.shadowOffsetWidth</string> + <string>257.IBPluginDependency</string> + <string>261.IBPluginDependency</string> + <string>262.IBPluginDependency</string> + <string>265.IBPluginDependency</string> + <string>265.IBViewIntegration.shadowBlurRadius</string> + <string>265.IBViewIntegration.shadowColor</string> + <string>265.IBViewIntegration.shadowOffsetHeight</string> + <string>265.IBViewIntegration.shadowOffsetWidth</string> + <string>266.IBPluginDependency</string> + <string>271.IBPluginDependency</string> + <string>271.IBViewIntegration.shadowBlurRadius</string> + <string>271.IBViewIntegration.shadowColor</string> + <string>271.IBViewIntegration.shadowOffsetHeight</string> + <string>271.IBViewIntegration.shadowOffsetWidth</string> + <string>272.IBPluginDependency</string> + <string>38.IBPluginDependency</string> + <string>38.ImportedFromIB2</string> + <string>5.IBEditorWindowLastContentRect</string> + <string>5.IBPluginDependency</string> + <string>5.IBViewEditorWindowController.showingLayoutRectangles</string> + <string>5.IBWindowTemplateEditedContentRect</string> + <string>5.ImportedFromIB2</string> + <string>5.editorWindowContentRectSynchronizationRect</string> + <string>5.windowTemplate.hasMaxSize</string> + <string>5.windowTemplate.hasMinSize</string> + <string>5.windowTemplate.maxSize</string> + <string>5.windowTemplate.minSize</string> + <string>6.IBPluginDependency</string> + <string>6.ImportedFromIB2</string> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <reference ref="9"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.QTKitIBPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <integer value="0" id="8"/> + <object class="NSColor" id="864448722"> + <int key="NSColorSpace">3</int> + <bytes key="NSWhite">MAA</bytes> + </object> + <reference ref="8"/> + <reference ref="8"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <reference ref="9"/> + <string>{{656, 304}, {87, 48}}</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <reference ref="9"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <reference ref="9"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <reference ref="9"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <reference ref="9"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <reference ref="8"/> + <reference ref="864448722"/> + <reference ref="8"/> + <reference ref="8"/> + <reference ref="8"/> + <reference ref="864448722"/> + <reference ref="8"/> + <reference ref="8"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <reference ref="8"/> + <reference ref="864448722"/> + <reference ref="8"/> + <reference ref="8"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <reference ref="8"/> + <reference ref="864448722"/> + <reference ref="8"/> + <reference ref="8"/> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <reference ref="9"/> + <string>{{34, 423}, {475, 433}}</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <reference ref="9"/> + <string>{{34, 423}, {475, 433}}</string> + <reference ref="9"/> + <string>{{221, 276}, {533, 580}}</string> + <reference ref="9"/> + <reference ref="8"/> + <string>{3.40282e+38, 3.40282e+38}</string> + <string>{453, 550}</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <reference ref="9"/> + </object> + </object> + <object class="NSMutableDictionary" key="unlocalizedProperties"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + </object> + </object> + <nil key="activeLocalization"/> + <object class="NSMutableDictionary" key="localizations"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + </object> + </object> + <nil key="sourceID"/> + <int key="maxID">274</int> + </object> + <object class="IBClassDescriber" key="IBDocument.Classes"> + <object class="NSMutableArray" key="referencedPartialClassDescriptions"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="IBPartialClassDescription"> + <string key="className">FirstResponder</string> + <string key="superclassName">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBUserSource</string> + <string key="minorKey"/> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSBox</string> + <string key="superclassName">NSView</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBUserSource</string> + <string key="minorKey"/> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBUserSource</string> + <string key="minorKey"/> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">PreviewController</string> + <string key="superclassName">NSWindowController</string> + <object class="NSMutableDictionary" key="actions"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSMutableArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>SettingsChanged:</string> + <string>createMoviePreview:</string> + <string>goFullScreen:</string> + <string>goWindowedScreen:</string> + <string>pictureSliderChanged:</string> + <string>previewDurationPopUpChanged:</string> + <string>showMoviePreview:</string> + <string>showPictureSettings:</string> + <string>showPreviewWindow:</string> + <string>toggleScreenMode:</string> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>NSString</string> + <string>id</string> + <string>id</string> + <string>id</string> + </object> + </object> + <object class="NSMutableDictionary" key="outlets"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSMutableArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>fCancelPreviewMovieButton</string> + <string>fCreatePreviewMovieButton</string> + <string>fEncodingControlBox</string> + <string>fFullScreenToggleButton</string> + <string>fInfoField</string> + <string>fMovieCreationProgressIndicator</string> + <string>fMovieView</string> + <string>fPictureControlBox</string> + <string>fPictureSettingsToggleButton</string> + <string>fPictureSlider</string> + <string>fPictureView</string> + <string>fPictureViewArea</string> + <string>fPreviewMovieLengthPopUp</string> + <string>fPreviewMovieStatusField</string> + <string>fPreviewWindow</string> + <string>fShowPreviewMovieButton</string> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>NSButton</string> + <string>NSButton</string> + <string>NSBox</string> + <string>NSButton</string> + <string>NSTextField</string> + <string>NSProgressIndicator</string> + <string>QTMovieView</string> + <string>NSBox</string> + <string>NSButton</string> + <string>NSSlider</string> + <string>NSImageView</string> + <string>NSBox</string> + <string>NSPopUpButton</string> + <string>NSTextField</string> + <string>NSWindow</string> + <string>NSButton</string> + </object> + </object> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBProjectSource</string> + <string key="minorKey">HBPreviewController.h</string> + </object> + </object> + </object> + </object> + <int key="IBDocument.localizationMode">0</int> + <string key="IBDocument.LastKnownRelativeProjectPath">../HandBrake.xcodeproj</string> + <int key="IBDocument.defaultPropertyAccessControl">3</int> + </data> +</archive> diff --git a/macosx/English.lproj/PictureSettings.xib b/macosx/English.lproj/PictureSettings.xib index 0d529c935..74bfbec31 100644 --- a/macosx/English.lproj/PictureSettings.xib +++ b/macosx/English.lproj/PictureSettings.xib @@ -8,11 +8,10 @@ <string key="IBDocument.HIToolboxVersion">353.00</string> <object class="NSMutableArray" key="IBDocument.EditedObjectIDs"> <bool key="EncodedWithXMLCoder">YES</bool> - <integer value="6"/> + <integer value="5"/> </object> <object class="NSArray" key="IBDocument.PluginDependencies"> <bool key="EncodedWithXMLCoder">YES</bool> - <string>com.apple.QTKitIBPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> </object> <object class="NSMutableArray" key="IBDocument.RootObjects" id="273418435"> @@ -27,92 +26,22 @@ <string key="NSClassName">NSApplication</string> </object> <object class="NSWindowTemplate" id="616825745"> - <int key="NSWindowStyleMask">7</int> + <int key="NSWindowStyleMask">8215</int> <int key="NSWindowBacking">2</int> - <string key="NSWindowRect">{{482, 299}, {484, 557}}</string> - <int key="NSWTFlags">1886912512</int> + <string key="NSWindowRect">{{1211, 357}, {229, 518}}</string> + <int key="NSWTFlags">1886913536</int> <string key="NSWindowTitle">Picture Settings</string> <string key="NSWindowClass">NSPanel</string> <object class="NSMutableString" key="NSViewClass"> <characters key="NS.bytes">View</characters> </object> - <string key="NSWindowContentMaxSize">{3.40282e+38, 3.40282e+38}</string> - <string key="NSWindowContentMinSize">{453, 558}</string> + <string key="NSWindowContentMaxSize">{10000, 10000}</string> + <string key="NSWindowContentMinSize">{230, 500}</string> <object class="NSView" key="NSWindowView" id="49161063"> <reference key="NSNextResponder"/> <int key="NSvFlags">256</int> <object class="NSMutableArray" key="NSSubviews"> <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSBox" id="574970834"> - <reference key="NSNextResponder" ref="49161063"/> - <int key="NSvFlags">290</int> - <string key="NSFrame">{{20, 57}, {413, 5}}</string> - <reference key="NSSuperview" ref="49161063"/> - <string key="NSOffsets">{0, 0}</string> - <object class="NSTextFieldCell" key="NSTitleCell"> - <int key="NSCellFlags">67239424</int> - <int key="NSCellFlags2">0</int> - <string key="NSContents">Box</string> - <object class="NSFont" key="NSSupport" id="1003998324"> - <string key="NSName">LucidaGrande</string> - <double key="NSSize">1.300000e+01</double> - <int key="NSfFlags">1044</int> - </object> - <object class="NSColor" key="NSBackgroundColor" id="406287577"> - <int key="NSColorSpace">6</int> - <string key="NSCatalogName">System</string> - <string key="NSColorName">textBackgroundColor</string> - <object class="NSColor" key="NSColor" id="45357611"> - <int key="NSColorSpace">3</int> - <bytes key="NSWhite">MQA</bytes> - </object> - </object> - <object class="NSColor" key="NSTextColor"> - <int key="NSColorSpace">3</int> - <bytes key="NSWhite">MCAwLjgwMDAwMDAxAA</bytes> - </object> - </object> - <int key="NSBorderType">3</int> - <int key="NSBoxType">2</int> - <int key="NSTitlePosition">0</int> - <bool key="NSTransparent">NO</bool> - </object> - <object class="NSTextField" id="628196212"> - <reference key="NSNextResponder" ref="49161063"/> - <int key="NSvFlags">290</int> - <string key="NSFrame">{{16, 19}, {215, 14}}</string> - <reference key="NSSuperview" ref="49161063"/> - <bool key="NSEnabled">YES</bool> - <object class="NSTextFieldCell" key="NSCell" id="921881842"> - <int key="NSCellFlags">67239424</int> - <int key="NSCellFlags2">4325376</int> - <string key="NSContents"/> - <object class="NSFont" key="NSSupport" id="26"> - <string key="NSName">LucidaGrande</string> - <double key="NSSize">1.100000e+01</double> - <int key="NSfFlags">3100</int> - </object> - <reference key="NSControlView" ref="628196212"/> - <object class="NSColor" key="NSBackgroundColor" id="407686733"> - <int key="NSColorSpace">6</int> - <string key="NSCatalogName">System</string> - <string key="NSColorName">controlColor</string> - <object class="NSColor" key="NSColor"> - <int key="NSColorSpace">3</int> - <bytes key="NSWhite">MC42NjY2NjY2OQA</bytes> - </object> - </object> - <object class="NSColor" key="NSTextColor" id="1053668690"> - <int key="NSColorSpace">6</int> - <string key="NSCatalogName">System</string> - <string key="NSColorName">controlTextColor</string> - <object class="NSColor" key="NSColor" id="590886446"> - <int key="NSColorSpace">3</int> - <bytes key="NSWhite">MAA</bytes> - </object> - </object> - </object> - </object> <object class="NSBox" id="1064912113"> <reference key="NSNextResponder" ref="49161063"/> <int key="NSvFlags">265</int> @@ -126,8 +55,35 @@ <object class="NSStepper" id="580805308"> <reference key="NSNextResponder" ref="114416973"/> <int key="NSvFlags">292</int> - <string key="NSFrame">{{112, 65}, {19, 28}}</string> + <string key="NSFrame">{{110, 62}, {19, 28}}</string> <reference key="NSSuperview" ref="114416973"/> + <bool key="NSViewIsLayerTreeHost">YES</bool> + <object class="NSArray" key="NSViewContentFilters"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="CIColorMonochrome"> + <object class="CIColor" key="CI_inputColor"> + <float key="red">7.019608e-01</float> + <float key="green">7.019608e-01</float> + <float key="blue">7.019608e-01</float> + <float key="alpha">1.000000e+00</float> + </object> + <real value="1.000000e+00" key="CI_inputIntensity" id="559925184"/> + <bool key="CIEnabled">YES</bool> + </object> + </object> + <object class="NSArray" key="NSViewBackgroundFilters"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="CIColorMonochrome"> + <object class="CIColor" key="CI_inputColor"> + <float key="red">6.000000e-01</float> + <float key="green">4.500000e-01</float> + <float key="blue">3.000000e-01</float> + <float key="alpha">1.000000e+00</float> + </object> + <reference key="CI_inputIntensity" ref="559925184"/> + <bool key="CIEnabled">YES</bool> + </object> + </object> <bool key="NSEnabled">YES</bool> <object class="NSStepperCell" key="NSCell" id="44321990"> <int key="NSCellFlags">917024</int> @@ -141,8 +97,22 @@ <object class="NSStepper" id="510144318"> <reference key="NSNextResponder" ref="114416973"/> <int key="NSvFlags">292</int> - <string key="NSFrame">{{155, 35}, {19, 28}}</string> + <string key="NSFrame">{{153, 32}, {19, 28}}</string> <reference key="NSSuperview" ref="114416973"/> + <bool key="NSViewIsLayerTreeHost">YES</bool> + <object class="NSArray" key="NSViewContentFilters"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="CIColorMonochrome"> + <object class="CIColor" key="CI_inputColor"> + <float key="red">7.019608e-01</float> + <float key="green">7.019608e-01</float> + <float key="blue">7.019608e-01</float> + <float key="alpha">1.000000e+00</float> + </object> + <reference key="CI_inputIntensity" ref="559925184"/> + <bool key="CIEnabled">YES</bool> + </object> + </object> <bool key="NSEnabled">YES</bool> <object class="NSStepperCell" key="NSCell" id="759792686"> <int key="NSCellFlags">917024</int> @@ -156,8 +126,22 @@ <object class="NSMatrix" id="1032624817"> <reference key="NSNextResponder" ref="114416973"/> <int key="NSvFlags">256</int> - <string key="NSFrame">{{18, 96}, {77, 40}}</string> + <string key="NSFrame">{{16, 93}, {20, 40}}</string> <reference key="NSSuperview" ref="114416973"/> + <bool key="NSViewIsLayerTreeHost">YES</bool> + <object class="NSArray" key="NSViewContentFilters"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="CIColorMonochrome"> + <object class="CIColor" key="CI_inputColor"> + <float key="red">7.019608e-01</float> + <float key="green">7.019608e-01</float> + <float key="blue">7.019608e-01</float> + <float key="alpha">1.000000e+00</float> + </object> + <reference key="CI_inputIntensity" ref="559925184"/> + <bool key="CIEnabled">YES</bool> + </object> + </object> <bool key="NSEnabled">YES</bool> <int key="NSNumRows">2</int> <int key="NSNumCols">1</int> @@ -167,7 +151,11 @@ <int key="NSCellFlags">-2080244224</int> <int key="NSCellFlags2">131072</int> <string key="NSContents">Automatic</string> - <reference key="NSSupport" ref="26"/> + <object class="NSFont" key="NSSupport" id="26"> + <string key="NSName">LucidaGrande</string> + <double key="NSSize">1.100000e+01</double> + <int key="NSfFlags">3100</int> + </object> <reference key="NSControlView" ref="1032624817"/> <int key="NSButtonFlags">1211912703</int> <int key="NSButtonFlags2">0</int> @@ -196,15 +184,19 @@ <int key="NSPeriodicInterval">75</int> </object> </object> - <string key="NSCellSize">{77, 18}</string> + <string key="NSCellSize">{20, 18}</string> <string key="NSIntercellSpacing">{4, 4}</string> - <int key="NSMatrixFlags">1143472128</int> + <int key="NSMatrixFlags">1143480320</int> <string key="NSCellClass">NSActionCell</string> <object class="NSButtonCell" key="NSProtoCell" id="643930266"> <int key="NSCellFlags">67239424</int> <int key="NSCellFlags2">0</int> <string key="NSContents">Radio</string> - <reference key="NSSupport" ref="1003998324"/> + <object class="NSFont" key="NSSupport" id="1003998324"> + <string key="NSName">LucidaGrande</string> + <double key="NSSize">1.300000e+01</double> + <int key="NSfFlags">1044</int> + </object> <int key="NSButtonFlags">1211912703</int> <int key="NSButtonFlags2">0</int> <object class="NSImage" key="NSNormalImage"> @@ -214,7 +206,7 @@ <bool key="EncodedWithXMLCoder">YES</bool> <object class="NSArray"> <bool key="EncodedWithXMLCoder">YES</bool> - <integer value="0"/> + <integer value="0" id="8"/> <object class="NSBitmapImageRep"> <object class="NSData" key="NSTIFFRepresentation"> <bytes key="NS.bytes">TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA @@ -321,14 +313,25 @@ AAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSBDb21wdXRlciwgSW5jLiwgMjAwNQAAAAA</bytes> <int key="NSPeriodicInterval">75</int> </object> <reference key="NSSelectedCell" ref="660067650"/> - <reference key="NSBackgroundColor" ref="407686733"/> - <reference key="NSCellBackgroundColor" ref="45357611"/> + <object class="NSColor" key="NSBackgroundColor" id="407686733"> + <int key="NSColorSpace">6</int> + <string key="NSCatalogName">System</string> + <string key="NSColorName">controlColor</string> + <object class="NSColor" key="NSColor"> + <int key="NSColorSpace">3</int> + <bytes key="NSWhite">MC42NjY2NjY2OQA</bytes> + </object> + </object> + <object class="NSColor" key="NSCellBackgroundColor" id="45357611"> + <int key="NSColorSpace">3</int> + <bytes key="NSWhite">MQA</bytes> + </object> <reference key="NSFont" ref="1003998324"/> </object> <object class="NSTextField" id="897162141"> <reference key="NSNextResponder" ref="114416973"/> <int key="NSvFlags">292</int> - <string key="NSFrame">{{54, 69}, {56, 19}}</string> + <string key="NSFrame">{{52, 66}, {56, 19}}</string> <reference key="NSSuperview" ref="114416973"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="936113070"> @@ -338,19 +341,20 @@ AAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSBDb21wdXRlciwgSW5jLiwgMjAwNQAAAAA</bytes> <reference key="NSSupport" ref="26"/> <reference key="NSControlView" ref="897162141"/> <bool key="NSDrawsBackground">YES</bool> - <reference key="NSBackgroundColor" ref="406287577"/> - <object class="NSColor" key="NSTextColor" id="446986434"> - <int key="NSColorSpace">6</int> - <string key="NSCatalogName">System</string> - <string key="NSColorName">textColor</string> - <reference key="NSColor" ref="590886446"/> + <object class="NSColor" key="NSBackgroundColor" id="501609908"> + <int key="NSColorSpace">1</int> + <bytes key="NSRGB">MC4yIDAuMiAwLjIAA</bytes> + </object> + <object class="NSColor" key="NSTextColor" id="852384715"> + <int key="NSColorSpace">1</int> + <bytes key="NSRGB">MSAxIDEAA</bytes> </object> </object> </object> <object class="NSTextField" id="773085513"> <reference key="NSNextResponder" ref="114416973"/> <int key="NSvFlags">292</int> - <string key="NSFrame">{{54, 10}, {56, 19}}</string> + <string key="NSFrame">{{52, 7}, {56, 19}}</string> <reference key="NSSuperview" ref="114416973"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="634956024"> @@ -360,15 +364,29 @@ AAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSBDb21wdXRlciwgSW5jLiwgMjAwNQAAAAA</bytes> <reference key="NSSupport" ref="26"/> <reference key="NSControlView" ref="773085513"/> <bool key="NSDrawsBackground">YES</bool> - <reference key="NSBackgroundColor" ref="406287577"/> - <reference key="NSTextColor" ref="446986434"/> + <reference key="NSBackgroundColor" ref="501609908"/> + <reference key="NSTextColor" ref="852384715"/> </object> </object> <object class="NSStepper" id="1067684983"> <reference key="NSNextResponder" ref="114416973"/> <int key="NSvFlags">292</int> - <string key="NSFrame">{{76, 35}, {19, 28}}</string> + <string key="NSFrame">{{74, 32}, {19, 28}}</string> <reference key="NSSuperview" ref="114416973"/> + <bool key="NSViewIsLayerTreeHost">YES</bool> + <object class="NSArray" key="NSViewContentFilters"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="CIColorMonochrome"> + <object class="CIColor" key="CI_inputColor"> + <float key="red">7.019608e-01</float> + <float key="green">7.019608e-01</float> + <float key="blue">7.019608e-01</float> + <float key="alpha">1.000000e+00</float> + </object> + <reference key="CI_inputIntensity" ref="559925184"/> + <bool key="CIEnabled">YES</bool> + </object> + </object> <bool key="NSEnabled">YES</bool> <object class="NSStepperCell" key="NSCell" id="996643427"> <int key="NSCellFlags">917024</int> @@ -382,7 +400,7 @@ AAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSBDb21wdXRlciwgSW5jLiwgMjAwNQAAAAA</bytes> <object class="NSTextField" id="411931143"> <reference key="NSNextResponder" ref="114416973"/> <int key="NSvFlags">292</int> - <string key="NSFrame">{{97, 40}, {56, 19}}</string> + <string key="NSFrame">{{95, 37}, {56, 19}}</string> <reference key="NSSuperview" ref="114416973"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="1050606643"> @@ -392,14 +410,14 @@ AAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSBDb21wdXRlciwgSW5jLiwgMjAwNQAAAAA</bytes> <reference key="NSSupport" ref="26"/> <reference key="NSControlView" ref="411931143"/> <bool key="NSDrawsBackground">YES</bool> - <reference key="NSBackgroundColor" ref="406287577"/> - <reference key="NSTextColor" ref="446986434"/> + <reference key="NSBackgroundColor" ref="501609908"/> + <reference key="NSTextColor" ref="852384715"/> </object> </object> <object class="NSTextField" id="842452881"> <reference key="NSNextResponder" ref="114416973"/> <int key="NSvFlags">292</int> - <string key="NSFrame">{{18, 40}, {56, 19}}</string> + <string key="NSFrame">{{16, 37}, {56, 19}}</string> <reference key="NSSuperview" ref="114416973"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="904241294"> @@ -409,15 +427,29 @@ AAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSBDb21wdXRlciwgSW5jLiwgMjAwNQAAAAA</bytes> <reference key="NSSupport" ref="26"/> <reference key="NSControlView" ref="842452881"/> <bool key="NSDrawsBackground">YES</bool> - <reference key="NSBackgroundColor" ref="406287577"/> - <reference key="NSTextColor" ref="446986434"/> + <reference key="NSBackgroundColor" ref="501609908"/> + <reference key="NSTextColor" ref="852384715"/> </object> </object> <object class="NSStepper" id="133033963"> <reference key="NSNextResponder" ref="114416973"/> <int key="NSvFlags">292</int> - <string key="NSFrame">{{113, 5}, {19, 28}}</string> + <string key="NSFrame">{{111, 2}, {19, 28}}</string> <reference key="NSSuperview" ref="114416973"/> + <bool key="NSViewIsLayerTreeHost">YES</bool> + <object class="NSArray" key="NSViewContentFilters"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="CIColorMonochrome"> + <object class="CIColor" key="CI_inputColor"> + <float key="red">7.019608e-01</float> + <float key="green">7.019608e-01</float> + <float key="blue">7.019608e-01</float> + <float key="alpha">1.000000e+00</float> + </object> + <reference key="CI_inputIntensity" ref="559925184"/> + <bool key="CIEnabled">YES</bool> + </object> + </object> <bool key="NSEnabled">YES</bool> <object class="NSStepperCell" key="NSCell" id="71578223"> <int key="NSCellFlags">917024</int> @@ -428,20 +460,57 @@ AAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSBDb21wdXRlciwgSW5jLiwgMjAwNQAAAAA</bytes> <bool key="NSAutorepeat">YES</bool> </object> </object> + <object class="NSTextField" id="1021399174"> + <reference key="NSNextResponder" ref="114416973"/> + <int key="NSvFlags">256</int> + <string key="NSFrame">{{41, 116}, {68, 17}}</string> + <reference key="NSSuperview" ref="114416973"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="215687429"> + <int key="NSCellFlags">67239424</int> + <int key="NSCellFlags2">4194304</int> + <string key="NSContents">Automatic</string> + <reference key="NSSupport" ref="26"/> + <reference key="NSControlView" ref="1021399174"/> + <reference key="NSBackgroundColor" ref="407686733"/> + <reference key="NSTextColor" ref="852384715"/> + </object> + </object> + <object class="NSTextField" id="194145642"> + <reference key="NSNextResponder" ref="114416973"/> + <int key="NSvFlags">256</int> + <string key="NSFrame">{{41, 93}, {68, 17}}</string> + <reference key="NSSuperview" ref="114416973"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="664940567"> + <int key="NSCellFlags">67239424</int> + <int key="NSCellFlags2">4194304</int> + <string key="NSContents">Custom</string> + <reference key="NSSupport" ref="26"/> + <reference key="NSControlView" ref="194145642"/> + <reference key="NSBackgroundColor" ref="407686733"/> + <reference key="NSTextColor" ref="852384715"/> + </object> + </object> </object> - <string key="NSFrame">{{2, 2}, {189, 146}}</string> + <string key="NSFrame">{{2, 15}, {189, 144}}</string> <reference key="NSSuperview" ref="1064912113"/> </object> </object> - <string key="NSFrame">{{272, 234}, {193, 163}}</string> + <string key="NSFrame">{{17, 183}, {193, 161}}</string> <reference key="NSSuperview" ref="49161063"/> <string key="NSOffsets">{0, 0}</string> <object class="NSTextFieldCell" key="NSTitleCell"> <int key="NSCellFlags">67239424</int> <int key="NSCellFlags2">0</int> - <string key="NSContents">Crop</string> + <string key="NSContents"/> <reference key="NSSupport" ref="26"/> - <reference key="NSBackgroundColor" ref="406287577"/> + <object class="NSColor" key="NSBackgroundColor" id="406287577"> + <int key="NSColorSpace">6</int> + <string key="NSCatalogName">System</string> + <string key="NSColorName">textBackgroundColor</string> + <reference key="NSColor" ref="45357611"/> + </object> <object class="NSColor" key="NSTextColor"> <int key="NSColorSpace">3</int> <bytes key="NSWhite">MCAwLjgwMDAwMDAxAA</bytes> @@ -450,12 +519,12 @@ AAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSBDb21wdXRlciwgSW5jLiwgMjAwNQAAAAA</bytes> <reference key="NSContentView" ref="114416973"/> <int key="NSBorderType">3</int> <int key="NSBoxType">0</int> - <int key="NSTitlePosition">2</int> + <int key="NSTitlePosition">5</int> <bool key="NSTransparent">NO</bool> </object> <object class="NSBox" id="1011917013"> <reference key="NSNextResponder" ref="49161063"/> - <int key="NSvFlags">265</int> + <int key="NSvFlags">268</int> <object class="NSMutableArray" key="NSSubviews"> <bool key="EncodedWithXMLCoder">YES</bool> <object class="NSView" id="278260513"> @@ -466,7 +535,7 @@ AAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSBDb21wdXRlciwgSW5jLiwgMjAwNQAAAAA</bytes> <object class="NSTextField" id="513894170"> <reference key="NSNextResponder" ref="278260513"/> <int key="NSvFlags">256</int> - <string key="NSFrame">{{14, 64}, {55, 14}}</string> + <string key="NSFrame">{{14, 53}, {55, 14}}</string> <reference key="NSSuperview" ref="278260513"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="863668536"> @@ -476,13 +545,35 @@ AAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSBDb21wdXRlciwgSW5jLiwgMjAwNQAAAAA</bytes> <reference key="NSSupport" ref="26"/> <reference key="NSControlView" ref="513894170"/> <reference key="NSBackgroundColor" ref="407686733"/> - <reference key="NSTextColor" ref="1053668690"/> + <object class="NSColor" key="NSTextColor" id="607671536"> + <int key="NSColorSpace">1</int> + <bytes key="NSRGB">MC44MDAwMDAwMSAwLjgwMDAwMDAxIDAuODAwMDAwMDEAA</bytes> + </object> + </object> + </object> + <object class="NSTextField" id="973216726"> + <reference key="NSNextResponder" ref="278260513"/> + <int key="NSvFlags">256</int> + <string key="NSFrame">{{16, 24}, {123, 17}}</string> + <reference key="NSSuperview" ref="278260513"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="910777593"> + <int key="NSCellFlags">67239424</int> + <int key="NSCellFlags2">71303168</int> + <string key="NSContents">Keep Aspect Ratio:</string> + <reference key="NSSupport" ref="26"/> + <reference key="NSControlView" ref="973216726"/> + <reference key="NSBackgroundColor" ref="407686733"/> + <object class="NSColor" key="NSTextColor"> + <int key="NSColorSpace">1</int> + <bytes key="NSRGB">MC44MDAwMDAwMSAwLjgwMDAwMDAxIDAuODAwMDAwMDEAA</bytes> + </object> </object> </object> <object class="NSTextField" id="443002022"> <reference key="NSNextResponder" ref="278260513"/> <int key="NSvFlags">292</int> - <string key="NSFrame">{{77, 62}, {62, 19}}</string> + <string key="NSFrame">{{77, 51}, {62, 19}}</string> <reference key="NSSuperview" ref="278260513"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="649389918"> @@ -492,15 +583,29 @@ AAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSBDb21wdXRlciwgSW5jLiwgMjAwNQAAAAA</bytes> <reference key="NSSupport" ref="26"/> <reference key="NSControlView" ref="443002022"/> <bool key="NSDrawsBackground">YES</bool> - <reference key="NSBackgroundColor" ref="406287577"/> - <reference key="NSTextColor" ref="446986434"/> + <reference key="NSBackgroundColor" ref="501609908"/> + <reference key="NSTextColor" ref="852384715"/> </object> </object> <object class="NSButton" id="302614967"> <reference key="NSNextResponder" ref="278260513"/> <int key="NSvFlags">256</int> - <string key="NSFrame">{{7, 36}, {152, 18}}</string> + <string key="NSFrame">{{141, 25}, {18, 18}}</string> <reference key="NSSuperview" ref="278260513"/> + <bool key="NSViewIsLayerTreeHost">YES</bool> + <object class="NSArray" key="NSViewContentFilters"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="CIColorMonochrome"> + <object class="CIColor" key="CI_inputColor"> + <float key="red">7.019608e-01</float> + <float key="green">7.019608e-01</float> + <float key="blue">7.019608e-01</float> + <float key="alpha">1.000000e+00</float> + </object> + <reference key="CI_inputIntensity" ref="559925184"/> + <bool key="CIEnabled">YES</bool> + </object> + </object> <bool key="NSEnabled">YES</bool> <object class="NSButtonCell" key="NSCell" id="595088069"> <int key="NSCellFlags">67239424</int> @@ -522,7 +627,7 @@ AAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSBDb21wdXRlciwgSW5jLiwgMjAwNQAAAAA</bytes> <object class="NSStepper" id="667015191"> <reference key="NSNextResponder" ref="278260513"/> <int key="NSvFlags">292</int> - <string key="NSFrame">{{141, 57}, {19, 28}}</string> + <string key="NSFrame">{{141, 46}, {19, 28}}</string> <reference key="NSSuperview" ref="278260513"/> <bool key="NSEnabled">YES</bool> <object class="NSStepperCell" key="NSCell" id="634499157"> @@ -539,7 +644,7 @@ AAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSBDb21wdXRlciwgSW5jLiwgMjAwNQAAAAA</bytes> <object class="NSTextField" id="569671425"> <reference key="NSNextResponder" ref="278260513"/> <int key="NSvFlags">256</int> - <string key="NSFrame">{{14, 91}, {55, 14}}</string> + <string key="NSFrame">{{14, 80}, {55, 14}}</string> <reference key="NSSuperview" ref="278260513"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="412868245"> @@ -549,13 +654,13 @@ AAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSBDb21wdXRlciwgSW5jLiwgMjAwNQAAAAA</bytes> <reference key="NSSupport" ref="26"/> <reference key="NSControlView" ref="569671425"/> <reference key="NSBackgroundColor" ref="407686733"/> - <reference key="NSTextColor" ref="1053668690"/> + <reference key="NSTextColor" ref="607671536"/> </object> </object> <object class="NSTextField" id="232869468"> <reference key="NSNextResponder" ref="278260513"/> <int key="NSvFlags">292</int> - <string key="NSFrame">{{77, 89}, {62, 19}}</string> + <string key="NSFrame">{{77, 78}, {62, 19}}</string> <reference key="NSSuperview" ref="278260513"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="96315080"> @@ -565,15 +670,29 @@ AAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSBDb21wdXRlciwgSW5jLiwgMjAwNQAAAAA</bytes> <reference key="NSSupport" ref="26"/> <reference key="NSControlView" ref="232869468"/> <bool key="NSDrawsBackground">YES</bool> - <reference key="NSBackgroundColor" ref="406287577"/> - <reference key="NSTextColor" ref="446986434"/> + <reference key="NSBackgroundColor" ref="501609908"/> + <reference key="NSTextColor" ref="852384715"/> </object> </object> <object class="NSStepper" id="221469578"> <reference key="NSNextResponder" ref="278260513"/> <int key="NSvFlags">292</int> - <string key="NSFrame">{{141, 84}, {19, 28}}</string> + <string key="NSFrame">{{141, 73}, {19, 28}}</string> <reference key="NSSuperview" ref="278260513"/> + <bool key="NSViewIsLayerTreeHost">YES</bool> + <object class="NSArray" key="NSViewContentFilters"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="CIColorMonochrome"> + <object class="CIColor" key="CI_inputColor"> + <float key="red">7.019608e-01</float> + <float key="green">7.019608e-01</float> + <float key="blue">7.019608e-01</float> + <float key="alpha">1.000000e+00</float> + </object> + <reference key="CI_inputIntensity" ref="559925184"/> + <bool key="CIEnabled">YES</bool> + </object> + </object> <bool key="NSEnabled">YES</bool> <object class="NSStepperCell" key="NSCell" id="714433793"> <int key="NSCellFlags">917024</int> @@ -589,8 +708,22 @@ AAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSBDb21wdXRlciwgSW5jLiwgMjAwNQAAAAA</bytes> <object class="NSPopUpButton" id="147098438"> <reference key="NSNextResponder" ref="278260513"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{82, 16}, {100, 15}}</string> + <string key="NSFrame">{{82, 0}, {100, 15}}</string> <reference key="NSSuperview" ref="278260513"/> + <bool key="NSViewIsLayerTreeHost">YES</bool> + <object class="NSArray" key="NSViewContentFilters"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="CIColorMonochrome"> + <object class="CIColor" key="CI_inputColor"> + <float key="red">7.019608e-01</float> + <float key="green">7.019608e-01</float> + <float key="blue">7.019608e-01</float> + <float key="alpha">1.000000e+00</float> + </object> + <reference key="CI_inputIntensity" ref="559925184"/> + <bool key="CIEnabled">YES</bool> + </object> + </object> <bool key="NSEnabled">YES</bool> <object class="NSPopUpButtonCell" key="NSCell" id="261514411"> <int key="NSCellFlags">-2076049856</int> @@ -664,7 +797,7 @@ AAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSBDb21wdXRlciwgSW5jLiwgMjAwNQAAAAA</bytes> <object class="NSTextField" id="301555397"> <reference key="NSNextResponder" ref="278260513"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{7, 15}, {73, 14}}</string> + <string key="NSFrame">{{7, 2}, {73, 14}}</string> <reference key="NSSuperview" ref="278260513"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="926890760"> @@ -674,21 +807,21 @@ AAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSBDb21wdXRlciwgSW5jLiwgMjAwNQAAAAA</bytes> <reference key="NSSupport" ref="26"/> <reference key="NSControlView" ref="301555397"/> <reference key="NSBackgroundColor" ref="407686733"/> - <reference key="NSTextColor" ref="1053668690"/> + <reference key="NSTextColor" ref="607671536"/> </object> </object> </object> - <string key="NSFrame">{{2, 2}, {189, 119}}</string> + <string key="NSFrame">{{2, 18}, {189, 110}}</string> <reference key="NSSuperview" ref="1011917013"/> </object> </object> - <string key="NSFrame">{{274, 401}, {193, 136}}</string> + <string key="NSFrame">{{19, 362}, {193, 130}}</string> <reference key="NSSuperview" ref="49161063"/> <string key="NSOffsets">{0, 0}</string> <object class="NSTextFieldCell" key="NSTitleCell"> <int key="NSCellFlags">67239424</int> <int key="NSCellFlags2">0</int> - <string key="NSContents">Size</string> + <string key="NSContents"/> <reference key="NSSupport" ref="26"/> <reference key="NSBackgroundColor" ref="406287577"/> <object class="NSColor" key="NSTextColor"> @@ -699,7 +832,7 @@ AAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSBDb21wdXRlciwgSW5jLiwgMjAwNQAAAAA</bytes> <reference key="NSContentView" ref="278260513"/> <int key="NSBorderType">3</int> <int key="NSBoxType">0</int> - <int key="NSTitlePosition">2</int> + <int key="NSTitlePosition">4</int> <bool key="NSTransparent">NO</bool> </object> <object class="NSBox" id="309105014"> @@ -715,8 +848,22 @@ AAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSBDb21wdXRlciwgSW5jLiwgMjAwNQAAAAA</bytes> <object class="NSPopUpButton" id="346912008"> <reference key="NSNextResponder" ref="628081139"/> <int key="NSvFlags">256</int> - <string key="NSFrame">{{73, 92}, {110, 15}}</string> + <string key="NSFrame">{{73, 74}, {110, 15}}</string> <reference key="NSSuperview" ref="628081139"/> + <bool key="NSViewIsLayerTreeHost">YES</bool> + <object class="NSArray" key="NSViewContentFilters"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="CIColorMonochrome"> + <object class="CIColor" key="CI_inputColor"> + <float key="red">7.019608e-01</float> + <float key="green">7.019608e-01</float> + <float key="blue">7.019608e-01</float> + <float key="alpha">1.000000e+00</float> + </object> + <reference key="CI_inputIntensity" ref="559925184"/> + <bool key="CIEnabled">YES</bool> + </object> + </object> <bool key="NSEnabled">YES</bool> <object class="NSPopUpButtonCell" key="NSCell" id="1034367716"> <int key="NSCellFlags">-2076049856</int> @@ -789,7 +936,7 @@ AAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSBDb21wdXRlciwgSW5jLiwgMjAwNQAAAAA</bytes> <object class="NSTextField" id="905607845"> <reference key="NSNextResponder" ref="628081139"/> <int key="NSvFlags">256</int> - <string key="NSFrame">{{2, 90}, {68, 17}}</string> + <string key="NSFrame">{{2, 72}, {68, 17}}</string> <reference key="NSSuperview" ref="628081139"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="522867811"> @@ -799,14 +946,44 @@ AAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSBDb21wdXRlciwgSW5jLiwgMjAwNQAAAAA</bytes> <reference key="NSSupport" ref="26"/> <reference key="NSControlView" ref="905607845"/> <reference key="NSBackgroundColor" ref="407686733"/> - <reference key="NSTextColor" ref="1053668690"/> + <reference key="NSTextColor" ref="852384715"/> + </object> + </object> + <object class="NSTextField" id="57714806"> + <reference key="NSNextResponder" ref="628081139"/> + <int key="NSvFlags">256</int> + <string key="NSFrame">{{2, 97}, {68, 17}}</string> + <reference key="NSSuperview" ref="628081139"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="456341790"> + <int key="NSCellFlags">67239424</int> + <int key="NSCellFlags2">71303168</int> + <string key="NSContents">Detelecine:</string> + <reference key="NSSupport" ref="26"/> + <reference key="NSControlView" ref="57714806"/> + <reference key="NSBackgroundColor" ref="407686733"/> + <reference key="NSTextColor" ref="852384715"/> </object> </object> <object class="NSButton" id="407610327"> <reference key="NSNextResponder" ref="628081139"/> <int key="NSvFlags">256</int> - <string key="NSFrame">{{6, 116}, {82, 18}}</string> + <string key="NSFrame">{{71, 99}, {18, 18}}</string> <reference key="NSSuperview" ref="628081139"/> + <bool key="NSViewIsLayerTreeHost">YES</bool> + <object class="NSArray" key="NSViewContentFilters"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="CIColorMonochrome"> + <object class="CIColor" key="CI_inputColor"> + <float key="red">7.019608e-01</float> + <float key="green">7.019608e-01</float> + <float key="blue">7.019608e-01</float> + <float key="alpha">1.000000e+00</float> + </object> + <reference key="CI_inputIntensity" ref="559925184"/> + <bool key="CIEnabled">YES</bool> + </object> + </object> <bool key="NSEnabled">YES</bool> <object class="NSButtonCell" key="NSCell" id="832714893"> <int key="NSCellFlags">67239424</int> @@ -826,8 +1003,22 @@ AAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSBDb21wdXRlciwgSW5jLiwgMjAwNQAAAAA</bytes> <object class="NSButton" id="974850032"> <reference key="NSNextResponder" ref="628081139"/> <int key="NSvFlags">256</int> - <string key="NSFrame">{{4, 17}, {82, 18}}</string> + <string key="NSFrame">{{64, -1}, {22, 18}}</string> <reference key="NSSuperview" ref="628081139"/> + <bool key="NSViewIsLayerTreeHost">YES</bool> + <object class="NSArray" key="NSViewContentFilters"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="CIColorMonochrome"> + <object class="CIColor" key="CI_inputColor"> + <float key="red">7.019608e-01</float> + <float key="green">7.019608e-01</float> + <float key="blue">7.019608e-01</float> + <float key="alpha">1.000000e+00</float> + </object> + <reference key="CI_inputIntensity" ref="559925184"/> + <bool key="CIEnabled">YES</bool> + </object> + </object> <bool key="NSEnabled">YES</bool> <object class="NSButtonCell" key="NSCell" id="464410464"> <int key="NSCellFlags">67239424</int> @@ -847,8 +1038,22 @@ AAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSBDb21wdXRlciwgSW5jLiwgMjAwNQAAAAA</bytes> <object class="NSPopUpButton" id="243795165"> <reference key="NSNextResponder" ref="628081139"/> <int key="NSvFlags">256</int> - <string key="NSFrame">{{74, 65}, {109, 15}}</string> + <string key="NSFrame">{{74, 47}, {109, 15}}</string> <reference key="NSSuperview" ref="628081139"/> + <bool key="NSViewIsLayerTreeHost">YES</bool> + <object class="NSArray" key="NSViewContentFilters"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="CIColorMonochrome"> + <object class="CIColor" key="CI_inputColor"> + <float key="red">7.019608e-01</float> + <float key="green">7.019608e-01</float> + <float key="blue">7.019608e-01</float> + <float key="alpha">1.000000e+00</float> + </object> + <reference key="CI_inputIntensity" ref="559925184"/> + <bool key="CIEnabled">YES</bool> + </object> + </object> <bool key="NSEnabled">YES</bool> <object class="NSPopUpButtonCell" key="NSCell" id="708528272"> <int key="NSCellFlags">-2076049856</int> @@ -917,7 +1122,7 @@ AAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSBDb21wdXRlciwgSW5jLiwgMjAwNQAAAAA</bytes> <object class="NSTextField" id="94419441"> <reference key="NSNextResponder" ref="628081139"/> <int key="NSvFlags">256</int> - <string key="NSFrame">{{19, 64}, {51, 17}}</string> + <string key="NSFrame">{{19, 46}, {51, 17}}</string> <reference key="NSSuperview" ref="628081139"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="741873280"> @@ -927,13 +1132,13 @@ AAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSBDb21wdXRlciwgSW5jLiwgMjAwNQAAAAA</bytes> <reference key="NSSupport" ref="26"/> <reference key="NSControlView" ref="94419441"/> <reference key="NSBackgroundColor" ref="407686733"/> - <reference key="NSTextColor" ref="1053668690"/> + <reference key="NSTextColor" ref="852384715"/> </object> </object> <object class="NSTextField" id="1069536323"> <reference key="NSNextResponder" ref="628081139"/> <int key="NSvFlags">256</int> - <string key="NSFrame">{{10, 40}, {51, 17}}</string> + <string key="NSFrame">{{10, 22}, {51, 17}}</string> <reference key="NSSuperview" ref="628081139"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="728722104"> @@ -943,13 +1148,29 @@ AAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSBDb21wdXRlciwgSW5jLiwgMjAwNQAAAAA</bytes> <reference key="NSSupport" ref="26"/> <reference key="NSControlView" ref="1069536323"/> <reference key="NSBackgroundColor" ref="407686733"/> - <reference key="NSTextColor" ref="1053668690"/> + <reference key="NSTextColor" ref="852384715"/> + </object> + </object> + <object class="NSTextField" id="762149330"> + <reference key="NSNextResponder" ref="628081139"/> + <int key="NSvFlags">256</int> + <string key="NSFrame">{{14, 1}, {55, 14}}</string> + <reference key="NSSuperview" ref="628081139"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="192583280"> + <int key="NSCellFlags">67239424</int> + <int key="NSCellFlags2">71303168</int> + <string key="NSContents">Decomb:</string> + <reference key="NSSupport" ref="26"/> + <reference key="NSControlView" ref="762149330"/> + <reference key="NSBackgroundColor" ref="407686733"/> + <reference key="NSTextColor" ref="852384715"/> </object> </object> <object class="NSTextField" id="314638156"> <reference key="NSNextResponder" ref="628081139"/> <int key="NSvFlags">256</int> - <string key="NSFrame">{{56, 42}, {31, 14}}</string> + <string key="NSFrame">{{56, 24}, {31, 14}}</string> <reference key="NSSuperview" ref="628081139"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="350598908"> @@ -959,14 +1180,28 @@ AAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSBDb21wdXRlciwgSW5jLiwgMjAwNQAAAAA</bytes> <reference key="NSSupport" ref="26"/> <reference key="NSControlView" ref="314638156"/> <reference key="NSBackgroundColor" ref="407686733"/> - <reference key="NSTextColor" ref="1053668690"/> + <reference key="NSTextColor" ref="852384715"/> </object> </object> <object class="NSSlider" id="581126685"> <reference key="NSNextResponder" ref="628081139"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{88, 40}, {96, 16}}</string> + <string key="NSFrame">{{88, 19}, {96, 16}}</string> <reference key="NSSuperview" ref="628081139"/> + <bool key="NSViewIsLayerTreeHost">YES</bool> + <object class="NSArray" key="NSViewContentFilters"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="CIColorMonochrome"> + <object class="CIColor" key="CI_inputColor"> + <float key="red">7.019608e-01</float> + <float key="green">7.019608e-01</float> + <float key="blue">7.019608e-01</float> + <float key="alpha">1.000000e+00</float> + </object> + <reference key="CI_inputIntensity" ref="559925184"/> + <bool key="CIEnabled">YES</bool> + </object> + </object> <bool key="NSEnabled">YES</bool> <object class="NSSliderCell" key="NSCell" id="257047106"> <int key="NSCellFlags">-2079981824</int> @@ -985,17 +1220,17 @@ AAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSBDb21wdXRlciwgSW5jLiwgMjAwNQAAAAA</bytes> </object> </object> </object> - <string key="NSFrame">{{2, 2}, {189, 143}}</string> + <string key="NSFrame">{{2, 18}, {189, 133}}</string> <reference key="NSSuperview" ref="309105014"/> </object> </object> - <string key="NSFrame">{{272, 70}, {193, 160}}</string> + <string key="NSFrame">{{17, 10}, {193, 153}}</string> <reference key="NSSuperview" ref="49161063"/> <string key="NSOffsets">{0, 0}</string> <object class="NSTextFieldCell" key="NSTitleCell"> <int key="NSCellFlags">67239424</int> <int key="NSCellFlags2">0</int> - <string key="NSContents">Filters</string> + <string key="NSContents"/> <reference key="NSSupport" ref="26"/> <reference key="NSBackgroundColor" ref="406287577"/> <object class="NSColor" key="NSTextColor"> @@ -1006,137 +1241,86 @@ AAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSBDb21wdXRlciwgSW5jLiwgMjAwNQAAAAA</bytes> <reference key="NSContentView" ref="628081139"/> <int key="NSBorderType">3</int> <int key="NSBoxType">0</int> - <int key="NSTitlePosition">2</int> + <int key="NSTitlePosition">4</int> <bool key="NSTransparent">NO</bool> </object> - <object class="NSBox" id="208214895"> + <object class="NSTextField" id="726326257"> <reference key="NSNextResponder" ref="49161063"/> - <int key="NSvFlags">-2147483374</int> - <object class="NSMutableArray" key="NSSubviews"> - <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSView" id="982902210"> - <reference key="NSNextResponder" ref="208214895"/> - <int key="NSvFlags">256</int> - <string key="NSFrameSize">{208, 451}</string> - <reference key="NSSuperview" ref="208214895"/> - </object> - </object> - <string key="NSFrame">{{20, 74}, {208, 451}}</string> + <int key="NSvFlags">256</int> + <string key="NSFrame">{{17, 341}, {68, 17}}</string> <reference key="NSSuperview" ref="49161063"/> - <string key="NSOffsets">{0, 0}</string> - <object class="NSTextFieldCell" key="NSTitleCell"> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="410204805"> <int key="NSCellFlags">67239424</int> - <int key="NSCellFlags2">0</int> - <string key="NSContents">Box</string> + <int key="NSCellFlags2">4194304</int> + <string key="NSContents">Crop</string> <reference key="NSSupport" ref="26"/> - <reference key="NSBackgroundColor" ref="406287577"/> - <object class="NSColor" key="NSTextColor"> - <int key="NSColorSpace">3</int> - <bytes key="NSWhite">MCAwLjgwMDAwMDAxAA</bytes> - </object> + <reference key="NSControlView" ref="726326257"/> + <reference key="NSBackgroundColor" ref="407686733"/> + <reference key="NSTextColor" ref="852384715"/> </object> - <reference key="NSContentView" ref="982902210"/> - <int key="NSBorderType">0</int> - <int key="NSBoxType">3</int> - <int key="NSTitlePosition">0</int> - <bool key="NSTransparent">NO</bool> </object> - <object class="NSImageView" id="844127024"> + <object class="NSTextField" id="922381307"> <reference key="NSNextResponder" ref="49161063"/> - <int key="NSvFlags">274</int> - <object class="NSMutableSet" key="NSDragTypes"> - <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSMutableArray" key="set.sortedObjects"> - <bool key="EncodedWithXMLCoder">YES</bool> - <string>Apple PDF pasteboard type</string> - <string>Apple PICT pasteboard type</string> - <string>Apple PNG pasteboard type</string> - <string>NSFilenamesPboardType</string> - <string>NeXT Encapsulated PostScript v1.2 pasteboard type</string> - <string>NeXT TIFF v4.0 pasteboard type</string> - </object> - </object> - <string key="NSFrame">{{20, 74}, {208, 451}}</string> + <int key="NSvFlags">256</int> + <string key="NSFrame">{{19, 489}, {55, 17}}</string> <reference key="NSSuperview" ref="49161063"/> <bool key="NSEnabled">YES</bool> - <object class="NSImageCell" key="NSCell" id="955430771"> - <int key="NSCellFlags">130560</int> - <int key="NSCellFlags2">33554432</int> - <int key="NSAlign">0</int> - <int key="NSScale">1</int> - <int key="NSStyle">0</int> - <bool key="NSAnimates">NO</bool> - </object> - <bool key="NSEditable">YES</bool> - </object> - <object class="QTMovieView" id="48693112"> - <reference key="NSNextResponder" ref="49161063"/> - <int key="NSvFlags">268</int> - <object class="NSMutableSet" key="NSDragTypes"> - <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSMutableArray" key="set.sortedObjects"> - <bool key="EncodedWithXMLCoder">YES</bool> - <string>Apple URL pasteboard type</string> - <string>CorePasteboardFlavorType 0x6D6F6F76</string> - <string>NSFilenamesPboardType</string> - <string>QTMoviePasteboardType</string> + <object class="NSTextFieldCell" key="NSCell" id="1037100053"> + <int key="NSCellFlags">67239424</int> + <int key="NSCellFlags2">4194304</int> + <string key="NSContents">Size</string> + <reference key="NSSupport" ref="26"/> + <reference key="NSControlView" ref="922381307"/> + <reference key="NSBackgroundColor" ref="407686733"/> + <object class="NSColor" key="NSTextColor"> + <int key="NSColorSpace">1</int> + <bytes key="NSRGB">MC44MDAwMDAwMSAwLjgwMDAwMDAxIDAuODAwMDAwMDEAA</bytes> </object> </object> - <string key="NSFrame">{{20, 74}, {208, 451}}</string> - <reference key="NSSuperview" ref="49161063"/> - <object class="NSColor" key="kCoderFillColor"> - <int key="NSColorSpace">1</int> - <bytes key="NSRGB">MC44MDAwMDAwMSAwLjgwMDAwMDAxIDAuODAwMDAwMDEAA</bytes> - </object> - <integer value="1" key="kCoderControllerVisible"/> - <integer value="0" key="kCoderPreservesAspectRatio" id="6"/> - <nil key="kCoderMovie"/> - <reference key="kCoderEditable" ref="6"/> </object> - <object class="NSSlider" id="396925210"> + <object class="NSTextField" id="258732701"> <reference key="NSNextResponder" ref="49161063"/> - <int key="NSvFlags">290</int> - <string key="NSFrame">{{18, 37}, {210, 16}}</string> + <int key="NSvFlags">256</int> + <string key="NSFrame">{{19, 163}, {44, 14}}</string> <reference key="NSSuperview" ref="49161063"/> <bool key="NSEnabled">YES</bool> - <object class="NSSliderCell" key="NSCell" id="639767004"> - <int key="NSCellFlags">-2079981824</int> - <int key="NSCellFlags2">262144</int> - <string key="NSContents"/> - <reference key="NSSupport" ref="22"/> - <reference key="NSControlView" ref="396925210"/> - <double key="NSMaxValue">9.000000e+00</double> - <double key="NSMinValue">0.000000e+00</double> - <double key="NSValue">0.000000e+00</double> - <double key="NSAltIncValue">0.000000e+00</double> - <int key="NSNumberOfTickMarks">10</int> - <int key="NSTickMarkPosition">1</int> - <bool key="NSAllowsTickMarkValuesOnly">YES</bool> - <bool key="NSVertical">NO</bool> + <object class="NSTextFieldCell" key="NSCell" id="741867756"> + <int key="NSCellFlags">67239424</int> + <int key="NSCellFlags2">4194304</int> + <string key="NSContents">Filters</string> + <reference key="NSSupport" ref="26"/> + <reference key="NSControlView" ref="258732701"/> + <reference key="NSBackgroundColor" ref="407686733"/> + <reference key="NSTextColor" ref="852384715"/> </object> </object> - <object class="NSProgressIndicator" id="196868285"> - <reference key="NSNextResponder" ref="49161063"/> - <int key="NSvFlags">-2147482334</int> - <object class="NSPSMatrix" key="NSDrawMatrix"/> - <string key="NSFrame">{{19, 36}, {210, 12}}</string> - <reference key="NSSuperview" ref="49161063"/> - <int key="NSpiFlags">16650</int> - <double key="NSMinValue">2.000000e+01</double> - <double key="NSMaxValue">1.000000e+02</double> - </object> - <object class="NSButton" id="798240356"> + <object class="NSButton" id="892118626"> <reference key="NSNextResponder" ref="49161063"/> - <int key="NSvFlags">289</int> - <string key="NSFrame">{{235, 18}, {85, 16}}</string> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{156, 490}, {57, 16}}</string> <reference key="NSSuperview" ref="49161063"/> + <bool key="NSViewIsLayerTreeHost">YES</bool> + <object class="NSArray" key="NSViewContentFilters"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="CIColorMonochrome"> + <object class="CIColor" key="CI_inputColor"> + <float key="red">7.019608e-01</float> + <float key="green">7.019608e-01</float> + <float key="blue">7.019608e-01</float> + <float key="alpha">1.000000e+00</float> + </object> + <reference key="CI_inputIntensity" ref="559925184"/> + <bool key="CIEnabled">YES</bool> + </object> + </object> <bool key="NSEnabled">YES</bool> - <object class="NSButtonCell" key="NSCell" id="975305481"> + <object class="NSButtonCell" key="NSCell" id="533593716"> <int key="NSCellFlags">67239424</int> <int key="NSCellFlags2">134479872</int> - <string key="NSContents">Live Preview</string> + <string key="NSContents">Preview</string> <reference key="NSSupport" ref="22"/> - <reference key="NSControlView" ref="798240356"/> + <reference key="NSControlView" ref="892118626"/> <int key="NSButtonFlags">-2038284033</int> <int key="NSButtonFlags2">129</int> <string key="NSAlternateContents"/> @@ -1145,112 +1329,12 @@ AAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSBDb21wdXRlciwgSW5jLiwgMjAwNQAAAAA</bytes> <int key="NSPeriodicInterval">25</int> </object> </object> - <object class="NSTextField" id="986015194"> - <reference key="NSNextResponder" ref="49161063"/> - <int key="NSvFlags">-2147483358</int> - <string key="NSFrame">{{17, 61}, {214, 12}}</string> - <reference key="NSSuperview" ref="49161063"/> - <bool key="NSEnabled">YES</bool> - <object class="NSTextFieldCell" key="NSCell" id="304208899"> - <int key="NSCellFlags">68288064</int> - <int key="NSCellFlags2">4457472</int> - <string key="NSContents"/> - <reference key="NSSupport" ref="22"/> - <reference key="NSControlView" ref="986015194"/> - <object class="NSColor" key="NSBackgroundColor"> - <int key="NSColorSpace">2</int> - <bytes key="NSRGB">MC45MDE5NjA4NSAwLjkwMTk2MDg1IDAuOTAxOTYwODUAA</bytes> - </object> - <reference key="NSTextColor" ref="1053668690"/> - </object> - </object> - <object class="NSPopUpButton" id="598619000"> - <reference key="NSNextResponder" ref="49161063"/> - <int key="NSvFlags">289</int> - <string key="NSFrame">{{417, 19}, {48, 15}}</string> - <reference key="NSSuperview" ref="49161063"/> - <bool key="NSEnabled">YES</bool> - <object class="NSPopUpButtonCell" key="NSCell" id="953108737"> - <int key="NSCellFlags">-2076049856</int> - <int key="NSCellFlags2">264192</int> - <reference key="NSSupport" ref="22"/> - <reference key="NSControlView" ref="598619000"/> - <int key="NSButtonFlags">109199615</int> - <int key="NSButtonFlags2">1</int> - <string key="NSAlternateContents"/> - <string key="NSKeyEquivalent"/> - <int key="NSPeriodicDelay">400</int> - <int key="NSPeriodicInterval">75</int> - <object class="NSMenuItem" key="NSMenuItem" id="372655630"> - <reference key="NSMenu" ref="501672847"/> - <string key="NSTitle">Item 1</string> - <string key="NSKeyEquiv"/> - <int key="NSKeyEquivModMask">1048576</int> - <int key="NSMnemonicLoc">2147483647</int> - <int key="NSState">1</int> - <reference key="NSOnImage" ref="315488983"/> - <reference key="NSMixedImage" ref="216289096"/> - <string key="NSAction">_popUpItemAction:</string> - <reference key="NSTarget" ref="953108737"/> - </object> - <bool key="NSMenuItemRespectAlignment">YES</bool> - <object class="NSMenu" key="NSMenu" id="501672847"> - <string key="NSTitle">OtherViews</string> - <object class="NSMutableArray" key="NSMenuItems"> - <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="372655630"/> - <object class="NSMenuItem" id="607756368"> - <reference key="NSMenu" ref="501672847"/> - <string key="NSTitle">Item 2</string> - <string key="NSKeyEquiv"/> - <int key="NSKeyEquivModMask">1048576</int> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="315488983"/> - <reference key="NSMixedImage" ref="216289096"/> - <string key="NSAction">_popUpItemAction:</string> - <reference key="NSTarget" ref="953108737"/> - </object> - <object class="NSMenuItem" id="272743761"> - <reference key="NSMenu" ref="501672847"/> - <string key="NSTitle">Item 3</string> - <string key="NSKeyEquiv"/> - <int key="NSKeyEquivModMask">1048576</int> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="315488983"/> - <reference key="NSMixedImage" ref="216289096"/> - <string key="NSAction">_popUpItemAction:</string> - <reference key="NSTarget" ref="953108737"/> - </object> - </object> - </object> - <int key="NSPreferredEdge">1</int> - <bool key="NSUsesItemFromMenu">YES</bool> - <bool key="NSAltersState">YES</bool> - <int key="NSArrowPosition">2</int> - </object> - </object> - <object class="NSTextField" id="66510867"> - <reference key="NSNextResponder" ref="49161063"/> - <int key="NSvFlags">289</int> - <string key="NSFrame">{{324, 21}, {89, 11}}</string> - <reference key="NSSuperview" ref="49161063"/> - <bool key="NSEnabled">YES</bool> - <object class="NSTextFieldCell" key="NSCell" id="567286013"> - <int key="NSCellFlags">68288064</int> - <int key="NSCellFlags2">71566336</int> - <string key="NSContents">Duration (seconds):</string> - <reference key="NSSupport" ref="22"/> - <reference key="NSControlView" ref="66510867"/> - <reference key="NSBackgroundColor" ref="407686733"/> - <reference key="NSTextColor" ref="1053668690"/> - </object> - </object> </object> - <string key="NSFrameSize">{484, 557}</string> + <string key="NSFrameSize">{229, 518}</string> <reference key="NSSuperview"/> </object> <string key="NSScreenRect">{{0, 0}, {1440, 878}}</string> - <string key="NSMinSize">{453, 580}</string> + <string key="NSMinSize">{230, 519}</string> <string key="NSMaxSize">{3.40282e+38, 3.40282e+38}</string> </object> </object> @@ -1387,14 +1471,6 @@ AAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSBDb21wdXRlciwgSW5jLiwgMjAwNQAAAAA</bytes> </object> <object class="IBConnectionRecord"> <object class="IBOutletConnection" key="connection"> - <string key="label">fInfoField</string> - <reference key="source" ref="355312334"/> - <reference key="destination" ref="628196212"/> - </object> - <int key="connectionID">73</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBOutletConnection" key="connection"> <string key="label">fRatioCheck</string> <reference key="source" ref="355312334"/> <reference key="destination" ref="302614967"/> @@ -1507,22 +1583,6 @@ AAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSBDb21wdXRlciwgSW5jLiwgMjAwNQAAAAA</bytes> </object> <object class="IBConnectionRecord"> <object class="IBOutletConnection" key="connection"> - <string key="label">fPictureView</string> - <reference key="source" ref="355312334"/> - <reference key="destination" ref="844127024"/> - </object> - <int key="connectionID">181</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBOutletConnection" key="connection"> - <string key="label">fPictureViewArea</string> - <reference key="source" ref="355312334"/> - <reference key="destination" ref="208214895"/> - </object> - <int key="connectionID">183</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBOutletConnection" key="connection"> <string key="label">window</string> <reference key="source" ref="355312334"/> <reference key="destination" ref="616825745"/> @@ -1555,78 +1615,6 @@ AAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSBDb21wdXRlciwgSW5jLiwgMjAwNQAAAAA</bytes> </object> <object class="IBConnectionRecord"> <object class="IBOutletConnection" key="connection"> - <string key="label">fMovieView</string> - <reference key="source" ref="355312334"/> - <reference key="destination" ref="48693112"/> - </object> - <int key="connectionID">208</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBOutletConnection" key="connection"> - <string key="label">fPictureSlider</string> - <reference key="source" ref="355312334"/> - <reference key="destination" ref="396925210"/> - </object> - <int key="connectionID">211</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBActionConnection" key="connection"> - <string key="label">pictureSliderChanged:</string> - <reference key="source" ref="355312334"/> - <reference key="destination" ref="396925210"/> - </object> - <int key="connectionID">212</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBOutletConnection" key="connection"> - <string key="label">fMovieCreationProgressIndicator</string> - <reference key="source" ref="355312334"/> - <reference key="destination" ref="196868285"/> - </object> - <int key="connectionID">214</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBOutletConnection" key="connection"> - <string key="label">fCreatePreviewMovieButton</string> - <reference key="source" ref="355312334"/> - <reference key="destination" ref="798240356"/> - </object> - <int key="connectionID">217</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBActionConnection" key="connection"> - <string key="label">createMoviePreview:</string> - <reference key="source" ref="355312334"/> - <reference key="destination" ref="798240356"/> - </object> - <int key="connectionID">218</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBOutletConnection" key="connection"> - <string key="label">fPreviewMovieStatusField</string> - <reference key="source" ref="355312334"/> - <reference key="destination" ref="986015194"/> - </object> - <int key="connectionID">225</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBOutletConnection" key="connection"> - <string key="label">fPreviewMovieLengthPopUp</string> - <reference key="source" ref="355312334"/> - <reference key="destination" ref="598619000"/> - </object> - <int key="connectionID">232</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBActionConnection" key="connection"> - <string key="label">previewDurationPopUpChanged:</string> - <reference key="source" ref="355312334"/> - <reference key="destination" ref="598619000"/> - </object> - <int key="connectionID">233</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBOutletConnection" key="connection"> <string key="label">fDecombCheck</string> <reference key="source" ref="355312334"/> <reference key="destination" ref="974850032"/> @@ -1673,6 +1661,22 @@ AAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSBDb21wdXRlciwgSW5jLiwgMjAwNQAAAAA</bytes> </object> <int key="connectionID">243</int> </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">fPreviewOpenButton</string> + <reference key="source" ref="355312334"/> + <reference key="destination" ref="892118626"/> + </object> + <int key="connectionID">272</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBActionConnection" key="connection"> + <string key="label">showPreviewWindow:</string> + <reference key="source" ref="355312334"/> + <reference key="destination" ref="892118626"/> + </object> + <int key="connectionID">273</int> + </object> </object> <object class="IBMutableOrderedSet" key="objectRecords"> <object class="NSArray" key="orderedObjects"> @@ -1718,20 +1722,13 @@ AAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSBDb21wdXRlciwgSW5jLiwgMjAwNQAAAAA</bytes> <reference key="object" ref="49161063"/> <object class="NSMutableArray" key="children"> <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="1011917013"/> <reference ref="1064912113"/> <reference ref="309105014"/> - <reference ref="208214895"/> - <reference ref="844127024"/> - <reference ref="574970834"/> - <reference ref="1011917013"/> - <reference ref="48693112"/> - <reference ref="396925210"/> - <reference ref="628196212"/> - <reference ref="196868285"/> - <reference ref="986015194"/> - <reference ref="798240356"/> - <reference ref="66510867"/> - <reference ref="598619000"/> + <reference ref="726326257"/> + <reference ref="922381307"/> + <reference ref="258732701"/> + <reference ref="892118626"/> </object> <reference key="parent" ref="616825745"/> </object> @@ -1749,33 +1746,16 @@ AAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSBDb21wdXRlciwgSW5jLiwgMjAwNQAAAAA</bytes> <reference ref="411931143"/> <reference ref="842452881"/> <reference ref="133033963"/> + <reference ref="1021399174"/> + <reference ref="194145642"/> </object> <reference key="parent" ref="49161063"/> </object> <object class="IBObjectRecord"> - <int key="objectID">21</int> - <reference key="object" ref="574970834"/> - <object class="NSMutableArray" key="children"> - <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSView" id="391559465"> - <nil key="NSNextResponder"/> - <int key="NSvFlags">256</int> - <string key="NSFrame">{{2, 2}, {734, 1}}</string> - </object> - </object> - <reference key="parent" ref="49161063"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">22</int> - <reference key="object" ref="391559465"/> - <reference key="parent" ref="574970834"/> - </object> - <object class="IBObjectRecord"> <int key="objectID">23</int> <reference key="object" ref="309105014"/> <object class="NSMutableArray" key="children"> <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="407610327"/> <reference ref="243795165"/> <reference ref="346912008"/> <reference ref="905607845"/> @@ -1784,15 +1764,9 @@ AAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSBDb21wdXRlciwgSW5jLiwgMjAwNQAAAAA</bytes> <reference ref="1069536323"/> <reference ref="314638156"/> <reference ref="974850032"/> - </object> - <reference key="parent" ref="49161063"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">38</int> - <reference key="object" ref="628196212"/> - <object class="NSMutableArray" key="children"> - <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="921881842"/> + <reference ref="407610327"/> + <reference ref="57714806"/> + <reference ref="762149330"/> </object> <reference key="parent" ref="49161063"/> </object> @@ -1810,23 +1784,11 @@ AAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSBDb21wdXRlciwgSW5jLiwgMjAwNQAAAAA</bytes> <reference ref="221469578"/> <reference ref="147098438"/> <reference ref="301555397"/> + <reference ref="973216726"/> </object> <reference key="parent" ref="49161063"/> </object> <object class="IBObjectRecord"> - <int key="objectID">92</int> - <reference key="object" ref="208214895"/> - <object class="NSMutableArray" key="children"> - <bool key="EncodedWithXMLCoder">YES</bool> - </object> - <reference key="parent" ref="49161063"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">165</int> - <reference key="object" ref="921881842"/> - <reference key="parent" ref="628196212"/> - </object> - <object class="IBObjectRecord"> <int key="objectID">12</int> <reference key="object" ref="580805308"/> <object class="NSMutableArray" key="children"> @@ -2251,20 +2213,6 @@ AAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSBDb21wdXRlciwgSW5jLiwgMjAwNQAAAAA</bytes> <reference key="parent" ref="301555397"/> </object> <object class="IBObjectRecord"> - <int key="objectID">179</int> - <reference key="object" ref="844127024"/> - <object class="NSMutableArray" key="children"> - <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="955430771"/> - </object> - <reference key="parent" ref="49161063"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">180</int> - <reference key="object" ref="955430771"/> - <reference key="parent" ref="844127024"/> - </object> - <object class="IBObjectRecord"> <int key="objectID">195</int> <reference key="object" ref="581126685"/> <object class="NSMutableArray" key="children"> @@ -2307,128 +2255,144 @@ AAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSBDb21wdXRlciwgSW5jLiwgMjAwNQAAAAA</bytes> <reference key="parent" ref="314638156"/> </object> <object class="IBObjectRecord"> - <int key="objectID">207</int> - <reference key="object" ref="48693112"/> - <reference key="parent" ref="49161063"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">209</int> - <reference key="object" ref="396925210"/> + <int key="objectID">236</int> + <reference key="object" ref="974850032"/> <object class="NSMutableArray" key="children"> <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="639767004"/> + <reference ref="464410464"/> </object> - <reference key="parent" ref="49161063"/> + <reference key="parent" ref="309105014"/> </object> <object class="IBObjectRecord"> - <int key="objectID">210</int> - <reference key="object" ref="639767004"/> - <reference key="parent" ref="396925210"/> + <int key="objectID">237</int> + <reference key="object" ref="464410464"/> + <reference key="parent" ref="974850032"/> </object> <object class="IBObjectRecord"> - <int key="objectID">213</int> - <reference key="object" ref="196868285"/> - <reference key="parent" ref="49161063"/> + <int key="objectID">244</int> + <reference key="object" ref="973216726"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="910777593"/> + </object> + <reference key="parent" ref="1011917013"/> </object> <object class="IBObjectRecord"> - <int key="objectID">215</int> - <reference key="object" ref="798240356"/> + <int key="objectID">245</int> + <reference key="object" ref="910777593"/> + <reference key="parent" ref="973216726"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">246</int> + <reference key="object" ref="57714806"/> <object class="NSMutableArray" key="children"> <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="975305481"/> + <reference ref="456341790"/> </object> - <reference key="parent" ref="49161063"/> + <reference key="parent" ref="309105014"/> </object> <object class="IBObjectRecord"> - <int key="objectID">216</int> - <reference key="object" ref="975305481"/> - <reference key="parent" ref="798240356"/> + <int key="objectID">247</int> + <reference key="object" ref="456341790"/> + <reference key="parent" ref="57714806"/> </object> <object class="IBObjectRecord"> - <int key="objectID">223</int> - <reference key="object" ref="986015194"/> + <int key="objectID">248</int> + <reference key="object" ref="762149330"/> <object class="NSMutableArray" key="children"> <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="304208899"/> + <reference ref="192583280"/> </object> - <reference key="parent" ref="49161063"/> + <reference key="parent" ref="309105014"/> </object> <object class="IBObjectRecord"> - <int key="objectID">224</int> - <reference key="object" ref="304208899"/> - <reference key="parent" ref="986015194"/> + <int key="objectID">249</int> + <reference key="object" ref="192583280"/> + <reference key="parent" ref="762149330"/> </object> <object class="IBObjectRecord"> - <int key="objectID">226</int> - <reference key="object" ref="598619000"/> + <int key="objectID">250</int> + <reference key="object" ref="1021399174"/> <object class="NSMutableArray" key="children"> <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="953108737"/> + <reference ref="215687429"/> </object> - <reference key="parent" ref="49161063"/> + <reference key="parent" ref="1064912113"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">251</int> + <reference key="object" ref="215687429"/> + <reference key="parent" ref="1021399174"/> </object> <object class="IBObjectRecord"> - <int key="objectID">227</int> - <reference key="object" ref="953108737"/> + <int key="objectID">252</int> + <reference key="object" ref="194145642"/> <object class="NSMutableArray" key="children"> <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="501672847"/> + <reference ref="664940567"/> </object> - <reference key="parent" ref="598619000"/> + <reference key="parent" ref="1064912113"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">253</int> + <reference key="object" ref="664940567"/> + <reference key="parent" ref="194145642"/> </object> <object class="IBObjectRecord"> - <int key="objectID">228</int> - <reference key="object" ref="501672847"/> + <int key="objectID">260</int> + <reference key="object" ref="726326257"/> <object class="NSMutableArray" key="children"> <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="272743761"/> - <reference ref="607756368"/> - <reference ref="372655630"/> + <reference ref="410204805"/> </object> - <reference key="parent" ref="953108737"/> + <reference key="parent" ref="49161063"/> </object> <object class="IBObjectRecord"> - <int key="objectID">229</int> - <reference key="object" ref="272743761"/> - <reference key="parent" ref="501672847"/> + <int key="objectID">261</int> + <reference key="object" ref="410204805"/> + <reference key="parent" ref="726326257"/> </object> <object class="IBObjectRecord"> - <int key="objectID">230</int> - <reference key="object" ref="607756368"/> - <reference key="parent" ref="501672847"/> + <int key="objectID">262</int> + <reference key="object" ref="922381307"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="1037100053"/> + </object> + <reference key="parent" ref="49161063"/> </object> <object class="IBObjectRecord"> - <int key="objectID">231</int> - <reference key="object" ref="372655630"/> - <reference key="parent" ref="501672847"/> + <int key="objectID">263</int> + <reference key="object" ref="1037100053"/> + <reference key="parent" ref="922381307"/> </object> <object class="IBObjectRecord"> - <int key="objectID">234</int> - <reference key="object" ref="66510867"/> + <int key="objectID">264</int> + <reference key="object" ref="258732701"/> <object class="NSMutableArray" key="children"> <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="567286013"/> + <reference ref="741867756"/> </object> <reference key="parent" ref="49161063"/> </object> <object class="IBObjectRecord"> - <int key="objectID">235</int> - <reference key="object" ref="567286013"/> - <reference key="parent" ref="66510867"/> + <int key="objectID">265</int> + <reference key="object" ref="741867756"/> + <reference key="parent" ref="258732701"/> </object> <object class="IBObjectRecord"> - <int key="objectID">236</int> - <reference key="object" ref="974850032"/> + <int key="objectID">270</int> + <reference key="object" ref="892118626"/> <object class="NSMutableArray" key="children"> <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="464410464"/> + <reference ref="533593716"/> </object> - <reference key="parent" ref="309105014"/> + <reference key="parent" ref="49161063"/> </object> <object class="IBObjectRecord"> - <int key="objectID">237</int> - <reference key="object" ref="464410464"/> - <reference key="parent" ref="974850032"/> + <int key="objectID">271</int> + <reference key="object" ref="533593716"/> + <reference key="parent" ref="892118626"/> </object> </object> </object> @@ -2468,53 +2432,48 @@ AAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSBDb21wdXRlciwgSW5jLiwgMjAwNQAAAAA</bytes> <string>16.ImportedFromIB2</string> <string>17.IBPluginDependency</string> <string>17.ImportedFromIB2</string> - <string>179.IBPluginDependency</string> <string>18.IBPluginDependency</string> <string>18.ImportedFromIB2</string> - <string>180.IBPluginDependency</string> <string>19.IBPluginDependency</string> <string>19.ImportedFromIB2</string> <string>195.IBPluginDependency</string> + <string>195.IBViewIntegration.shadowBlurRadius</string> + <string>195.IBViewIntegration.shadowColor</string> + <string>195.IBViewIntegration.shadowOffsetHeight</string> + <string>195.IBViewIntegration.shadowOffsetWidth</string> <string>196.IBPluginDependency</string> <string>197.IBPluginDependency</string> <string>197.ImportedFromIB2</string> <string>204.IBPluginDependency</string> <string>204.ImportedFromIB2</string> - <string>207.IBPluginDependency</string> - <string>209.IBPluginDependency</string> - <string>21.IBPluginDependency</string> - <string>21.ImportedFromIB2</string> - <string>210.IBPluginDependency</string> - <string>213.IBPluginDependency</string> - <string>215.IBPluginDependency</string> - <string>216.IBPluginDependency</string> - <string>22.IBPluginDependency</string> - <string>22.ImportedFromIB2</string> - <string>223.IBPluginDependency</string> - <string>224.IBPluginDependency</string> - <string>226.IBPluginDependency</string> - <string>226.ImportedFromIB2</string> - <string>228.IBEditorWindowLastContentRect</string> - <string>228.IBPluginDependency</string> - <string>228.ImportedFromIB2</string> - <string>229.IBPluginDependency</string> - <string>229.ImportedFromIB2</string> <string>23.IBPluginDependency</string> <string>23.ImportedFromIB2</string> - <string>230.IBPluginDependency</string> - <string>230.ImportedFromIB2</string> - <string>231.IBPluginDependency</string> - <string>231.ImportedFromIB2</string> - <string>234.IBPluginDependency</string> - <string>235.IBPluginDependency</string> <string>236.IBPluginDependency</string> <string>236.ImportedFromIB2</string> + <string>244.IBPluginDependency</string> + <string>244.ImportedFromIB2</string> + <string>246.IBPluginDependency</string> + <string>246.ImportedFromIB2</string> + <string>248.IBPluginDependency</string> + <string>248.ImportedFromIB2</string> <string>25.IBPluginDependency</string> <string>25.ImportedFromIB2</string> + <string>250.IBPluginDependency</string> + <string>250.ImportedFromIB2</string> + <string>252.IBPluginDependency</string> + <string>252.ImportedFromIB2</string> <string>26.IBPluginDependency</string> <string>26.ImportedFromIB2</string> + <string>260.IBPluginDependency</string> + <string>260.ImportedFromIB2</string> + <string>262.IBPluginDependency</string> + <string>262.ImportedFromIB2</string> + <string>264.IBPluginDependency</string> + <string>264.ImportedFromIB2</string> <string>27.IBPluginDependency</string> <string>27.ImportedFromIB2</string> + <string>270.IBPluginDependency</string> + <string>271.IBPluginDependency</string> <string>28.IBPluginDependency</string> <string>28.ImportedFromIB2</string> <string>29.IBPluginDependency</string> @@ -2535,8 +2494,6 @@ AAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSBDb21wdXRlciwgSW5jLiwgMjAwNQAAAAA</bytes> <string>36.ImportedFromIB2</string> <string>37.IBPluginDependency</string> <string>37.ImportedFromIB2</string> - <string>38.IBPluginDependency</string> - <string>38.ImportedFromIB2</string> <string>39.IBPluginDependency</string> <string>39.ImportedFromIB2</string> <string>41.IBPluginDependency</string> @@ -2569,146 +2526,138 @@ AAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSBDb21wdXRlciwgSW5jLiwgMjAwNQAAAAA</bytes> <string>7.ImportedFromIB2</string> <string>9.IBPluginDependency</string> <string>9.ImportedFromIB2</string> - <string>92.IBPluginDependency</string> - <string>92.ImportedFromIB2</string> </object> <object class="NSMutableArray" key="dict.values"> <bool key="EncodedWithXMLCoder">YES</bool> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <integer value="1" id="9"/> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <reference ref="9"/> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <reference ref="9"/> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <reference ref="9"/> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <reference ref="9"/> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <reference ref="9"/> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <reference ref="9"/> + <reference ref="559925184"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <reference ref="9"/> + <reference ref="559925184"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <reference ref="9"/> + <reference ref="559925184"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <reference ref="9"/> + <reference ref="559925184"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <reference ref="9"/> + <reference ref="559925184"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <reference ref="9"/> + <reference ref="559925184"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <reference ref="9"/> + <reference ref="559925184"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <reference ref="9"/> + <reference ref="559925184"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <reference ref="9"/> + <reference ref="559925184"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <reference ref="559925184"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <reference ref="9"/> + <reference ref="559925184"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <reference ref="559925184"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <reference ref="9"/> + <reference ref="559925184"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <reference ref="559925184"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <reference ref="559925184"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <reference ref="9"/> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <reference ref="9"/> - <string>com.apple.QTKitIBPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <reference ref="9"/> + <reference ref="559925184"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <reference ref="559925184"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <reference ref="8"/> + <object class="NSColor"> + <int key="NSColorSpace">3</int> + <bytes key="NSWhite">MAA</bytes> + </object> + <reference ref="8"/> + <reference ref="8"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <reference ref="559925184"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <reference ref="9"/> + <reference ref="559925184"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <reference ref="559925184"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <reference ref="559925184"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <reference ref="9"/> - <string>{{656, 304}, {87, 48}}</string> + <reference ref="559925184"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <reference ref="9"/> + <reference ref="559925184"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <reference ref="9"/> + <reference ref="559925184"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <reference ref="9"/> + <reference ref="559925184"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <reference ref="9"/> + <reference ref="559925184"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <reference ref="9"/> + <reference ref="559925184"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <reference ref="559925184"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <reference ref="559925184"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <reference ref="9"/> + <reference ref="559925184"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <reference ref="9"/> + <reference ref="559925184"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <reference ref="9"/> + <reference ref="559925184"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <reference ref="9"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <reference ref="9"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <reference ref="9"/> + <reference ref="559925184"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <reference ref="9"/> + <reference ref="559925184"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <reference ref="9"/> + <reference ref="559925184"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <reference ref="9"/> + <reference ref="559925184"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <reference ref="9"/> + <reference ref="559925184"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <reference ref="9"/> + <reference ref="559925184"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <reference ref="9"/> + <reference ref="559925184"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <reference ref="9"/> + <reference ref="559925184"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <reference ref="9"/> + <reference ref="559925184"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <reference ref="9"/> + <reference ref="559925184"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <reference ref="9"/> + <reference ref="559925184"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <reference ref="9"/> + <reference ref="559925184"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <reference ref="9"/> + <reference ref="559925184"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <reference ref="9"/> + <reference ref="559925184"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <reference ref="9"/> + <reference ref="559925184"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <reference ref="9"/> + <reference ref="559925184"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <reference ref="9"/> + <reference ref="559925184"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <reference ref="9"/> - <string>{{320, 299}, {484, 557}}</string> + <reference ref="559925184"/> + <string>{{563, 338}, {229, 518}}</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <reference ref="9"/> - <string>{{320, 299}, {484, 557}}</string> - <reference ref="9"/> + <reference ref="559925184"/> + <string>{{563, 338}, {229, 518}}</string> + <reference ref="559925184"/> <string>{{221, 276}, {533, 580}}</string> - <reference ref="9"/> - <reference ref="9"/> + <reference ref="8"/> + <reference ref="559925184"/> <string>{3.40282e+38, 3.40282e+38}</string> - <string>{453, 558}</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <reference ref="9"/> + <string>{230, 500}</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <reference ref="9"/> + <reference ref="559925184"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <reference ref="9"/> + <reference ref="559925184"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <reference ref="9"/> + <reference ref="559925184"/> </object> </object> <object class="NSMutableDictionary" key="unlocalizedProperties"> @@ -2731,7 +2680,7 @@ AAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSBDb21wdXRlciwgSW5jLiwgMjAwNQAAAAA</bytes> </object> </object> <nil key="sourceID"/> - <int key="maxID">243</int> + <int key="maxID">273</int> </object> <object class="IBClassDescriber" key="IBDocument.Classes"> <object class="NSMutableArray" key="referencedPartialClassDescriptions"> @@ -2759,12 +2708,9 @@ AAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSBDb21wdXRlciwgSW5jLiwgMjAwNQAAAAA</bytes> <object class="NSMutableArray" key="dict.sortedKeys"> <bool key="EncodedWithXMLCoder">YES</bool> <string>SettingsChanged:</string> - <string>createMoviePreview:</string> <string>deblockSliderChanged:</string> - <string>pictureSliderChanged:</string> - <string>previewDurationPopUpChanged:</string> - <string>showMoviePreview:</string> <string>showPictureWindow:</string> + <string>showPreviewWindow:</string> </object> <object class="NSMutableArray" key="dict.values"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -2772,18 +2718,13 @@ AAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSBDb21wdXRlciwgSW5jLiwgMjAwNQAAAAA</bytes> <string>id</string> <string>id</string> <string>id</string> - <string>id</string> - <string>NSString</string> - <string>id</string> </object> </object> <object class="NSMutableDictionary" key="outlets"> <bool key="EncodedWithXMLCoder">YES</bool> <object class="NSMutableArray" key="dict.sortedKeys"> <bool key="EncodedWithXMLCoder">YES</bool> - <string>delegate</string> <string>fAnamorphicPopUp</string> - <string>fCreatePreviewMovieButton</string> <string>fCropBottomField</string> <string>fCropBottomStepper</string> <string>fCropLeftField</string> @@ -2803,27 +2744,19 @@ AAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSBDb21wdXRlciwgSW5jLiwgMjAwNQAAAAA</bytes> <string>fHeightField</string> <string>fHeightStepper</string> <string>fInfoField</string> - <string>fMovieCreationProgressIndicator</string> - <string>fMovieView</string> <string>fPictureCropBox</string> <string>fPictureFilterBox</string> <string>fPictureSizeBox</string> <string>fPictureSlider</string> - <string>fPictureView</string> - <string>fPictureViewArea</string> <string>fPictureWindow</string> - <string>fPreviewMovieLengthPopUp</string> - <string>fPreviewMovieStatusField</string> + <string>fPreviewOpenButton</string> <string>fRatioCheck</string> - <string>fShowPreviewMovieButton</string> <string>fWidthField</string> <string>fWidthStepper</string> </object> <object class="NSMutableArray" key="dict.values"> <bool key="EncodedWithXMLCoder">YES</bool> - <string>id</string> <string>NSPopUpButton</string> - <string>NSButton</string> <string>NSTextField</string> <string>NSStepper</string> <string>NSTextField</string> @@ -2843,17 +2776,11 @@ AAB0ZXh0AAAAAENvcHlyaWdodCBBcHBsZSBDb21wdXRlciwgSW5jLiwgMjAwNQAAAAA</bytes> <string>NSTextField</string> <string>NSStepper</string> <string>NSTextField</string> - <string>NSProgressIndicator</string> - <string>QTMovieView</string> <string>NSBox</string> <string>NSBox</string> <string>NSBox</string> <string>NSSlider</string> - <string>NSImageView</string> - <string>NSBox</string> <string>NSWindow</string> - <string>NSPopUpButton</string> - <string>NSTextField</string> <string>NSButton</string> <string>NSButton</string> <string>NSTextField</string> diff --git a/macosx/HBPreviewController.h b/macosx/HBPreviewController.h new file mode 100644 index 000000000..21e262bc2 --- /dev/null +++ b/macosx/HBPreviewController.h @@ -0,0 +1,99 @@ +/* $Id: HBPreviewController.h,v 1.6 2005/04/14 20:40:05 titer Exp $ + + This file is part of the HandBrake source code. + Homepage: <http://handbrake.fr/>. + It may be used under the terms of the GNU General Public License. */ + +#import <Cocoa/Cocoa.h> + +#include "hb.h" +/* Needed for Quicktime movie previews */ +#import <QTKit/QTKit.h> + +@class HBController; + +#define HB_NUM_HBLIB_PICTURES 20 // # of preview pictures libhb should generate + +@interface PreviewController : NSWindowController +{ + hb_handle_t * fHandle; + hb_title_t * fTitle; + + HBController *fHBController; // reference to HBController + + IBOutlet NSWindow * fPreviewWindow; + NSWindow * fFullScreenWindow; // Full Screen window + NSMutableDictionary * fPicturePreviews; // NSImages, one for each preview libhb creates, created lazily + int fPicture; + + IBOutlet NSImageView * fPictureView; + IBOutlet NSBox * fPictureViewArea; + IBOutlet NSBox * fPictureControlBox; + IBOutlet NSBox * fEncodingControlBox; + + IBOutlet NSSlider * fPictureSlider; + IBOutlet NSTextField * fInfoField; + + BOOL isEncoding; + + + int MaxOutputWidth; + int MaxOutputHeight; + + int output_width, output_height, output_par_width, output_par_height; + int display_width; + + /* Full Screen Mode Toggle */ + IBOutlet NSButton * fFullScreenToggleButton; + IBOutlet NSButton * fPictureSettingsToggleButton; + BOOL isFullScreen; + /* Movie Previews */ + IBOutlet NSButton * fCreatePreviewMovieButton; + IBOutlet NSButton * fCancelPreviewMovieButton; + IBOutlet NSButton * fShowPreviewMovieButton; + NSString * fPreviewMoviePath; + IBOutlet NSProgressIndicator * fMovieCreationProgressIndicator; + hb_handle_t * fPreviewLibhb; // private libhb for creating previews + NSTimer * fLibhbTimer; // timer for retrieving state from libhb + IBOutlet NSTextField * fPreviewMovieStatusField; + BOOL play_movie; // flag used to determine whether or not to automatically play the movie when done. + IBOutlet QTMovieView * fMovieView; + IBOutlet NSPopUpButton * fPreviewMovieLengthPopUp; // popup of choices for length of preview in seconds +} +- (id)init; + +- (void) SetHandle: (hb_handle_t *) handle; +- (void) SetTitle: (hb_title_t *) title; +- (void)setHBController: (HBController *)controller; +- (IBAction) showPreviewWindow: (id)sender; +- (BOOL)acceptsMouseMovedEvents; +- (void) displayPreview; +- (void) showHideHudControls; +- (IBAction) SettingsChanged: (id) sender; +- (IBAction) pictureSliderChanged: (id) sender; +- (IBAction)showPictureSettings:(id)sender; +/* Full Screen */ +- (IBAction)toggleScreenMode:(id)sender; +- (IBAction)goFullScreen:(id)sender; +- (IBAction)goWindowedScreen:(id)sender; + +/* Movie Previews */ +- (void) startReceivingLibhbNotifications; +- (void) stopReceivingLibhbNotifications; + +- (IBAction) createMoviePreview: (id) sender; +- (void) libhbStateChanged: (hb_state_t &) state; +- (IBAction) showMoviePreview: (NSString *) path; +- (IBAction) previewDurationPopUpChanged: (id) sender; + + +- (IBAction)showPreviewPanel: (id)sender forTitle: (hb_title_t *)title; + ++ (NSImage *) makeImageForPicture: (int)pictureIndex + libhb:(hb_handle_t*)handle + title:(hb_title_t*)title + removeBorders:(BOOL)removeBorders; +- (NSImage *) imageForPicture: (int) pictureIndex; +- (void) purgeImageCache; +@end + diff --git a/macosx/HBPreviewController.mm b/macosx/HBPreviewController.mm new file mode 100644 index 000000000..d2d5dae97 --- /dev/null +++ b/macosx/HBPreviewController.mm @@ -0,0 +1,1148 @@ +/* $Id: HBPreviewController.mm,v 1.11 2005/08/01 15:10:44 titer Exp $ + + This file is part of the HandBrake source code. + Homepage: <http://handbrake.fr/>. + It may be used under the terms of the GNU General Public License. */ + +#import "HBPreviewController.h" +#import "Controller.h" +//#import "PictureController.h" + +@interface PreviewController (Private) + +- (NSSize)optimalViewSizeForImageSize: (NSSize)imageSize; +- (void)resizeSheetForViewSize: (NSSize)viewSize; +- (void)setViewSize: (NSSize)viewSize; +- (BOOL)viewNeedsToResizeToSize: (NSSize)newSize; + +@end + +@implementation PreviewController + +- (id)init +{ + if (self = [super initWithWindowNibName:@"PicturePreview"]) + { + // NSWindowController likes to lazily load its window. However since + // this controller tries to set all sorts of outlets before the window + // is displayed, we need it to load immediately. The correct way to do + // this, according to the documentation, is simply to invoke the window + // getter once. + // + // If/when we switch a lot of this stuff to bindings, this can probably + // go away. + [self window]; + + fPicturePreviews = [[NSMutableDictionary dictionaryWithCapacity: HB_NUM_HBLIB_PICTURES] retain]; + /* Init libhb with check for updates libhb style set to "0" so its ignored and lets sparkle take care of it */ + int loggingLevel = [[[NSUserDefaults standardUserDefaults] objectForKey:@"LoggingLevel"] intValue]; + fPreviewLibhb = hb_init(loggingLevel, 0); + + } + return self; +} + + +- (void) mouseMoved:(NSEvent *)theEvent +{ + [super mouseMoved:theEvent]; + + [self showHideHudControls]; +} + + +- (void) showHideHudControls +{ + /* Test for mouse location to show/hide hud controls */ + NSPoint mouseLoc; + NSRect targetFrame; + if (isFullScreen) + { + mouseLoc = [fFullScreenWindow mouseLocationOutsideOfEventStream]; + } + else + { + mouseLoc = [fPreviewWindow mouseLocationOutsideOfEventStream]; + } + targetFrame = [fPictureViewArea frame]; + /* If we are not encoding a preview, we show/hide the hud controls */ + if (isEncoding == NO) + { + if (NSPointInRect (mouseLoc, targetFrame)) + { + /* Mouse is over the preview area so show hud controls */ + [[fPictureControlBox animator] setHidden: NO]; + } + else + { + [[fPictureControlBox animator] setHidden: YES]; + } + } +} + + + +//------------------------------------------------------------------------------------ +// Displays and brings the picture window to the front +//------------------------------------------------------------------------------------ +- (IBAction) showPreviewWindow: (id)sender +{ + [self showWindow:sender]; + /* lets set the preview window to accept mouse moved events */ + [fPreviewWindow setAcceptsMouseMovedEvents:YES]; + [self pictureSliderChanged:nil]; + [self startReceivingLibhbNotifications]; +} + +- (void)setHBController: (HBController *)controller +{ + fHBController = controller; +} + +- (void)awakeFromNib +{ + [fPreviewWindow setDelegate:self]; + /* lets set the preview window to accept mouse moved events */ + [fPreviewWindow setAcceptsMouseMovedEvents:YES]; + //[self pictureSliderChanged:nil]; + [self startReceivingLibhbNotifications]; + + isFullScreen = NO; + + /* Setup our layers for core animation */ + [fPictureViewArea setWantsLayer:YES]; + [fPictureView setWantsLayer:YES]; + + [fMovieView setWantsLayer:YES]; + + [fEncodingControlBox setWantsLayer:YES]; + [fCancelPreviewMovieButton setWantsLayer:YES]; + [fMovieCreationProgressIndicator setWantsLayer:YES]; + + [fPictureControlBox setWantsLayer:YES]; + [fPictureSlider setWantsLayer:YES]; + [fFullScreenToggleButton setWantsLayer:YES]; + [fPictureSettingsToggleButton setWantsLayer:YES]; + [fCreatePreviewMovieButton setWantsLayer:YES]; + [fShowPreviewMovieButton setWantsLayer:YES]; + + +} +- (BOOL)acceptsMouseMovedEvents +{ +return YES; +} + +- (void)windowWillClose:(NSNotification *)aNotification +{ + /* Upon Closing the picture window, we make sure we clean up any + * preview movie that might be playing + */ + play_movie = NO; + hb_stop( fPreviewLibhb ); + isEncoding = NO; + // Show the picture view + [fPictureView setHidden:NO]; + [fMovieView pause:nil]; + [fMovieView setHidden:YES]; + if (isFullScreen) + { + [self goWindowedScreen:nil]; + } + + isFullScreen = NO; + +} + +- (BOOL)windowShouldClose:(id)fPictureWindow +{ + return YES; +} + +- (void) dealloc +{ + hb_stop(fPreviewLibhb); + if (fPreviewMoviePath) + { + [[NSFileManager defaultManager] removeFileAtPath:fPreviewMoviePath handler:nil]; + [fPreviewMoviePath release]; + } + + [fLibhbTimer invalidate]; + [fLibhbTimer release]; + + [fPicturePreviews release]; + [fFullScreenWindow release]; + + [super dealloc]; +} + +- (void) SetHandle: (hb_handle_t *) handle +{ + fHandle = handle; + + + + /* we set the preview length popup in seconds */ + [fPreviewMovieLengthPopUp removeAllItems]; + [fPreviewMovieLengthPopUp addItemWithTitle: @"5"]; + [fPreviewMovieLengthPopUp addItemWithTitle: @"10"]; + [fPreviewMovieLengthPopUp addItemWithTitle: @"15"]; + [fPreviewMovieLengthPopUp addItemWithTitle: @"20"]; + [fPreviewMovieLengthPopUp addItemWithTitle: @"25"]; + [fPreviewMovieLengthPopUp addItemWithTitle: @"30"]; + [fPreviewMovieLengthPopUp addItemWithTitle: @"35"]; + [fPreviewMovieLengthPopUp addItemWithTitle: @"40"]; + [fPreviewMovieLengthPopUp addItemWithTitle: @"45"]; + [fPreviewMovieLengthPopUp addItemWithTitle: @"50"]; + [fPreviewMovieLengthPopUp addItemWithTitle: @"55"]; + [fPreviewMovieLengthPopUp addItemWithTitle: @"60"]; + + /* adjust the preview slider length */ + /* We use our advance pref to determine how many previews we scanned */ + int hb_num_previews = [[[NSUserDefaults standardUserDefaults] objectForKey:@"PreviewsNumber"] intValue]; + [fPictureSlider setMaxValue: hb_num_previews - 1.0]; + [fPictureSlider setNumberOfTickMarks: hb_num_previews]; + + if ([[NSUserDefaults standardUserDefaults] objectForKey:@"PreviewLength"]) + { + [fPreviewMovieLengthPopUp selectItemWithTitle:[[NSUserDefaults standardUserDefaults] objectForKey:@"PreviewLength"]]; + } + else + { + /* currently hard set default to 10 seconds */ + [fPreviewMovieLengthPopUp selectItemAtIndex: 1]; + } +} + +- (void) SetTitle: (hb_title_t *) title +{ + hb_job_t * job = title->job; + + fTitle = title; +fPicture = 0; +MaxOutputWidth = title->width - job->crop[2] - job->crop[3]; + MaxOutputHeight = title->height - job->crop[0] - job->crop[1]; + [self SettingsChanged: nil]; +} + + + +// Adjusts the window to draw the current picture (fPicture) adjusting its size as +// necessary to display as much of the picture as possible. +- (void) displayPreview +{ + hb_job_t * job = fTitle->job; + /* lets make sure that the still picture view is not hidden and that + * the movie preview is + */ + [fMovieView pause:nil]; + [fMovieView setHidden:YES]; + [fMovieCreationProgressIndicator stopAnimation: nil]; + [fMovieCreationProgressIndicator setHidden: YES]; + + [fPictureView setHidden:NO]; + + [fPictureView setImage: [self imageForPicture: fPicture]]; + + NSSize displaySize = NSMakeSize( ( CGFloat )fTitle->width, ( CGFloat )fTitle->height ); + /* Set the picture size display fields below the Preview Picture*/ + if( fTitle->job->pixel_ratio == 1 ) // Original PAR Implementation + { + output_width = fTitle->width-fTitle->job->crop[2]-fTitle->job->crop[3]; + output_height = fTitle->height-fTitle->job->crop[0]-fTitle->job->crop[1]; + display_width = output_width * fTitle->job->pixel_aspect_width / fTitle->job->pixel_aspect_height; + [fInfoField setStringValue:[NSString stringWithFormat: + @"Source: %dx%d, Output: %dx%d, Anamorphic: %dx%d", + fTitle->width, fTitle->height, output_width, output_height, display_width, output_height]]; + displaySize.width *= ( ( CGFloat )fTitle->job->pixel_aspect_width ) / ( ( CGFloat )fTitle->job->pixel_aspect_height ); + } + else if (fTitle->job->pixel_ratio == 2) // Loose Anamorphic + { + hb_set_anamorphic_size(job, &output_width, &output_height, &output_par_width, &output_par_height); + display_width = output_width * output_par_width / output_par_height; + [fInfoField setStringValue:[NSString stringWithFormat: + @"Source: %dx%d, Output: %dx%d, Anamorphic: %dx%d", + fTitle->width, fTitle->height, output_width, output_height, display_width, output_height]]; + + displaySize.width = display_width; + } + else // No Anamorphic + { + [fInfoField setStringValue: [NSString stringWithFormat: + @"Source: %dx%d, Output: %dx%d", fTitle->width, fTitle->height, + fTitle->job->width, fTitle->job->height]]; + } + + NSSize viewSize = [self optimalViewSizeForImageSize:displaySize]; + if( [self viewNeedsToResizeToSize:viewSize] ) + { + /* In the case of loose anamorphic, do not resize the window when scaling down */ + // FIX ME: we need a new way to do this as we do not havefWidthField anymore + //if (fTitle->job->pixel_ratio != 2 || [fWidthField intValue] == fTitle->width) + if (fTitle->job->pixel_ratio != 2 || (fTitle->job->pixel_ratio == 2 && output_width == fTitle->width)) + { + [self resizeSheetForViewSize:viewSize]; + [self setViewSize:viewSize]; + } + } + + // Show the scaled text (use the height to check since the width can vary + // with anamorphic video). + if( ( ( int )viewSize.height ) != fTitle->height ) + { + CGFloat scale = viewSize.width / ( ( CGFloat ) fTitle->width ); + NSString *scaleString = [NSString stringWithFormat: + NSLocalizedString( @" (Preview scaled to %.0f%% actual size)", + @"String shown when a preview is scaled" ), + scale * 100.0]; + [fInfoField setStringValue: [[fInfoField stringValue] stringByAppendingString:scaleString]]; + } + +} + +- (IBAction) previewDurationPopUpChanged: (id) sender +{ + +[[NSUserDefaults standardUserDefaults] setObject:[fPreviewMovieLengthPopUp titleOfSelectedItem] forKey:@"PreviewLength"]; + +} + + + + + +- (IBAction) SettingsChanged: (id) sender +{ + // Purge the existing picture previews so they get recreated the next time + // they are needed. + [self purgeImageCache]; + /* We actually call displayPreview now from pictureSliderChanged which keeps + * our picture preview slider in sync with the previews being shown + */ + //[self displayPreview]; + [self pictureSliderChanged:nil]; +} + +- (IBAction) pictureSliderChanged: (id) sender +{ + // Show the picture view + [fPictureView setHidden:NO]; + [fMovieView pause:nil]; + [fMovieView setHidden:YES]; + [fEncodingControlBox setHidden: YES]; + + int newPicture = [fPictureSlider intValue]; + if (newPicture != fPicture) + { + fPicture = newPicture; + } + [self displayPreview]; + +} + +- (IBAction)showPreviewPanel: (id)sender forTitle: (hb_title_t *)title +{ + [self SetTitle:title]; + [self showWindow:sender]; + isFullScreen = NO; + +} + +- (IBAction)showPictureSettings:(id)sender +{ +[fHBController showPicturePanel:self]; +} + + +#pragma mark Cocoa For Fullscreen Mode + +- (IBAction)toggleScreenMode:(id)sender +{ + if (!isFullScreen) + { + [self goFullScreen:nil]; + } + else + { + [self goWindowedScreen:nil]; + } +} + +- (IBAction)goFullScreen:(id)sender +{ + // Get the screen information. + NSScreen* mainScreen = [NSScreen mainScreen]; + NSDictionary* screenInfo = [mainScreen deviceDescription]; + NSNumber* screenID = [screenInfo objectForKey:@"NSScreenNumber"]; + // Capture the screen. + CGDirectDisplayID displayID = (CGDirectDisplayID)[screenID longValue]; + CGDisplayErr err = CGDisplayCapture(displayID); + + if (err == CGDisplayNoErr) + { + + // Create the full-screen window. + NSRect winRect = [fPreviewWindow frame]; + fFullScreenWindow = [[NSWindow alloc] initWithContentRect:winRect + styleMask:NSBorderlessWindowMask + backing:NSBackingStoreBuffered + defer:NO + screen:[NSScreen mainScreen]]; + + // Establish the window attributes. + [fFullScreenWindow setReleasedWhenClosed:NO]; + [fFullScreenWindow setDisplaysWhenScreenProfileChanges:YES]; + [fFullScreenWindow setDelegate:self]; + + /* insert a view into the new window */ + [fFullScreenWindow setContentView:fPictureViewArea]; + [fPictureViewArea setNeedsDisplay:YES]; + + // Center the window + + /* Better to center the window using the screen's frame + * and the windows origin. Note that we should take into + * account the auto sizing and alignment that occurs in + * setViewSize each time the preview changes. + */ + + NSSize screenSize = [[NSScreen mainScreen] frame].size; + NSSize windowSize = [fFullScreenWindow frame].size; + NSPoint windowOrigin = [fFullScreenWindow frame].origin; + + /* Adjust our origin y (vertical) based on the screen height */ + windowOrigin.y = (screenSize.height - windowSize.height) / 2.0; + windowOrigin.x = (screenSize.width - windowSize.width) / 2.0; + + [fFullScreenWindow setFrameOrigin:windowOrigin]; + + /* Using the simple center method for NSWindow + * though note this will cause the window to be slightly + * higher than center + */ + //[fFullScreenWindow center]; + + /* lets kill the timer for now */ + [self stopReceivingLibhbNotifications]; + + /* We need to retain the fPreviewWindow */ + [fPreviewWindow retain]; + + [self setWindow:fFullScreenWindow]; + + // The window has to be above the level of the shield window. + int32_t shieldLevel = CGShieldingWindowLevel(); + + [fFullScreenWindow setLevel:shieldLevel]; + + // Show the window. + [fFullScreenWindow makeKeyAndOrderFront:self]; + + [fPreviewWindow setAcceptsMouseMovedEvents:NO]; + [fFullScreenWindow setAcceptsMouseMovedEvents:YES]; + + /* Change the name of fFullScreenToggleButton appropriately */ + [fFullScreenToggleButton setTitle: @"Windowed"]; + + /* Lets fire the timer back up for the hud controls, etc. */ + [self startReceivingLibhbNotifications]; + + isFullScreen = YES; + + /* make sure we are set to a still preview */ + [self pictureSliderChanged:nil]; + + /* set the picture settings pallete above the shielding level */ + [fHBController picturePanelFullScreen]; + } +} + +- (IBAction)goWindowedScreen:(id)sender +{ + + /* Get the screen info to release the display but don't actually do + * it until the windowed screen is setup. + */ + NSScreen* mainScreen = [NSScreen mainScreen]; + NSDictionary* screenInfo = [mainScreen deviceDescription]; + NSNumber* screenID = [screenInfo objectForKey:@"NSScreenNumber"]; + CGDirectDisplayID displayID = (CGDirectDisplayID)[screenID longValue]; + + [fFullScreenWindow setAcceptsMouseMovedEvents:NO]; + [fFullScreenWindow dealloc]; + [fFullScreenWindow release]; + + + [fPreviewWindow setContentView:fPictureViewArea]; + [fPictureViewArea setNeedsDisplay:YES]; + [self setWindow:fPreviewWindow]; + + // Show the window. + [fPreviewWindow makeKeyAndOrderFront:self]; + + /* Set the window back to regular level */ + [fPreviewWindow setLevel:NSNormalWindowLevel]; + + [fPreviewWindow setAcceptsMouseMovedEvents:YES]; + + + /* Set the isFullScreen flag back to NO */ + isFullScreen = NO; + [self showPreviewWindow:nil]; + + /* Change the name of fFullScreenToggleButton appropriately */ + [fFullScreenToggleButton setTitle: @"Full Screen"]; + + /* set the picture settings pallete back to normal level */ + [fHBController picturePanelFullScreen]; + + /* Release the display now that the we are back in windowed mode */ + CGDisplayRelease(displayID); + +} + + +#pragma mark Still Preview Image Processing + + +// This function converts an image created by libhb (specified via pictureIndex) into +// an NSImage suitable for the GUI code to use. If removeBorders is YES, +// makeImageForPicture crops the image generated by libhb stripping off the gray +// border around the content. This is the low-level method that generates the image. +// -imageForPicture calls this function whenever it can't find an image in its cache. ++ (NSImage *) makeImageForPicture: (int)pictureIndex + libhb:(hb_handle_t*)handle + title:(hb_title_t*)title + removeBorders:(BOOL)removeBorders +{ + if (removeBorders) + { + // |<---------- title->width ----------->| + // | |<---- title->job->width ---->| | + // | | | | + // ....................................... + // ....+-----------------------------+.... + // ....| |....<-- gray border + // ....| |.... + // ....| |.... + // ....| |<------- image + // ....| |.... + // ....| |.... + // ....| |.... + // ....| |.... + // ....| |.... + // ....+-----------------------------+.... + // ....................................... + + static uint8_t * buffer; + static int bufferSize; + + // Make sure we have a big enough buffer to receive the image from libhb. libhb + // creates images with a one-pixel border around the original content. Hence we + // add 2 pixels horizontally and vertically to the buffer size. + int srcWidth = title->width + 2; + int srcHeight= title->height + 2; + int newSize; + newSize = srcWidth * srcHeight * 4; + if( bufferSize < newSize ) + { + bufferSize = newSize; + buffer = (uint8_t *) realloc( buffer, bufferSize ); + } + + hb_get_preview( handle, title, pictureIndex, buffer ); + + // Create an NSBitmapImageRep and copy the libhb image into it, converting it from + // libhb's format to one suitable for NSImage. Along the way, we'll strip off the + // border around libhb's image. + + // The image data returned by hb_get_preview is 4 bytes per pixel, BGRA format. + // Alpha is ignored. + + int dstWidth = title->job->width; + int dstHeight = title->job->height; + NSBitmapFormat bitmapFormat = (NSBitmapFormat)NSAlphaFirstBitmapFormat; + NSBitmapImageRep * imgrep = [[[NSBitmapImageRep alloc] + initWithBitmapDataPlanes:nil + pixelsWide:dstWidth + pixelsHigh:dstHeight + bitsPerSample:8 + samplesPerPixel:3 // ignore alpha + hasAlpha:NO + isPlanar:NO + colorSpaceName:NSCalibratedRGBColorSpace + bitmapFormat:bitmapFormat + bytesPerRow:dstWidth * 4 + bitsPerPixel:32] autorelease]; + + int borderTop = (srcHeight - dstHeight) / 2; + int borderLeft = (srcWidth - dstWidth) / 2; + + UInt32 * src = (UInt32 *)buffer; + UInt32 * dst = (UInt32 *)[imgrep bitmapData]; + src += borderTop * srcWidth; // skip top rows in src to get to first row of dst + src += borderLeft; // skip left pixels in src to get to first pixel of dst + for (int r = 0; r < dstHeight; r++) + { + for (int c = 0; c < dstWidth; c++) +#if TARGET_RT_LITTLE_ENDIAN + *dst++ = Endian32_Swap(*src++); +#else + *dst++ = *src++; +#endif + src += (srcWidth - dstWidth); // skip to next row in src + } + + NSImage * img = [[[NSImage alloc] initWithSize: NSMakeSize(dstWidth, dstHeight)] autorelease]; + [img addRepresentation:imgrep]; + + return img; + } + else + { + // Make sure we have big enough buffer + static uint8_t * buffer; + static int bufferSize; + + int newSize; + newSize = ( title->width + 2 ) * (title->height + 2 ) * 4; + if( bufferSize < newSize ) + { + bufferSize = newSize; + buffer = (uint8_t *) realloc( buffer, bufferSize ); + } + + hb_get_preview( handle, title, pictureIndex, buffer ); + + // The image data returned by hb_get_preview is 4 bytes per pixel, BGRA format. + // We'll copy that into an NSImage swapping it to ARGB in the process. Alpha is + // ignored. + int width = title->width + 2; // hblib adds a one-pixel border to the image + int height = title->height + 2; + int numPixels = width * height; + NSBitmapFormat bitmapFormat = (NSBitmapFormat)NSAlphaFirstBitmapFormat; + NSBitmapImageRep * imgrep = [[[NSBitmapImageRep alloc] + initWithBitmapDataPlanes:nil + pixelsWide:width + pixelsHigh:height + bitsPerSample:8 + samplesPerPixel:3 // ignore alpha + hasAlpha:NO + isPlanar:NO + colorSpaceName:NSCalibratedRGBColorSpace + bitmapFormat:bitmapFormat + bytesPerRow:width * 4 + bitsPerPixel:32] autorelease]; + + UInt32 * src = (UInt32 *)buffer; + UInt32 * dst = (UInt32 *)[imgrep bitmapData]; + for (int i = 0; i < numPixels; i++) +#if TARGET_RT_LITTLE_ENDIAN + *dst++ = Endian32_Swap(*src++); +#else + *dst++ = *src++; +#endif + + NSImage * img = [[[NSImage alloc] initWithSize: NSMakeSize(width, height)] autorelease]; + [img addRepresentation:imgrep]; + + return img; + } +} + +// Returns the preview image for the specified index, retrieving it from its internal +// cache or by calling makeImageForPicture if it is not cached. Generally, you should +// use imageForPicture so that images are cached. Calling makeImageForPicture will +// always generate a new copy of the image. +- (NSImage *) imageForPicture: (int) pictureIndex +{ + // The preview for the specified index may not currently exist, so this method + // generates it if necessary. + NSString * key = [NSString stringWithFormat:@"%d", pictureIndex]; + NSImage * theImage = [fPicturePreviews objectForKey:key]; + if (!theImage) + { + theImage = [PreviewController makeImageForPicture:pictureIndex libhb:fHandle title:fTitle removeBorders: NO]; + [fPicturePreviews setObject:theImage forKey:key]; + } + return theImage; +} + +// Purges all images from the cache. The next call to imageForPicture will cause a new +// image to be generated. +- (void) purgeImageCache +{ + [fPicturePreviews removeAllObjects]; +} + + + +#pragma mark Movie Preview +- (IBAction) createMoviePreview: (id) sender +{ + + + /* Lets make sure the still picture previews are showing in case + * there is currently a movie showing */ + [self pictureSliderChanged:nil]; + + /* Rip or Cancel ? */ + hb_state_t s; + hb_get_state2( fPreviewLibhb, &s ); + + if(sender == fCancelPreviewMovieButton && (s.state == HB_STATE_WORKING || s.state == HB_STATE_PAUSED)) + { + + play_movie = NO; + hb_stop( fPreviewLibhb ); + [fPictureView setHidden:NO]; + [fMovieView pause:nil]; + [fMovieView setHidden:YES]; + [fPictureSlider setHidden:NO]; + isEncoding = NO; + + return; + } + + + /* we use controller.mm's prepareJobForPreview to go ahead and set all of our settings + * however, we want to use a temporary destination field of course + * so that we do not put our temp preview in the users chosen + * directory */ + + hb_job_t * job = fTitle->job; + + /* We run our current setting through prepeareJob in Controller.mm + * just as if it were a regular encode */ + + [fHBController prepareJobForPreview]; + + /* Destination file. We set this to our preview directory + * changing the extension appropriately.*/ + if (fTitle->job->mux == HB_MUX_MP4) // MP4 file + { + /* we use .m4v for our mp4 files so that ac3 and chapters in mp4 will play properly */ + fPreviewMoviePath = @"~/Library/Application Support/HandBrake/Previews/preview_temp.m4v"; + } + else if (fTitle->job->mux == HB_MUX_MKV) // MKV file + { + fPreviewMoviePath = @"~/Library/Application Support/HandBrake/Previews/preview_temp.mkv"; + } + else if (fTitle->job->mux == HB_MUX_AVI) // AVI file + { + fPreviewMoviePath = @"~/Library/Application Support/HandBrake/Previews/preview_temp.avi"; + } + else if (fTitle->job->mux == HB_MUX_OGM) // OGM file + { + fPreviewMoviePath = @"~/Library/Application Support/HandBrake/Previews/preview_temp.ogm"; + } + + fPreviewMoviePath = [[fPreviewMoviePath stringByExpandingTildeInPath]retain]; + + /* See if there is an existing preview file, if so, delete it */ + if( ![[NSFileManager defaultManager] fileExistsAtPath:fPreviewMoviePath] ) + { + [[NSFileManager defaultManager] removeFileAtPath:fPreviewMoviePath + handler:nil]; + } + + /* We now direct our preview encode to fPreviewMoviePath */ + fTitle->job->file = [fPreviewMoviePath UTF8String]; + + /* We use our advance pref to determine how many previews to scan */ + int hb_num_previews = [[[NSUserDefaults standardUserDefaults] objectForKey:@"PreviewsNumber"] intValue]; + job->start_at_preview = fPicture + 1; + job->seek_points = hb_num_previews; + + /* we use the preview duration popup to get the specified + * number of seconds for the preview encode. + */ + + job->pts_to_stop = [[fPreviewMovieLengthPopUp titleOfSelectedItem] intValue] * 90000LL; + + /* lets go ahead and send it off to libhb + * Note: unlike a full encode, we only send 1 pass regardless if the final encode calls for 2 passes. + * this should suffice for a fairly accurate short preview and cuts our preview generation time in half. + */ + hb_add( fPreviewLibhb, job ); + + [fEncodingControlBox setHidden: NO]; + [fPictureControlBox setHidden: YES]; + + [fMovieCreationProgressIndicator setHidden: NO]; + [fPreviewMovieStatusField setHidden: NO]; + + isEncoding = YES; + + play_movie = YES; + + /* Let fPreviewLibhb do the job */ + hb_start( fPreviewLibhb ); + +} + +- (void) startReceivingLibhbNotifications +{ + if (!fLibhbTimer) + { + fLibhbTimer = [NSTimer scheduledTimerWithTimeInterval:0.5 target:self selector:@selector(libhbTimerFired:) userInfo:nil repeats:YES]; + [fLibhbTimer retain]; + } +} + +- (void) stopReceivingLibhbNotifications +{ + if (fLibhbTimer) + { + [fLibhbTimer invalidate]; + [fLibhbTimer release]; + fLibhbTimer = nil; + } +} +- (void) libhbTimerFired: (NSTimer*)theTimer +{ + hb_state_t s; + hb_get_state( fPreviewLibhb, &s ); + [self libhbStateChanged: s]; + +} + +- (void) libhbStateChanged: (hb_state_t &)state +{ + switch( state.state ) + { + case HB_STATE_IDLE: + case HB_STATE_SCANNING: + case HB_STATE_SCANDONE: + break; + + case HB_STATE_WORKING: + { +#define p state.param.working + + NSMutableString * string; + /* Update text field */ + string = [NSMutableString stringWithFormat: NSLocalizedString( @"Encoding preview: %.2f %%", @"" ), 100.0 * p.progress]; + + if( p.seconds > -1 ) + { + [string appendFormat: + NSLocalizedString( @" (%.2f fps, avg %.2f fps, ETA %02dh%02dm%02ds)", @"" ), + p.rate_cur, p.rate_avg, p.hours, p.minutes, p.seconds]; + } + [fPreviewMovieStatusField setStringValue: string]; + + [fMovieCreationProgressIndicator setIndeterminate: NO]; + /* Update slider */ + [fMovieCreationProgressIndicator setDoubleValue: 100.0 * p.progress]; + + [fCreatePreviewMovieButton setTitle: @"Cancel Preview"]; + + break; + + } +#undef p + +#define p state.param.muxing + case HB_STATE_MUXING: + { + // Update fMovieCreationProgressIndicator + [fMovieCreationProgressIndicator setIndeterminate: YES]; + [fMovieCreationProgressIndicator startAnimation: nil]; + [fPreviewMovieStatusField setStringValue: [NSString stringWithFormat: + NSLocalizedString( @"Muxing Preview ...", @"" )]]; + break; + } +#undef p + case HB_STATE_PAUSED: + [fMovieCreationProgressIndicator stopAnimation: nil]; + break; + + case HB_STATE_WORKDONE: + { + // Delete all remaining jobs since libhb doesn't do this on its own. + hb_job_t * job; + while( ( job = hb_job(fPreviewLibhb, 0) ) ) + hb_rem( fHandle, job ); + + [fPreviewMovieStatusField setStringValue: @""]; + [fPreviewMovieStatusField setHidden: YES]; + + [fMovieCreationProgressIndicator stopAnimation: nil]; + [fMovieCreationProgressIndicator setHidden: YES]; + [fEncodingControlBox setHidden: YES]; + isEncoding = NO; + /* we make sure the picture slider and preview match */ + [self pictureSliderChanged:nil]; + + + // Show the movie view + if (play_movie) + { + [self showMoviePreview:fPreviewMoviePath]; + } + + [fCreatePreviewMovieButton setTitle: @"Live Preview"]; + + + break; + } + } + +} + +- (IBAction) showMoviePreview: (NSString *) path +{ + /* Since the gray background for the still images is part of + * fPictureView, lets leave the picture view visible and postion + * the fMovieView over the image portion of fPictureView so + * we retain the gray cropping border we have already established + * with the still previews + */ + [fMovieView setHidden:NO]; + + /* Load the new movie into fMovieView */ + QTMovie * aMovie; + NSRect movieBounds; + if (path) + { + [fMovieView setControllerVisible: YES]; + /* let's make sure there is no movie currently set */ + [fMovieView setMovie:nil]; + + aMovie = [QTMovie movieWithFile:path error:nil]; + + /* we get some size information from the preview movie */ + Rect movieBox; + GetMovieBox ([aMovie quickTimeMovie], &movieBox); + movieBounds = [fMovieView movieBounds]; + movieBounds.size.height = movieBox.bottom - movieBox.top; + + if ([fMovieView isControllerVisible]) + movieBounds.size.height += [fMovieView controllerBarHeight]; + /* since for whatever the reason I cannot seem to get the [fMovieView controllerBarHeight] + * For now just use 15 for additional height as it seems to line up well + */ + movieBounds.size.height += 15; + + movieBounds.size.width = movieBox.right - movieBox.left; + + /* We need to find out if the preview movie needs to be scaled down so + * that it doesn't overflow our available viewing container (just like for image + * in -displayPreview) for HD sources, etc. [fPictureViewArea frame].size.height*/ + if( ((int)movieBounds.size.height) > [fPictureView frame].size.height ) + { + /* The preview movie would be larger than the available viewing area + * in the preview movie, so we go ahead and scale it down to the same size + * as the still preview or we readjust our window to allow for the added height if need be + */ + NSSize displaySize = NSMakeSize( (float)movieBounds.size.width, (float)movieBounds.size.height ); + //NSSize displaySize = NSMakeSize( (float)fTitle->width, (float)fTitle->height ); + NSSize viewSize = [self optimalViewSizeForImageSize:displaySize]; + if( [self viewNeedsToResizeToSize:viewSize] ) + { + + [self resizeSheetForViewSize:viewSize]; + [self setViewSize:viewSize]; + + } + + [fMovieView setFrameSize:viewSize]; + } + else + { + /* Since the preview movie is smaller than the available viewing area + * we can go ahead and use the preview movies native size */ + [fMovieView setFrameSize:movieBounds.size]; + } + + // lets reposition the movie if need be + + NSPoint origin = [fPictureViewArea frame].origin; + origin.x += trunc(([fPictureViewArea frame].size.width - + [fMovieView frame].size.width) / 2.0); + /* We need to detect whether or not we are currently less than the available height.*/ + if (movieBounds.size.height < [fPictureView frame].size.height) + { + /* If we are, we are adding 15 to the height to allow for the controller bar so + * we need to subtract half of that for the origin.y to get the controller bar + * below the movie to it lines up vertically with where our still preview was + */ + origin.y += trunc((([fPictureViewArea frame].size.height - + [fMovieView frame].size.height) / 2.0) - 7.5); + } + else + { + /* if we are >= to the height of the picture view area, the controller bar + * gets taken care of with picture resizing, so we do not want to offset the height + */ + origin.y += trunc(([fPictureViewArea frame].size.height - + [fMovieView frame].size.height) / 2.0); + } + [fMovieView setFrameOrigin:origin]; + + [fMovieView setMovie:aMovie]; + /// to actually play the movie + [fMovieView play:aMovie]; + } + else + { + aMovie = nil; + } + isEncoding = NO; +} + + +@end + +@implementation PreviewController (Private) + +// +// -[PictureController(Private) optimalViewSizeForImageSize:] +// +// Given the size of the preview image to be shown, returns the best possible +// size for the view. +// +- (NSSize)optimalViewSizeForImageSize: (NSSize)imageSize +{ + // The min size is 320x240 + CGFloat minWidth = 480.0; + CGFloat minHeight = 360.0; + + NSSize screenSize = [[NSScreen mainScreen] frame].size; + NSSize sheetSize = [[self window] frame].size; + NSSize viewAreaSize = [fPictureViewArea frame].size; + CGFloat paddingX = sheetSize.width - viewAreaSize.width; + CGFloat paddingY = sheetSize.height - viewAreaSize.height; + CGFloat maxWidth; + CGFloat maxHeight; + + if (isFullScreen) + { + /* We are in full screen mode so lets use the full screen if we need to */ + maxWidth = screenSize.width - paddingX; + maxHeight = screenSize.height - paddingY; + } + else + { + // The max size of the view is when the sheet is taking up 85% of the screen. + maxWidth = (0.85 * screenSize.width) - paddingX; + maxHeight = (0.85 * screenSize.height) - paddingY; + } + + NSSize resultSize = imageSize; + + // Its better to have a view that's too small than a view that's too big, so + // apply the maximum constraints last. + if( resultSize.width < minWidth ) + { + resultSize.height *= (minWidth / resultSize.width); + resultSize.width = minWidth; + } + if( resultSize.height < minHeight ) + { + resultSize.width *= (minHeight / resultSize.height); + resultSize.height = minHeight; + } + if( resultSize.width > maxWidth ) + { + resultSize.height *= (maxWidth / resultSize.width); + resultSize.width = maxWidth; + } + if( resultSize.height > maxHeight ) + { + resultSize.width *= (maxHeight / resultSize.height); + resultSize.height = maxHeight; + } + + return resultSize; +} + +// +// -[PictureController(Private) resizePanelForViewSize:animate:] +// +// Resizes the entire sheet to accomodate a view of a particular size. +// +- (void)resizeSheetForViewSize: (NSSize)viewSize +{ + // Figure out the deltas for the new frame area + NSSize currentSize = [fPictureViewArea frame].size; + CGFloat deltaX = viewSize.width - currentSize.width; + CGFloat deltaY = viewSize.height - currentSize.height; + + // Now resize the whole panel by those same deltas, but don't exceed the min + NSRect frame = [[self window] frame]; + NSSize maxSize = [[self window] maxSize]; + NSSize minSize = [[self window] minSize]; + frame.size.width += deltaX; + frame.size.height += deltaY; + if( frame.size.width < minSize.width ) + { + frame.size.width = minSize.width; + } + + if( frame.size.height < minSize.height ) + { + frame.size.height = minSize.height; + } + + + // But now the sheet is off-center, so also shift the origin to center it and + // keep the top aligned. + if( frame.size.width != [[self window] frame].size.width ) + frame.origin.x -= (deltaX / 2.0); + + if (isFullScreen) + { + if( frame.size.height != [[self window] frame].size.height ) + frame.origin.y -= (deltaY / 2.0); + } + else + { + if( frame.size.height != [[self window] frame].size.height ) + frame.origin.y -= deltaY; + } + + [[self window] setFrame:frame display:YES animate:YES]; +} + +// +// -[PictureController(Private) setViewSize:] +// +// Changes the view's size and centers it vertically inside of its area. +// Assumes resizeSheetForViewSize: has already been called. +// +- (void)setViewSize: (NSSize)viewSize +{ + [fPictureView setFrameSize:viewSize]; + + // center it vertically + NSPoint origin = [fPictureViewArea frame].origin; + origin.y += ([fPictureViewArea frame].size.height - + [fPictureView frame].size.height) / 2.0; + [fPictureView setFrameOrigin:origin]; + + NSPoint controlboxorigin = [fPictureView frame].origin; + + /* for now, put the origin.y 100 above the bottom of the fPictureView */ + controlboxorigin.y += 100; + + controlboxorigin.x += ([fPictureViewArea frame].size.width - + [fPictureControlBox frame].size.width) / 2.0; + /* requires that thefPictureControlBox and the fEncodingControlBox + * are the same width to line up. + */ + [fPictureControlBox setFrameOrigin:controlboxorigin]; + [fEncodingControlBox setFrameOrigin:controlboxorigin]; + +} + + +- (BOOL)viewNeedsToResizeToSize: (NSSize)newSize +{ + NSSize viewSize = [fPictureView frame].size; + return (newSize.width != viewSize.width || newSize.height != viewSize.height); +} + +@end diff --git a/macosx/HandBrake.xcodeproj/project.pbxproj b/macosx/HandBrake.xcodeproj/project.pbxproj index d4ab9eb39..5af76b49b 100644 --- a/macosx/HandBrake.xcodeproj/project.pbxproj +++ b/macosx/HandBrake.xcodeproj/project.pbxproj @@ -73,11 +73,11 @@ 25DE1FB70C169A0C00F01FC8 /* HBPreferencesController.m in Sources */ = {isa = PBXBuildFile; fileRef = 25DE1FB50C169A0C00F01FC8 /* HBPreferencesController.m */; }; 4D1125D809D72FD200E0657B /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D1125D709D72FD200E0657B /* libz.dylib */; }; 4DD93F8F082036E8008E1322 /* Controller.h in Headers */ = {isa = PBXBuildFile; fileRef = 4DF3C8CB052889CD00A80101 /* Controller.h */; }; - 4DD93F92082036E8008E1322 /* PictureController.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D1FD381073D19CE00E46515 /* PictureController.h */; }; + 4DD93F92082036E8008E1322 /* HBPreviewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D1FD381073D19CE00E46515 /* HBPreviewController.h */; }; 4DD93F97082036E8008E1322 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; }; 4DD93F9A082036E8008E1322 /* main.mm in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.mm */; settings = {ATTRIBUTES = (); }; }; 4DD93F9B082036E8008E1322 /* Controller.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4DF3C8CC052889CD00A80101 /* Controller.mm */; }; - 4DD93F9E082036E8008E1322 /* PictureController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4D1FD382073D19CE00E46515 /* PictureController.mm */; }; + 4DD93F9E082036E8008E1322 /* HBPreviewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4D1FD382073D19CE00E46515 /* HBPreviewController.mm */; }; 4DD93FA2082036E8008E1322 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; 4DD93FA3082036E8008E1322 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4DEB2024052B055F00C39CA9 /* IOKit.framework */; }; 4DD93FA4082036E8008E1322 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4DDE9724052B7B2B00C39CA9 /* OpenGL.framework */; }; @@ -95,15 +95,19 @@ A22C85ED0D05D35100C10E36 /* HBPresets.m in Sources */ = {isa = PBXBuildFile; fileRef = A22C85EB0D05D35000C10E36 /* HBPresets.m */; }; A25289E60D87A27D00461D5B /* enctheora.c in Sources */ = {isa = PBXBuildFile; fileRef = A25289E50D87A27D00461D5B /* enctheora.c */; }; A25289E70D87A2CB00461D5B /* enctheora.c in Sources */ = {isa = PBXBuildFile; fileRef = A25289E50D87A27D00461D5B /* enctheora.c */; }; + A25962E10F15077500B3BF4E /* Quartz.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A25962E00F15077500B3BF4E /* Quartz.framework */; }; A273E0510C57B39A00493A45 /* Pause.tiff in Resources */ = {isa = PBXBuildFile; fileRef = A273E04A0C57B39A00493A45 /* Pause.tiff */; }; A273E0520C57B39A00493A45 /* Play.tiff in Resources */ = {isa = PBXBuildFile; fileRef = A273E04B0C57B39A00493A45 /* Play.tiff */; }; A273E0530C57B39A00493A45 /* Stop.tiff in Resources */ = {isa = PBXBuildFile; fileRef = A273E04C0C57B39A00493A45 /* Stop.tiff */; }; A273E09A0C57C1CC00493A45 /* muxmkv.c in Sources */ = {isa = PBXBuildFile; fileRef = A273E0950C57C19500493A45 /* muxmkv.c */; }; A273E09B0C57C1CD00493A45 /* muxmkv.c in Sources */ = {isa = PBXBuildFile; fileRef = A273E0950C57C19500493A45 /* muxmkv.c */; }; + A27BB4EA0EFAB9310027CDF9 /* PicturePreview.xib in Resources */ = {isa = PBXBuildFile; fileRef = A27BB4E80EFAB9310027CDF9 /* PicturePreview.xib */; }; A29E05800BE1283E000533F5 /* Growl.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A29E057F0BE1283E000533F5 /* Growl.framework */; }; A29E058B0BE12889000533F5 /* Growl.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = A29E057F0BE1283E000533F5 /* Growl.framework */; }; A2A1EC310C76C35E00827E0D /* HBDVDDetector.h in Headers */ = {isa = PBXBuildFile; fileRef = A2A1EC300C76C35E00827E0D /* HBDVDDetector.h */; }; A2A1EC3A0C76C58400827E0D /* HBDVDDetector.m in Sources */ = {isa = PBXBuildFile; fileRef = A2A1EC390C76C58400827E0D /* HBDVDDetector.m */; }; + A2BF08050EFAB5D400C0E025 /* PictureController.h in Headers */ = {isa = PBXBuildFile; fileRef = A2BF08030EFAB5D400C0E025 /* PictureController.h */; }; + A2BF08060EFAB5D400C0E025 /* PictureController.mm in Sources */ = {isa = PBXBuildFile; fileRef = A2BF08040EFAB5D400C0E025 /* PictureController.mm */; }; A2D0A0AB0D3E5929002D57CB /* Sparkle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A2D0A0AA0D3E5929002D57CB /* Sparkle.framework */; }; A2D0A0BF0D3E596F002D57CB /* Sparkle.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = A2D0A0AA0D3E5929002D57CB /* Sparkle.framework */; }; A2D7AD670C998AD30082CA33 /* ActivityWindow.tiff in Resources */ = {isa = PBXBuildFile; fileRef = A2D7AD5E0C998AD30082CA33 /* ActivityWindow.tiff */; }; @@ -240,8 +244,8 @@ 29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; }; 29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; }; 4D1125D709D72FD200E0657B /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = /usr/lib/libz.dylib; sourceTree = "<absolute>"; }; - 4D1FD381073D19CE00E46515 /* PictureController.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = PictureController.h; sourceTree = "<group>"; }; - 4D1FD382073D19CE00E46515 /* PictureController.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = PictureController.mm; sourceTree = "<group>"; }; + 4D1FD381073D19CE00E46515 /* HBPreviewController.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = HBPreviewController.h; sourceTree = "<group>"; }; + 4D1FD382073D19CE00E46515 /* HBPreviewController.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = HBPreviewController.mm; sourceTree = "<group>"; }; 4DDE9724052B7B2B00C39CA9 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = /System/Library/Frameworks/OpenGL.framework; sourceTree = "<absolute>"; }; 4DEB2024052B055F00C39CA9 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = /System/Library/Frameworks/IOKit.framework; sourceTree = "<absolute>"; }; 4DF3C8CB052889CD00A80101 /* Controller.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Controller.h; sourceTree = "<group>"; }; @@ -260,13 +264,17 @@ A22C85EA0D05D35000C10E36 /* HBPresets.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HBPresets.h; sourceTree = "<group>"; }; A22C85EB0D05D35000C10E36 /* HBPresets.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HBPresets.m; sourceTree = "<group>"; }; A25289E50D87A27D00461D5B /* enctheora.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = enctheora.c; path = ../libhb/enctheora.c; sourceTree = SOURCE_ROOT; }; + A25962E00F15077500B3BF4E /* Quartz.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Quartz.framework; path = /System/Library/Frameworks/Quartz.framework; sourceTree = "<absolute>"; }; A273E04A0C57B39A00493A45 /* Pause.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = Pause.tiff; sourceTree = "<group>"; }; A273E04B0C57B39A00493A45 /* Play.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = Play.tiff; sourceTree = "<group>"; }; A273E04C0C57B39A00493A45 /* Stop.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = Stop.tiff; sourceTree = "<group>"; }; A273E0950C57C19500493A45 /* muxmkv.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = muxmkv.c; path = ../libhb/muxmkv.c; sourceTree = SOURCE_ROOT; }; + A27BB4E90EFAB9310027CDF9 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = English.lproj/PicturePreview.xib; sourceTree = "<group>"; }; A29E057F0BE1283E000533F5 /* Growl.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Growl.framework; sourceTree = "<group>"; }; A2A1EC300C76C35E00827E0D /* HBDVDDetector.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = HBDVDDetector.h; sourceTree = "<group>"; }; A2A1EC390C76C58400827E0D /* HBDVDDetector.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = HBDVDDetector.m; sourceTree = "<group>"; }; + A2BF08030EFAB5D400C0E025 /* PictureController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PictureController.h; sourceTree = "<group>"; }; + A2BF08040EFAB5D400C0E025 /* PictureController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = PictureController.mm; sourceTree = "<group>"; }; A2D0A0AA0D3E5929002D57CB /* Sparkle.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Sparkle.framework; sourceTree = "<group>"; }; A2D7AD5E0C998AD30082CA33 /* ActivityWindow.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = ActivityWindow.tiff; sourceTree = "<group>"; }; A2D7AD5F0C998AD30082CA33 /* AddToQueue.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = AddToQueue.tiff; sourceTree = "<group>"; }; @@ -356,6 +364,7 @@ A2D0A0AB0D3E5929002D57CB /* Sparkle.framework in Frameworks */, A20F46DC0EBB5E7A005B861B /* QuickTime.framework in Frameworks */, A20F47010EBB5EC2005B861B /* QTKit.framework in Frameworks */, + A25962E10F15077500B3BF4E /* Quartz.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -399,6 +408,7 @@ 29B97317FDCFA39411CA2CEA /* Resources */ = { isa = PBXGroup; children = ( + A27BB4E80EFAB9310027CDF9 /* PicturePreview.xib */, A273E0460C57B39A00493A45 /* icons */, 0DFA5C7A0B8DD1E90020BC09 /* HandBrake.icns */, E39AA4DA0D32DC0B0007A415 /* MainMenu.xib */, @@ -414,6 +424,7 @@ 29B97323FDCFA39411CA2CEA /* Frameworks */ = { isa = PBXGroup; children = ( + A25962E00F15077500B3BF4E /* Quartz.framework */, A20F47000EBB5EC2005B861B /* QTKit.framework */, A20F46DB0EBB5E7A005B861B /* QuickTime.framework */, D289A9F20DBBE7AC00CE614B /* CoreServices.framework */, @@ -487,13 +498,15 @@ 526FBC930B4CAA260064E04C /* HandBrake Sources */ = { isa = PBXGroup; children = ( + A2BF08030EFAB5D400C0E025 /* PictureController.h */, + 4DF3C8CC052889CD00A80101 /* Controller.mm */, + A2BF08040EFAB5D400C0E025 /* PictureController.mm */, A22C85EA0D05D35000C10E36 /* HBPresets.h */, A22C85EB0D05D35000C10E36 /* HBPresets.m */, 0DFA5D060B8DD9040020BC09 /* HandBrake.plist */, - 4D1FD381073D19CE00E46515 /* PictureController.h */, - 4D1FD382073D19CE00E46515 /* PictureController.mm */, + 4D1FD381073D19CE00E46515 /* HBPreviewController.h */, + 4D1FD382073D19CE00E46515 /* HBPreviewController.mm */, 4DF3C8CB052889CD00A80101 /* Controller.h */, - 4DF3C8CC052889CD00A80101 /* Controller.mm */, 593034E90BBA39A100172349 /* ChapterTitles.h */, 593034EA0BBA39A100172349 /* ChapterTitles.m */, A2A1EC300C76C35E00827E0D /* HBDVDDetector.h */, @@ -576,7 +589,7 @@ buildActionMask = 2147483647; files = ( 4DD93F8F082036E8008E1322 /* Controller.h in Headers */, - 4DD93F92082036E8008E1322 /* PictureController.h in Headers */, + 4DD93F92082036E8008E1322 /* HBPreviewController.h in Headers */, A2A1EC310C76C35E00827E0D /* HBDVDDetector.h in Headers */, 253886010BFE0A5B0064E995 /* HBOutputRedirect.h in Headers */, 253886170BFE0C160064E995 /* HBOutputPanelController.h in Headers */, @@ -585,6 +598,7 @@ A9AC41E00C918DB500DDF9B8 /* HBAdvancedController.h in Headers */, E37172680C977D340072B384 /* HBImageAndTextCell.h in Headers */, A22C85EC0D05D35000C10E36 /* HBPresets.h in Headers */, + A2BF08050EFAB5D400C0E025 /* PictureController.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -727,6 +741,7 @@ E39AA4E90D32DC0B0007A415 /* PictureSettings.xib in Resources */, E39AA4EA0D32DC0B0007A415 /* AdvancedView.xib in Resources */, E39AA4EB0D32DC0B0007A415 /* OutputPanel.xib in Resources */, + A27BB4EA0EFAB9310027CDF9 /* PicturePreview.xib in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -841,7 +856,7 @@ 59CBD2650BBB4D1B004A3BE3 /* ChapterTitles.m in Sources */, 4DD93F9A082036E8008E1322 /* main.mm in Sources */, 4DD93F9B082036E8008E1322 /* Controller.mm in Sources */, - 4DD93F9E082036E8008E1322 /* PictureController.mm in Sources */, + 4DD93F9E082036E8008E1322 /* HBPreviewController.mm in Sources */, A2A1EC3A0C76C58400827E0D /* HBDVDDetector.m in Sources */, 253886020BFE0A5B0064E995 /* HBOutputRedirect.m in Sources */, 253886180BFE0C160064E995 /* HBOutputPanelController.m in Sources */, @@ -850,6 +865,7 @@ A9AC41DF0C918DB500DDF9B8 /* HBAdvancedController.m in Sources */, E37172670C977D340072B384 /* HBImageAndTextCell.m in Sources */, A22C85ED0D05D35100C10E36 /* HBPresets.m in Sources */, + A2BF08060EFAB5D400C0E025 /* PictureController.mm in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -877,6 +893,14 @@ name = InfoPlist.strings; sourceTree = "<group>"; }; + A27BB4E80EFAB9310027CDF9 /* PicturePreview.xib */ = { + isa = PBXVariantGroup; + children = ( + A27BB4E90EFAB9310027CDF9 /* English */, + ); + name = PicturePreview.xib; + sourceTree = "<group>"; + }; E39AA4DA0D32DC0B0007A415 /* MainMenu.xib */ = { isa = PBXVariantGroup; children = ( diff --git a/macosx/PictureController.h b/macosx/PictureController.h index 91f88b9ed..b8af4be59 100644 --- a/macosx/PictureController.h +++ b/macosx/PictureController.h @@ -6,26 +6,26 @@ #import <Cocoa/Cocoa.h> -#include "hb.h" -/* Needed for Quicktime movie previews */ -#import <QTKit/QTKit.h> +#include "hb.h" @class HBController; +@class PreviewController; -#define HB_NUM_HBLIB_PICTURES 20 // # of preview pictures libhb should generate + +//#define HB_NUM_HBLIB_PICTURES 20 // # of preview pictures libhb should generate @interface PictureController : NSWindowController { hb_handle_t * fHandle; hb_title_t * fTitle; - HBController *fHBController; // reference to HBController + HBController *fHBController; + PreviewController *fPreviewController; // reference to HBController IBOutlet NSWindow * fPictureWindow; NSMutableDictionary * fPicturePreviews; // NSImages, one for each preview libhb creates, created lazily int fPicture; - IBOutlet NSImageView * fPictureView; - IBOutlet NSBox * fPictureViewArea; + IBOutlet NSBox * fPictureSizeBox; IBOutlet NSBox * fPictureCropBox; IBOutlet NSBox * fPictureFilterBox; @@ -54,12 +54,16 @@ IBOutlet NSSlider * fPictureSlider; IBOutlet NSTextField * fInfoField; + IBOutlet NSButton * fPreviewOpenButton; + int MaxOutputWidth; int MaxOutputHeight; BOOL autoCrop; BOOL allowLooseAnamorphic; + int output_width, output_height, output_par_width, output_par_height; int display_width; + /* used to track the previous state of the keep aspect ratio checkbox when turning anamorphic on, so it can be returned to the previous state when anamorphic is turned @@ -74,19 +78,7 @@ int deblock; } fPictureFilterSettings; - id delegate; - - /* Movie Previews */ - IBOutlet NSButton * fCreatePreviewMovieButton; - IBOutlet NSButton * fShowPreviewMovieButton; - NSString * fPreviewMoviePath; - IBOutlet NSProgressIndicator * fMovieCreationProgressIndicator; - hb_handle_t * fPreviewLibhb; // private libhb for creating previews - NSTimer * fLibhbTimer; // timer for retrieving state from libhb - IBOutlet NSTextField * fPreviewMovieStatusField; - BOOL play_movie; // flag used to determine whether or not to automatically play the movie when done. - IBOutlet QTMovieView * fMovieView; - IBOutlet NSPopUpButton * fPreviewMovieLengthPopUp; // popup of choices for length of preview in seconds + } - (id)init; @@ -94,21 +86,14 @@ - (void) SetTitle: (hb_title_t *) title; - (void)setHBController: (HBController *)controller; - (IBAction) showPictureWindow: (id)sender; +- (IBAction) showPreviewWindow: (id)sender; - (void) setInitialPictureFilters; -- (void) displayPreview; + - (IBAction) SettingsChanged: (id) sender; -- (IBAction) pictureSliderChanged: (id) sender; -/* Movie Previews */ -- (void) startReceivingLibhbNotifications; -- (void) stopReceivingLibhbNotifications; -- (IBAction) createMoviePreview: (id) sender; -- (void) libhbStateChanged: (hb_state_t &) state; -- (IBAction) showMoviePreview: (NSString *) path; -- (IBAction) previewDurationPopUpChanged: (id) sender; - (BOOL) autoCrop; - (void) setAutoCrop: (BOOL) setting; @@ -129,11 +114,10 @@ - (IBAction)showPreviewPanel: (id)sender forTitle: (hb_title_t *)title; -+ (NSImage *) makeImageForPicture: (int)pictureIndex - libhb:(hb_handle_t*)handle - title:(hb_title_t*)title - removeBorders:(BOOL)removeBorders; -- (NSImage *) imageForPicture: (int) pictureIndex; -- (void) purgeImageCache; + +- (void) setToFullScreenMode; +- (void) setToWindowedMode; + + @end diff --git a/macosx/PictureController.mm b/macosx/PictureController.mm index 8d61f562e..df70de657 100644 --- a/macosx/PictureController.mm +++ b/macosx/PictureController.mm @@ -6,15 +6,9 @@ #import "PictureController.h" #import "Controller.h" +#import "HBPreviewController.h" -@interface PictureController (Private) -- (NSSize)optimalViewSizeForImageSize: (NSSize)imageSize; -- (void)resizeSheetForViewSize: (NSSize)viewSize; -- (void)setViewSize: (NSSize)viewSize; -- (BOOL)viewNeedsToResizeToSize: (NSSize)newSize; - -@end @implementation PictureController @@ -32,11 +26,8 @@ // go away. [self window]; - fPicturePreviews = [[NSMutableDictionary dictionaryWithCapacity: HB_NUM_HBLIB_PICTURES] retain]; - /* Init libhb with check for updates libhb style set to "0" so its ignored and lets sparkle take care of it */ - int loggingLevel = [[[NSUserDefaults standardUserDefaults] objectForKey:@"LoggingLevel"] intValue]; - fPreviewLibhb = hb_init(loggingLevel, 0); - } + fPreviewController = [[PreviewController alloc] init]; + } return self; } @@ -48,9 +39,35 @@ [self showWindow:sender]; } +- (IBAction) showPreviewWindow: (id)sender +{ + [fPreviewController showWindow:sender]; +} + +- (void) setToFullScreenMode +{ + [self showWindow:nil]; + int32_t shieldLevel = CGShieldingWindowLevel(); + + [fPictureWindow setLevel:shieldLevel]; + // Show the window. + [fPictureWindow makeKeyAndOrderFront:self]; +} + +- (void) setToWindowedMode +{ + /* Set the window back to regular level */ + + [self showWindow:nil]; + + [[self window] setLevel:NSNormalWindowLevel]; +} + - (void)setHBController: (HBController *)controller { fHBController = controller; + [fPreviewController setHBController: controller]; + } - (void)awakeFromNib @@ -61,12 +78,7 @@ - (void)windowWillClose:(NSNotification *)aNotification { - /* Upon Closing the picture window, we make sure we clean up any - * preview movie that might be playing - */ - play_movie = NO; - hb_stop( fPreviewLibhb ); - [self pictureSliderChanged:nil]; + } - (BOOL)windowShouldClose:(id)fPictureWindow @@ -76,17 +88,7 @@ - (void) dealloc { - hb_stop(fPreviewLibhb); - if (fPreviewMoviePath) - { - [[NSFileManager defaultManager] removeFileAtPath:fPreviewMoviePath handler:nil]; - [fPreviewMoviePath release]; - } - - [fLibhbTimer invalidate]; - [fLibhbTimer release]; - - [fPicturePreviews release]; + [fPreviewController release]; [super dealloc]; } @@ -110,36 +112,9 @@ [fCropRightStepper setIncrement: 2]; [fCropRightStepper setMinValue: 0]; - /* we set the preview length popup in seconds */ - [fPreviewMovieLengthPopUp removeAllItems]; - [fPreviewMovieLengthPopUp addItemWithTitle: @"5"]; - [fPreviewMovieLengthPopUp addItemWithTitle: @"10"]; - [fPreviewMovieLengthPopUp addItemWithTitle: @"15"]; - [fPreviewMovieLengthPopUp addItemWithTitle: @"20"]; - [fPreviewMovieLengthPopUp addItemWithTitle: @"25"]; - [fPreviewMovieLengthPopUp addItemWithTitle: @"30"]; - [fPreviewMovieLengthPopUp addItemWithTitle: @"35"]; - [fPreviewMovieLengthPopUp addItemWithTitle: @"40"]; - [fPreviewMovieLengthPopUp addItemWithTitle: @"45"]; - [fPreviewMovieLengthPopUp addItemWithTitle: @"50"]; - [fPreviewMovieLengthPopUp addItemWithTitle: @"55"]; - [fPreviewMovieLengthPopUp addItemWithTitle: @"60"]; - - /* adjust the preview slider length */ - /* We use our advance pref to determine how many previews we scanned */ - int hb_num_previews = [[[NSUserDefaults standardUserDefaults] objectForKey:@"PreviewsNumber"] intValue]; - [fPictureSlider setMaxValue: hb_num_previews - 1.0]; - [fPictureSlider setNumberOfTickMarks: hb_num_previews]; + [fPreviewController SetHandle: fHandle]; - if ([[NSUserDefaults standardUserDefaults] objectForKey:@"PreviewLength"]) - { - [fPreviewMovieLengthPopUp selectItemWithTitle:[[NSUserDefaults standardUserDefaults] objectForKey:@"PreviewLength"]]; - } - else - { - /* currently hard set default to 10 seconds */ - [fPreviewMovieLengthPopUp selectItemAtIndex: 1]; - } + } - (void) SetTitle: (hb_title_t *) title @@ -147,7 +122,9 @@ hb_job_t * job = title->job; fTitle = title; - + + + [fWidthStepper setMaxValue: title->width]; [fWidthStepper setIntValue: job->width]; [fWidthField setIntValue: job->width]; @@ -200,6 +177,9 @@ fPicture = 0; MaxOutputWidth = title->width - job->crop[2] - job->crop[3]; MaxOutputHeight = title->height - job->crop[0] - job->crop[1]; + + //[fPreviewController SetTitle:fTitle]; + [self SettingsChanged: nil]; } @@ -229,82 +209,6 @@ are maintained across different sources */ } -// Adjusts the window to draw the current picture (fPicture) adjusting its size as -// necessary to display as much of the picture as possible. -- (void) displayPreview -{ - - /* lets make sure that the still picture view is not hidden and that - * the movie preview is - */ - [fMovieView pause:nil]; - [fMovieView setHidden:YES]; - [fMovieCreationProgressIndicator stopAnimation: nil]; - [fMovieCreationProgressIndicator setHidden: YES]; - - [fPictureView setHidden:NO]; - - [fPictureView setImage: [self imageForPicture: fPicture]]; - - NSSize displaySize = NSMakeSize( ( CGFloat )fTitle->width, ( CGFloat )fTitle->height ); - /* Set the picture size display fields below the Preview Picture*/ - if( fTitle->job->pixel_ratio == 1 ) // Original PAR Implementation - { - output_width = fTitle->width-fTitle->job->crop[2]-fTitle->job->crop[3]; - output_height = fTitle->height-fTitle->job->crop[0]-fTitle->job->crop[1]; - display_width = output_width * fTitle->job->pixel_aspect_width / fTitle->job->pixel_aspect_height; - [fInfoField setStringValue:[NSString stringWithFormat: - @"Source: %dx%d, Output: %dx%d, Anamorphic: %dx%d", - fTitle->width, fTitle->height, output_width, output_height, display_width, output_height]]; - displaySize.width *= ( ( CGFloat )fTitle->job->pixel_aspect_width ) / ( ( CGFloat )fTitle->job->pixel_aspect_height ); - } - else if (fTitle->job->pixel_ratio == 2) // Loose Anamorphic - { - display_width = output_width * output_par_width / output_par_height; - [fInfoField setStringValue:[NSString stringWithFormat: - @"Source: %dx%d, Output: %dx%d, Anamorphic: %dx%d", - fTitle->width, fTitle->height, output_width, output_height, display_width, output_height]]; - - displaySize.width = display_width; - } - else // No Anamorphic - { - [fInfoField setStringValue: [NSString stringWithFormat: - @"Source: %dx%d, Output: %dx%d", fTitle->width, fTitle->height, - fTitle->job->width, fTitle->job->height]]; - } - - NSSize viewSize = [self optimalViewSizeForImageSize:displaySize]; - if( [self viewNeedsToResizeToSize:viewSize] ) - { - /* In the case of loose anamorphic, do not resize the window when scaling down */ - if (fTitle->job->pixel_ratio != 2 || [fWidthField intValue] == fTitle->width) - { - [self resizeSheetForViewSize:viewSize]; - [self setViewSize:viewSize]; - } - } - - // Show the scaled text (use the height to check since the width can vary - // with anamorphic video). - if( ( ( int )viewSize.height ) != fTitle->height ) - { - CGFloat scale = viewSize.width / ( ( CGFloat ) fTitle->width ); - NSString *scaleString = [NSString stringWithFormat: - NSLocalizedString( @" (Preview scaled to %.0f%% actual size)", - @"String shown when a preview is scaled" ), - scale * 100.0]; - [fInfoField setStringValue: [[fInfoField stringValue] stringByAppendingString:scaleString]]; - } - -} - -- (IBAction) previewDurationPopUpChanged: (id) sender -{ - -[[NSUserDefaults standardUserDefaults] setObject:[fPreviewMovieLengthPopUp titleOfSelectedItem] forKey:@"PreviewLength"]; - -} @@ -492,6 +396,8 @@ are maintained across different sources */ [fCropLeftField setIntValue: job->crop[2]]; [fCropRightStepper setIntValue: job->crop[3]]; [fCropRightField setIntValue: job->crop[3]]; + + [fPreviewController SetTitle:fTitle]; /* Sanity Check Here for < 16 px preview to avoid crashing hb_get_preview. In fact, just for kicks lets getting previews at a min limit of 32, since @@ -501,12 +407,12 @@ are maintained across different sources */ // Purge the existing picture previews so they get recreated the next time // they are needed. - [self purgeImageCache]; + [fPreviewController purgeImageCache]; /* We actually call displayPreview now from pictureSliderChanged which keeps * our picture preview slider in sync with the previews being shown */ - //[self displayPreview]; - [self pictureSliderChanged:nil]; + + [fPreviewController pictureSliderChanged:nil]; } @@ -517,334 +423,7 @@ are maintained across different sources */ } -- (IBAction) pictureSliderChanged: (id) sender -{ - // Show the picture view - [fCreatePreviewMovieButton setTitle: @"Live Preview"]; - [fPictureView setHidden:NO]; - [fMovieView pause:nil]; - [fMovieView setHidden:YES]; - [fPreviewMovieStatusField setHidden: YES]; - - int newPicture = [fPictureSlider intValue]; - if (newPicture != fPicture) - { - fPicture = newPicture; - } - [self displayPreview]; - -} - -#pragma mark Movie Preview -- (IBAction) createMoviePreview: (id) sender -{ - - - /* Lets make sure the still picture previews are showing in case - * there is currently a movie showing */ - [self pictureSliderChanged:nil]; - - /* Rip or Cancel ? */ - hb_state_t s; - hb_get_state2( fPreviewLibhb, &s ); - - if(s.state == HB_STATE_WORKING || s.state == HB_STATE_PAUSED) - { - - play_movie = NO; - hb_stop( fPreviewLibhb ); - [fPictureView setHidden:NO]; - [fMovieView pause:nil]; - [fMovieView setHidden:YES]; - [fPictureSlider setHidden:NO]; - [fCreatePreviewMovieButton setTitle: @"Live Preview"]; - return; - } - - - /* we use controller.mm's prepareJobForPreview to go ahead and set all of our settings - * however, we want to use a temporary destination field of course - * so that we do not put our temp preview in the users chosen - * directory */ - - hb_job_t * job = fTitle->job; - - /* We run our current setting through prepeareJob in Controller.mm - * just as if it were a regular encode */ - - [fHBController prepareJobForPreview]; - - /* Destination file. We set this to our preview directory - * changing the extension appropriately.*/ - if (fTitle->job->mux == HB_MUX_MP4) // MP4 file - { - /* we use .m4v for our mp4 files so that ac3 and chapters in mp4 will play properly */ - fPreviewMoviePath = @"~/Library/Application Support/HandBrake/Previews/preview_temp.m4v"; - } - else if (fTitle->job->mux == HB_MUX_MKV) // MKV file - { - fPreviewMoviePath = @"~/Library/Application Support/HandBrake/Previews/preview_temp.mkv"; - } - else if (fTitle->job->mux == HB_MUX_AVI) // AVI file - { - fPreviewMoviePath = @"~/Library/Application Support/HandBrake/Previews/preview_temp.avi"; - } - else if (fTitle->job->mux == HB_MUX_OGM) // OGM file - { - fPreviewMoviePath = @"~/Library/Application Support/HandBrake/Previews/preview_temp.ogm"; - } - - fPreviewMoviePath = [[fPreviewMoviePath stringByExpandingTildeInPath]retain]; - - /* See if there is an existing preview file, if so, delete it */ - if( ![[NSFileManager defaultManager] fileExistsAtPath:fPreviewMoviePath] ) - { - [[NSFileManager defaultManager] removeFileAtPath:fPreviewMoviePath - handler:nil]; - } - - /* We now direct our preview encode to fPreviewMoviePath */ - fTitle->job->file = [fPreviewMoviePath UTF8String]; - - /* We use our advance pref to determine how many previews to scan */ - int hb_num_previews = [[[NSUserDefaults standardUserDefaults] objectForKey:@"PreviewsNumber"] intValue]; - job->start_at_preview = fPicture + 1; - job->seek_points = hb_num_previews; - - /* we use the preview duration popup to get the specified - * number of seconds for the preview encode. - */ - - job->pts_to_stop = [[fPreviewMovieLengthPopUp titleOfSelectedItem] intValue] * 90000LL; - - /* lets go ahead and send it off to libhb - * Note: unlike a full encode, we only send 1 pass regardless if the final encode calls for 2 passes. - * this should suffice for a fairly accurate short preview and cuts our preview generation time in half. - */ - hb_add( fPreviewLibhb, job ); - - [fPictureSlider setHidden:YES]; - [fMovieCreationProgressIndicator setHidden: NO]; - [fPreviewMovieStatusField setHidden: NO]; - [self startReceivingLibhbNotifications]; - - - [fCreatePreviewMovieButton setTitle: @"Cancel Preview"]; - - play_movie = YES; - - /* Let fPreviewLibhb do the job */ - hb_start( fPreviewLibhb ); - -} -- (void) startReceivingLibhbNotifications -{ - if (!fLibhbTimer) - { - fLibhbTimer = [NSTimer scheduledTimerWithTimeInterval:0.5 target:self selector:@selector(libhbTimerFired:) userInfo:nil repeats:YES]; - [fLibhbTimer retain]; - } -} - -- (void) stopReceivingLibhbNotifications -{ - if (fLibhbTimer) - { - [fLibhbTimer invalidate]; - [fLibhbTimer release]; - fLibhbTimer = nil; - } -} -- (void) libhbTimerFired: (NSTimer*)theTimer -{ - hb_state_t s; - hb_get_state( fPreviewLibhb, &s ); - [self libhbStateChanged: s]; -} -- (void) libhbStateChanged: (hb_state_t &)state -{ - switch( state.state ) - { - case HB_STATE_IDLE: - case HB_STATE_SCANNING: - case HB_STATE_SCANDONE: - break; - - case HB_STATE_WORKING: - { -#define p state.param.working - - NSMutableString * string; - /* Update text field */ - string = [NSMutableString stringWithFormat: NSLocalizedString( @"Encoding %d seconds of preview %d: %.2f %%", @"" ), [[fPreviewMovieLengthPopUp titleOfSelectedItem] intValue], fPicture + 1, 100.0 * p.progress]; - - if( p.seconds > -1 ) - { - [string appendFormat: - NSLocalizedString( @" (%.2f fps, avg %.2f fps, ETA %02dh%02dm%02ds)", @"" ), - p.rate_cur, p.rate_avg, p.hours, p.minutes, p.seconds]; - } - [fPreviewMovieStatusField setStringValue: string]; - - [fMovieCreationProgressIndicator setIndeterminate: NO]; - /* Update slider */ - [fMovieCreationProgressIndicator setDoubleValue: 100.0 * p.progress]; - - [fCreatePreviewMovieButton setTitle: @"Cancel Preview"]; - - break; - - } -#undef p - -#define p state.param.muxing - case HB_STATE_MUXING: - { - // Update fMovieCreationProgressIndicator - [fMovieCreationProgressIndicator setIndeterminate: YES]; - [fMovieCreationProgressIndicator startAnimation: nil]; - [fPreviewMovieStatusField setStringValue: [NSString stringWithFormat: - NSLocalizedString( @"Muxing Preview ...", @"" )]]; - break; - } -#undef p - case HB_STATE_PAUSED: - [fMovieCreationProgressIndicator stopAnimation: nil]; - break; - - case HB_STATE_WORKDONE: - { - // Delete all remaining jobs since libhb doesn't do this on its own. - hb_job_t * job; - while( ( job = hb_job(fPreviewLibhb, 0) ) ) - hb_rem( fHandle, job ); - - [self stopReceivingLibhbNotifications]; - [fPreviewMovieStatusField setStringValue: @""]; - [fPreviewMovieStatusField setHidden: YES]; - - [fMovieCreationProgressIndicator stopAnimation: nil]; - [fMovieCreationProgressIndicator setHidden: YES]; - /* we make sure the picture slider and preview match */ - [self pictureSliderChanged:nil]; - [fPictureSlider setHidden:NO]; - - // Show the movie view - if (play_movie) - { - [self showMoviePreview:fPreviewMoviePath]; - } - - [fCreatePreviewMovieButton setTitle: @"Live Preview"]; - - - break; - } - } - -} - -- (IBAction) showMoviePreview: (NSString *) path -{ - /* Since the gray background for the still images is part of - * fPictureView, lets leave the picture view visible and postion - * the fMovieView over the image portion of fPictureView so - * we retain the gray cropping border we have already established - * with the still previews - */ - [fMovieView setHidden:NO]; - - /* Load the new movie into fMovieView */ - QTMovie * aMovie; - NSRect movieBounds; - if (path) - { - [fMovieView setControllerVisible: YES]; - /* let's make sure there is no movie currently set */ - [fMovieView setMovie:nil]; - - aMovie = [QTMovie movieWithFile:path error:nil]; - - /* we get some size information from the preview movie */ - Rect movieBox; - GetMovieBox ([aMovie quickTimeMovie], &movieBox); - movieBounds = [fMovieView movieBounds]; - movieBounds.size.height = movieBox.bottom - movieBox.top; - - if ([fMovieView isControllerVisible]) - movieBounds.size.height += [fMovieView controllerBarHeight]; - /* since for whatever the reason I cannot seem to get the [fMovieView controllerBarHeight] - * For now just use 15 for additional height as it seems to line up well - */ - movieBounds.size.height += 15; - - movieBounds.size.width = movieBox.right - movieBox.left; - - /* We need to find out if the preview movie needs to be scaled down so - * that it doesn't overflow our available viewing container (just like for image - * in -displayPreview) for HD sources, etc. [fPictureViewArea frame].size.height*/ - if( ((int)movieBounds.size.height) > [fPictureView frame].size.height ) - { - /* The preview movie would be larger than the available viewing area - * in the preview movie, so we go ahead and scale it down to the same size - * as the still preview or we readjust our window to allow for the added height if need be - */ - NSSize displaySize = NSMakeSize( (float)movieBounds.size.width, (float)movieBounds.size.height ); - //NSSize displaySize = NSMakeSize( (float)fTitle->width, (float)fTitle->height ); - NSSize viewSize = [self optimalViewSizeForImageSize:displaySize]; - if( [self viewNeedsToResizeToSize:viewSize] ) - { - - [self resizeSheetForViewSize:viewSize]; - [self setViewSize:viewSize]; - - } - - [fMovieView setFrameSize:viewSize]; - } - else - { - /* Since the preview movie is smaller than the available viewing area - * we can go ahead and use the preview movies native size */ - [fMovieView setFrameSize:movieBounds.size]; - } - - // lets reposition the movie if need be - - NSPoint origin = [fPictureViewArea frame].origin; - origin.x += trunc(([fPictureViewArea frame].size.width - - [fMovieView frame].size.width) / 2.0); - /* We need to detect whether or not we are currently less than the available height.*/ - if (movieBounds.size.height < [fPictureView frame].size.height) - { - /* If we are, we are adding 15 to the height to allow for the controller bar so - * we need to subtract half of that for the origin.y to get the controller bar - * below the movie to it lines up vertically with where our still preview was - */ - origin.y += trunc((([fPictureViewArea frame].size.height - - [fMovieView frame].size.height) / 2.0) - 7.5); - } - else - { - /* if we are >= to the height of the picture view area, the controller bar - * gets taken care of with picture resizing, so we do not want to offset the height - */ - origin.y += trunc(([fPictureViewArea frame].size.height - - [fMovieView frame].size.height) / 2.0); - } - [fMovieView setFrameOrigin:origin]; - - [fMovieView setMovie:aMovie]; - /// to actually play the movie - [fMovieView play:aMovie]; - } - else - { - aMovie = nil; - } - -} #pragma mark - @@ -920,300 +499,5 @@ are maintained across different sources */ } - -// This function converts an image created by libhb (specified via pictureIndex) into -// an NSImage suitable for the GUI code to use. If removeBorders is YES, -// makeImageForPicture crops the image generated by libhb stripping off the gray -// border around the content. This is the low-level method that generates the image. -// -imageForPicture calls this function whenever it can't find an image in its cache. -+ (NSImage *) makeImageForPicture: (int)pictureIndex - libhb:(hb_handle_t*)handle - title:(hb_title_t*)title - removeBorders:(BOOL)removeBorders -{ - if (removeBorders) - { - // |<---------- title->width ----------->| - // | |<---- title->job->width ---->| | - // | | | | - // ....................................... - // ....+-----------------------------+.... - // ....| |....<-- gray border - // ....| |.... - // ....| |.... - // ....| |<------- image - // ....| |.... - // ....| |.... - // ....| |.... - // ....| |.... - // ....| |.... - // ....+-----------------------------+.... - // ....................................... - - static uint8_t * buffer; - static int bufferSize; - - // Make sure we have a big enough buffer to receive the image from libhb. libhb - // creates images with a one-pixel border around the original content. Hence we - // add 2 pixels horizontally and vertically to the buffer size. - int srcWidth = title->width + 2; - int srcHeight= title->height + 2; - int newSize; - newSize = srcWidth * srcHeight * 4; - if( bufferSize < newSize ) - { - bufferSize = newSize; - buffer = (uint8_t *) realloc( buffer, bufferSize ); - } - - hb_get_preview( handle, title, pictureIndex, buffer ); - - // Create an NSBitmapImageRep and copy the libhb image into it, converting it from - // libhb's format to one suitable for NSImage. Along the way, we'll strip off the - // border around libhb's image. - - // The image data returned by hb_get_preview is 4 bytes per pixel, BGRA format. - // Alpha is ignored. - - int dstWidth = title->job->width; - int dstHeight = title->job->height; - NSBitmapFormat bitmapFormat = (NSBitmapFormat)NSAlphaFirstBitmapFormat; - NSBitmapImageRep * imgrep = [[[NSBitmapImageRep alloc] - initWithBitmapDataPlanes:nil - pixelsWide:dstWidth - pixelsHigh:dstHeight - bitsPerSample:8 - samplesPerPixel:3 // ignore alpha - hasAlpha:NO - isPlanar:NO - colorSpaceName:NSCalibratedRGBColorSpace - bitmapFormat:bitmapFormat - bytesPerRow:dstWidth * 4 - bitsPerPixel:32] autorelease]; - - int borderTop = (srcHeight - dstHeight) / 2; - int borderLeft = (srcWidth - dstWidth) / 2; - - UInt32 * src = (UInt32 *)buffer; - UInt32 * dst = (UInt32 *)[imgrep bitmapData]; - src += borderTop * srcWidth; // skip top rows in src to get to first row of dst - src += borderLeft; // skip left pixels in src to get to first pixel of dst - for (int r = 0; r < dstHeight; r++) - { - for (int c = 0; c < dstWidth; c++) -#if TARGET_RT_LITTLE_ENDIAN - *dst++ = Endian32_Swap(*src++); -#else - *dst++ = *src++; -#endif - src += (srcWidth - dstWidth); // skip to next row in src - } - - NSImage * img = [[[NSImage alloc] initWithSize: NSMakeSize(dstWidth, dstHeight)] autorelease]; - [img addRepresentation:imgrep]; - - return img; - } - else - { - // Make sure we have big enough buffer - static uint8_t * buffer; - static int bufferSize; - - int newSize; - newSize = ( title->width + 2 ) * (title->height + 2 ) * 4; - if( bufferSize < newSize ) - { - bufferSize = newSize; - buffer = (uint8_t *) realloc( buffer, bufferSize ); - } - - hb_get_preview( handle, title, pictureIndex, buffer ); - - // The image data returned by hb_get_preview is 4 bytes per pixel, BGRA format. - // We'll copy that into an NSImage swapping it to ARGB in the process. Alpha is - // ignored. - int width = title->width + 2; // hblib adds a one-pixel border to the image - int height = title->height + 2; - int numPixels = width * height; - NSBitmapFormat bitmapFormat = (NSBitmapFormat)NSAlphaFirstBitmapFormat; - NSBitmapImageRep * imgrep = [[[NSBitmapImageRep alloc] - initWithBitmapDataPlanes:nil - pixelsWide:width - pixelsHigh:height - bitsPerSample:8 - samplesPerPixel:3 // ignore alpha - hasAlpha:NO - isPlanar:NO - colorSpaceName:NSCalibratedRGBColorSpace - bitmapFormat:bitmapFormat - bytesPerRow:width * 4 - bitsPerPixel:32] autorelease]; - - UInt32 * src = (UInt32 *)buffer; - UInt32 * dst = (UInt32 *)[imgrep bitmapData]; - for (int i = 0; i < numPixels; i++) -#if TARGET_RT_LITTLE_ENDIAN - *dst++ = Endian32_Swap(*src++); -#else - *dst++ = *src++; -#endif - - NSImage * img = [[[NSImage alloc] initWithSize: NSMakeSize(width, height)] autorelease]; - [img addRepresentation:imgrep]; - - return img; - } -} - -// Returns the preview image for the specified index, retrieving it from its internal -// cache or by calling makeImageForPicture if it is not cached. Generally, you should -// use imageForPicture so that images are cached. Calling makeImageForPicture will -// always generate a new copy of the image. -- (NSImage *) imageForPicture: (int) pictureIndex -{ - // The preview for the specified index may not currently exist, so this method - // generates it if necessary. - NSString * key = [NSString stringWithFormat:@"%d", pictureIndex]; - NSImage * theImage = [fPicturePreviews objectForKey:key]; - if (!theImage) - { - theImage = [PictureController makeImageForPicture:pictureIndex libhb:fHandle title:fTitle removeBorders: NO]; - [fPicturePreviews setObject:theImage forKey:key]; - } - return theImage; -} - -// Purges all images from the cache. The next call to imageForPicture will cause a new -// image to be generated. -- (void) purgeImageCache -{ - [fPicturePreviews removeAllObjects]; -} - @end -@implementation PictureController (Private) - -// -// -[PictureController(Private) optimalViewSizeForImageSize:] -// -// Given the size of the preview image to be shown, returns the best possible -// size for the view. -// -- (NSSize)optimalViewSizeForImageSize: (NSSize)imageSize -{ - // The min size is 320x240 - CGFloat minWidth = 320.0; - CGFloat minHeight = 240.0; - - NSSize screenSize = [[NSScreen mainScreen] frame].size; - NSSize sheetSize = [[self window] frame].size; - NSSize viewAreaSize = [fPictureViewArea frame].size; - CGFloat paddingX = sheetSize.width - viewAreaSize.width; - CGFloat paddingY = sheetSize.height - viewAreaSize.height; - /* Since we are now non-modal, lets go ahead and allow the mac size to - * go up to the full screen height or width below. Am leaving the original - * code here that blindjimmy setup for 85% in case we don't like it. - */ - // The max size of the view is when the sheet is taking up 85% of the screen. - //CGFloat maxWidth = (0.85 * screenSize.width) - paddingX; - //CGFloat maxHeight = (0.85 * screenSize.height) - paddingY; - CGFloat maxWidth = screenSize.width - paddingX; - CGFloat maxHeight = screenSize.height - paddingY; - - NSSize resultSize = imageSize; - - // Its better to have a view that's too small than a view that's too big, so - // apply the maximum constraints last. - if( resultSize.width < minWidth ) - { - resultSize.height *= (minWidth / resultSize.width); - resultSize.width = minWidth; - } - if( resultSize.height < minHeight ) - { - resultSize.width *= (minHeight / resultSize.height); - resultSize.height = minHeight; - } - if( resultSize.width > maxWidth ) - { - resultSize.height *= (maxWidth / resultSize.width); - resultSize.width = maxWidth; - } - if( resultSize.height > maxHeight ) - { - resultSize.width *= (maxHeight / resultSize.height); - resultSize.height = maxHeight; - } - - return resultSize; -} - -// -// -[PictureController(Private) resizePanelForViewSize:animate:] -// -// Resizes the entire sheet to accomodate a view of a particular size. -// -- (void)resizeSheetForViewSize: (NSSize)viewSize -{ - // Figure out the deltas for the new frame area - NSSize currentSize = [fPictureViewArea frame].size; - CGFloat deltaX = viewSize.width - currentSize.width; - CGFloat deltaY = viewSize.height - currentSize.height; - - // Now resize the whole panel by those same deltas, but don't exceed the min - NSRect frame = [[self window] frame]; - NSSize maxSize = [[self window] maxSize]; - NSSize minSize = [[self window] minSize]; - frame.size.width += deltaX; - frame.size.height += deltaY; - if( frame.size.width < minSize.width ) - { - frame.size.width = minSize.width; - } - if( frame.size.height < minSize.height ) - { - frame.size.height = minSize.height; - } - - // But now the sheet is off-center, so also shift the origin to center it and - // keep the top aligned. - if( frame.size.width != [[self window] frame].size.width ) - frame.origin.x -= (deltaX / 2.0); - - if( frame.size.height != [[self window] frame].size.height ) - frame.origin.y -= deltaY; - - [[self window] setFrame:frame display:YES animate:YES]; -} - -// -// -[PictureController(Private) setViewSize:] -// -// Changes the view's size and centers it vertically inside of its area. -// Assumes resizeSheetForViewSize: has already been called. -// -- (void)setViewSize: (NSSize)viewSize -{ - [fPictureView setFrameSize:viewSize]; - - // center it vertically - NSPoint origin = [fPictureViewArea frame].origin; - origin.y += ([fPictureViewArea frame].size.height - - [fPictureView frame].size.height) / 2.0; - [fPictureView setFrameOrigin:origin]; -} - -// -// -[PictureController(Private) viewNeedsToResizeToSize:] -// -// Returns YES if the view will need to resize to match the given size. -// -- (BOOL)viewNeedsToResizeToSize: (NSSize)newSize -{ - NSSize viewSize = [fPictureView frame].size; - return (newSize.width != viewSize.width || newSize.height != viewSize.height); -} - -@end |