summaryrefslogtreecommitdiffstats
path: root/macosx
diff options
context:
space:
mode:
authordynaflash <[email protected]>2009-01-12 00:07:38 +0000
committerdynaflash <[email protected]>2009-01-12 00:07:38 +0000
commit7e73b3884143ae1fb8c8cd9a384c1ef959fa0a86 (patch)
tree3921b193dd1dbf5aafbe206d525ad4d40bf702fb /macosx
parentf2bd5d8c9da510bfc2969d0cf23a68196d61faa5 (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.h10
-rw-r--r--macosx/Controller.mm42
-rw-r--r--macosx/English.lproj/MainMenu.xib52
-rw-r--r--macosx/English.lproj/PicturePreview.xib1306
-rw-r--r--macosx/English.lproj/PictureSettings.xib1351
-rw-r--r--macosx/HBPreviewController.h99
-rw-r--r--macosx/HBPreviewController.mm1148
-rw-r--r--macosx/HandBrake.xcodeproj/project.pbxproj42
-rw-r--r--macosx/PictureController.h54
-rw-r--r--macosx/PictureController.mm804
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