#import "ChapterTitles.h"
#import "PictureController.h"
+#import "HBPreviewController.h"
#import "HBQueueController.h"
#import "HBAdvancedController.h"
#import "HBPreferencesController.h"
}
@end
+
@interface HBController : NSObject <GrowlApplicationBridgeDelegate>
{
IBOutlet NSWindow * fWindow;
IBOutlet NSButton * fScanSrcTitleCancelButton;
IBOutlet NSButton * fScanSrcTitleOpenButton;
- /* Picture panel */
+ /* Picture Settings */
PictureController * fPictureController;
+ /* Picture Preview */
+ PreviewController * fPreviewController;
/* Advanced options tab */
HBAdvancedController * fAdvancedOptions;
- (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;
#import "HBPreferencesController.h"
#import "HBDVDDetector.h"
#import "HBPresets.h"
+#import "HBPreviewController.h"
#define DragDropSimplePboardType @"MyCustomOutlineViewPboardType"
}
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
/* Init others controllers */
[fPictureController SetHandle: fHandle];
[fPictureController setHBController: self];
+ /* fPreviewController */
+ //[fPreviewController SetHandle: fHandle];
+ //[fPreviewController setHBController: self];
+
[fQueueController setHandle: fQueueEncodeLibhb];
[fQueueController setHBController: self];
- (NSApplicationTerminateReply) applicationShouldTerminate: (NSApplication *) app
{
-
+ [fPreviewController goWindowedScreen:nil];
// Warn if encoding a movie
hb_state_t s;
hb_get_state( fQueueEncodeLibhb, &s );
[outputPanel release];
[fQueueController release];
[fPictureController release];
+
+ [fPreviewController release];
hb_close(&fHandle);
hb_close(&fQueueEncodeLibhb);
}
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];
- (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 -
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
{
<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>
<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>
</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>
<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>
</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">
<reference ref="87484946"/>
<reference ref="849279674"/>
<reference ref="1034427275"/>
+ <reference ref="157409278"/>
</object>
<reference key="parent" ref="610133626"/>
</object>
<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">
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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"/>
</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">
<string>showNewScan:</string>
<string>showPicturePanel:</string>
<string>showPreferencesWindow:</string>
+ <string>showPreviewWindow:</string>
<string>showQueueWindow:</string>
<string>showSourceTitleScanPanel:</string>
<string>subtitleSelectionChanged:</string>
<string>id</string>
<string>id</string>
<string>id</string>
+ <string>id</string>
</object>
</object>
<object class="NSMutableDictionary" key="outlets">
<string key="superclassName">NSOutlineView</string>
<reference key="sourceIdentifier" ref="896678678"/>
</object>
- <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">
--- /dev/null
+<?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>
<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">
<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>
<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>
<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>
<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>
<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>
<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">
<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
<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">
<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">
<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>
<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">
<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">
<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>
<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>
<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">
<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">
<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">
<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>
<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">
<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">
<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">
<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>
<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>
<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">
<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">
<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">
<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>
<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">
<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>
<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>
<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>
<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">
<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">
<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">
<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>
</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">
<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"/>
<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>
</object>
<int key="connectionID">69</int>
</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>
</object>
<int key="connectionID">142</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">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>
</object>
<int key="connectionID">206</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">fDecombCheck</string>
</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">
<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>
<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"/>
<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>
<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"/>
<reference key="object" ref="926890760"/>
<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"/>
<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>
<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>
<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>
<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">
</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">
<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>
<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>
<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>
<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>
--- /dev/null
+/* $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
+
--- /dev/null
+/* $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
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 */; };
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 */; };
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>"; };
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>"; };
A2D0A0AB0D3E5929002D57CB /* Sparkle.framework in Frameworks */,
A20F46DC0EBB5E7A005B861B /* QuickTime.framework in Frameworks */,
A20F47010EBB5EC2005B861B /* QTKit.framework in Frameworks */,
+ A25962E10F15077500B3BF4E /* Quartz.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
29B97317FDCFA39411CA2CEA /* Resources */ = {
isa = PBXGroup;
children = (
+ A27BB4E80EFAB9310027CDF9 /* PicturePreview.xib */,
A273E0460C57B39A00493A45 /* icons */,
0DFA5C7A0B8DD1E90020BC09 /* HandBrake.icns */,
E39AA4DA0D32DC0B0007A415 /* MainMenu.xib */,
29B97323FDCFA39411CA2CEA /* Frameworks */ = {
isa = PBXGroup;
children = (
+ A25962E00F15077500B3BF4E /* Quartz.framework */,
A20F47000EBB5EC2005B861B /* QTKit.framework */,
A20F46DB0EBB5E7A005B861B /* QuickTime.framework */,
D289A9F20DBBE7AC00CE614B /* CoreServices.framework */,
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 */,
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 */,
A9AC41E00C918DB500DDF9B8 /* HBAdvancedController.h in Headers */,
E37172680C977D340072B384 /* HBImageAndTextCell.h in Headers */,
A22C85EC0D05D35000C10E36 /* HBPresets.h in Headers */,
+ A2BF08050EFAB5D400C0E025 /* PictureController.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
E39AA4E90D32DC0B0007A415 /* PictureSettings.xib in Resources */,
E39AA4EA0D32DC0B0007A415 /* AdvancedView.xib in Resources */,
E39AA4EB0D32DC0B0007A415 /* OutputPanel.xib in Resources */,
+ A27BB4EA0EFAB9310027CDF9 /* PicturePreview.xib in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
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 */,
A9AC41DF0C918DB500DDF9B8 /* HBAdvancedController.m in Sources */,
E37172670C977D340072B384 /* HBImageAndTextCell.m in Sources */,
A22C85ED0D05D35100C10E36 /* HBPresets.m in Sources */,
+ A2BF08060EFAB5D400C0E025 /* PictureController.mm in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
name = InfoPlist.strings;
sourceTree = "<group>";
};
+ A27BB4E80EFAB9310027CDF9 /* PicturePreview.xib */ = {
+ isa = PBXVariantGroup;
+ children = (
+ A27BB4E90EFAB9310027CDF9 /* English */,
+ );
+ name = PicturePreview.xib;
+ sourceTree = "<group>";
+ };
E39AA4DA0D32DC0B0007A415 /* MainMenu.xib */ = {
isa = PBXVariantGroup;
children = (
#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;
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
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;
- (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;
- (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
#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
// 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;
}
[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
- (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
- (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];
}
[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
hb_job_t * job = title->job;
fTitle = title;
-
+
+
+
[fWidthStepper setMaxValue: title->width];
[fWidthStepper setIntValue: job->width];
[fWidthField setIntValue: job->width];
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];
}
}
-// 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"];
-
-}
[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
// 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];
}
}
-- (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 -
}
-
-// 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