]> git.sesse.net Git - vlc/commitdiff
macosx: fixed confusing interface behavior of the crop filter controls
authorFelix Paul Kühne <fkuehne@videolan.org>
Sat, 19 Nov 2011 15:08:02 +0000 (16:08 +0100)
committerFelix Paul Kühne <fkuehne@videolan.org>
Sat, 19 Nov 2011 15:08:02 +0000 (16:08 +0100)
extras/package/macosx/Resources/English.lproj/VideoEffects.xib
modules/gui/macosx/VideoEffects.h
modules/gui/macosx/VideoEffects.m

index a7348b616841da884af6e0d4f385c4f4343b623f..46a3edc25e7d218535b41d3b44b169fb801da08b 100644 (file)
                 <object class="BGHUDTabViewItem" id="52756061">
                   <string key="NSIdentifier">crop</string>
                   <object class="NSView" key="NSView" id="838226260">
-                    <nil key="NSNextResponder"/>
+                    <reference key="NSNextResponder" ref="898819366"/>
                     <int key="NSvFlags">256</int>
                     <object class="NSMutableArray" key="NSSubviews">
                       <bool key="EncodedWithXMLCoder">YES</bool>
                       </object>
                     </object>
                     <string key="NSFrame">{{10, 33}, {638, 197}}</string>
+                    <reference key="NSSuperview" ref="898819366"/>
                   </object>
                   <string key="NSLabel">Crop</string>
                   <reference key="NSColor" ref="279270326"/>
                 <object class="NSTabViewItem" id="133975353">
                   <string key="NSIdentifier">color</string>
                   <object class="NSView" key="NSView" id="10628740">
-                    <reference key="NSNextResponder" ref="898819366"/>
+                    <nil key="NSNextResponder"/>
                     <int key="NSvFlags">256</int>
                     <object class="NSMutableArray" key="NSSubviews">
                       <bool key="EncodedWithXMLCoder">YES</bool>
                       </object>
                     </object>
                     <string key="NSFrame">{{10, 33}, {638, 197}}</string>
-                    <reference key="NSSuperview" ref="898819366"/>
                   </object>
                   <string key="NSLabel">Color</string>
                   <reference key="NSColor" ref="279270326"/>
                   <reference key="NSTabView" ref="898819366"/>
                 </object>
               </object>
-              <reference key="NSSelectedTabViewItem" ref="133975353"/>
+              <reference key="NSSelectedTabViewItem" ref="52756061"/>
               <object class="NSFont" key="NSFont">
                 <string key="NSName">LucidaGrande</string>
                 <double key="NSSize">13</double>
               <nil key="themeKey"/>
               <object class="NSMutableArray" key="NSSubviews">
                 <bool key="EncodedWithXMLCoder">YES</bool>
-                <reference ref="10628740"/>
+                <reference ref="838226260"/>
               </object>
             </object>
           </object>
     <object class="IBObjectContainer" key="IBDocument.Objects">
       <object class="NSMutableArray" key="connectionRecords">
         <bool key="EncodedWithXMLCoder">YES</bool>
-        <object class="IBConnectionRecord">
-          <object class="IBActionConnection" key="connection">
-            <string key="label">takeIntegerValueFrom:</string>
-            <reference key="source" ref="411363183"/>
-            <reference key="destination" ref="726085921"/>
-          </object>
-          <int key="connectionID">82</int>
-        </object>
-        <object class="IBConnectionRecord">
-          <object class="IBActionConnection" key="connection">
-            <string key="label">takeIntegerValueFrom:</string>
-            <reference key="source" ref="190644777"/>
-            <reference key="destination" ref="308507287"/>
-          </object>
-          <int key="connectionID">91</int>
-        </object>
-        <object class="IBConnectionRecord">
-          <object class="IBActionConnection" key="connection">
-            <string key="label">takeIntegerValueFrom:</string>
-            <reference key="source" ref="950709956"/>
-            <reference key="destination" ref="1010555455"/>
-          </object>
-          <int key="connectionID">99</int>
-        </object>
-        <object class="IBConnectionRecord">
-          <object class="IBActionConnection" key="connection">
-            <string key="label">takeIntegerValueFrom:</string>
-            <reference key="source" ref="785525140"/>
-            <reference key="destination" ref="764981534"/>
-          </object>
-          <int key="connectionID">108</int>
-        </object>
         <object class="IBConnectionRecord">
           <object class="IBActionConnection" key="connection">
             <string key="label">takeIntegerValueFrom:</string>
           </object>
           <int key="connectionID">683</int>
         </object>
