OSDN Git Service

MacGui: Use validateMenuItem to autovalidate menu items. Plus small gui alignments...
authorritsuka <ritsuka@b64f7644-9d1e-0410-96f1-a4d463321fa5>
Sat, 8 Sep 2007 19:17:23 +0000 (19:17 +0000)
committerritsuka <ritsuka@b64f7644-9d1e-0410-96f1-a4d463321fa5>
Sat, 8 Sep 2007 19:17:23 +0000 (19:17 +0000)
git-svn-id: svn://localhost/HandBrake/trunk@937 b64f7644-9d1e-0410-96f1-a4d463321fa5

macosx/Controller.h
macosx/Controller.mm
macosx/English.lproj/MainMenu.nib/classes.nib
macosx/English.lproj/MainMenu.nib/info.nib
macosx/English.lproj/MainMenu.nib/keyedobjects.nib
macosx/HandBrake.xcodeproj/project.pbxproj

index 704d064..f9a1194 100644 (file)
     /* Output panel */
     HBOutputPanelController       *outputPanel;
        
-       /* Menu Items */
-       /* File Menu */
-       IBOutlet NSMenu * fMenuBarFileMenu;
-       IBOutlet NSMenuItem * fMenuOpenSource;
-       IBOutlet NSMenuItem * fMenuAddToQueue;
-       IBOutlet NSMenuItem * fMenuStartEncode;
-       IBOutlet NSMenuItem * fMenuPauseEncode;
-       /* Window Menu */
-       IBOutlet NSMenu * fMenuBarWindowMenu;
-       IBOutlet NSMenuItem * fMenuPresetsDrawerToggle;
-       IBOutlet NSMenuItem * fMenuQueuePanelShow;
-       IBOutlet NSMenuItem * fMenuPicturePanelShow;
-       IBOutlet NSMenuItem * fMenuActivityWindowShow;
-       
     /* Source box */
        IBOutlet NSProgressIndicator * fScanIndicator;
        NSString                     * sourceDisplayName;
        
        IBOutlet NSDrawer            * fPresetDrawer;
        IBOutlet NSTextField         * fPresetNewName;
-       IBOutlet NSTextField         * fPresetNewDesc;
+       IBOutlet NSTextField          * fPresetNewDesc;
        IBOutlet NSPopUpButton       * fPresetNewPicSettingsPopUp;
        IBOutlet NSTextField         * fPresetSelectedDisplay;
        
index 47b46dc..9e06c49 100644 (file)
@@ -165,14 +165,7 @@ static int hb_group_count(hb_handle_t * h)
     [fWindow center];
     [fWindow setExcludedFromWindowsMenu:YES];
     [fAdvancedOptions setView:fAdvancedView];
-       /* set the main menu bar so it doesnt auto enable the menu items
-          so we can manually do it with setEnabled: This should be changed
-          to use validateUserInterfaceItem: along with setAutoEnablesItems: YES
-          in the next release */
-       [fMenuBarFileMenu setAutoenablesItems: NO];
-    [fMenuBarWindowMenu setAutoenablesItems: NO];
-       [fMenuPauseEncode setEnabled: NO];
-       [self TranslateStrings];
+
     /* Initialize currentScanCount so HB can use it to
                evaluate successive scans */
        currentScanCount = 0;
@@ -519,6 +512,63 @@ static int hb_group_count(hb_handle_t * h)
     return NO;
 }
 
+- (BOOL) validateMenuItem: (NSMenuItem *) menuItem
+{
+    SEL action = [menuItem action];
+    
+    hb_state_t s;
+    hb_get_state2( fHandle, &s );
+    
+    if (fHandle)
+    {
+
+        if (action == @selector(addToQueue:) || action == @selector(showPicturePanel:))
+            return SuccessfulScan;
+            
+        if (action == @selector(showScanPanel:))
+        {
+            if (s.state == HB_STATE_SCANNING)
+                return NO;
+        }
+        if (action == @selector(Pause:))
+        {
+            if (s.state == HB_STATE_WORKING)
+            {
+                if(![[menuItem title] isEqualToString:@"Pause Encoding"])
+                    [menuItem setTitle:@"Pause Encoding"];
+                return YES;
+            }
+            else if (s.state == HB_STATE_PAUSED)
+            {
+                if(![[menuItem title] isEqualToString:@"Resume Encoding"])
+                    [menuItem setTitle:@"Resume Encoding"];
+                return YES;
+            }
+            else
+                return NO;
+        }
+        if (action == @selector(Rip:))
+            if (s.state == HB_STATE_WORKING || s.state == HB_STATE_MUXING || s.state == HB_STATE_PAUSED)
+            {
+                if(![[menuItem title] isEqualToString:@"Stop Encoding"])
+                    [menuItem setTitle:@"Stop Encoding"];
+                return YES;
+            }
+            else if (SuccessfulScan)
+            {
+                if(![[menuItem title] isEqualToString:@"Start Encoding"])
+                    [menuItem setTitle:@"Start Encoding"];
+                return YES;
+            }
+            else
+                return NO;
+        }
+
+    
+    return YES;
+}
+
+
 // register a test notification and make
 // it enabled by default
 #define SERVICE_NAME @"Encode Done"
