Index: Controls/NewPictureSettings.cs =================================================================== --- Controls/NewPictureSettings.cs (revision 0) +++ Controls/NewPictureSettings.cs (revision 0) @@ -0,0 +1,476 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Data; +using System.Text; +using System.Windows.Forms; +using Handbrake.Parsing; +using System.Drawing.Printing; + +namespace Handbrake.Controls +{ + public partial class NewPictureSettings : UserControl + { + private bool _preventChangingWidth, _preventChangingHeight; + private int _maxWidth, _maxHeight, _modulus, _lastEncodeWidth, _lastEncodeHeight; + private double _anamorphicRatio, _displayRatio; + private Title _title; + + /// + /// Gets or sets the resolution of the displayed video. + /// + public Size DisplayResolution { get; set; } + + public int EncodeWidth { get { return (int)text_width.Value; } set { text_width.Value = value; } } + + public int EncodeHeight { get { return (int)text_height.Value; } set { text_height.Value = value; } } + + public int[] CroppingValues + { + get + { + return new int[4] + { + (int)crop_top.Value, + (int)crop_bottom.Value, + (int)crop_left.Value, + (int)crop_right.Value + }; + } + set + { + if (value.Length != 4) + { + throw new ArgumentException("The cropping values given must have a length of 4."); + } + + crop_top.Value = value[0]; + crop_bottom.Value = value[1]; + crop_left.Value = value[2]; + crop_right.Value = value[3]; + } + } + + /// + /// Gets or sets the maximum allowable width of the encoded video. + /// + public int MaximumWidth + { + get { return _maxWidth; } + set + { + _maxWidth = value > 0 ? value : (Source != null ? Source.Resolution.Width : 2560); + } + } + + /// + /// Gets or sets the maximum allowable height of the encoded video. + /// + public int MaximumHeight + { + get { return _maxHeight; } + set + { + _maxHeight = value > 0 ? value : (Source != null ? Source.Resolution.Height : 2560); + } + } + + /// + /// Gets or sets the source media used by this control. + /// + [Browsable(false)] + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public Title Source + { + get { return _title; } + set + { + _title = value; + _displayRatio = ((double)_title.Resolution.Width * _title.ParVal.Width / _title.ParVal.Height) / _title.Resolution.Height; + + Enabled = _title != null; + + MaximumWidth = _title.Resolution.Width; + MaximumHeight = _title.Resolution.Height; + + updownParWidth.Value = _title.ParVal.Width; + updownParHeight.Value = _title.ParVal.Height; + + // Set the source resolution + lbl_src_res.Text = Source.Resolution.Width + " x " + Source.Resolution.Height; + + // Set ratios + _anamorphicRatio = (double)Source.Resolution.Width / Source.Resolution.Height; + + // Set the encode width and height + EncodeWidth = _title.Resolution.Width; + EncodeHeight = _title.Resolution.Height; + + _lastEncodeWidth = _title.Resolution.Width; + _lastEncodeHeight = _title.Resolution.Height; + + // Set cropping + CroppingValues = _title.AutoCropDimensions; + + lbl_Aspect.Text = _title.AspectRatio.ToString(); + + UpdateAnamorphicValue(); + } + } + + public event EventHandler PictureSettingsChanged; + + public NewPictureSettings() + { + InitializeComponent(); + + drp_anamorphic.SelectedIndex = 1; + drp_modulus.SelectedIndex = 0; + } + + public void setMax() + { + + } + + /// + /// Updates the anamorphic value shown as the display width. + /// + private void UpdateAnamorphicValue() + { + if (_title == null || _title.ParVal.IsEmpty) + return; + + // Set globally useful values + int width = 0; + double par = 0; + + if (updownParHeight.Value == 0 || updownParWidth.Value == 0) + { + par = Source.ParVal.Width / Source.ParVal.Height; + } + else + { + par = (double)updownParWidth.Value / (double)updownParHeight.Value; + } + + switch (drp_anamorphic.SelectedIndex) + { + default: + { + // Store the latest DAR + double rawWidth = (double)text_width.Value * par; + _displayRatio = rawWidth / (double)text_height.Value; + + width = (int)Math.Round(rawWidth); + break; + } + } + + labelDisplaySize.Text = width + " x " + text_height.Value.ToString(); + + updownDisplayWidth.Value = width; + updownParWidth.Value = width; + updownParHeight.Value = text_width.Value; + } + + /// + /// Sets the visibility of the advanced anamorphic options. + /// + /// Whether or not the options should be visible. + private void SetCustomAnamorphicOptionsVisible(bool visible) + { + lbl_modulus.Visible = visible; + lbl_displayWidth.Visible = visible; + lbl_parWidth.Visible = visible; + lbl_parHeight.Visible = visible; + + drp_modulus.Visible = visible; + updownDisplayWidth.Visible = visible; + updownParWidth.Visible = visible; + updownParHeight.Visible = visible; + } + + /// + /// Gets the normalized value from one given by the user that is divisible by the number + /// set in . + /// + /// The value to normalize + /// A number that is divisible by . + /// + /// The way that some video codecs, such as x264, compress video is by creating "macroblocks" + /// that are seperated into defined squares, often 16x16 pixels. Because of this, if the width + /// and height of the encoded video are not each divisible by the modulus defined, video quality + /// will suffer. This method takes the supplied value and normalizes it to the nearest mutliple + /// of . + /// + private int GetModulusValue(int value) + { + int mod = int.Parse(drp_modulus.SelectedItem.ToString()); + int remainder = value % mod; + + if (remainder == 0) + { + return value; + } + else + { + return remainder >= mod / 2 ? value + (mod - remainder) : value - remainder; + } + } + + private void ApplyStrictAnamorphic() + { + if (_anamorphicRatio == 0) + return; + + _preventChangingWidth = true; + _preventChangingHeight = true; + + text_width.Value = _title.Resolution.Width; + text_height.Value = _title.Resolution.Height; + + _preventChangingWidth = false; + _preventChangingHeight = false; + } + + /// + /// Loosely anamorphs encode width and height values. + /// + private void ApplyLooseAnamorphic() + { + // Prevents DivideByZeroExceptions + if (_anamorphicRatio == 0) + return; + + int croppedWidth = Source.Resolution.Width - (int)crop_left.Value - (int)crop_right.Value; + int croppedHeight = Source.Resolution.Height - (int)crop_top.Value - (int)crop_left.Value; + int sourceDisplayWidth = (int)(croppedWidth * (double)Source.ParVal.Width / Source.ParVal.Height); + + double storageAspectRatio = (double)croppedWidth / croppedHeight; + + text_width.Value = GetModulusValue((int)text_width.Value); + text_height.Value = GetModulusValue((int)((double)text_width.Value / storageAspectRatio)); + + UpdateAnamorphicValue(); + } + + /// + /// Anamorphs encode width and height based on the custom options specified. + /// + private void ApplyCustomAnamorphic(Control ctrlUpdated) + { + // Make sure the PAR values are set correctly + if (updownParWidth.Value == 0) + { + updownParWidth.Value = Source.ParVal.Width; + } + if (updownParHeight.Value == 0) + { + updownParHeight.Value = Source.ParVal.Height; + } + + // Set various values + int croppedWidth = (int)text_width.Value - (int)crop_left.Value - (int)crop_right.Value; + int parWidth = (int)updownParWidth.Value; + int parHeight = (int)updownParHeight.Value; + + if (!check_KeepAR.Checked) + { + switch (ctrlUpdated.Name) + { + case "text_width": + case "updownParWidth": + case "updownParHeight": + updownDisplayWidth.Value = Math.Round(text_width.Value * parWidth / parHeight); + break; + case "updownDisplayWidth": + updownParWidth.Value = updownDisplayWidth.Value; + updownParHeight.Value = text_width.Value; + break; + } + } + else + { + switch (ctrlUpdated.Name) + { + case "updownDisplayWidth": + _preventChangingHeight = true; + + text_height.Value = GetModulusValue((int)((double)updownDisplayWidth.Value / _displayRatio)); + + _preventChangingHeight = false; + goto case "text_width"; + case "text_height": + updownDisplayWidth.Value = GetModulusValue((int)((double)text_width.Value * _anamorphicRatio * _displayRatio)); + goto case "text_width"; + case "text_width": + updownParWidth.Value = updownDisplayWidth.Value; + updownParHeight.Value = text_width.Value; + break; + } + } + } + + private void text_width_ValueChanged(object sender, EventArgs e) + { + if (_preventChangingWidth) + return; + + _preventChangingWidth = true; + + if (text_width.Value > MaximumWidth) + { + text_width.Value = MaximumWidth; + } + + switch (drp_anamorphic.SelectedIndex) + { + case 0: + if (check_KeepAR.Checked) + { + _preventChangingHeight = true; + + decimal newHeight = text_width.Value / (decimal)_anamorphicRatio; + text_height.Value = newHeight > MaximumHeight ? MaximumHeight : newHeight; + + _preventChangingHeight = false; + } + break; + case 1: + ApplyStrictAnamorphic(); + break; + case 2: + ApplyLooseAnamorphic(); + break; + case 3: + ApplyCustomAnamorphic((Control)sender); + break; + } + + _preventChangingWidth = false; + } + + private void text_height_ValueChanged(object sender, EventArgs e) + { + if (_preventChangingHeight) + return; + + _preventChangingHeight = true; + + if (text_height.Value > MaximumHeight) + { + text_height.Value = MaximumHeight; + } + + switch (drp_anamorphic.SelectedIndex) + { + case 0: + if (check_KeepAR.Checked) + { + _preventChangingWidth = true; + + decimal newWidth = text_height.Value * (decimal)_anamorphicRatio; + text_width.Value = newWidth > MaximumWidth ? MaximumWidth : newWidth; + + _preventChangingWidth = false; + } + break; + case 3: + ApplyCustomAnamorphic((Control)sender); + break; + } + + _preventChangingHeight = false; + } + + private void drp_anamorphic_SelectedIndexChanged(object sender, EventArgs e) + { + switch (drp_anamorphic.SelectedIndex) + { + case 0: + text_width.Enabled = true; + text_height.Enabled = true; + check_KeepAR.Enabled = true; + + SetCustomAnamorphicOptionsVisible(false); + labelStaticDisplaySize.Visible = false; + labelDisplaySize.Visible = false; + + check_KeepAR.Checked = true; + break; + case 1: + text_width.Enabled = false; + text_height.Enabled = false; + check_KeepAR.Enabled = false; + + SetCustomAnamorphicOptionsVisible(false); + labelStaticDisplaySize.Visible = true; + labelDisplaySize.Visible = true; + + check_KeepAR.Checked = true; + break; + case 2: + text_width.Enabled = true; + text_height.Enabled = false; + check_KeepAR.Enabled = false; + + SetCustomAnamorphicOptionsVisible(false); + labelStaticDisplaySize.Visible = true; + labelDisplaySize.Visible = true; + + check_KeepAR.Checked = true; + break; + case 3: + text_width.Enabled = true; + text_height.Enabled = true; + check_KeepAR.Enabled = true; + + SetCustomAnamorphicOptionsVisible(true); + labelStaticDisplaySize.Visible = true; + labelDisplaySize.Visible = true; + + check_KeepAR.Checked = true; + break; + } + + UpdateAnamorphicValue(); + } + + private void check_KeepAR_CheckedChanged(object sender, EventArgs e) + { + if (drp_anamorphic.SelectedIndex != 3) + { + if (check_KeepAR.Checked) + { + text_width_ValueChanged(this, new EventArgs()); + } + } + else + { + updownParWidth.Enabled = !check_KeepAR.Checked; + updownParHeight.Enabled = !check_KeepAR.Checked; + } + } + + private void crop_ValueChanged(object sender, EventArgs e) + { + text_width_ValueChanged(this, new EventArgs()); + } + + private void check_autoCrop_CheckedChanged(object sender, EventArgs e) + { + crop_top.Enabled = check_customCrop.Checked; + crop_bottom.Enabled = check_customCrop.Checked; + crop_left.Enabled = check_customCrop.Checked; + crop_right.Enabled = check_customCrop.Checked; + } + + private void drp_modulus_SelectedIndexChanged(object sender, EventArgs e) + { + text_width.Increment = int.Parse(drp_modulus.SelectedItem.ToString()); + text_height.Increment = int.Parse(drp_modulus.SelectedItem.ToString()); + } + } +} Index: Controls/NewPictureSettings.Designer.cs =================================================================== --- Controls/NewPictureSettings.Designer.cs (revision 0) +++ Controls/NewPictureSettings.Designer.cs (revision 0) @@ -0,0 +1,640 @@ +namespace Handbrake.Controls +{ + partial class NewPictureSettings + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.check_customCrop = new System.Windows.Forms.RadioButton(); + this.check_autoCrop = new System.Windows.Forms.RadioButton(); + this.crop_bottom = new System.Windows.Forms.NumericUpDown(); + this.crop_top = new System.Windows.Forms.NumericUpDown(); + this.crop_left = new System.Windows.Forms.NumericUpDown(); + this.crop_right = new System.Windows.Forms.NumericUpDown(); + this.label8 = new System.Windows.Forms.Label(); + this.Label53 = new System.Windows.Forms.Label(); + this.Label52 = new System.Windows.Forms.Label(); + this.Label51 = new System.Windows.Forms.Label(); + this.Label15 = new System.Windows.Forms.Label(); + this.check_KeepAR = new System.Windows.Forms.CheckBox(); + this.text_height = new System.Windows.Forms.NumericUpDown(); + this.text_width = new System.Windows.Forms.NumericUpDown(); + this.label4 = new System.Windows.Forms.Label(); + this.lbl_max = new System.Windows.Forms.Label(); + this.lbl_src_res = new System.Windows.Forms.Label(); + this.label7 = new System.Windows.Forms.Label(); + this.label26 = new System.Windows.Forms.Label(); + this.lbl_Aspect = new System.Windows.Forms.Label(); + this.Label91 = new System.Windows.Forms.Label(); + this.Label55 = new System.Windows.Forms.Label(); + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.updownParHeight = new System.Windows.Forms.NumericUpDown(); + this.label6 = new System.Windows.Forms.Label(); + this.labelDisplaySize = new System.Windows.Forms.Label(); + this.lbl_parHeight = new System.Windows.Forms.Label(); + this.labelStaticDisplaySize = new System.Windows.Forms.Label(); + this.updownParWidth = new System.Windows.Forms.NumericUpDown(); + this.drp_anamorphic = new System.Windows.Forms.ComboBox(); + this.lbl_parWidth = new System.Windows.Forms.Label(); + this.updownDisplayWidth = new System.Windows.Forms.NumericUpDown(); + this.lbl_modulus = new System.Windows.Forms.Label(); + this.lbl_displayWidth = new System.Windows.Forms.Label(); + this.drp_modulus = new System.Windows.Forms.ComboBox(); + ((System.ComponentModel.ISupportInitialize)(this.crop_bottom)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.crop_top)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.crop_left)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.crop_right)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.text_height)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.text_width)).BeginInit(); + this.tableLayoutPanel1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.updownParHeight)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.updownParWidth)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.updownDisplayWidth)).BeginInit(); + this.SuspendLayout(); + // + // check_customCrop + // + this.check_customCrop.AutoSize = true; + this.check_customCrop.ImeMode = System.Windows.Forms.ImeMode.NoControl; + this.check_customCrop.Location = new System.Drawing.Point(399, 57); + this.check_customCrop.Name = "check_customCrop"; + this.check_customCrop.Size = new System.Drawing.Size(65, 17); + this.check_customCrop.TabIndex = 106; + this.check_customCrop.Text = "Custom:"; + this.check_customCrop.UseVisualStyleBackColor = true; + // + // check_autoCrop + // + this.check_autoCrop.AutoSize = true; + this.check_autoCrop.Checked = true; + this.check_autoCrop.ImeMode = System.Windows.Forms.ImeMode.NoControl; + this.check_autoCrop.Location = new System.Drawing.Point(399, 33); + this.check_autoCrop.Name = "check_autoCrop"; + this.check_autoCrop.Size = new System.Drawing.Size(73, 17); + this.check_autoCrop.TabIndex = 105; + this.check_autoCrop.TabStop = true; + this.check_autoCrop.Text = "Automatic"; + this.check_autoCrop.UseVisualStyleBackColor = true; + this.check_autoCrop.CheckedChanged += new System.EventHandler(this.check_autoCrop_CheckedChanged); + // + // crop_bottom + // + this.crop_bottom.Enabled = false; + this.crop_bottom.Increment = new decimal(new int[] { + 2, + 0, + 0, + 0}); + this.crop_bottom.Location = new System.Drawing.Point(479, 146); + this.crop_bottom.Maximum = new decimal(new int[] { + 1080, + 0, + 0, + 0}); + this.crop_bottom.Name = "crop_bottom"; + this.crop_bottom.Size = new System.Drawing.Size(44, 21); + this.crop_bottom.TabIndex = 103; + this.crop_bottom.ValueChanged += new System.EventHandler(this.crop_ValueChanged); + // + // crop_top + // + this.crop_top.Enabled = false; + this.crop_top.Increment = new decimal(new int[] { + 2, + 0, + 0, + 0}); + this.crop_top.Location = new System.Drawing.Point(479, 100); + this.crop_top.Maximum = new decimal(new int[] { + 1080, + 0, + 0, + 0}); + this.crop_top.Name = "crop_top"; + this.crop_top.Size = new System.Drawing.Size(44, 21); + this.crop_top.TabIndex = 100; + this.crop_top.ValueChanged += new System.EventHandler(this.crop_ValueChanged); + // + // crop_left + // + this.crop_left.Enabled = false; + this.crop_left.Increment = new decimal(new int[] { + 2, + 0, + 0, + 0}); + this.crop_left.Location = new System.Drawing.Point(428, 122); + this.crop_left.Maximum = new decimal(new int[] { + 1920, + 0, + 0, + 0}); + this.crop_left.Name = "crop_left"; + this.crop_left.Size = new System.Drawing.Size(44, 21); + this.crop_left.TabIndex = 98; + this.crop_left.ValueChanged += new System.EventHandler(this.crop_ValueChanged); + // + // crop_right + // + this.crop_right.Enabled = false; + this.crop_right.Increment = new decimal(new int[] { + 2, + 0, + 0, + 0}); + this.crop_right.Location = new System.Drawing.Point(530, 122); + this.crop_right.Maximum = new decimal(new int[] { + 1920, + 0, + 0, + 0}); + this.crop_right.Name = "crop_right"; + this.crop_right.Size = new System.Drawing.Size(44, 21); + this.crop_right.TabIndex = 101; + this.crop_right.ValueChanged += new System.EventHandler(this.crop_ValueChanged); + // + // label8 + // + this.label8.AutoSize = true; + this.label8.BackColor = System.Drawing.Color.Transparent; + this.label8.ImeMode = System.Windows.Forms.ImeMode.NoControl; + this.label8.Location = new System.Drawing.Point(396, 13); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(30, 13); + this.label8.TabIndex = 96; + this.label8.Text = "Crop"; + // + // Label53 + // + this.Label53.AutoSize = true; + this.Label53.BackColor = System.Drawing.Color.Transparent; + this.Label53.ImeMode = System.Windows.Forms.ImeMode.NoControl; + this.Label53.Location = new System.Drawing.Point(477, 170); + this.Label53.Name = "Label53"; + this.Label53.Size = new System.Drawing.Size(41, 13); + this.Label53.TabIndex = 104; + this.Label53.Text = "Bottom"; + // + // Label52 + // + this.Label52.AutoSize = true; + this.Label52.BackColor = System.Drawing.Color.Transparent; + this.Label52.ImeMode = System.Windows.Forms.ImeMode.NoControl; + this.Label52.Location = new System.Drawing.Point(486, 85); + this.Label52.Name = "Label52"; + this.Label52.Size = new System.Drawing.Size(25, 13); + this.Label52.TabIndex = 99; + this.Label52.Text = "Top"; + // + // Label51 + // + this.Label51.AutoSize = true; + this.Label51.BackColor = System.Drawing.Color.Transparent; + this.Label51.ImeMode = System.Windows.Forms.ImeMode.NoControl; + this.Label51.Location = new System.Drawing.Point(580, 124); + this.Label51.Name = "Label51"; + this.Label51.Size = new System.Drawing.Size(32, 13); + this.Label51.TabIndex = 102; + this.Label51.Text = "Right"; + // + // Label15 + // + this.Label15.AutoSize = true; + this.Label15.BackColor = System.Drawing.Color.Transparent; + this.Label15.ImeMode = System.Windows.Forms.ImeMode.NoControl; + this.Label15.Location = new System.Drawing.Point(396, 124); + this.Label15.Name = "Label15"; + this.Label15.Size = new System.Drawing.Size(26, 13); + this.Label15.TabIndex = 97; + this.Label15.Text = "Left"; + // + // check_KeepAR + // + this.check_KeepAR.AutoSize = true; + this.check_KeepAR.ImeMode = System.Windows.Forms.ImeMode.NoControl; + this.check_KeepAR.Location = new System.Drawing.Point(68, 85); + this.check_KeepAR.Name = "check_KeepAR"; + this.check_KeepAR.Size = new System.Drawing.Size(114, 17); + this.check_KeepAR.TabIndex = 95; + this.check_KeepAR.Text = "Keep Aspect Ratio"; + this.check_KeepAR.UseVisualStyleBackColor = true; + this.check_KeepAR.CheckedChanged += new System.EventHandler(this.check_KeepAR_CheckedChanged); + // + // text_height + // + this.text_height.Location = new System.Drawing.Point(206, 59); + this.text_height.Maximum = new decimal(new int[] { + 2560, + 0, + 0, + 0}); + this.text_height.Name = "text_height"; + this.text_height.Size = new System.Drawing.Size(64, 21); + this.text_height.TabIndex = 86; + this.text_height.ValueChanged += new System.EventHandler(this.text_height_ValueChanged); + // + // text_width + // + this.text_width.Location = new System.Drawing.Point(68, 59); + this.text_width.Maximum = new decimal(new int[] { + 2560, + 0, + 0, + 0}); + this.text_width.Name = "text_width"; + this.text_width.Size = new System.Drawing.Size(64, 21); + this.text_width.TabIndex = 85; + this.text_width.ValueChanged += new System.EventHandler(this.text_width_ValueChanged); + // + // label4 + // + this.label4.AutoSize = true; + this.label4.BackColor = System.Drawing.Color.Transparent; + this.label4.ForeColor = System.Drawing.Color.Black; + this.label4.ImeMode = System.Windows.Forms.ImeMode.NoControl; + this.label4.Location = new System.Drawing.Point(152, 63); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(42, 13); + this.label4.TabIndex = 84; + this.label4.Text = "Height:"; + // + // lbl_max + // + this.lbl_max.AutoSize = true; + this.lbl_max.ImeMode = System.Windows.Forms.ImeMode.NoControl; + this.lbl_max.Location = new System.Drawing.Point(279, 61); + this.lbl_max.Name = "lbl_max"; + this.lbl_max.Size = new System.Drawing.Size(37, 13); + this.lbl_max.TabIndex = 83; + this.lbl_max.Text = "{max}"; + // + // lbl_src_res + // + this.lbl_src_res.AutoSize = true; + this.lbl_src_res.BackColor = System.Drawing.Color.Transparent; + this.lbl_src_res.ImeMode = System.Windows.Forms.ImeMode.NoControl; + this.lbl_src_res.Location = new System.Drawing.Point(66, 36); + this.lbl_src_res.Name = "lbl_src_res"; + this.lbl_src_res.Size = new System.Drawing.Size(68, 13); + this.lbl_src_res.TabIndex = 77; + this.lbl_src_res.Text = "Select a Title"; + // + // label7 + // + this.label7.AutoSize = true; + this.label7.BackColor = System.Drawing.Color.Transparent; + this.label7.ImeMode = System.Windows.Forms.ImeMode.NoControl; + this.label7.Location = new System.Drawing.Point(13, 35); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(44, 13); + this.label7.TabIndex = 76; + this.label7.Text = "Source:"; + // + // label26 + // + this.label26.AutoSize = true; + this.label26.BackColor = System.Drawing.Color.Transparent; + this.label26.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label26.ImeMode = System.Windows.Forms.ImeMode.NoControl; + this.label26.Location = new System.Drawing.Point(13, 13); + this.label26.Name = "label26"; + this.label26.Size = new System.Drawing.Size(30, 13); + this.label26.TabIndex = 75; + this.label26.Text = "Size"; + // + // lbl_Aspect + // + this.lbl_Aspect.AutoSize = true; + this.lbl_Aspect.BackColor = System.Drawing.Color.Transparent; + this.lbl_Aspect.ImeMode = System.Windows.Forms.ImeMode.NoControl; + this.lbl_Aspect.Location = new System.Drawing.Point(241, 36); + this.lbl_Aspect.Name = "lbl_Aspect"; + this.lbl_Aspect.Size = new System.Drawing.Size(68, 13); + this.lbl_Aspect.TabIndex = 79; + this.lbl_Aspect.Text = "Select a Title"; + // + // Label91 + // + this.Label91.AutoSize = true; + this.Label91.BackColor = System.Drawing.Color.Transparent; + this.Label91.ImeMode = System.Windows.Forms.ImeMode.NoControl; + this.Label91.Location = new System.Drawing.Point(152, 35); + this.Label91.Name = "Label91"; + this.Label91.Size = new System.Drawing.Size(72, 13); + this.Label91.TabIndex = 78; + this.Label91.Text = "Aspect Ratio:"; + // + // Label55 + // + this.Label55.AutoSize = true; + this.Label55.BackColor = System.Drawing.Color.Transparent; + this.Label55.ForeColor = System.Drawing.Color.Black; + this.Label55.ImeMode = System.Windows.Forms.ImeMode.NoControl; + this.Label55.Location = new System.Drawing.Point(13, 63); + this.Label55.Name = "Label55"; + this.Label55.Size = new System.Drawing.Size(39, 13); + this.Label55.TabIndex = 80; + this.Label55.Text = "Width:"; + // + // tableLayoutPanel1 + // + this.tableLayoutPanel1.AutoSize = true; + this.tableLayoutPanel1.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.tableLayoutPanel1.ColumnCount = 2; + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + this.tableLayoutPanel1.Controls.Add(this.updownParHeight, 1, 4); + this.tableLayoutPanel1.Controls.Add(this.label6, 0, 0); + this.tableLayoutPanel1.Controls.Add(this.labelDisplaySize, 1, 5); + this.tableLayoutPanel1.Controls.Add(this.lbl_parHeight, 0, 4); + this.tableLayoutPanel1.Controls.Add(this.labelStaticDisplaySize, 0, 5); + this.tableLayoutPanel1.Controls.Add(this.updownParWidth, 1, 3); + this.tableLayoutPanel1.Controls.Add(this.drp_anamorphic, 1, 0); + this.tableLayoutPanel1.Controls.Add(this.lbl_parWidth, 0, 3); + this.tableLayoutPanel1.Controls.Add(this.updownDisplayWidth, 1, 2); + this.tableLayoutPanel1.Controls.Add(this.lbl_modulus, 0, 1); + this.tableLayoutPanel1.Controls.Add(this.lbl_displayWidth, 0, 2); + this.tableLayoutPanel1.Controls.Add(this.drp_modulus, 1, 1); + this.tableLayoutPanel1.Location = new System.Drawing.Point(16, 108); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + this.tableLayoutPanel1.RowCount = 6; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanel1.Size = new System.Drawing.Size(195, 154); + this.tableLayoutPanel1.TabIndex = 110; + // + // updownParHeight + // + this.updownParHeight.Location = new System.Drawing.Point(82, 111); + this.updownParHeight.Maximum = new decimal(new int[] { + 2560, + 0, + 0, + 0}); + this.updownParHeight.Name = "updownParHeight"; + this.updownParHeight.Size = new System.Drawing.Size(53, 21); + this.updownParHeight.TabIndex = 112; + this.updownParHeight.ValueChanged += new System.EventHandler(this.text_width_ValueChanged); + // + // label6 + // + this.label6.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.label6.AutoSize = true; + this.label6.BackColor = System.Drawing.Color.Transparent; + this.label6.ImeMode = System.Windows.Forms.ImeMode.NoControl; + this.label6.Location = new System.Drawing.Point(0, 7); + this.label6.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(67, 13); + this.label6.TabIndex = 81; + this.label6.Text = "Anamorphic:"; + // + // labelDisplaySize + // + this.labelDisplaySize.AutoSize = true; + this.labelDisplaySize.BackColor = System.Drawing.Color.Transparent; + this.labelDisplaySize.ImeMode = System.Windows.Forms.ImeMode.NoControl; + this.labelDisplaySize.Location = new System.Drawing.Point(82, 138); + this.labelDisplaySize.Margin = new System.Windows.Forms.Padding(3); + this.labelDisplaySize.Name = "labelDisplaySize"; + this.labelDisplaySize.Size = new System.Drawing.Size(68, 13); + this.labelDisplaySize.TabIndex = 108; + this.labelDisplaySize.Text = "Select a Title"; + // + // lbl_parHeight + // + this.lbl_parHeight.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.lbl_parHeight.AutoSize = true; + this.lbl_parHeight.BackColor = System.Drawing.Color.Transparent; + this.lbl_parHeight.ImeMode = System.Windows.Forms.ImeMode.NoControl; + this.lbl_parHeight.Location = new System.Drawing.Point(0, 115); + this.lbl_parHeight.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3); + this.lbl_parHeight.Name = "lbl_parHeight"; + this.lbl_parHeight.Size = new System.Drawing.Size(65, 13); + this.lbl_parHeight.TabIndex = 94; + this.lbl_parHeight.Text = "PAR Height:"; + // + // labelStaticDisplaySize + // + this.labelStaticDisplaySize.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.labelStaticDisplaySize.AutoSize = true; + this.labelStaticDisplaySize.BackColor = System.Drawing.Color.Transparent; + this.labelStaticDisplaySize.ImeMode = System.Windows.Forms.ImeMode.NoControl; + this.labelStaticDisplaySize.Location = new System.Drawing.Point(0, 138); + this.labelStaticDisplaySize.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3); + this.labelStaticDisplaySize.Name = "labelStaticDisplaySize"; + this.labelStaticDisplaySize.Size = new System.Drawing.Size(67, 13); + this.labelStaticDisplaySize.TabIndex = 107; + this.labelStaticDisplaySize.Text = "Display Size:"; + // + // updownParWidth + // + this.updownParWidth.Location = new System.Drawing.Point(82, 84); + this.updownParWidth.Maximum = new decimal(new int[] { + 2560, + 0, + 0, + 0}); + this.updownParWidth.Name = "updownParWidth"; + this.updownParWidth.Size = new System.Drawing.Size(53, 21); + this.updownParWidth.TabIndex = 111; + this.updownParWidth.ValueChanged += new System.EventHandler(this.text_width_ValueChanged); + // + // drp_anamorphic + // + this.drp_anamorphic.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.drp_anamorphic.FormattingEnabled = true; + this.drp_anamorphic.Items.AddRange(new object[] { + "None", + "Strict", + "Loose", + "Custom"}); + this.drp_anamorphic.Location = new System.Drawing.Point(82, 3); + this.drp_anamorphic.Name = "drp_anamorphic"; + this.drp_anamorphic.Size = new System.Drawing.Size(110, 21); + this.drp_anamorphic.TabIndex = 82; + this.drp_anamorphic.SelectedIndexChanged += new System.EventHandler(this.drp_anamorphic_SelectedIndexChanged); + // + // lbl_parWidth + // + this.lbl_parWidth.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.lbl_parWidth.AutoSize = true; + this.lbl_parWidth.BackColor = System.Drawing.Color.Transparent; + this.lbl_parWidth.ImeMode = System.Windows.Forms.ImeMode.NoControl; + this.lbl_parWidth.Location = new System.Drawing.Point(0, 88); + this.lbl_parWidth.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3); + this.lbl_parWidth.Name = "lbl_parWidth"; + this.lbl_parWidth.Size = new System.Drawing.Size(62, 13); + this.lbl_parWidth.TabIndex = 92; + this.lbl_parWidth.Text = "PAR Width:"; + // + // updownDisplayWidth + // + this.updownDisplayWidth.Location = new System.Drawing.Point(82, 57); + this.updownDisplayWidth.Maximum = new decimal(new int[] { + 2560, + 0, + 0, + 0}); + this.updownDisplayWidth.Name = "updownDisplayWidth"; + this.updownDisplayWidth.Size = new System.Drawing.Size(53, 21); + this.updownDisplayWidth.TabIndex = 110; + this.updownDisplayWidth.ValueChanged += new System.EventHandler(this.text_width_ValueChanged); + // + // lbl_modulus + // + this.lbl_modulus.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.lbl_modulus.AutoSize = true; + this.lbl_modulus.BackColor = System.Drawing.Color.Transparent; + this.lbl_modulus.ImeMode = System.Windows.Forms.ImeMode.NoControl; + this.lbl_modulus.Location = new System.Drawing.Point(0, 34); + this.lbl_modulus.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3); + this.lbl_modulus.Name = "lbl_modulus"; + this.lbl_modulus.Size = new System.Drawing.Size(50, 13); + this.lbl_modulus.TabIndex = 87; + this.lbl_modulus.Text = "Modulus:"; + // + // lbl_displayWidth + // + this.lbl_displayWidth.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.lbl_displayWidth.AutoSize = true; + this.lbl_displayWidth.BackColor = System.Drawing.Color.Transparent; + this.lbl_displayWidth.ImeMode = System.Windows.Forms.ImeMode.NoControl; + this.lbl_displayWidth.Location = new System.Drawing.Point(0, 61); + this.lbl_displayWidth.Margin = new System.Windows.Forms.Padding(0, 3, 3, 3); + this.lbl_displayWidth.Name = "lbl_displayWidth"; + this.lbl_displayWidth.Size = new System.Drawing.Size(76, 13); + this.lbl_displayWidth.TabIndex = 90; + this.lbl_displayWidth.Text = "Display Width:"; + // + // drp_modulus + // + this.drp_modulus.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.drp_modulus.FormattingEnabled = true; + this.drp_modulus.Items.AddRange(new object[] { + "16", + "8", + "4", + "2"}); + this.drp_modulus.Location = new System.Drawing.Point(82, 30); + this.drp_modulus.Name = "drp_modulus"; + this.drp_modulus.Size = new System.Drawing.Size(110, 21); + this.drp_modulus.TabIndex = 88; + this.drp_modulus.SelectedIndexChanged += new System.EventHandler(this.drp_modulus_SelectedIndexChanged); + // + // NewPictureSettings + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.SystemColors.Window; + this.Controls.Add(this.tableLayoutPanel1); + this.Controls.Add(this.check_customCrop); + this.Controls.Add(this.check_autoCrop); + this.Controls.Add(this.crop_bottom); + this.Controls.Add(this.crop_top); + this.Controls.Add(this.crop_left); + this.Controls.Add(this.crop_right); + this.Controls.Add(this.label8); + this.Controls.Add(this.Label53); + this.Controls.Add(this.Label52); + this.Controls.Add(this.Label51); + this.Controls.Add(this.Label15); + this.Controls.Add(this.check_KeepAR); + this.Controls.Add(this.text_height); + this.Controls.Add(this.text_width); + this.Controls.Add(this.label4); + this.Controls.Add(this.lbl_max); + this.Controls.Add(this.lbl_src_res); + this.Controls.Add(this.label7); + this.Controls.Add(this.label26); + this.Controls.Add(this.lbl_Aspect); + this.Controls.Add(this.Label91); + this.Controls.Add(this.Label55); + this.Enabled = false; + this.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.Name = "NewPictureSettings"; + this.Size = new System.Drawing.Size(666, 279); + ((System.ComponentModel.ISupportInitialize)(this.crop_bottom)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.crop_top)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.crop_left)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.crop_right)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.text_height)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.text_width)).EndInit(); + this.tableLayoutPanel1.ResumeLayout(false); + this.tableLayoutPanel1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.updownParHeight)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.updownParWidth)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.updownDisplayWidth)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + internal System.Windows.Forms.RadioButton check_customCrop; + internal System.Windows.Forms.RadioButton check_autoCrop; + internal System.Windows.Forms.NumericUpDown crop_bottom; + internal System.Windows.Forms.NumericUpDown crop_top; + internal System.Windows.Forms.NumericUpDown crop_left; + internal System.Windows.Forms.NumericUpDown crop_right; + internal System.Windows.Forms.Label label8; + internal System.Windows.Forms.Label Label53; + internal System.Windows.Forms.Label Label52; + internal System.Windows.Forms.Label Label51; + internal System.Windows.Forms.Label Label15; + internal System.Windows.Forms.CheckBox check_KeepAR; + internal System.Windows.Forms.NumericUpDown text_height; + internal System.Windows.Forms.Label label4; + private System.Windows.Forms.Label lbl_max; + internal System.Windows.Forms.Label lbl_src_res; + internal System.Windows.Forms.Label label7; + internal System.Windows.Forms.Label label26; + internal System.Windows.Forms.Label lbl_Aspect; + internal System.Windows.Forms.Label Label91; + internal System.Windows.Forms.Label Label55; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; + internal System.Windows.Forms.NumericUpDown updownParHeight; + internal System.Windows.Forms.Label label6; + internal System.Windows.Forms.Label labelDisplaySize; + internal System.Windows.Forms.Label lbl_parHeight; + internal System.Windows.Forms.Label labelStaticDisplaySize; + internal System.Windows.Forms.NumericUpDown updownParWidth; + internal System.Windows.Forms.ComboBox drp_anamorphic; + internal System.Windows.Forms.Label lbl_parWidth; + internal System.Windows.Forms.NumericUpDown updownDisplayWidth; + internal System.Windows.Forms.Label lbl_modulus; + internal System.Windows.Forms.Label lbl_displayWidth; + internal System.Windows.Forms.ComboBox drp_modulus; + internal System.Windows.Forms.NumericUpDown text_width; + + + } +} Index: Controls/NewPictureSettings.resx =================================================================== --- Controls/NewPictureSettings.resx (revision 0) +++ Controls/NewPictureSettings.resx (revision 0) @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file Index: frmMain.cs =================================================================== --- frmMain.cs (revision 2680) +++ frmMain.cs (working copy) @@ -853,7 +853,7 @@ { selectedTitle = drp_dvdtitle.SelectedItem as Title; lbl_duration.Text = selectedTitle.Duration.ToString(); - PictureSettings.setComponentsAfterScan(selectedTitle); // Setup Picture Settings Tab Control + PictureSettings.Source = selectedTitle; // Setup Picture Settings Tab Control // Populate the Angles dropdown drop_angle.Items.Clear(); Index: frmMain.Designer.cs =================================================================== --- frmMain.Designer.cs (revision 2680) +++ frmMain.Designer.cs (working copy) @@ -40,7 +40,7 @@ this.components = new System.ComponentModel.Container(); System.Windows.Forms.ContextMenuStrip notifyIconMenu; System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frmMain)); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle(); this.btn_restore = new System.Windows.Forms.ToolStripMenuItem(); this.DVD_Save = new System.Windows.Forms.SaveFileDialog(); this.ToolTip = new System.Windows.Forms.ToolTip(this.components); @@ -108,7 +108,6 @@ this.SliderValue = new System.Windows.Forms.Label(); this.Label46 = new System.Windows.Forms.Label(); this.tab_picture = new System.Windows.Forms.TabPage(); - this.PictureSettings = new Handbrake.Controls.PictureSettings(); this.Check_ChapterMarkers = new System.Windows.Forms.CheckBox(); this.tabs_panel = new System.Windows.Forms.TabControl(); this.tab_filters = new System.Windows.Forms.TabPage(); @@ -167,6 +166,7 @@ this.labelSource = new System.Windows.Forms.Label(); this.labelStaticDestination = new System.Windows.Forms.Label(); this.labelPreset = new System.Windows.Forms.Label(); + this.PictureSettings = new Handbrake.Controls.NewPictureSettings(); notifyIconMenu = new System.Windows.Forms.ContextMenuStrip(this.components); notifyIconMenu.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.slider_videoQuality)).BeginInit(); @@ -199,12 +199,12 @@ this.btn_restore}); notifyIconMenu.Name = "notifyIconMenu"; notifyIconMenu.RenderMode = System.Windows.Forms.ToolStripRenderMode.Professional; - notifyIconMenu.Size = new System.Drawing.Size(124, 26); + notifyIconMenu.Size = new System.Drawing.Size(114, 26); // // btn_restore // this.btn_restore.Name = "btn_restore"; - this.btn_restore.Size = new System.Drawing.Size(123, 22); + this.btn_restore.Size = new System.Drawing.Size(113, 22); this.btn_restore.Text = "Restore"; this.btn_restore.Click += new System.EventHandler(this.btn_restore_Click); // @@ -388,9 +388,9 @@ // // number // - dataGridViewCellStyle1.Format = "N0"; - dataGridViewCellStyle1.NullValue = null; - this.number.DefaultCellStyle = dataGridViewCellStyle1; + dataGridViewCellStyle3.Format = "N0"; + dataGridViewCellStyle3.NullValue = null; + this.number.DefaultCellStyle = dataGridViewCellStyle3; this.number.Frozen = true; this.number.HeaderText = "Chapter Number"; this.number.MaxInputLength = 3; @@ -517,13 +517,13 @@ this.mnu_killCLI, this.mnu_exit}); this.FileToolStripMenuItem.Name = "FileToolStripMenuItem"; - this.FileToolStripMenuItem.Size = new System.Drawing.Size(35, 20); + this.FileToolStripMenuItem.Size = new System.Drawing.Size(37, 20); this.FileToolStripMenuItem.Text = "&File"; // // mnu_killCLI // this.mnu_killCLI.Name = "mnu_killCLI"; - this.mnu_killCLI.Size = new System.Drawing.Size(143, 22); + this.mnu_killCLI.Size = new System.Drawing.Size(138, 22); this.mnu_killCLI.Text = "Cancel Scan"; this.mnu_killCLI.Visible = false; this.mnu_killCLI.Click += new System.EventHandler(this.mnu_killCLI_Click); @@ -531,7 +531,7 @@ // mnu_exit // this.mnu_exit.Name = "mnu_exit"; - this.mnu_exit.Size = new System.Drawing.Size(143, 22); + this.mnu_exit.Size = new System.Drawing.Size(138, 22); this.mnu_exit.Text = "E&xit"; this.mnu_exit.Click += new System.EventHandler(this.mnu_exit_Click); // @@ -548,7 +548,7 @@ this.ToolStripSeparator5, this.mnu_options}); this.ToolsToolStripMenuItem.Name = "ToolsToolStripMenuItem"; - this.ToolsToolStripMenuItem.Size = new System.Drawing.Size(44, 20); + this.ToolsToolStripMenuItem.Size = new System.Drawing.Size(48, 20); this.ToolsToolStripMenuItem.Text = "&Tools"; // // mnu_encode @@ -556,7 +556,7 @@ this.mnu_encode.Image = global::Handbrake.Properties.Resources.Queue_Small; this.mnu_encode.Name = "mnu_encode"; this.mnu_encode.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Q))); - this.mnu_encode.Size = new System.Drawing.Size(186, 22); + this.mnu_encode.Size = new System.Drawing.Size(184, 22); this.mnu_encode.Text = "Show Queue"; this.mnu_encode.Click += new System.EventHandler(this.mnu_encode_Click); // @@ -564,20 +564,20 @@ // this.mnu_encodeLog.Image = global::Handbrake.Properties.Resources.ActivityWindow_small; this.mnu_encodeLog.Name = "mnu_encodeLog"; - this.mnu_encodeLog.Size = new System.Drawing.Size(186, 22); + this.mnu_encodeLog.Size = new System.Drawing.Size(184, 22); this.mnu_encodeLog.Text = "Activity Window"; this.mnu_encodeLog.Click += new System.EventHandler(this.mnu_encodeLog_Click); // // ToolStripSeparator5 // this.ToolStripSeparator5.Name = "ToolStripSeparator5"; - this.ToolStripSeparator5.Size = new System.Drawing.Size(183, 6); + this.ToolStripSeparator5.Size = new System.Drawing.Size(181, 6); // // mnu_options // this.mnu_options.Image = global::Handbrake.Properties.Resources.Pref_Small; this.mnu_options.Name = "mnu_options"; - this.mnu_options.Size = new System.Drawing.Size(186, 22); + this.mnu_options.Size = new System.Drawing.Size(184, 22); this.mnu_options.Text = "Options"; this.mnu_options.Click += new System.EventHandler(this.mnu_options_Click); // @@ -590,7 +590,7 @@ this.btn_new_preset, this.mnu_SelectDefault}); this.PresetsToolStripMenuItem.Name = "PresetsToolStripMenuItem"; - this.PresetsToolStripMenuItem.Size = new System.Drawing.Size(55, 20); + this.PresetsToolStripMenuItem.Size = new System.Drawing.Size(56, 20); this.PresetsToolStripMenuItem.Text = "&Presets"; // // mnu_presetReset @@ -639,14 +639,14 @@ this.toolStripSeparator6, this.mnu_about}); this.HelpToolStripMenuItem.Name = "HelpToolStripMenuItem"; - this.HelpToolStripMenuItem.Size = new System.Drawing.Size(40, 20); + this.HelpToolStripMenuItem.Size = new System.Drawing.Size(44, 20); this.HelpToolStripMenuItem.Text = "&Help"; // // mnu_user_guide // this.mnu_user_guide.Image = global::Handbrake.Properties.Resources.Help16; this.mnu_user_guide.Name = "mnu_user_guide"; - this.mnu_user_guide.Size = new System.Drawing.Size(192, 22); + this.mnu_user_guide.Size = new System.Drawing.Size(194, 22); this.mnu_user_guide.Text = "HandBrake User Guide"; this.mnu_user_guide.Click += new System.EventHandler(this.mnu_user_guide_Click); // @@ -654,39 +654,39 @@ // this.mnu_handbrake_home.Image = global::Handbrake.Properties.Resources.info16; this.mnu_handbrake_home.Name = "mnu_handbrake_home"; - this.mnu_handbrake_home.Size = new System.Drawing.Size(192, 22); + this.mnu_handbrake_home.Size = new System.Drawing.Size(194, 22); this.mnu_handbrake_home.Text = "HandBrake Homepage"; this.mnu_handbrake_home.Click += new System.EventHandler(this.mnu_handbrake_home_Click); // // mnu_handbrake_forums // this.mnu_handbrake_forums.Name = "mnu_handbrake_forums"; - this.mnu_handbrake_forums.Size = new System.Drawing.Size(192, 22); + this.mnu_handbrake_forums.Size = new System.Drawing.Size(194, 22); this.mnu_handbrake_forums.Text = "HandBrake Forums"; this.mnu_handbrake_forums.Click += new System.EventHandler(this.mnu_handbrake_forums_Click); // // ToolStripSeparator3 // this.ToolStripSeparator3.Name = "ToolStripSeparator3"; - this.ToolStripSeparator3.Size = new System.Drawing.Size(189, 6); + this.ToolStripSeparator3.Size = new System.Drawing.Size(191, 6); // // mnu_UpdateCheck // this.mnu_UpdateCheck.Name = "mnu_UpdateCheck"; - this.mnu_UpdateCheck.Size = new System.Drawing.Size(192, 22); + this.mnu_UpdateCheck.Size = new System.Drawing.Size(194, 22); this.mnu_UpdateCheck.Text = "Check for Updates"; this.mnu_UpdateCheck.Click += new System.EventHandler(this.mnu_UpdateCheck_Click); // // toolStripSeparator6 // this.toolStripSeparator6.Name = "toolStripSeparator6"; - this.toolStripSeparator6.Size = new System.Drawing.Size(189, 6); + this.toolStripSeparator6.Size = new System.Drawing.Size(191, 6); // // mnu_about // this.mnu_about.Image = global::Handbrake.Properties.Resources.hb16; this.mnu_about.Name = "mnu_about"; - this.mnu_about.Size = new System.Drawing.Size(192, 22); + this.mnu_about.Size = new System.Drawing.Size(194, 22); this.mnu_about.Text = "About..."; this.mnu_about.Click += new System.EventHandler(this.mnu_about_Click); // @@ -894,15 +894,6 @@ this.tab_picture.Text = "Picture Settings"; this.tab_picture.UseVisualStyleBackColor = true; // - // PictureSettings - // - this.PictureSettings.BackColor = System.Drawing.Color.Transparent; - this.PictureSettings.Font = new System.Drawing.Font("Tahoma", 8.25F); - this.PictureSettings.Location = new System.Drawing.Point(0, 0); - this.PictureSettings.Name = "PictureSettings"; - this.PictureSettings.Size = new System.Drawing.Size(713, 310); - this.PictureSettings.TabIndex = 0; - // // Check_ChapterMarkers // this.Check_ChapterMarkers.AutoSize = true; @@ -1145,40 +1136,40 @@ this.pmnu_saveChanges, this.pmnu_delete}); this.presets_menu.Name = "presets_menu"; - this.presets_menu.Size = new System.Drawing.Size(155, 98); + this.presets_menu.Size = new System.Drawing.Size(148, 98); this.presets_menu.Text = ";"; this.presets_menu.Opening += new System.ComponentModel.CancelEventHandler(this.presets_menu_Opening); // // pmnu_expandAll // this.pmnu_expandAll.Name = "pmnu_expandAll"; - this.pmnu_expandAll.Size = new System.Drawing.Size(154, 22); + this.pmnu_expandAll.Size = new System.Drawing.Size(147, 22); this.pmnu_expandAll.Text = "Expand All"; this.pmnu_expandAll.Click += new System.EventHandler(this.pmnu_expandAll_Click); // // pmnu_collapse // this.pmnu_collapse.Name = "pmnu_collapse"; - this.pmnu_collapse.Size = new System.Drawing.Size(154, 22); + this.pmnu_collapse.Size = new System.Drawing.Size(147, 22); this.pmnu_collapse.Text = "Collapse All"; this.pmnu_collapse.Click += new System.EventHandler(this.pmnu_collapse_Click); // // sep1 // this.sep1.Name = "sep1"; - this.sep1.Size = new System.Drawing.Size(151, 6); + this.sep1.Size = new System.Drawing.Size(144, 6); // // pmnu_saveChanges // this.pmnu_saveChanges.Name = "pmnu_saveChanges"; - this.pmnu_saveChanges.Size = new System.Drawing.Size(154, 22); + this.pmnu_saveChanges.Size = new System.Drawing.Size(147, 22); this.pmnu_saveChanges.Text = "Save Changes"; this.pmnu_saveChanges.Click += new System.EventHandler(this.pmnu_saveChanges_Click); // // pmnu_delete // this.pmnu_delete.Name = "pmnu_delete"; - this.pmnu_delete.Size = new System.Drawing.Size(154, 22); + this.pmnu_delete.Size = new System.Drawing.Size(147, 22); this.pmnu_delete.Text = "Delete"; this.pmnu_delete.Click += new System.EventHandler(this.pmnu_delete_click); // @@ -1212,7 +1203,7 @@ this.btn_source.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; this.btn_source.ImageTransparentColor = System.Drawing.Color.Magenta; this.btn_source.Name = "btn_source"; - this.btn_source.Size = new System.Drawing.Size(85, 36); + this.btn_source.Size = new System.Drawing.Size(88, 36); this.btn_source.Text = "Source"; this.btn_source.ToolTipText = "Open a new source file or folder."; this.btn_source.Click += new System.EventHandler(this.btn_source_Click); @@ -1221,7 +1212,7 @@ // this.btn_file_source.Image = global::Handbrake.Properties.Resources.Movies_Small; this.btn_file_source.Name = "btn_file_source"; - this.btn_file_source.Size = new System.Drawing.Size(194, 22); + this.btn_file_source.Size = new System.Drawing.Size(192, 22); this.btn_file_source.Text = "Video File"; this.btn_file_source.Click += new System.EventHandler(this.btn_file_source_Click); // @@ -1230,20 +1221,20 @@ this.btn_dvd_source.Image = ((System.Drawing.Image)(resources.GetObject("btn_dvd_source.Image"))); this.btn_dvd_source.ImageTransparentColor = System.Drawing.Color.Magenta; this.btn_dvd_source.Name = "btn_dvd_source"; - this.btn_dvd_source.Size = new System.Drawing.Size(194, 22); + this.btn_dvd_source.Size = new System.Drawing.Size(192, 22); this.btn_dvd_source.Text = "DVD/ VIDEO_TS Folder"; this.btn_dvd_source.Click += new System.EventHandler(this.btn_dvd_source_Click); // // toolStripSeparator1 // this.toolStripSeparator1.Name = "toolStripSeparator1"; - this.toolStripSeparator1.Size = new System.Drawing.Size(191, 6); + this.toolStripSeparator1.Size = new System.Drawing.Size(189, 6); // // mnu_dvd_drive // this.mnu_dvd_drive.Image = global::Handbrake.Properties.Resources.disc_small; this.mnu_dvd_drive.Name = "mnu_dvd_drive"; - this.mnu_dvd_drive.Size = new System.Drawing.Size(194, 22); + this.mnu_dvd_drive.Size = new System.Drawing.Size(192, 22); this.mnu_dvd_drive.Text = "[No DVD Drive Ready]"; this.mnu_dvd_drive.Visible = false; this.mnu_dvd_drive.Click += new System.EventHandler(this.mnu_dvd_drive_Click); @@ -1270,7 +1261,7 @@ this.btn_add2Queue.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; this.btn_add2Queue.ImageTransparentColor = System.Drawing.Color.Magenta; this.btn_add2Queue.Name = "btn_add2Queue"; - this.btn_add2Queue.Size = new System.Drawing.Size(110, 36); + this.btn_add2Queue.Size = new System.Drawing.Size(117, 36); this.btn_add2Queue.Text = "Add to Queue"; this.btn_add2Queue.ToolTipText = "Add a new item to the Queue"; this.btn_add2Queue.Click += new System.EventHandler(this.btn_add2Queue_Click); @@ -1281,7 +1272,7 @@ this.btn_showQueue.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; this.btn_showQueue.ImageTransparentColor = System.Drawing.Color.Magenta; this.btn_showQueue.Name = "btn_showQueue"; - this.btn_showQueue.Size = new System.Drawing.Size(104, 36); + this.btn_showQueue.Size = new System.Drawing.Size(110, 36); this.btn_showQueue.Tag = ""; this.btn_showQueue.Text = "Show Queue"; this.btn_showQueue.Click += new System.EventHandler(this.btn_showQueue_Click); @@ -1297,7 +1288,7 @@ this.tb_preview.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; this.tb_preview.ImageTransparentColor = System.Drawing.Color.Magenta; this.tb_preview.Name = "tb_preview"; - this.tb_preview.Size = new System.Drawing.Size(81, 36); + this.tb_preview.Size = new System.Drawing.Size(84, 36); this.tb_preview.Text = "Preview"; this.tb_preview.Click += new System.EventHandler(this.tb_preview_Click); // @@ -1307,7 +1298,7 @@ this.btn_ActivityWindow.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None; this.btn_ActivityWindow.ImageTransparentColor = System.Drawing.Color.Magenta; this.btn_ActivityWindow.Name = "btn_ActivityWindow"; - this.btn_ActivityWindow.Size = new System.Drawing.Size(120, 36); + this.btn_ActivityWindow.Size = new System.Drawing.Size(130, 36); this.btn_ActivityWindow.Text = "Activity Window"; this.btn_ActivityWindow.ToolTipText = "Displays the activity window which displays the log of the last completed or curr" + "ently running encode."; @@ -1553,6 +1544,26 @@ this.labelPreset.TabIndex = 54; this.labelPreset.Text = "Output Settings (Preset: None)"; // + // PictureSettings + // + this.PictureSettings.BackColor = System.Drawing.SystemColors.Window; + this.PictureSettings.CroppingValues = new int[] { + 0, + 0, + 0, + 0}; + this.PictureSettings.DisplayResolution = new System.Drawing.Size(0, 0); + this.PictureSettings.Enabled = false; + this.PictureSettings.EncodeHeight = 64; + this.PictureSettings.EncodeWidth = 64; + this.PictureSettings.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.PictureSettings.Location = new System.Drawing.Point(3, 6); + this.PictureSettings.MaximumHeight = 0; + this.PictureSettings.MaximumWidth = 0; + this.PictureSettings.Name = "PictureSettings"; + this.PictureSettings.Size = new System.Drawing.Size(666, 279); + this.PictureSettings.TabIndex = 0; + // // frmMain // this.AllowDrop = true; @@ -1719,7 +1730,6 @@ private System.Diagnostics.Process hbproc; private TabPage tab_subtitles; internal Handbrake.Controls.AudioPanel AudioSettings; - internal Handbrake.Controls.PictureSettings PictureSettings; internal Handbrake.Controls.Subtitles Subtitles; internal Handbrake.Controls.Filters Filters; private ToolStripStatusLabel lbl_updateCheck; @@ -1742,6 +1752,7 @@ private Label labelSource; private Label labelStaticSource; internal Label labelPreset; + internal Handbrake.Controls.NewPictureSettings PictureSettings; } Index: frmMain.resx =================================================================== --- frmMain.resx (revision 2680) +++ frmMain.resx (working copy) @@ -166,18 +166,17 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAlpJREFUOE+tk21I - k1EYhif0oyA0sqIQCix/+GcQFFH9CCmiUBTLLEjShJofVBgL2fxoU9Pp5ubUlS5rU9f8rCyjsA+pUCRC - TR1ppmVFUSlmhq78unrnQF1KGHTg/nEOz30993PO+7qJFrmUeiv2n+Mij+XLRLLYULdF2pxlEVIDcw0p - AsyxD5fmI/rQ94pqi26eOlsfuZj+7BgSm01QdA4ih7m73Yx9qGpavwatjPebqCzOprPt8YKQgzFagqL0 - BEjyEFWVaBkdLHMxT34uYNwWR9nVTEoL0zHlp2DMSeaSRk6eKt4VWm5WM/rVPNN5SjDTLQebZEHNA1wr - UvHjk3E6tsNcV62e1r3KLGqtKm6WplNpSsVqVFJsOM8VfSKFWjkGtcyZptSYzvC7XByx3zQoqCnTMvlG - CX1prnornPUmQJcUXsbSVhGK5bIOkcmQyveeTHiv4VZ5Nk33Nc6iuSO8CIfmECYa/bE/8ON1iRipJNh5 - F0V6Bd86lfQ1JlFj1TDVq4COKCegLVIwHmGiKRB7/V6G7+5koHozymgfYRy5E1CgTWKgXcZ1i5qWp0KS - rjgBcAJawph6FszYk/2M1O1isGYLX8p9ab6wgqP+3rMvYciS01GfzA1LFvQkQ6sQ9/khxhoCGHnox1Dt - NvorxXw0b8Km8UQh2cip6GOzgNyMeKqKM7HdjqFZJ5pRk2YJ9aql3EnxoCJxNaZ4Ly6e3UDY3O6OEXRp - 59ApTpIhiyDh9GHORAZyPHQPB/ZtZ/cOMVvFPvh6e7F+3SrWrHRnraf7Xz/xf/rJ/kvxb84I3U1y+9/W - AAAAAElFTkSuQmCC + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAJQSURBVDhPlZNdSNNRGMb/F110ZZEVhVBgeeHNICiiuggp + olAUyyxI0oSaH1QYC3N+tKnp5ubm1JUua5uuqdPKMgr7kApFItTUkWZqVhSVYmao5Nev/xyoQ4k88Nyc + 8z6/93nP4QjCfy6lwc4ltZVso4P/tMyXRcmMHqZ0EeY6jZQVInzuf0e1Tb9Ina3P/tkpLD6XkNg8BJe5 + u93C+HDVrP4M2ZkcMOOw5tLZ9nxJyJE4HSExBoKkBQhVpTrGhso9zNPfiph0JlB+U01ZcRbmwnRMeWlc + 08opUCV6QissGsZ+WOY6z4hmuuXglC6pRYBbJSp+fzXNxnaZ66o1s3rkyKHWruJuWRYOcwZ2kxKr8TI3 + DCkU6+QYNUnuNGWmLEY+5uOK3degoKZcx3SfEvozPfVB3OtNhi4ZvI2nrTIc23U9gtmYwa8eNXzScq8i + l6bHWnfRwhHeREJzGFONgYw/CeB9qQSZNNR9FyUGBT87lfQ3plJj1zLTq4COGDegLVo0HmeqKZjx+gOM + PNzDYPU2lLF+4jhyN6BIl8pgexK3bRpaXopJuhJEwGloiWDmVSgTLw4xWreXoZrtfK/wp/nKak4E+s6/ + hDFHTkd9GndsOdCTBq1i3NdHmWgIYvRpAMO1OxlwSPhi2YpT641CuoWzsSfnAfnZiVRZ1Tjvx9GsF+bU + pF1BvWolD9JXUZmyDnOiD1cvbCZiYXfXCPrMi+gVZ8hOiiL53DHORwdzKnw/hw/uYt9uCTskfvj7+rBp + 41rWr/Fig7fX8j/Tsn/fcgx/ARfG3ml6M3rzAAAAAElFTkSuQmCC Index: Functions/PresetLoader.cs =================================================================== --- Functions/PresetLoader.cs (revision 2680) +++ Functions/PresetLoader.cs (working copy) @@ -88,10 +88,6 @@ // Aspect Ratio mainWindow.PictureSettings.check_KeepAR.CheckState = presetQuery.keepDisplayAsect ? CheckState.Checked : CheckState.Unchecked; - - // Reset maxWidth and MaxHeight to 0 - mainWindow.PictureSettings.maxWidth = 0; - mainWindow.PictureSettings.maxHeight = 0; // Set the Width and height as Required. if (presetQuery.Width != 0) @@ -104,13 +100,13 @@ if (presetQuery.MaxWidth != 0) { mainWindow.PictureSettings.text_width.Value = presetQuery.MaxWidth; - mainWindow.PictureSettings.maxWidth = presetQuery.MaxWidth; + mainWindow.PictureSettings.MaximumWidth = presetQuery.MaxWidth; } if (presetQuery.MaxHeight != 0) { mainWindow.PictureSettings.text_height.Value = presetQuery.MaxHeight; - mainWindow.PictureSettings.maxHeight = presetQuery.MaxHeight; + mainWindow.PictureSettings.MaximumHeight = presetQuery.MaxHeight; } // Case where both height and max height are 0 - For built-in presets @@ -124,10 +120,10 @@ mainWindow.PictureSettings.setMax(); // Custom Anamorphic Controls - mainWindow.PictureSettings.txt_displayWidth.Text = presetQuery.displayWidthValue.ToString(); - mainWindow.PictureSettings.txt_parWidth.Text = presetQuery.pixelAspectWidth.ToString(); - mainWindow.PictureSettings.txt_parHeight.Text = presetQuery.pixelAspectHeight.ToString(); - mainWindow.PictureSettings.drop_modulus.SelectedItem = presetQuery.AnamorphicModulus; + mainWindow.PictureSettings.updownDisplayWidth.Text = presetQuery.displayWidthValue.ToString(); + mainWindow.PictureSettings.updownParHeight.Text = presetQuery.pixelAspectWidth.ToString(); + mainWindow.PictureSettings.updownParWidth.Text = presetQuery.pixelAspectHeight.ToString(); + mainWindow.PictureSettings.drp_modulus.SelectedItem = presetQuery.AnamorphicModulus; #endregion Index: Functions/QueryGenerator.cs =================================================================== --- Functions/QueryGenerator.cs (revision 2680) +++ Functions/QueryGenerator.cs (working copy) @@ -119,7 +119,7 @@ #region Picture Settings Tab // Use MaxWidth for built-in presets and width for user settings. - if (mainWindow.PictureSettings.maxWidth == 0) + if (mainWindow.PictureSettings.MaximumWidth == 0) { if (mainWindow.PictureSettings.text_width.Text != "") @@ -133,7 +133,7 @@ } // Use MaxHeight for built-in presets and height for user settings. - if (mainWindow.PictureSettings.maxHeight == 0) + if (mainWindow.PictureSettings.MaximumHeight == 0) { if (mainWindow.PictureSettings.text_height.Text != "0") if (mainWindow.PictureSettings.text_height.Text != "") @@ -175,11 +175,11 @@ break; case 3: query += " --custom-anamorphic "; - query += " --display-width " + mainWindow.PictureSettings.txt_displayWidth.Text + " "; + query += " --display-width " + mainWindow.PictureSettings.updownDisplayWidth.Text + " "; if (mainWindow.PictureSettings.check_KeepAR.Checked) query += " --keep-display-aspect "; - if (mainWindow.PictureSettings.txt_parWidth.Text != "" && mainWindow.PictureSettings.txt_parHeight.Text != "") - query += " --pixel-aspect " + mainWindow.PictureSettings.txt_parWidth.Text + ":" + mainWindow.PictureSettings.txt_parHeight.Text + " "; + if (mainWindow.PictureSettings.updownParWidth.Text != "" && mainWindow.PictureSettings.updownParHeight.Text != "") + query += " --pixel-aspect " + mainWindow.PictureSettings.updownParWidth.Text + ":" + mainWindow.PictureSettings.updownParHeight.Text + " "; break; } #endregion Index: HandBrakeCS.csproj =================================================================== --- HandBrakeCS.csproj (revision 2680) +++ HandBrakeCS.csproj (working copy) @@ -118,6 +118,12 @@ Filters.cs + + UserControl + + + NewPictureSettings.cs + UserControl @@ -217,6 +223,10 @@ Filters.cs Designer + + NewPictureSettings.cs + Designer + PictureSettings.cs Designer