+        <object class="IBConnectionRecord">
+          <object class="IBActionConnection" key="connection">
+            <string key="label">cropObjectChanged:</string>
+            <reference key="source" ref="707254443"/>
+            <reference key="destination" ref="37947909"/>
+          </object>
+          <int key="connectionID">684</int>
+        </object>
+        <object class="IBConnectionRecord">
+          <object class="IBActionConnection" key="connection">
+            <string key="label">cropObjectChanged:</string>
+            <reference key="source" ref="707254443"/>
+            <reference key="destination" ref="726085921"/>
+          </object>
+          <int key="connectionID">685</int>
+        </object>
+        <object class="IBConnectionRecord">
+          <object class="IBActionConnection" key="connection">
+            <string key="label">cropObjectChanged:</string>
+            <reference key="source" ref="707254443"/>
+            <reference key="destination" ref="718775388"/>
+          </object>
+          <int key="connectionID">686</int>
+        </object>
+        <object class="IBConnectionRecord">
+          <object class="IBActionConnection" key="connection">
+            <string key="label">cropObjectChanged:</string>
+            <reference key="source" ref="707254443"/>
+            <reference key="destination" ref="147696409"/>
+          </object>
+          <int key="connectionID">687</int>
+        </object>
+        <object class="IBConnectionRecord">
+          <object class="IBOutletConnection" key="connection">
+            <string key="label">o_crop_bottom_stp</string>
+            <reference key="source" ref="707254443"/>
+            <reference key="destination" ref="308507287"/>
+          </object>
+          <int key="connectionID">688</int>
+        </object>
+        <object class="IBConnectionRecord">
+          <object class="IBOutletConnection" key="connection">
+            <string key="label">o_crop_left_stp</string>
+            <reference key="source" ref="707254443"/>
+            <reference key="destination" ref="764981534"/>
+          </object>
+          <int key="connectionID">689</int>
+        </object>
+        <object class="IBConnectionRecord">
+          <object class="IBOutletConnection" key="connection">
+            <string key="label">o_crop_right_stp</string>
+            <reference key="source" ref="707254443"/>
+            <reference key="destination" ref="1010555455"/>
+          </object>
+          <int key="connectionID">690</int>
+        </object>
+        <object class="IBConnectionRecord">
+          <object class="IBOutletConnection" key="connection">
+            <string key="label">o_crop_top_stp</string>
+            <reference key="source" ref="707254443"/>
+            <reference key="destination" ref="726085921"/>
+          </object>
+          <int key="connectionID">691</int>
+        </object>
       </object>
       <object class="IBMutableOrderedSet" key="objectRecords">
         <object class="NSArray" key="orderedObjects">
         </object>
       </object>
       <nil key="sourceID"/>
-      <int key="maxID">683</int>
+      <int key="maxID">691</int>
     </object>
     <object class="IBClassDescriber" key="IBDocument.Classes">
       <object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.1+">
               <string>enableBanding:</string>
               <string>enableBlur:</string>
               <string>enableClone:</string>
-              <string>enableEraseLogo:</string>
               <string>enableExtract:</string>
               <string>enableGradient:</string>
               <string>enableGrain:</string>
               <string>enableWaterEffect:</string>
               <string>enableWaves:</string>
               <string>enableZoom:</string>
-              <string>eraseLogoModifierChanged:</string>
               <string>extractModifierChanged:</string>
               <string>gradientModifierChanged:</string>
               <string>grainSliderChanged:</string>
               <string>id</string>
               <string>id</string>
               <string>id</string>
-              <string>id</string>
-              <string>id</string>
             </object>
           </object>
           <object class="NSMutableDictionary" key="actionInfosByName">
               <string>enableBanding:</string>
               <string>enableBlur:</string>
               <string>enableClone:</string>
-              <string>enableEraseLogo:</string>
               <string>enableExtract:</string>
               <string>enableGradient:</string>
               <string>enableGrain:</string>
               <string>enableWaterEffect:</string>
               <string>enableWaves:</string>
               <string>enableZoom:</string>
-              <string>eraseLogoModifierChanged:</string>
               <string>extractModifierChanged:</string>
               <string>gradientModifierChanged:</string>
               <string>grainSliderChanged:</string>
                 <string key="name">enableClone:</string>
                 <string key="candidateClassName">id</string>
               </object>
-              <object class="IBActionInfo">
-                <string key="name">enableEraseLogo:</string>
-                <string key="candidateClassName">id</string>
-              </object>
               <object class="IBActionInfo">
                 <string key="name">enableExtract:</string>
                 <string key="candidateClassName">id</string>
                 <string key="name">enableZoom:</string>
                 <string key="candidateClassName">id</string>
               </object>
-              <object class="IBActionInfo">
-                <string key="name">eraseLogoModifierChanged:</string>
-                <string key="candidateClassName">id</string>
-              </object>
               <object class="IBActionInfo">
                 <string key="name">extractModifierChanged:</string>
                 <string key="candidateClassName">id</string>
               <string>o_clone_lbl</string>
               <string>o_crop_bottom_fld</string>
               <string>o_crop_bottom_lbl</string>