@@ -731,10 +781,6 @@ list = hb_get_titles( fHandle );
             /* Update dock icon */
             [self UpdateDockIcon: progress_total];
                        
-                       /* Main Menu controls */
-                       [fMenuPauseEncode setTitle: @"Pause Encode"];
-                       [fMenuStartEncode setTitle: @"Cancel Encode"];
-
             // Has current job changed? That means the queue has probably changed as
                        // well so update it
             if (fLastKnownCurrentJob != hb_current_job(fHandle))
@@ -775,8 +821,6 @@ list = hb_get_titles( fHandle );
         case HB_STATE_PAUSED:
                    [fStatusField setStringValue: _( @"Paused" )];
             
-                       [fMenuPauseEncode setTitle: @"Resume Encode"];
-
                        // Pass along the info to HBQueueController
             [fQueueController updateCurrentJobUI];
 
@@ -788,11 +832,7 @@ list = hb_get_titles( fHandle );
             [fRipIndicator setIndeterminate: NO];
             [fRipIndicator setDoubleValue: 0.0];
             [toolbar validateVisibleItems];
-            
-                       /* Main Menu Controls*/
-                       [fMenuPauseEncode setTitle: @"Pause Encode"];
-                       [fMenuPauseEncode setEnabled: NO];
-                       [fMenuStartEncode setTitle: @"Start Encode"];
+
             /* Restore dock icon */
             [self UpdateDockIcon: -1.0];
 
@@ -930,7 +970,6 @@ list = hb_get_titles( fHandle );
        {
                /* We display a message if a valid dvd source was not chosen */
                [fSrcDVD2Field setStringValue: @"No Valid Title Found"];
-        [fMenuOpenSource setEnabled: YES];
         SuccessfulScan = 0;
        }
        else
@@ -944,12 +983,7 @@ list = hb_get_titles( fHandle );
         currentSuccessfulScanCount++;
 
                [self enableUI: YES];
-               /* Enable/Disable Menu Controls Accordingly */
-               [fMenuOpenSource setEnabled: YES];
-               [fMenuStartEncode setEnabled: YES];
-               [fMenuAddToQueue setEnabled: YES];
-               [fMenuPicturePanelShow setEnabled: YES];
-               [fMenuQueuePanelShow setEnabled: YES];
+
         [toolbar validateVisibleItems];
                
                [fSrcTitlePopUp removeAllItems];
@@ -1132,13 +1166,6 @@ list = hb_get_titles( fHandle );
 
 - (IBAction) showScanPanel: (id) sender
 {
-    /* Enable/Disable Menu Controls Accordingly */
-       [fMenuOpenSource setEnabled: NO];
-       [fMenuStartEncode setEnabled: NO];
-       [fMenuAddToQueue setEnabled: NO];
-       
-       [fMenuPicturePanelShow setEnabled: NO];
-       [fMenuQueuePanelShow setEnabled: NO];
     [self enableUI: NO];
        
        [self browseSources:NULL];
@@ -1196,17 +1223,10 @@ list = hb_get_titles( fHandle );
        }
        else // User clicked Cancel in browse window
        {
-               /* use the outlets to the main menu bar to determine what to
-                  enable and disable */
-               [fMenuOpenSource setEnabled: YES];
-        [fMenuQueuePanelShow setEnabled: YES];
                /* if we have a title loaded up */
                if ([[fSrcDVD2Field stringValue] length] > 0)
                {
-               [fMenuAddToQueue setEnabled: YES];
-               [fMenuStartEncode setEnabled: YES];
-               [fMenuPicturePanelShow setEnabled: YES];
-        [self enableUI: YES];
+            [self enableUI: YES];
         }
        }
 }
@@ -1303,27 +1323,12 @@ list = hb_get_titles( fHandle );
 
 - (IBAction) showPicturePanel: (id) sender
 {
-    /* Enable/Disable Menu Controls Accordingly */
-       [fMenuOpenSource setEnabled: NO];
-       [fMenuStartEncode setEnabled: NO];
-       [fMenuAddToQueue setEnabled: NO];
-       
-       [fMenuPicturePanelShow setEnabled: NO];
-       [fMenuQueuePanelShow setEnabled: NO];
-       
        hb_list_t  * list  = hb_get_titles( fHandle );
     hb_title_t * title = (hb_title_t *) hb_list_item( list,
             [fSrcTitlePopUp indexOfSelectedItem] );
     
     [fPictureController showPanelInWindow:fWindow forTitle:title];
-
-       [fMenuOpenSource setEnabled: YES];
-       [fMenuStartEncode setEnabled: YES];
-       [fMenuAddToQueue setEnabled: YES];
-       
-       [fMenuPicturePanelShow setEnabled: YES];
-       [fMenuQueuePanelShow setEnabled: YES];
-       
+    
        [self calculatePictureSizing: sender];
 }
 
