OSDN Git Service

WinGui:
authorsr55 <sr55@b64f7644-9d1e-0410-96f1-a4d463321fa5>
Fri, 24 Jul 2009 22:34:16 +0000 (22:34 +0000)
committersr55 <sr55@b64f7644-9d1e-0410-96f1-a4d463321fa5>
Fri, 24 Jul 2009 22:34:16 +0000 (22:34 +0000)
- PictureSettings: Custom Anamorphic partially re-implemented.
    "NOT KEEPING DISPLAY ASPECT" Done.
    "KEEPING DISPLAY ASPECT RATIO" Still to do.

git-svn-id: svn://localhost/HandBrake/trunk@2731 b64f7644-9d1e-0410-96f1-a4d463321fa5

win/C#/Controls/PictureSettings.Designer.cs
win/C#/Controls/PictureSettings.cs

index 51dd32c..f39e1e3 100644 (file)
@@ -471,6 +471,7 @@ namespace Handbrake.Controls
             this.updownParHeight.Name = "updownParHeight";\r
             this.updownParHeight.Size = new System.Drawing.Size(53, 21);\r
             this.updownParHeight.TabIndex = 112;\r
+            this.updownParHeight.ValueChanged += new System.EventHandler(this.text_width_ValueChanged);\r
             // \r
             // label6\r
             // \r
@@ -534,6 +535,7 @@ namespace Handbrake.Controls
             this.updownParWidth.Name = "updownParWidth";\r
             this.updownParWidth.Size = new System.Drawing.Size(53, 21);\r
             this.updownParWidth.TabIndex = 111;\r
+            this.updownParWidth.ValueChanged += new System.EventHandler(this.text_width_ValueChanged);\r
             // \r
             // drp_anamorphic\r
             // \r
@@ -574,6 +576,7 @@ namespace Handbrake.Controls
             this.updownDisplayWidth.Name = "updownDisplayWidth";\r
             this.updownDisplayWidth.Size = new System.Drawing.Size(53, 21);\r
             this.updownDisplayWidth.TabIndex = 110;\r
+            this.updownDisplayWidth.ValueChanged += new System.EventHandler(this.updownDisplayWidth_ValueChanged);\r
             // \r
             // lbl_modulus\r
             // \r
index ed9b447..7f96878 100644 (file)
@@ -7,12 +7,33 @@ using Handbrake.Parsing;
 \r
 namespace Handbrake.Controls\r
 {\r
+\r
+    //  TODO Custom Anamorphic\r
+    /*  NOT KEEPING DISPLAY ASPECT   == [Complete]\r
+       \r
+        KEEPING DISPLAY ASPECT RATIO == [TODO]\r
+        DAR = DISPLAY WIDTH / DISPLAY HEIGHT (cache after every modification)\r
+        Disable editing: PIXEL WIDTH, PIXEL HEIGHT\r
+        Changing DISPLAY WIDTH:\r
+            Changes HEIGHT to keep DAR\r
+            Changes PIXEL WIDTH to new DISPLAY WIDTH\r
+            Changes PIXEL HEIGHT to STORAGE WIDTH\r
+        Changing HEIGHT\r
+            Changes DISPLAY WIDTH to keep DAR\r
+            Changes PIXEL WIDTH to new DISPLAY WIDTH\r
+            Changes PIXEL HEIGHT to STORAGE WIDTH\r
+        Changing STORAGE_WIDTH:\r
+            Changes PIXEL WIDTH to DISPLAY WIDTH\r
+            Changes PIXEL HEIGHT to new STORAGE WIDTH\r
+     * */\r
+\r
+\r
     public partial class PictureSettings : UserControl\r
     {\r
         private readonly CultureInfo Culture = new CultureInfo("en-US", false);\r
         public event EventHandler PictureSettingsChanged;\r
 \r
-        private Boolean preventChangingWidth, preventChangingHeight;\r
+        private Boolean preventChangingWidth, preventChangingHeight, preventChangingCustom, preventChangingDisplayWidth;\r
         private int _PresetMaximumWidth, _PresetMaximumHeight;\r
         private Title _SourceTitle;\r
 \r
@@ -52,7 +73,7 @@ namespace Handbrake.Controls
                 {\r
                     if (text_width.Value == 0) // Only update the values if the fields don't already have values.\r
                         text_width.Value = _SourceTitle.Resolution.Width;\r
-   \r
+\r
                     check_KeepAR.Checked = true; // Forces Resolution to be correct.\r
                 }\r
                 else\r
@@ -62,9 +83,9 @@ namespace Handbrake.Controls
                     labelDisplaySize.Text = calculateAnamorphicSizes().Width + "x" + calculateAnamorphicSizes().Height;\r
                 }\r
 \r
+                updownDisplayWidth.Value = calculateAnamorphicSizes().Width;\r
                 updownParWidth.Value = _SourceTitle.ParVal.Width;\r
                 updownParHeight.Value = _SourceTitle.ParVal.Height;\r
-                updownDisplayWidth.Value = calculateAnamorphicSizes().Width;\r
             }\r
         }\r
 \r
@@ -122,6 +143,19 @@ namespace Handbrake.Controls
                         preventChangingHeight = false;\r
                     }\r
                     break;\r
+                case 3:\r
+                    if (check_KeepAR.CheckState == CheckState.Unchecked && Source != null)\r
+                    {\r
+                        if (preventChangingCustom)\r
+                            break;\r
+\r
+                        preventChangingDisplayWidth = true; \r
+                        updownDisplayWidth.Value = text_width.Value * updownParWidth.Value / updownParHeight.Value;\r
+                        preventChangingDisplayWidth = false;\r
+\r
+                        labelDisplaySize.Text = Math.Truncate(updownDisplayWidth.Value) + "x" + text_height.Value;\r
+                    }\r
+                    break;\r
                 default:\r
                     labelDisplaySize.Text = calculateAnamorphicSizes().Width + "x" + calculateAnamorphicSizes().Height;\r
                     break;\r
@@ -156,6 +190,9 @@ namespace Handbrake.Controls
                         preventChangingWidth = false;\r
                     }\r
                     break;\r
+                case 3:\r
+                    labelDisplaySize.Text = Math.Truncate(updownDisplayWidth.Value) + "x" + text_height.Value;\r
+                    break;\r
                 default:\r
                     labelDisplaySize.Text = calculateAnamorphicSizes().Width + "x" + calculateAnamorphicSizes().Height;\r
                     break;\r
@@ -180,6 +217,16 @@ namespace Handbrake.Controls
             if (PictureSettingsChanged != null)\r
                 PictureSettingsChanged(this, new EventArgs());\r
         }\r
+        private void updownDisplayWidth_ValueChanged(object sender, EventArgs e)\r
+        {\r
+            if (preventChangingDisplayWidth == false)\r
+            {\r
+                preventChangingCustom = true;\r
+                updownParWidth.Value = updownDisplayWidth.Value;\r
+                updownParHeight.Value = text_width.Value;\r
+                preventChangingCustom = false;\r
+            }\r
+        }\r
 \r
         // Anamorphic Controls\r
         private void drp_anamorphic_SelectedIndexChanged(object sender, EventArgs e)\r