+              <string>o_crop_bottom_stp</string>
               <string>o_crop_left_fld</string>
               <string>o_crop_left_lbl</string>
+              <string>o_crop_left_stp</string>
               <string>o_crop_right_fld</string>
               <string>o_crop_right_lbl</string>
+              <string>o_crop_right_stp</string>
               <string>o_crop_sync_left_right_ckb</string>
               <string>o_crop_sync_top_bottom_ckb</string>
               <string>o_crop_top_fld</string>
               <string>o_crop_top_lbl</string>
-              <string>o_eraselogo_ckb</string>
-              <string>o_eraselogo_left_fld</string>
-              <string>o_eraselogo_left_lbl</string>
-              <string>o_eraselogo_mask_fld</string>
-              <string>o_eraselogo_mask_lbl</string>
-              <string>o_eraselogo_top_fld</string>
-              <string>o_eraselogo_top_lbl</string>
+              <string>o_crop_top_stp</string>
               <string>o_extract_ckb</string>
               <string>o_extract_fld</string>
               <string>o_extract_lbl</string>
               <string>id</string>
               <string>id</string>
               <string>id</string>
-              <string>id</string>
-              <string>id</string>
-              <string>id</string>
             </object>
           </object>
           <object class="NSMutableDictionary" key="toOneOutletInfosByName">
               <string>o_clone_lbl</string>
               <string>o_crop_bottom_fld</string>
               <string>o_crop_bottom_lbl</string>
+              <string>o_crop_bottom_stp</string>
               <string>o_crop_left_fld</string>
               <string>o_crop_left_lbl</string>
+              <string>o_crop_left_stp</string>
               <string>o_crop_right_fld</string>
               <string>o_crop_right_lbl</string>
+              <string>o_crop_right_stp</string>
               <string>o_crop_sync_left_right_ckb</string>
               <string>o_crop_sync_top_bottom_ckb</string>
               <string>o_crop_top_fld</string>
               <string>o_crop_top_lbl</string>
-              <string>o_eraselogo_ckb</string>
-              <string>o_eraselogo_left_fld</string>
-              <string>o_eraselogo_left_lbl</string>
-              <string>o_eraselogo_mask_fld</string>
-              <string>o_eraselogo_mask_lbl</string>
-              <string>o_eraselogo_top_fld</string>
-              <string>o_eraselogo_top_lbl</string>
+              <string>o_crop_top_stp</string>
               <string>o_extract_ckb</string>
               <string>o_extract_fld</string>
               <string>o_extract_lbl</string>
                 <string key="candidateClassName">id</string>
               </object>
               <object class="IBToOneOutletInfo">
-                <string key="name">o_crop_left_fld</string>
-                <string key="candidateClassName">id</string>
-              </object>
-              <object class="IBToOneOutletInfo">
-                <string key="name">o_crop_left_lbl</string>
-                <string key="candidateClassName">id</string>
-              </object>
-              <object class="IBToOneOutletInfo">
-                <string key="name">o_crop_right_fld</string>
-                <string key="candidateClassName">id</string>
-              </object>
-              <object class="IBToOneOutletInfo">
-                <string key="name">o_crop_right_lbl</string>
+                <string key="name">o_crop_bottom_stp</string>
                 <string key="candidateClassName">id</string>
               </object>
               <object class="IBToOneOutletInfo">
-                <string key="name">o_crop_sync_left_right_ckb</string>
+                <string key="name">o_crop_left_fld</string>
                 <string key="candidateClassName">id</string>
               </object>
               <object class="IBToOneOutletInfo">
-                <string key="name">o_crop_sync_top_bottom_ckb</string>
+                <string key="name">o_crop_left_lbl</string>
                 <string key="candidateClassName">id</string>
               </object>
               <object class="IBToOneOutletInfo">
-                <string key="name">o_crop_top_fld</string>
+                <string key="name">o_crop_left_stp</string>
                 <string key="candidateClassName">id</string>
               </object>
               <object class="IBToOneOutletInfo">
-                <string key="name">o_crop_top_lbl</string>
+                <string key="name">o_crop_right_fld</string>
                 <string key="candidateClassName">id</string>
               </object>
               <object class="IBToOneOutletInfo">
-                <string key="name">o_eraselogo_ckb</string>
+                <string key="name">o_crop_right_lbl</string>
                 <string key="candidateClassName">id</string>
               </object>
               <object class="IBToOneOutletInfo">
-                <string key="name">o_eraselogo_left_fld</string>
+                <string key="name">o_crop_right_stp</string>
                 <string key="candidateClassName">id</string>
               </object>
               <object class="IBToOneOutletInfo">