@@ -1724,8 +1729,6 @@ list = hb_get_titles( fHandle );
     hb_start( fHandle );
        /*set the fEncodeState State */
        fEncodeState = 1;
-
-       [fMenuPauseEncode setEnabled: YES];
 }
 
 - (IBAction) Cancel: (id) sender
@@ -2766,9 +2769,8 @@ the user is using "Custom" settings by determining the sender*/
     [NSApp runModalForWindow: fAddPresetPanel];
     [NSApp endSheet: fAddPresetPanel];
     [fAddPresetPanel orderOut: self];
-       
-       
 }
+
 - (IBAction) closeAddPresetPanel: (id) sender
 {
        [NSApp stopModal];
@@ -2777,17 +2779,12 @@ the user is using "Custom" settings by determining the sender*/
 
 - (IBAction)addUserPreset:(id)sender
 {
-
     /* Here we create a custom user preset */
-       [UserPresets addObject:[self createPreset]];
-       /* Erase info from the input fields */
-       [fPresetNewName setStringValue: @""];
-       [fPresetNewDesc setStringValue: @""];
+    [UserPresets addObject:[self createPreset]];
+    
        /* We stop the modal window for the new preset */
        [NSApp stopModal];
     [self addPreset];
-       
-
 }
 - (void)addPreset
 {
@@ -4390,12 +4387,12 @@ show the built in presets in a blue font. */
      /* if there is a description for the preset, we show it in the tooltip */
         if ([[UserPresets objectAtIndex:rowIndex] valueForKey:@"PresetDescription"])
         {
-        loc_tip = [NSString stringWithFormat: @"%@",[[UserPresets objectAtIndex:rowIndex] valueForKey:@"PresetDescription"]];
-        return (loc_tip);
+        loc_tip = [NSString stringWithFormat: @"%@",[[UserPresets objectAtIndex:rowIndex] valueForKey:@"PresetDescription"]];
+        return (loc_tip);
         }
         else
         {
-        loc_tip = @"No description available";
+        loc_tip = @"No description available";
         }
         return (loc_tip);
 
index e98d9bf..4e2cb1f 100644 (file)
                 fDstFormatField = NSTextField; 
                 fDstFormatPopUp = NSPopUpButton; 
                 fDstMpgLargeFileCheck = NSButton; 
-                fMenuActivityWindowShow = NSMenuItem; 
-                fMenuAddToQueue = NSMenuItem; 
-                fMenuBarFileMenu = NSMenu; 
-                fMenuBarWindowMenu = NSMenu; 
-                fMenuOpenSource = NSMenuItem; 
-                fMenuPauseEncode = NSMenuItem; 
-                fMenuPicturePanelShow = NSMenuItem; 
-                fMenuPresetsDrawerToggle = NSMenuItem; 
-                fMenuQueuePanelShow = NSMenuItem; 
-                fMenuStartEncode = NSMenuItem; 
                 fPicLabelAnamorphic = NSTextField; 
                 fPicLabelAr = NSTextField; 
                 fPicLabelAutoCrop = NSTextField; 
index 11b94a4..5d95713 100644 (file)
@@ -11,7 +11,7 @@
                <key>2436</key>
                <string>307 361 192 68 0 0 1440 878 </string>
                <key>29</key>
-               <string>578 372 368 44 0 0 1440 878 </string>
+               <string>233 476 368 44 0 0 1440 878 </string>
        </dict>
        <key>IBFramework Version</key>
        <string>446.1</string>
@@ -27,9 +27,9 @@
        <integer>4</integer>
        <key>IBOpenObjects</key>
        <array>
-               <integer>1867</integer>
-               <integer>1843</integer>
                <integer>21</integer>
+               <integer>1867</integer>
+               <integer>29</integer>
        </array>
        <key>IBSystem Version</key>
        <string>8R2218</string>
index f1b543d..98d68b7 100644 (file)
Binary files a/macosx/English.lproj/MainMenu.nib/keyedobjects.nib and b/macosx/English.lproj/MainMenu.nib/keyedobjects.nib differ
index 96161b2..448a4c3 100644 (file)
                                25DE1FB50C169A0C00F01FC8 /* HBPreferencesController.m */,
                                E37C89460C83989F00C1B919 /* HBQueueController.h */,
                                E37C89450C83989F00C1B919 /* HBQueueController.mm */,
-                               A9AC41DD0C918DB500DDF9B8 /* HBAdvancedController.m */,
                                A9AC41DE0C918DB500DDF9B8 /* HBAdvancedController.h */,
+                               A9AC41DD0C918DB500DDF9B8 /* HBAdvancedController.m */,
                        );
                        name = "HandBrake Sources";
                        sourceTree = "<group>";