+//------------------------------------------------------------------------------------
+// Displays and brings the picture window to the front
+//------------------------------------------------------------------------------------
+- (IBAction) showPictureWindow: (id)sender
+{
+ if ([fPreviewController fullScreen] == YES)
+ {
+ [self showWindow:sender];
+ [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"PictureSizeWindowIsOpen"];
+ [self setToFullScreenMode];
+ }
+ else
+ {
+ if ([[self window] isVisible])
+ {
+ [[self window] close];
+ }
+ else
+ {
+ [self showWindow:sender];
+ [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"PictureSizeWindowIsOpen"];
+ [self setToWindowedMode];
+ }
+ }
+ [self adjustFilterDisplay:nil];
+ [self adjustSizingDisplay:nil];
+}
+
+- (BOOL) previewFullScreenMode
+{
+ return [fPreviewController fullScreen];
+}
+
+/* this method is used to detect clicking on a tab in fSizeFilterView */
+- (void)tabView:(NSTabView *)tabView didSelectTabViewItem:(NSTabViewItem *)tabViewItem
+{
+
+[self resizeInspectorForTab:nil];
+
+}
+
+#pragma mark -
+
+/* resizeInspectorForTab is called at launch, and each time either the
+ * Size or Filters tab is clicked. Size gives a horizontally oriented
+ * inspector and Filters is a vertically aligned inspector.
+ */
+- (IBAction) resizeInspectorForTab: (id)sender
+{
+ NSRect frame = [[self window] frame];
+ NSPoint windowOrigin = [[self window] frame].origin;
+ NSSize screenSize = [[[self window] screen] frame].size;
+ NSPoint screenOrigin = [[[self window] screen] frame].origin;
+
+ /* We base our inspector size/layout on which tab is active for fSizeFilterView */
+ /* we are 1 which is Filters*/
+ if ([fSizeFilterView indexOfTabViewItem: [fSizeFilterView selectedTabViewItem]] == 1)
+ {
+ frame.size.width = 314;
+ /* we glean the height from the size of the boxes plus the extra window space
+ * needed for non boxed display
+ */
+ frame.size.height = 110.0 + [fDetelecineBox frame].size.height + [fDecombDeinterlaceBox frame].size.height + [fDenoiseBox frame].size.height + [fDeblockBox frame].size.height;
+ /* Hide the size readout at the bottom as the vertical inspector is not wide enough */
+ [fSizeInfoField setHidden:YES];
+ }
+ else // we are Tab index 0 which is size
+ {
+ frame.size.width = 50.0 + [fPictureSizeBox frame].size.width + [fPictureCropBox frame].size.width;
+ frame.size.height = [fPictureSizeBox frame].size.height + 85;
+ /* hide the size summary field at the bottom */
+ [fSizeInfoField setHidden:NO];
+ }
+ /* get delta's for the change in window size */
+ CGFloat deltaX = frame.size.width - [[self window] frame].size.width;
+ CGFloat deltaY = frame.size.height - [[self window] frame].size.height;
+
+ /* Check to see if we have changed the height from current */
+ //if (frame.size.height != [[self window] frame].size.height)
+ //{
+ /* change the inspector origin via the deltaY */
+ frame.origin.y -= deltaY;
+ /* keep the inspector centered so the tabs stay in place */
+ frame.origin.x -= deltaX / 2.0;
+ //}
+
+ /* we make sure we are not horizontally off of our screen.
+ * this would be the case if we are on the vertical filter tab
+ * and we hit the size tab and the inspector grows horizontally
+ * off the screen to the right
+ */
+ if ((frame.origin.x + frame.size.width) > (screenOrigin.x + screenSize.width))
+ {
+ /* the right side of the preview is off the screen, so shift to the left */
+ frame.origin.x = (screenOrigin.x + screenSize.width) - frame.size.width;
+ }
+
+ [[self window] setFrame:frame display:YES animate:YES];
+}
+
+- (IBAction) adjustSizingDisplay: (id) sender
+{
+ NSSize pictureSizingBoxSize = [fPictureSizeBox frame].size;
+
+ NSPoint fPictureSizeBoxOrigin = [fPictureSizeBox frame].origin;
+ NSSize pictureCropBoxSize = [fPictureCropBox frame].size;
+ NSPoint fPictureCropBoxOrigin = [fPictureCropBox frame].origin;
+
+ if ([fAnamorphicPopUp indexOfSelectedItem] == 3) // custom / power user jamboree
+ {
+ pictureSizingBoxSize.width = 530;
+
+ /* Set visibility of capuj widgets */
+ [fParWidthField setHidden: NO];
+ [fParHeightField setHidden: NO];
+ [fParWidthLabel setHidden: NO];
+ [fParHeightLabel setHidden: NO];
+ [fDisplayWidthField setHidden: NO];
+ [fDisplayWidthLabel setHidden: NO];
+ [fModulusLabel setHidden: NO];
+ [fModulusPopUp setHidden: NO];
+ /* adjust/move keep ar checkbox */
+ [fRatioLabel setHidden: YES];
+ [fRatioLabel2 setHidden: NO];
+
+ /* Optionally swith the Storage and Display width positions*/
+ /*
+ NSPoint fWidthLabelOrigin = [fWidthLabel frame].origin;
+ NSPoint fWidthFieldOrigin = [fWidthField frame].origin;
+ NSPoint fWidthStepperOrigin = [fWidthStepper frame].origin;
+ fWidthFieldOrigin.x = [fRatioLabel2 frame].origin.x + [fRatioLabel2 frame].size.width + 4;
+ [fWidthField setFrameOrigin:fWidthFieldOrigin];
+
+ fWidthStepperOrigin.x = [fWidthField frame].origin.x + [fWidthField frame].size.width + 4;
+ [fWidthStepper setFrameOrigin:fWidthStepperOrigin];
+
+ fWidthLabelOrigin.x = [fWidthField frame].origin.x - [fWidthLabel frame].size.width - 4;
+ [fWidthLabel setFrameOrigin:fWidthLabelOrigin];
+ [fWidthLabel setStringValue:@"Storage Width:"];
+ */
+
+ /* set the origin for fRatioCheck so origin.y == fRatioLabel2
+ * and origin.x == fDisplayWidthField
+ */
+ NSPoint fRatioCheckOrigin = [fRatioCheck frame].origin;
+ fRatioCheckOrigin.y = [fRatioLabel2 frame].origin.y - 2;
+ fRatioCheckOrigin.x = [fRatioLabel2 frame].origin.x + [fRatioLabel2 frame].size.width + 4;
+ [fRatioCheck setFrameOrigin:fRatioCheckOrigin];
+
+ }
+ else
+ {
+ pictureSizingBoxSize.width = 200;
+
+ /* Set visibility of capuj widgets */
+ [fParWidthField setHidden: YES];
+ [fParHeightField setHidden: YES];
+ [fParWidthLabel setHidden: YES];
+ [fParHeightLabel setHidden: YES];
+ [fDisplayWidthField setHidden: YES];
+ [fDisplayWidthLabel setHidden: YES];
+ [fModulusLabel setHidden: YES];
+ [fModulusPopUp setHidden: YES];
+ /* adjust/move keep ar checkbox */
+ [fRatioLabel setHidden: NO];
+ [fRatioLabel2 setHidden: YES];
+
+ /* Optionally swith the Storage and Display width positions*/
+
+ /*
+ NSPoint fWidthLabelOrigin = [fWidthLabel frame].origin;
+ NSPoint fWidthFieldOrigin = [fWidthField frame].origin;
+ NSPoint fWidthStepperOrigin = [fWidthStepper frame].origin;
+
+ fWidthFieldOrigin.x = [fHeightField frame].origin.x;
+ [fWidthField setFrameOrigin:fWidthFieldOrigin];
+
+ fWidthStepperOrigin.x = [fHeightStepper frame].origin.x;
+ [fWidthStepper setFrameOrigin:fWidthStepperOrigin];
+
+ fWidthLabelOrigin.x = [fWidthField frame].origin.x - [fWidthLabel frame].size.width -4;
+ [fWidthLabel setFrameOrigin:fWidthLabelOrigin];
+ [fWidthLabel setStringValue:@"Width:"];
+ */
+
+
+ /* set the origin for fRatioCheck so origin.y == fRatioLabel
+ * and origin.x == fWidthStepper
+ */
+ NSPoint fRatioCheckOrigin = [fRatioCheck frame].origin;
+ fRatioCheckOrigin.y = [fRatioLabel frame].origin.y - 2;
+ fRatioCheckOrigin.x = [fWidthStepper frame].origin.x - 2;
+ [fRatioCheck setFrameOrigin:fRatioCheckOrigin];
+
+ }
+
+ /* Check to see if we have changed the size from current */
+ if (pictureSizingBoxSize.height != [fPictureSizeBox frame].size.height || pictureSizingBoxSize.width != [fPictureSizeBox frame].size.width)
+ {
+ /* Get our delta for the change in picture size box height */
+ CGFloat deltaYSizeBoxShift = pictureSizingBoxSize.height - [fPictureSizeBox frame].size.height;
+ fPictureSizeBoxOrigin.y -= deltaYSizeBoxShift;
+ /* Get our delta for the change in picture size box width */
+ CGFloat deltaXSizeBoxShift = pictureSizingBoxSize.width - [fPictureSizeBox frame].size.width;
+ //fPictureSizeBoxOrigin.x += deltaXSizeBoxShift;
+ /* set our new Picture size box size */
+ [fPictureSizeBox setFrameSize:pictureSizingBoxSize];
+ [fPictureSizeBox setFrameOrigin:fPictureSizeBoxOrigin];
+
+ pictureCropBoxSize.height += deltaYSizeBoxShift;
+ fPictureCropBoxOrigin.y -= deltaYSizeBoxShift;
+ fPictureCropBoxOrigin.x += deltaXSizeBoxShift;
+
+ [fPictureCropBox setFrameSize:pictureCropBoxSize];
+ [[fPictureCropBox animator] setFrameOrigin:fPictureCropBoxOrigin];
+ }
+
+
+ /* now we call to resize the entire inspector window */
+ [self resizeInspectorForTab:nil];
+}
+
+- (IBAction) adjustFilterDisplay: (id) sender