summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
authorerg@chromium.org <erg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-09-23 22:28:23 +0000
committererg@chromium.org <erg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-09-23 22:28:23 +0000
commitfc34932cf30bd2f0e4f70c24d82fc9c2af9dcd7e (patch)
tree40cbd59b40ecdcc8eff943540dbef27b72ead0c2 /chrome
parent24c38a10af63ed1e300ffe7546ef766cb7539fe3 (diff)
downloadchromium_src-fc34932cf30bd2f0e4f70c24d82fc9c2af9dcd7e.zip
chromium_src-fc34932cf30bd2f0e4f70c24d82fc9c2af9dcd7e.tar.gz
chromium_src-fc34932cf30bd2f0e4f70c24d82fc9c2af9dcd7e.tar.bz2
Mac: Hook up the page menu's "Encoding" submenu.
Hook the NSMenu's delegate up to the ToolbarController in the nib and generalize EncodingMenuControllerDelegate to work with a NSMenu object instead of grabbing the app menu. BUG=22639 TEST=ToolbarControllerTest.PopulateEncodingMenu Review URL: http://codereview.chromium.org/225016 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@27008 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r--chrome/app/nibs/Toolbar.xib59
-rw-r--r--chrome/browser/app_controller_mac.mm6
-rw-r--r--chrome/browser/cocoa/encoding_menu_controller_delegate_mac.h3
-rw-r--r--chrome/browser/cocoa/encoding_menu_controller_delegate_mac.mm8
-rw-r--r--chrome/browser/cocoa/toolbar_controller.h1
-rw-r--r--chrome/browser/cocoa/toolbar_controller.mm5
-rw-r--r--chrome/browser/cocoa/toolbar_controller_unittest.mm10
7 files changed, 54 insertions, 38 deletions
diff --git a/chrome/app/nibs/Toolbar.xib b/chrome/app/nibs/Toolbar.xib
index 93d1f82..4e7cca6 100644
--- a/chrome/app/nibs/Toolbar.xib
+++ b/chrome/app/nibs/Toolbar.xib
@@ -2,15 +2,15 @@
<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.03">
<data>
<int key="IBDocument.SystemTarget">1050</int>
- <string key="IBDocument.SystemVersion">9L30</string>
+ <string key="IBDocument.SystemVersion">9L31a</string>
<string key="IBDocument.InterfaceBuilderVersion">677</string>
- <string key="IBDocument.AppKitVersion">949.34</string>
- <string key="IBDocument.HIToolboxVersion">352.00</string>
+ <string key="IBDocument.AppKitVersion">949.54</string>
+ <string key="IBDocument.HIToolboxVersion">353.00</string>
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
<bool key="EncodedWithXMLCoder">YES</bool>
- <integer value="48"/>
<integer value="1"/>
- <integer value="42"/>
+ <integer value="67"/>
+ <integer value="48"/>
</object>
<object class="NSArray" key="IBDocument.PluginDependencies">
<bool key="EncodedWithXMLCoder">YES</bool>
@@ -458,14 +458,6 @@
<string key="NSTitle">^IDS_ENCODING_MENU</string>
<object class="NSMutableArray" key="NSMenuItems">
<bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSMenuItem" id="1047175866">
- <reference key="NSMenu" ref="1054137046"/>
- <string key="NSTitle">Item</string>
- <string key="NSKeyEquiv"/>
- <int key="NSMnemonicLoc">2147483647</int>
- <reference key="NSOnImage" ref="610745052"/>
- <reference key="NSMixedImage" ref="1070349142"/>
- </object>
</object>
</object>
</object>
@@ -1033,6 +1025,14 @@
</object>
<int key="connectionID">126</int>
</object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">encodingMenu_</string>
+ <reference key="source" ref="1001"/>
+ <reference key="destination" ref="1054137046"/>
+ </object>
+ <int key="connectionID">134</int>
+ </object>
</object>
<object class="IBMutableOrderedSet" key="objectRecords">
<object class="NSArray" key="orderedObjects">
@@ -1386,16 +1386,10 @@
<reference key="object" ref="1054137046"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
- <reference ref="1047175866"/>
</object>
<reference key="parent" ref="275495410"/>
</object>
<object class="IBObjectRecord">
- <int key="objectID">68</int>
- <reference key="object" ref="1047175866"/>
- <reference key="parent" ref="1054137046"/>
- </object>
- <object class="IBObjectRecord">
<int key="objectID">69</int>
<reference key="object" ref="966232471"/>
<reference key="parent" ref="1035953805"/>
@@ -1571,7 +1565,6 @@
<string>66.IBPluginDependency</string>
<string>67.IBEditorWindowLastContentRect</string>
<string>67.IBPluginDependency</string>
- <string>68.IBPluginDependency</string>
<string>69.IBPluginDependency</string>
<string>7.CustomClassName</string>
<string>7.IBAttributePlaceholdersKey</string>
@@ -1678,8 +1671,7 @@
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <string>{{413, 523}, {306, 233}}</string>
- <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>{{362, 523}, {306, 233}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
@@ -1692,17 +1684,17 @@
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <string>{{904, 813}, {202, 63}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>{{404, 503}, {202, 63}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <string>{{904, 573}, {204, 63}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>{{404, 453}, {204, 63}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <string>{{904, 833}, {86, 23}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>{{404, 540}, {64, 6}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>DelayedMenuButton</string>
@@ -1757,7 +1749,7 @@
</object>
</object>
<nil key="sourceID"/>
- <int key="maxID">133</int>
+ <int key="maxID">134</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
@@ -1770,14 +1762,12 @@
<object class="NSMutableArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>orderFrontStandardAboutPanel:</string>
- <string>quit:</string>
<string>showPreferences:</string>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>id</string>
<string>id</string>
- <string>id</string>
</object>
</object>
<object class="NSMutableDictionary" key="outlets">
@@ -1920,6 +1910,13 @@
</object>
</object>
<object class="IBPartialClassDescription">
+ <string key="className">NSWindow</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">browser/cocoa/nswindow_local_state.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
<string key="className">PreferencesWindowController</string>
<string key="superclassName">NSWindowController</string>
<object class="NSMutableDictionary" key="actions">
@@ -1930,7 +1927,9 @@
<string>clearData:</string>
<string>importData:</string>
<string>makeDefaultBrowser:</string>
+ <string>manageSearchEngines:</string>
<string>removeSelectedHomepages:</string>
+ <string>resetThemeToDefault:</string>
<string>showPreferences:</string>
<string>showSavedPasswords:</string>
<string>themesGallery:</string>
@@ -1947,6 +1946,8 @@
<string>id</string>
<string>id</string>
<string>id</string>
+ <string>id</string>
+ <string>id</string>
</object>
</object>
<object class="NSMutableDictionary" key="outlets">
@@ -2036,6 +2037,7 @@
<bool key="EncodedWithXMLCoder">YES</bool>
<string>backButton_</string>
<string>bookmarkBarDelegate_</string>
+ <string>encodingMenu_</string>
<string>forwardButton_</string>
<string>goButton_</string>
<string>homeButton_</string>
@@ -2050,6 +2052,7 @@
<bool key="EncodedWithXMLCoder">YES</bool>
<string>DelayedMenuButton</string>
<string>id</string>
+ <string>NSMenu</string>
<string>DelayedMenuButton</string>
<string>NSButton</string>
<string>NSButton</string>
diff --git a/chrome/browser/app_controller_mac.mm b/chrome/browser/app_controller_mac.mm
index d8885d0..f2d1b2a 100644
--- a/chrome/browser/app_controller_mac.mm
+++ b/chrome/browser/app_controller_mac.mm
@@ -338,7 +338,11 @@
// current locale (see http://crbug.com/7647 for details).
// We need a valid g_browser_process to get the profile which is why we can't
// call this from awakeFromNib.
- EncodingMenuControllerDelegate::BuildEncodingMenu([self defaultProfile]);
+ NSMenu* view_menu = [[[NSApp mainMenu] itemWithTag:IDC_VIEW_MENU] submenu];
+ NSMenuItem* encoding_menu_item = [view_menu itemWithTag:IDC_ENCODING_MENU];
+ NSMenu *encoding_menu = [encoding_menu_item submenu];
+ EncodingMenuControllerDelegate::BuildEncodingMenu([self defaultProfile],
+ encoding_menu);
// Now that we're initialized we can open any URLs we've been holding onto.
[self openPendingURLs];
diff --git a/chrome/browser/cocoa/encoding_menu_controller_delegate_mac.h b/chrome/browser/cocoa/encoding_menu_controller_delegate_mac.h
index a23b1aa..882d54c 100644
--- a/chrome/browser/cocoa/encoding_menu_controller_delegate_mac.h
+++ b/chrome/browser/cocoa/encoding_menu_controller_delegate_mac.h
@@ -7,6 +7,7 @@
#include "base/basictypes.h" // For DISALLOW_IMPLICIT_CONSTRUCTORS
+@class NSMenu;
class Profile;
// The Windows version of this class manages the Encoding Menu, but since Cocoa
@@ -14,7 +15,7 @@ class Profile;
// the encoding menu.
class EncodingMenuControllerDelegate {
public:
- static void BuildEncodingMenu(Profile *profile);
+ static void BuildEncodingMenu(Profile *profile, NSMenu* encoding_menu);
private:
DISALLOW_IMPLICIT_CONSTRUCTORS(EncodingMenuControllerDelegate);
};
diff --git a/chrome/browser/cocoa/encoding_menu_controller_delegate_mac.mm b/chrome/browser/cocoa/encoding_menu_controller_delegate_mac.mm
index 92e576e..f20e157 100644
--- a/chrome/browser/cocoa/encoding_menu_controller_delegate_mac.mm
+++ b/chrome/browser/cocoa/encoding_menu_controller_delegate_mac.mm
@@ -33,14 +33,10 @@ void AppendMenuItem(NSMenu *parent_menu, int tag, NSString *title) {
} // namespace
// static
-void EncodingMenuControllerDelegate::BuildEncodingMenu(Profile *profile) {
+void EncodingMenuControllerDelegate::BuildEncodingMenu(Profile *profile,
+ NSMenu* encoding_menu) {
DCHECK(profile);
- // Get hold of the Cocoa encoding menu.
- NSMenu* view_menu = [[[NSApp mainMenu] itemWithTag:IDC_VIEW_MENU] submenu];
- NSMenuItem* encoding_menu_item = [view_menu itemWithTag:IDC_ENCODING_MENU];
- NSMenu *encoding_menu = [encoding_menu_item submenu];
-
typedef EncodingMenuController::EncodingMenuItemList EncodingMenuItemList;
EncodingMenuItemList menuItems;
EncodingMenuController controller;
diff --git a/chrome/browser/cocoa/toolbar_controller.h b/chrome/browser/cocoa/toolbar_controller.h
index f61822f..71467433 100644
--- a/chrome/browser/cocoa/toolbar_controller.h
+++ b/chrome/browser/cocoa/toolbar_controller.h
@@ -88,6 +88,7 @@ class ToolbarView;
IBOutlet MenuButton* pageButton_;
IBOutlet MenuButton* wrenchButton_;
IBOutlet AutocompleteTextField* locationBar_;
+ IBOutlet NSMenu* encodingMenu_;
}
// Initialize the toolbar and register for command updates. The profile is
diff --git a/chrome/browser/cocoa/toolbar_controller.mm b/chrome/browser/cocoa/toolbar_controller.mm
index 65350f7..579c5da 100644
--- a/chrome/browser/cocoa/toolbar_controller.mm
+++ b/chrome/browser/cocoa/toolbar_controller.mm
@@ -14,6 +14,7 @@
#import "chrome/browser/cocoa/autocomplete_text_field.h"
#import "chrome/browser/cocoa/autocomplete_text_field_editor.h"
#import "chrome/browser/cocoa/back_forward_menu_controller.h"
+#import "chrome/browser/cocoa/encoding_menu_controller_delegate_mac.h"
#import "chrome/browser/cocoa/gradient_button_cell.h"
#import "chrome/browser/cocoa/location_bar_view_mac.h"
#import "chrome/browser/cocoa/menu_button.h"
@@ -195,6 +196,8 @@ class PrefObserverBridge : public NotificationObserver {
// We want a dynamic tooltip on the go button, so tell the go button to ask
// use for the tooltip
[goButton_ addToolTipRect:[goButton_ bounds] owner:self userData:nil];
+
+ EncodingMenuControllerDelegate::BuildEncodingMenu(profile_, encodingMenu_);
}
- (void)removeFromSuperview {
NSLog(@"remove");
@@ -378,7 +381,7 @@ class PrefObserverBridge : public NotificationObserver {
- (NSArray*)toolbarViews {
return [NSArray arrayWithObjects:backButton_, forwardButton_, reloadButton_,
homeButton_, starButton_, goButton_, pageButton_, wrenchButton_,
- locationBar_, nil];
+ locationBar_, encodingMenu_, nil];
}
// Moves |rect| to the right by |delta|, keeping the right side fixed by
diff --git a/chrome/browser/cocoa/toolbar_controller_unittest.mm b/chrome/browser/cocoa/toolbar_controller_unittest.mm
index 9ba3236..fbcb0af 100644
--- a/chrome/browser/cocoa/toolbar_controller_unittest.mm
+++ b/chrome/browser/cocoa/toolbar_controller_unittest.mm
@@ -44,7 +44,7 @@ class ToolbarControllerTest : public PlatformTest {
// |-toolbarViews| method.
enum {
kBackIndex, kForwardIndex, kReloadIndex, kHomeIndex, kStarIndex, kGoIndex,
- kPageIndex, kWrenchIndex, kLocationIndex,
+ kPageIndex, kWrenchIndex, kLocationIndex, kEncodingMenuIndex
};
ToolbarControllerTest() {
@@ -320,5 +320,13 @@ TEST_F(ToolbarControllerTest, HoverButtonForEvent) {
EXPECT_TRUE([bar_ hoverButtonForEvent:nil]);
}
+TEST_F(ToolbarControllerTest, PopulateEncodingMenu) {
+ NSMenu* encodings = [[bar_ toolbarViews] objectAtIndex:kEncodingMenuIndex];
+
+ // Can't check item strings because of localization, but the nib has zero
+ // items so check that we at least populated the menu with something at
+ // startup.
+ EXPECT_NE(0, [encodings numberOfItems]);
+}
} // namespace