-                <string key="name">o_eraselogo_left_lbl</string>
+                <string key="name">o_crop_sync_left_right_ckb</string>
                 <string key="candidateClassName">id</string>
               </object>
               <object class="IBToOneOutletInfo">
-                <string key="name">o_eraselogo_mask_fld</string>
+                <string key="name">o_crop_sync_top_bottom_ckb</string>
                 <string key="candidateClassName">id</string>
               </object>
               <object class="IBToOneOutletInfo">
-                <string key="name">o_eraselogo_mask_lbl</string>
+                <string key="name">o_crop_top_fld</string>
                 <string key="candidateClassName">id</string>
               </object>
               <object class="IBToOneOutletInfo">
-                <string key="name">o_eraselogo_top_fld</string>
+                <string key="name">o_crop_top_lbl</string>
                 <string key="candidateClassName">id</string>
               </object>
               <object class="IBToOneOutletInfo">
-                <string key="name">o_eraselogo_top_lbl</string>
+                <string key="name">o_crop_top_stp</string>
                 <string key="candidateClassName">id</string>
               </object>
               <object class="IBToOneOutletInfo">
index bfb9df9c5fb46b17c3dc85970c8a64695a90962b..5d425af67f174c34d39c81a43d38a1a964dd3e39 100644 (file)
     /* crop */
     IBOutlet id o_crop_top_lbl;
     IBOutlet id o_crop_top_fld;
+    IBOutlet id o_crop_top_stp;
     IBOutlet id o_crop_left_lbl;
     IBOutlet id o_crop_left_fld;
+    IBOutlet id o_crop_left_stp;
     IBOutlet id o_crop_right_lbl;
     IBOutlet id o_crop_right_fld;
+    IBOutlet id o_crop_right_stp;
     IBOutlet id o_crop_bottom_lbl;
     IBOutlet id o_crop_bottom_fld;
+    IBOutlet id o_crop_bottom_stp;
     IBOutlet id o_crop_sync_top_bottom_ckb;
     IBOutlet id o_crop_sync_left_right_ckb;
 
index 357f59517debb51b12d77c9ac21fffa4f998dbd3..a2eb708ef86157d6cb928316eddf0cf7dfd3439b 100644 (file)
@@ -564,12 +564,44 @@ static VLCVideoEffects *_o_sharedInstance = nil;
 
 #pragma mark -
 #pragma mark crop
+
+#define updateopposite( giver, taker ) \
+    if (sender == giver) \
+        [taker setIntValue: [giver intValue]]
+
 - (IBAction)cropObjectChanged:(id)sender
 {
-    if( [o_crop_sync_top_bottom_ckb state] )
-        [o_crop_bottom_fld setIntValue: [o_crop_top_fld intValue]];
-    if( [o_crop_sync_left_right_ckb state] )
-        [o_crop_right_fld setIntValue: [o_crop_left_fld intValue]];
+    updateopposite( o_crop_top_fld, o_crop_top_stp );
+    updateopposite( o_crop_top_stp, o_crop_top_fld );
+    updateopposite( o_crop_left_fld, o_crop_left_stp );
+    updateopposite( o_crop_left_stp, o_crop_left_fld );
+    updateopposite( o_crop_right_fld, o_crop_right_stp );
+    updateopposite( o_crop_right_stp, o_crop_right_fld );
+    updateopposite( o_crop_bottom_fld, o_crop_bottom_stp );
+    updateopposite( o_crop_bottom_stp, o_crop_bottom_fld );
+
+    if( [o_crop_sync_top_bottom_ckb state] ) {
+        if (sender == o_crop_top_fld || sender == o_crop_top_stp ) {
+            [o_crop_bottom_fld setIntValue: [o_crop_top_fld intValue]];
+            [o_crop_bottom_stp setIntValue: [o_crop_top_fld intValue]];
+        }
+        else
+        {
+            [o_crop_top_fld setIntValue: [o_crop_bottom_fld intValue]];
+            [o_crop_top_stp setIntValue: [o_crop_bottom_fld intValue]];
+        }
+    }
+    if( [o_crop_sync_left_right_ckb state] ) {
+        if (sender == o_crop_left_fld || sender == o_crop_left_stp ) {
+            [o_crop_right_fld setIntValue: [o_crop_left_fld intValue]];
+            [o_crop_right_stp setIntValue: [o_crop_left_fld intValue]];
+        }
+        else
+        {
+            [o_crop_left_fld setIntValue: [o_crop_right_fld intValue]];
+            [o_crop_left_stp setIntValue: [o_crop_right_fld intValue]];
+        }
+    }
 
     vout_thread_t *p_vout = getVout();
     if( p_vout ) {
@@ -581,6 +613,8 @@ static VLCVideoEffects *_o_sharedInstance = nil;
     }
 }
 
+#undef updateopposite
+
 #pragma mark -
 #pragma mark geometry
 - (IBAction)enableTransform:(id)sender