diff options
author | asvitkine@chromium.org <asvitkine@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-03-08 23:11:10 +0000 |
---|---|---|
committer | asvitkine@chromium.org <asvitkine@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-03-08 23:11:10 +0000 |
commit | f954d5915b3a2c506816a5c02c029956cd5dff8f (patch) | |
tree | 522aee7e74cafde4ea6f62f58a3b6d6656284989 | |
parent | a5dc5e09becb1e76a3578945d5c3c4bb02ecd3c0 (diff) | |
download | chromium_src-f954d5915b3a2c506816a5c02c029956cd5dff8f.zip chromium_src-f954d5915b3a2c506816a5c02c029956cd5dff8f.tar.gz chromium_src-f954d5915b3a2c506816a5c02c029956cd5dff8f.tar.bz2 |
Mac: Use cross-platform BMB context menu model.
XIB Changes: Deleted the BMB context menu entries in BookmarkBar.xib and BookmarkBarFolderWindow.xib.
BUG=181034
TEST=BMB context menus behave exactly as before.
TBR=sky
Review URL: https://chromiumcodereview.appspot.com/12389060
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@187069 0039d316-1c4b-4281-b951-d872f2087c98
27 files changed, 318 insertions, 2569 deletions
diff --git a/chrome/app/nibs/BookmarkBar.xib b/chrome/app/nibs/BookmarkBar.xib index 81d4ea6..ddec5ed 100644 --- a/chrome/app/nibs/BookmarkBar.xib +++ b/chrome/app/nibs/BookmarkBar.xib @@ -2,13 +2,13 @@ <archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.10"> <data> <int key="IBDocument.SystemTarget">1050</int> - <string key="IBDocument.SystemVersion">12B19</string> - <string key="IBDocument.InterfaceBuilderVersion">2549</string> - <string key="IBDocument.AppKitVersion">1187</string> - <string key="IBDocument.HIToolboxVersion">624.00</string> + <string key="IBDocument.SystemVersion">12C60</string> + <string key="IBDocument.InterfaceBuilderVersion">2844</string> + <string key="IBDocument.AppKitVersion">1187.34</string> + <string key="IBDocument.HIToolboxVersion">625.00</string> <object class="NSMutableDictionary" key="IBDocument.PluginVersions"> <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string> - <string key="NS.object.0">2549</string> + <string key="NS.object.0">2844</string> </object> <object class="NSArray" key="IBDocument.IntegratedClassDependencies"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -16,8 +16,6 @@ <string>NSButtonCell</string> <string>NSCustomObject</string> <string>NSCustomView</string> - <string>NSMenu</string> - <string>NSMenuItem</string> <string>NSTextField</string> <string>NSTextFieldCell</string> </object> @@ -61,6 +59,7 @@ <string key="NSFrame">{{5, 20}, {167, 14}}</string> <reference key="NSSuperview" ref="1023728927"/> <reference key="NSWindow"/> + <reference key="NSNextKeyView" ref="1020224577"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="458754719"> <int key="NSCellFlags">603979840</int> @@ -99,6 +98,7 @@ <string key="NSFrame">{{177, 20}, {199, 14}}</string> <reference key="NSSuperview" ref="1023728927"/> <reference key="NSWindow"/> + <reference key="NSNextKeyView" ref="1071220197"/> <bool key="NSEnabled">YES</bool> <object class="NSButtonCell" key="NSCell" id="976310023"> <int key="NSCellFlags">67108928</int> @@ -119,12 +119,14 @@ <string key="NSFrame">{{0, 103}, {596, 41}}</string> <reference key="NSSuperview" ref="610146462"/> <reference key="NSWindow"/> + <reference key="NSNextKeyView" ref="1013234954"/> <string key="NSClassName">GTMWidthBasedTweaker</string> </object> </object> <string key="NSFrame">{{0, -2}, {584, 144}}</string> <reference key="NSSuperview" ref="620641226"/> <reference key="NSWindow"/> + <reference key="NSNextKeyView" ref="1023728927"/> <string key="NSClassName">BookmarkBarView</string> </object> <object class="NSButton" id="1071220197"> @@ -133,6 +135,7 @@ <string key="NSFrame">{{586, 2}, {20, 24}}</string> <reference key="NSSuperview" ref="620641226"/> <reference key="NSWindow"/> + <reference key="NSNextKeyView"/> <bool key="NSEnabled">YES</bool> <object class="NSButtonCell" key="NSCell" id="1055451269"> <int key="NSCellFlags">67108864</int> @@ -152,322 +155,9 @@ <string key="NSFrameSize">{600, 142}</string> <reference key="NSSuperview"/> <reference key="NSWindow"/> + <reference key="NSNextKeyView" ref="610146462"/> <string key="NSClassName">BookmarkBarToolbarView</string> </object> - <object class="NSMenu" id="183701277"> - <string key="NSTitle"/> - <object class="NSMutableArray" key="NSMenuItems"> - <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSMenuItem" id="6422781"> - <reference key="NSMenu" ref="183701277"/> - <string key="NSTitle">^IDS_BOOKMARK_BAR_OPEN_ALL</string> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <object class="NSCustomResource" key="NSOnImage" id="214171346"> - <string key="NSClassName">NSImage</string> - <string key="NSResourceName">NSMenuCheckmark</string> - </object> - <object class="NSCustomResource" key="NSMixedImage" id="924902322"> - <string key="NSClassName">NSImage</string> - <string key="NSResourceName">NSMenuMixedState</string> - </object> - </object> - <object class="NSMenuItem" id="115646576"> - <reference key="NSMenu" ref="183701277"/> - <string key="NSTitle">^IDS_BOOKMARK_BAR_OPEN_ALL_NEW_WINDOW</string> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="214171346"/> - <reference key="NSMixedImage" ref="924902322"/> - </object> - <object class="NSMenuItem" id="509003741"> - <reference key="NSMenu" ref="183701277"/> - <string key="NSTitle">^IDS_BOOKMARK_BAR_OPEN_ALL_INCOGNITO</string> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="214171346"/> - <reference key="NSMixedImage" ref="924902322"/> - </object> - <object class="NSMenuItem" id="694014238"> - <reference key="NSMenu" ref="183701277"/> - <bool key="NSIsDisabled">YES</bool> - <bool key="NSIsSeparator">YES</bool> - <string key="NSTitle"/> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="214171346"/> - <reference key="NSMixedImage" ref="924902322"/> - </object> - <object class="NSMenuItem" id="112128065"> - <reference key="NSMenu" ref="183701277"/> - <string key="NSTitle">^IDS_BOOKMARK_BAR_RENAME_FOLDER</string> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="214171346"/> - <reference key="NSMixedImage" ref="924902322"/> - </object> - <object class="NSMenuItem" id="700089185"> - <reference key="NSMenu" ref="183701277"/> - <bool key="NSIsDisabled">YES</bool> - <bool key="NSIsSeparator">YES</bool> - <string key="NSTitle"/> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="214171346"/> - <reference key="NSMixedImage" ref="924902322"/> - </object> - <object class="NSMenuItem" id="684958721"> - <reference key="NSMenu" ref="183701277"/> - <string key="NSTitle">^IDS_CUT</string> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="214171346"/> - <reference key="NSMixedImage" ref="924902322"/> - </object> - <object class="NSMenuItem" id="420867961"> - <reference key="NSMenu" ref="183701277"/> - <string key="NSTitle">^IDS_COPY</string> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="214171346"/> - <reference key="NSMixedImage" ref="924902322"/> - </object> - <object class="NSMenuItem" id="458095162"> - <reference key="NSMenu" ref="183701277"/> - <string key="NSTitle">^IDS_PASTE</string> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="214171346"/> - <reference key="NSMixedImage" ref="924902322"/> - </object> - <object class="NSMenuItem" id="314564222"> - <reference key="NSMenu" ref="183701277"/> - <bool key="NSIsDisabled">YES</bool> - <bool key="NSIsSeparator">YES</bool> - <string key="NSTitle"/> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="214171346"/> - <reference key="NSMixedImage" ref="924902322"/> - </object> - <object class="NSMenuItem" id="168951506"> - <reference key="NSMenu" ref="183701277"/> - <string key="NSTitle">^IDS_BOOKMARK_BAR_REMOVE</string> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="214171346"/> - <reference key="NSMixedImage" ref="924902322"/> - </object> - <object class="NSMenuItem" id="1022383113"> - <reference key="NSMenu" ref="183701277"/> - <bool key="NSIsDisabled">YES</bool> - <bool key="NSIsSeparator">YES</bool> - <string key="NSTitle"/> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="214171346"/> - <reference key="NSMixedImage" ref="924902322"/> - </object> - <object class="NSMenuItem" id="926809071"> - <reference key="NSMenu" ref="183701277"/> - <string key="NSTitle">^IDS_BOOKMARK_BAR_ADD_NEW_BOOKMARK</string> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="214171346"/> - <reference key="NSMixedImage" ref="924902322"/> - </object> - <object class="NSMenuItem" id="90793013"> - <reference key="NSMenu" ref="183701277"/> - <string key="NSTitle">^IDS_BOOKMARK_BAR_NEW_FOLDER</string> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="214171346"/> - <reference key="NSMixedImage" ref="924902322"/> - </object> - <object class="NSMenuItem" id="149427359"> - <reference key="NSMenu" ref="183701277"/> - <bool key="NSIsDisabled">YES</bool> - <bool key="NSIsSeparator">YES</bool> - <string key="NSTitle"/> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="214171346"/> - <reference key="NSMixedImage" ref="924902322"/> - </object> - <object class="NSMenuItem" id="61770624"> - <reference key="NSMenu" ref="183701277"/> - <string key="NSTitle">^IDS_BOOKMARK_MANAGER</string> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="214171346"/> - <reference key="NSMixedImage" ref="924902322"/> - <int key="NSTag">40011</int> - </object> - <object class="NSMenuItem" id="23014313"> - <reference key="NSMenu" ref="183701277"/> - <string key="NSTitle">^IDS_SHOW_BOOKMARK_BAR</string> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="214171346"/> - <reference key="NSMixedImage" ref="924902322"/> - <int key="NSTag">40009</int> - </object> - </object> - </object> - <object class="NSMenu" id="672481054"> - <string key="NSTitle"/> - <object class="NSMutableArray" key="NSMenuItems"> - <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSMenuItem" id="1071747565"> - <reference key="NSMenu" ref="672481054"/> - <string key="NSTitle">^IDS_BOOKMARK_BAR_OPEN_IN_NEW_TAB</string> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="214171346"/> - <reference key="NSMixedImage" ref="924902322"/> - </object> - <object class="NSMenuItem" id="308357419"> - <reference key="NSMenu" ref="672481054"/> - <string key="NSTitle">^IDS_BOOKMARK_BAR_OPEN_IN_NEW_WINDOW</string> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="214171346"/> - <reference key="NSMixedImage" ref="924902322"/> - </object> - <object class="NSMenuItem" id="300791080"> - <reference key="NSMenu" ref="672481054"/> - <string key="NSTitle">^IDS_BOOKMARK_BAR_OPEN_INCOGNITO</string> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="214171346"/> - <reference key="NSMixedImage" ref="924902322"/> - </object> - <object class="NSMenuItem" id="878416689"> - <reference key="NSMenu" ref="672481054"/> - <bool key="NSIsDisabled">YES</bool> - <bool key="NSIsSeparator">YES</bool> - <string key="NSTitle"/> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="214171346"/> - <reference key="NSMixedImage" ref="924902322"/> - </object> - <object class="NSMenuItem" id="182996500"> - <reference key="NSMenu" ref="672481054"/> - <string key="NSTitle">^IDS_BOOKMARK_BAR_EDIT</string> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="214171346"/> - <reference key="NSMixedImage" ref="924902322"/> - </object> - <object class="NSMenuItem" id="245976149"> - <reference key="NSMenu" ref="672481054"/> - <bool key="NSIsDisabled">YES</bool> - <bool key="NSIsSeparator">YES</bool> - <string key="NSTitle"/> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="214171346"/> - <reference key="NSMixedImage" ref="924902322"/> - </object> - <object class="NSMenuItem" id="521559034"> - <reference key="NSMenu" ref="672481054"/> - <string key="NSTitle">^IDS_CUT</string> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="214171346"/> - <reference key="NSMixedImage" ref="924902322"/> - </object> - <object class="NSMenuItem" id="377013426"> - <reference key="NSMenu" ref="672481054"/> - <string key="NSTitle">^IDS_COPY</string> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="214171346"/> - <reference key="NSMixedImage" ref="924902322"/> - </object> - <object class="NSMenuItem" id="327742989"> - <reference key="NSMenu" ref="672481054"/> - <string key="NSTitle">^IDS_PASTE</string> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="214171346"/> - <reference key="NSMixedImage" ref="924902322"/> - </object> - <object class="NSMenuItem" id="458107851"> - <reference key="NSMenu" ref="672481054"/> - <bool key="NSIsDisabled">YES</bool> - <bool key="NSIsSeparator">YES</bool> - <string key="NSTitle"/> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="214171346"/> - <reference key="NSMixedImage" ref="924902322"/> - </object> - <object class="NSMenuItem" id="908072523"> - <reference key="NSMenu" ref="672481054"/> - <string key="NSTitle">^IDS_BOOKMARK_BAR_REMOVE</string> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="214171346"/> - <reference key="NSMixedImage" ref="924902322"/> - </object> - <object class="NSMenuItem" id="554011295"> - <reference key="NSMenu" ref="672481054"/> - <bool key="NSIsDisabled">YES</bool> - <bool key="NSIsSeparator">YES</bool> - <string key="NSTitle"/> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="214171346"/> - <reference key="NSMixedImage" ref="924902322"/> - </object> - <object class="NSMenuItem" id="527115352"> - <reference key="NSMenu" ref="672481054"/> - <string key="NSTitle">^IDS_BOOKMARK_BAR_ADD_NEW_BOOKMARK</string> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="214171346"/> - <reference key="NSMixedImage" ref="924902322"/> - </object> - <object class="NSMenuItem" id="595609715"> - <reference key="NSMenu" ref="672481054"/> - <string key="NSTitle">^IDS_BOOKMARK_BAR_NEW_FOLDER</string> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="214171346"/> - <reference key="NSMixedImage" ref="924902322"/> - </object> - <object class="NSMenuItem" id="422582534"> - <reference key="NSMenu" ref="672481054"/> - <bool key="NSIsDisabled">YES</bool> - <bool key="NSIsSeparator">YES</bool> - <string key="NSTitle"/> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="214171346"/> - <reference key="NSMixedImage" ref="924902322"/> - </object> - <object class="NSMenuItem" id="807677456"> - <reference key="NSMenu" ref="672481054"/> - <string key="NSTitle">^IDS_BOOKMARK_MANAGER</string> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="214171346"/> - <reference key="NSMixedImage" ref="924902322"/> - <int key="NSTag">40011</int> - </object> - <object class="NSMenuItem" id="515274494"> - <reference key="NSMenu" ref="672481054"/> - <string key="NSTitle">^IDS_SHOW_BOOKMARK_BAR</string> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="214171346"/> - <reference key="NSMixedImage" ref="924902322"/> - <int key="NSTag">40009</int> - </object> - </object> - </object> <object class="NSCustomObject" id="849863465"> <string key="NSClassName">ChromeUILocalizer</string> </object> @@ -480,78 +170,6 @@ <bool key="EncodedWithXMLCoder">YES</bool> <object class="IBConnectionRecord"> <object class="IBOutletConnection" key="connection"> - <string key="label">buttonContextMenu_</string> - <reference key="source" ref="1001"/> - <reference key="destination" ref="672481054"/> - </object> - <int key="connectionID">31</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBActionConnection" key="connection"> - <string key="label">openBookmarkInNewForegroundTab:</string> - <reference key="source" ref="1001"/> - <reference key="destination" ref="1071747565"/> - </object> - <int key="connectionID">52</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBActionConnection" key="connection"> - <string key="label">openBookmarkInNewWindow:</string> - <reference key="source" ref="1001"/> - <reference key="destination" ref="308357419"/> - </object> - <int key="connectionID">53</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBActionConnection" key="connection"> - <string key="label">openBookmarkInIncognitoWindow:</string> - <reference key="source" ref="1001"/> - <reference key="destination" ref="300791080"/> - </object> - <int key="connectionID">54</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBActionConnection" key="connection"> - <string key="label">deleteBookmark:</string> - <reference key="source" ref="1001"/> - <reference key="destination" ref="908072523"/> - </object> - <int key="connectionID">55</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBActionConnection" key="connection"> - <string key="label">editBookmark:</string> - <reference key="source" ref="1001"/> - <reference key="destination" ref="182996500"/> - </object> - <int key="connectionID">56</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBActionConnection" key="connection"> - <string key="label">openAllBookmarks:</string> - <reference key="source" ref="1001"/> - <reference key="destination" ref="6422781"/> - </object> - <int key="connectionID">57</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBActionConnection" key="connection"> - <string key="label">addPage:</string> - <reference key="source" ref="1001"/> - <reference key="destination" ref="527115352"/> - </object> - <int key="connectionID">58</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBActionConnection" key="connection"> - <string key="label">addPage:</string> - <reference key="source" ref="1001"/> - <reference key="destination" ref="926809071"/> - </object> - <int key="connectionID">59</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBOutletConnection" key="connection"> <string key="label">buttonView_</string> <reference key="source" ref="1001"/> <reference key="destination" ref="610146462"/> @@ -576,54 +194,6 @@ </object> <object class="IBConnectionRecord"> <object class="IBActionConnection" key="connection"> - <string key="label">addFolder:</string> - <reference key="source" ref="1001"/> - <reference key="destination" ref="595609715"/> - </object> - <int key="connectionID">96</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBActionConnection" key="connection"> - <string key="label">addFolder:</string> - <reference key="source" ref="1001"/> - <reference key="destination" ref="90793013"/> - </object> - <int key="connectionID">97</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBActionConnection" key="connection"> - <string key="label">openAllBookmarksNewWindow:</string> - <reference key="source" ref="1001"/> - <reference key="destination" ref="115646576"/> - </object> - <int key="connectionID">99</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBActionConnection" key="connection"> - <string key="label">openAllBookmarksIncognitoWindow:</string> - <reference key="source" ref="1001"/> - <reference key="destination" ref="509003741"/> - </object> - <int key="connectionID">100</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBActionConnection" key="connection"> - <string key="label">editBookmark:</string> - <reference key="source" ref="1001"/> - <reference key="destination" ref="112128065"/> - </object> - <int key="connectionID">104</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBActionConnection" key="connection"> - <string key="label">deleteBookmark:</string> - <reference key="source" ref="1001"/> - <reference key="destination" ref="168951506"/> - </object> - <int key="connectionID">105</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBActionConnection" key="connection"> <string key="label">importBookmarks:</string> <reference key="source" ref="1001"/> <reference key="destination" ref="1020224577"/> @@ -639,94 +209,6 @@ <int key="connectionID">119</int> </object> <object class="IBConnectionRecord"> - <object class="IBActionConnection" key="connection"> - <string key="label">cutBookmark:</string> - <reference key="source" ref="1001"/> - <reference key="destination" ref="521559034"/> - </object> - <int key="connectionID">130</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBActionConnection" key="connection"> - <string key="label">copyBookmark:</string> - <reference key="source" ref="1001"/> - <reference key="destination" ref="377013426"/> - </object> - <int key="connectionID">131</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBActionConnection" key="connection"> - <string key="label">pasteBookmark:</string> - <reference key="source" ref="1001"/> - <reference key="destination" ref="327742989"/> - </object> - <int key="connectionID">132</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBActionConnection" key="connection"> - <string key="label">pasteBookmark:</string> - <reference key="source" ref="1001"/> - <reference key="destination" ref="458095162"/> - </object> - <int key="connectionID">133</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBActionConnection" key="connection"> - <string key="label">copyBookmark:</string> - <reference key="source" ref="1001"/> - <reference key="destination" ref="420867961"/> - </object> - <int key="connectionID">134</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBActionConnection" key="connection"> - <string key="label">cutBookmark:</string> - <reference key="source" ref="1001"/> - <reference key="destination" ref="684958721"/> - </object> - <int key="connectionID">135</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBActionConnection" key="connection"> - <string key="label">commandDispatch:</string> - <reference key="source" ref="1003"/> - <reference key="destination" ref="61770624"/> - </object> - <int key="connectionID">39</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBActionConnection" key="connection"> - <string key="label">commandDispatch:</string> - <reference key="source" ref="1003"/> - <reference key="destination" ref="23014313"/> - </object> - <int key="connectionID">40</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBActionConnection" key="connection"> - <string key="label">commandDispatch:</string> - <reference key="source" ref="1003"/> - <reference key="destination" ref="807677456"/> - </object> - <int key="connectionID">48</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBActionConnection" key="connection"> - <string key="label">commandDispatch:</string> - <reference key="source" ref="1003"/> - <reference key="destination" ref="515274494"/> - </object> - <int key="connectionID">49</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBOutletConnection" key="connection"> - <string key="label">menu</string> - <reference key="source" ref="620641226"/> - <reference key="destination" ref="183701277"/> - </object> - <int key="connectionID">71</int> - </object> - <object class="IBConnectionRecord"> <object class="IBOutletConnection" key="connection"> <string key="label">controller_</string> <reference key="source" ref="620641226"/> @@ -744,30 +226,6 @@ </object> <object class="IBConnectionRecord"> <object class="IBOutletConnection" key="connection"> - <string key="label">delegate</string> - <reference key="source" ref="183701277"/> - <reference key="destination" ref="1001"/> - </object> - <int key="connectionID">102</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBOutletConnection" key="connection"> - <string key="label">delegate</string> - <reference key="source" ref="672481054"/> - <reference key="destination" ref="1001"/> - </object> - <int key="connectionID">103</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBOutletConnection" key="connection"> - <string key="label">menu</string> - <reference key="source" ref="610146462"/> - <reference key="destination" ref="183701277"/> - </object> - <int key="connectionID">70</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBOutletConnection" key="connection"> <string key="label">noItemTextfield_</string> <reference key="source" ref="610146462"/> <reference key="destination" ref="1013234954"/> @@ -808,22 +266,6 @@ </object> <object class="IBConnectionRecord"> <object class="IBOutletConnection" key="connection"> - <string key="label">otherObjectToLocalize_</string> - <reference key="source" ref="849863465"/> - <reference key="destination" ref="183701277"/> - </object> - <int key="connectionID">73</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBOutletConnection" key="connection"> - <string key="label">yetAnotherObjectToLocalize_</string> - <reference key="source" ref="849863465"/> - <reference key="destination" ref="672481054"/> - </object> - <int key="connectionID">74</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBOutletConnection" key="connection"> <string key="label">owner_</string> <reference key="source" ref="849863465"/> <reference key="destination" ref="1001"/> @@ -832,22 +274,6 @@ </object> <object class="IBConnectionRecord"> <object class="IBOutletConnection" key="connection"> - <string key="label">menu</string> - <reference key="source" ref="1013234954"/> - <reference key="destination" ref="183701277"/> - </object> - <int key="connectionID">98</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBOutletConnection" key="connection"> - <string key="label">menu</string> - <reference key="source" ref="1023728927"/> - <reference key="destination" ref="183701277"/> - </object> - <int key="connectionID">118</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBOutletConnection" key="connection"> <string key="label">localizerOwner_</string> <reference key="source" ref="191941755"/> <reference key="destination" ref="1001"/> @@ -911,178 +337,6 @@ <reference key="parent" ref="0"/> </object> <object class="IBObjectRecord"> - <int key="objectID">4</int> - <reference key="object" ref="183701277"/> - <object class="NSMutableArray" key="children"> - <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="6422781"/> - <reference ref="115646576"/> - <reference ref="509003741"/> - <reference ref="694014238"/> - <reference ref="1022383113"/> - <reference ref="112128065"/> - <reference ref="168951506"/> - <reference ref="926809071"/> - <reference ref="90793013"/> - <reference ref="61770624"/> - <reference ref="23014313"/> - <reference ref="149427359"/> - <reference ref="700089185"/> - <reference ref="684958721"/> - <reference ref="420867961"/> - <reference ref="458095162"/> - <reference ref="314564222"/> - </object> - <reference key="parent" ref="0"/> - <string key="objectName">Bar Menu</string> - </object> - <object class="IBObjectRecord"> - <int key="objectID">5</int> - <reference key="object" ref="6422781"/> - <reference key="parent" ref="183701277"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">6</int> - <reference key="object" ref="115646576"/> - <reference key="parent" ref="183701277"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">7</int> - <reference key="object" ref="509003741"/> - <reference key="parent" ref="183701277"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">8</int> - <reference key="object" ref="694014238"/> - <reference key="parent" ref="183701277"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">9</int> - <reference key="object" ref="1022383113"/> - <reference key="parent" ref="183701277"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">10</int> - <reference key="object" ref="149427359"/> - <reference key="parent" ref="183701277"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">11</int> - <reference key="object" ref="112128065"/> - <reference key="parent" ref="183701277"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">12</int> - <reference key="object" ref="168951506"/> - <reference key="parent" ref="183701277"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">13</int> - <reference key="object" ref="926809071"/> - <reference key="parent" ref="183701277"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">14</int> - <reference key="object" ref="90793013"/> - <reference key="parent" ref="183701277"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">15</int> - <reference key="object" ref="61770624"/> - <reference key="parent" ref="183701277"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">16</int> - <reference key="object" ref="23014313"/> - <reference key="parent" ref="183701277"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">18</int> - <reference key="object" ref="672481054"/> - <object class="NSMutableArray" key="children"> - <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="422582534"/> - <reference ref="515274494"/> - <reference ref="807677456"/> - <reference ref="595609715"/> - <reference ref="527115352"/> - <reference ref="908072523"/> - <reference ref="182996500"/> - <reference ref="554011295"/> - <reference ref="878416689"/> - <reference ref="300791080"/> - <reference ref="308357419"/> - <reference ref="1071747565"/> - <reference ref="245976149"/> - <reference ref="521559034"/> - <reference ref="377013426"/> - <reference ref="327742989"/> - <reference ref="458107851"/> - </object> - <reference key="parent" ref="0"/> - <string key="objectName">Button Menu</string> - </object> - <object class="IBObjectRecord"> - <int key="objectID">19</int> - <reference key="object" ref="422582534"/> - <reference key="parent" ref="672481054"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">20</int> - <reference key="object" ref="515274494"/> - <reference key="parent" ref="672481054"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">21</int> - <reference key="object" ref="807677456"/> - <reference key="parent" ref="672481054"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">22</int> - <reference key="object" ref="595609715"/> - <reference key="parent" ref="672481054"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">23</int> - <reference key="object" ref="527115352"/> - <reference key="parent" ref="672481054"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">24</int> - <reference key="object" ref="908072523"/> - <reference key="parent" ref="672481054"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">25</int> - <reference key="object" ref="182996500"/> - <reference key="parent" ref="672481054"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">26</int> - <reference key="object" ref="554011295"/> - <reference key="parent" ref="672481054"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">27</int> - <reference key="object" ref="878416689"/> - <reference key="parent" ref="672481054"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">28</int> - <reference key="object" ref="300791080"/> - <reference key="parent" ref="672481054"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">29</int> - <reference key="object" ref="308357419"/> - <reference key="parent" ref="672481054"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">30</int> - <reference key="object" ref="1071747565"/> - <reference key="parent" ref="672481054"/> - </object> - <object class="IBObjectRecord"> <int key="objectID">62</int> <reference key="object" ref="610146462"/> <object class="NSMutableArray" key="children"> @@ -1153,56 +407,6 @@ <reference key="object" ref="458754719"/> <reference key="parent" ref="1013234954"/> </object> - <object class="IBObjectRecord"> - <int key="objectID">120</int> - <reference key="object" ref="700089185"/> - <reference key="parent" ref="183701277"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">121</int> - <reference key="object" ref="684958721"/> - <reference key="parent" ref="183701277"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">122</int> - <reference key="object" ref="420867961"/> - <reference key="parent" ref="183701277"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">123</int> - <reference key="object" ref="458095162"/> - <reference key="parent" ref="183701277"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">124</int> - <reference key="object" ref="314564222"/> - <reference key="parent" ref="183701277"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">125</int> - <reference key="object" ref="245976149"/> - <reference key="parent" ref="672481054"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">126</int> - <reference key="object" ref="521559034"/> - <reference key="parent" ref="672481054"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">127</int> - <reference key="object" ref="377013426"/> - <reference key="parent" ref="672481054"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">128</int> - <reference key="object" ref="327742989"/> - <reference key="parent" ref="672481054"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">129</int> - <reference key="object" ref="458107851"/> - <reference key="parent" ref="672481054"/> - </object> </object> </object> <object class="NSMutableDictionary" key="flattenedProperties"> @@ -1213,57 +417,19 @@ <string>-2.IBPluginDependency</string> <string>-3.IBPluginDependency</string> <string>1.IBPluginDependency</string> - <string>10.IBPluginDependency</string> <string>106.IBPluginDependency</string> <string>107.CustomClassName</string> <string>107.IBPluginDependency</string> <string>109.IBPluginDependency</string> - <string>11.IBPluginDependency</string> <string>110.IBPluginDependency</string> - <string>12.IBPluginDependency</string> - <string>120.IBPluginDependency</string> - <string>121.IBPluginDependency</string> - <string>122.IBPluginDependency</string> - <string>123.IBPluginDependency</string> - <string>124.IBPluginDependency</string> - <string>125.IBPluginDependency</string> - <string>126.IBPluginDependency</string> - <string>127.IBPluginDependency</string> - <string>128.IBPluginDependency</string> - <string>129.IBPluginDependency</string> - <string>13.IBPluginDependency</string> - <string>14.IBPluginDependency</string> - <string>15.IBPluginDependency</string> - <string>16.IBPluginDependency</string> - <string>18.CustomClassName</string> - <string>18.IBPluginDependency</string> - <string>19.IBPluginDependency</string> - <string>20.IBPluginDependency</string> - <string>21.IBPluginDependency</string> - <string>22.IBPluginDependency</string> - <string>23.IBPluginDependency</string> - <string>24.IBPluginDependency</string> - <string>25.IBPluginDependency</string> - <string>26.IBPluginDependency</string> - <string>27.IBPluginDependency</string> - <string>28.IBPluginDependency</string> - <string>29.IBPluginDependency</string> - <string>30.IBPluginDependency</string> - <string>4.CustomClassName</string> - <string>4.IBPluginDependency</string> - <string>5.IBPluginDependency</string> - <string>6.IBPluginDependency</string> <string>62.IBPluginDependency</string> <string>63.CustomClassName</string> <string>63.IBPluginDependency</string> <string>64.CustomClassName</string> <string>64.IBPluginDependency</string> - <string>7.IBPluginDependency</string> <string>72.IBPluginDependency</string> - <string>8.IBPluginDependency</string> <string>82.IBPluginDependency</string> <string>83.IBPluginDependency</string> - <string>9.IBPluginDependency</string> </object> <object class="NSArray" key="dict.values"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -1272,46 +438,11 @@ <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>HyperlinkButtonCell</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>BookmarkMenu</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>BookmarkMenu</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>BookmarkButton</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>BookmarkButtonCell</string> @@ -1319,9 +450,6 @@ <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> </object> </object> <object class="NSMutableDictionary" key="unlocalizedProperties"> @@ -1660,14 +788,6 @@ </object> </object> <object class="IBPartialClassDescription"> - <string key="className">BookmarkMenu</string> - <string key="superclassName">NSMenu</string> - <object class="IBClassDescriptionSource" key="sourceIdentifier"> - <string key="majorKey">IBProjectSource</string> - <string key="minorKey">./Classes/BookmarkMenu.h</string> - </object> - </object> - <object class="IBPartialClassDescription"> <string key="className">ChromeUILocalizer</string> <string key="superclassName">GTMUILocalizer</string> <object class="IBClassDescriptionSource" key="sourceIdentifier"> @@ -1866,28 +986,11 @@ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string> <integer value="1050" key="NS.object.0"/> </object> - <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults"> - <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string> - <real value="1070" key="NS.object.0"/> - </object> <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies"> <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3</string> <integer value="3000" key="NS.object.0"/> </object> <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool> <int key="IBDocument.defaultPropertyAccessControl">3</int> - <object class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes"> - <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSArray" key="dict.sortedKeys"> - <bool key="EncodedWithXMLCoder">YES</bool> - <string>NSMenuCheckmark</string> - <string>NSMenuMixedState</string> - </object> - <object class="NSArray" key="dict.values"> - <bool key="EncodedWithXMLCoder">YES</bool> - <string>{11, 11}</string> - <string>{10, 3}</string> - </object> - </object> </data> </archive> diff --git a/chrome/app/nibs/BookmarkBarFolderWindow.xib b/chrome/app/nibs/BookmarkBarFolderWindow.xib index ccef27a..e0b9871 100644 --- a/chrome/app/nibs/BookmarkBarFolderWindow.xib +++ b/chrome/app/nibs/BookmarkBarFolderWindow.xib @@ -2,13 +2,13 @@ <archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.10"> <data> <int key="IBDocument.SystemTarget">1050</int> - <string key="IBDocument.SystemVersion">12B19</string> - <string key="IBDocument.InterfaceBuilderVersion">2549</string> - <string key="IBDocument.AppKitVersion">1187</string> - <string key="IBDocument.HIToolboxVersion">624.00</string> + <string key="IBDocument.SystemVersion">12C60</string> + <string key="IBDocument.InterfaceBuilderVersion">2844</string> + <string key="IBDocument.AppKitVersion">1187.34</string> + <string key="IBDocument.HIToolboxVersion">625.00</string> <object class="NSMutableDictionary" key="IBDocument.PluginVersions"> <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string> - <string key="NS.object.0">2549</string> + <string key="NS.object.0">2844</string> </object> <object class="NSArray" key="IBDocument.IntegratedClassDependencies"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -16,8 +16,6 @@ <string>NSCustomView</string> <string>NSImageCell</string> <string>NSImageView</string> - <string>NSMenu</string> - <string>NSMenuItem</string> <string>NSScrollView</string> <string>NSScroller</string> <string>NSView</string> @@ -77,6 +75,7 @@ <string key="NSFrameSize">{472, 270}</string> <reference key="NSSuperview" ref="730183354"/> <reference key="NSWindow"/> + <reference key="NSNextKeyView"/> <string key="NSClassName">BookmarkBarFolderView</string> </object> </object> @@ -102,6 +101,7 @@ <string key="NSFrame">{{-100, -100}, {15, 285}}</string> <reference key="NSSuperview" ref="680424923"/> <reference key="NSWindow"/> + <reference key="NSNextKeyView" ref="1057944048"/> <bool key="NSAllowsLogicalLayoutDirection">NO</bool> <reference key="NSTarget" ref="680424923"/> <string key="NSAction">_doScroller:</string> @@ -114,6 +114,7 @@ <string key="NSFrame">{{-100, -100}, {480, 15}}</string> <reference key="NSSuperview" ref="680424923"/> <reference key="NSWindow"/> + <reference key="NSNextKeyView" ref="730183354"/> <bool key="NSAllowsLogicalLayoutDirection">NO</bool> <int key="NSsFlags">1</int> <reference key="NSTarget" ref="680424923"/> @@ -124,7 +125,7 @@ <string key="NSFrame">{{4, 0}, {472, 270}}</string> <reference key="NSSuperview" ref="941574830"/> <reference key="NSWindow"/> - <reference key="NSNextKeyView" ref="730183354"/> + <reference key="NSNextKeyView" ref="453279292"/> <int key="NSsFlags">133120</int> <reference key="NSVScroller" ref="453279292"/> <reference key="NSHScroller" ref="1057944048"/> @@ -156,6 +157,7 @@ <string key="NSFrame">{{215, 1}, {48, 20}}</string> <reference key="NSSuperview" ref="953069288"/> <reference key="NSWindow"/> + <reference key="NSNextKeyView" ref="680424923"/> <bool key="NSEnabled">YES</bool> <object class="NSImageCell" key="NSCell" id="471443416"> <int key="NSCellFlags">134217728</int> @@ -176,6 +178,7 @@ <string key="NSFrameSize">{480, 23}</string> <reference key="NSSuperview" ref="941574830"/> <reference key="NSWindow"/> + <reference key="NSNextKeyView" ref="865301746"/> <string key="NSClassName">NSView</string> </object> <object class="NSCustomView" id="611357014"> @@ -201,6 +204,7 @@ <string key="NSFrame">{{215, 1}, {48, 20}}</string> <reference key="NSSuperview" ref="611357014"/> <reference key="NSWindow"/> + <reference key="NSNextKeyView" ref="953069288"/> <bool key="NSEnabled">YES</bool> <object class="NSImageCell" key="NSCell" id="1868251"> <int key="NSCellFlags">134217728</int> @@ -221,337 +225,26 @@ <string key="NSFrame">{{0, 247}, {480, 23}}</string> <reference key="NSSuperview" ref="941574830"/> <reference key="NSWindow"/> + <reference key="NSNextKeyView" ref="334202585"/> <string key="NSClassName">NSView</string> </object> </object> <string key="NSFrameSize">{480, 270}</string> <reference key="NSSuperview" ref="1006"/> <reference key="NSWindow"/> + <reference key="NSNextKeyView" ref="611357014"/> <string key="NSClassName">BookmarkBarFolderWindowContentView</string> </object> </object> <string key="NSFrameSize">{480, 270}</string> <reference key="NSSuperview"/> <reference key="NSWindow"/> + <reference key="NSNextKeyView" ref="941574830"/> </object> - <string key="NSScreenRect">{{0, 0}, {1680, 1028}}</string> + <string key="NSScreenRect">{{0, 0}, {1920, 1178}}</string> <string key="NSMaxSize">{10000000000000, 10000000000000}</string> <bool key="NSWindowIsRestorable">YES</bool> </object> - <object class="NSMenu" id="447628937"> - <string key="NSTitle"/> - <object class="NSMutableArray" key="NSMenuItems"> - <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSMenuItem" id="875931014"> - <reference key="NSMenu" ref="447628937"/> - <string key="NSTitle">^IDS_BOOKMARK_BAR_OPEN_IN_NEW_TAB</string> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <object class="NSCustomResource" key="NSOnImage" id="259139760"> - <string key="NSClassName">NSImage</string> - <string key="NSResourceName">NSMenuCheckmark</string> - </object> - <object class="NSCustomResource" key="NSMixedImage" id="1004300648"> - <string key="NSClassName">NSImage</string> - <string key="NSResourceName">NSMenuMixedState</string> - </object> - </object> - <object class="NSMenuItem" id="1056378252"> - <reference key="NSMenu" ref="447628937"/> - <string key="NSTitle">^IDS_BOOKMARK_BAR_OPEN_IN_NEW_WINDOW</string> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="259139760"/> - <reference key="NSMixedImage" ref="1004300648"/> - </object> - <object class="NSMenuItem" id="425700157"> - <reference key="NSMenu" ref="447628937"/> - <string key="NSTitle">^IDS_BOOKMARK_BAR_OPEN_INCOGNITO</string> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="259139760"/> - <reference key="NSMixedImage" ref="1004300648"/> - </object> - <object class="NSMenuItem" id="518061209"> - <reference key="NSMenu" ref="447628937"/> - <bool key="NSIsDisabled">YES</bool> - <bool key="NSIsSeparator">YES</bool> - <string key="NSTitle"/> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="259139760"/> - <reference key="NSMixedImage" ref="1004300648"/> - </object> - <object class="NSMenuItem" id="642328622"> - <reference key="NSMenu" ref="447628937"/> - <string key="NSTitle">^IDS_BOOKMARK_BAR_EDIT</string> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="259139760"/> - <reference key="NSMixedImage" ref="1004300648"/> - </object> - <object class="NSMenuItem" id="929181312"> - <reference key="NSMenu" ref="447628937"/> - <bool key="NSIsDisabled">YES</bool> - <bool key="NSIsSeparator">YES</bool> - <string key="NSTitle"/> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="259139760"/> - <reference key="NSMixedImage" ref="1004300648"/> - </object> - <object class="NSMenuItem" id="359154687"> - <reference key="NSMenu" ref="447628937"/> - <string key="NSTitle">^IDS_CUT</string> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="259139760"/> - <reference key="NSMixedImage" ref="1004300648"/> - </object> - <object class="NSMenuItem" id="632461975"> - <reference key="NSMenu" ref="447628937"/> - <string key="NSTitle">^IDS_COPY</string> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="259139760"/> - <reference key="NSMixedImage" ref="1004300648"/> - </object> - <object class="NSMenuItem" id="202140151"> - <reference key="NSMenu" ref="447628937"/> - <string key="NSTitle">^IDS_PASTE</string> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="259139760"/> - <reference key="NSMixedImage" ref="1004300648"/> - </object> - <object class="NSMenuItem" id="416998881"> - <reference key="NSMenu" ref="447628937"/> - <bool key="NSIsDisabled">YES</bool> - <bool key="NSIsSeparator">YES</bool> - <string key="NSTitle"/> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="259139760"/> - <reference key="NSMixedImage" ref="1004300648"/> - </object> - <object class="NSMenuItem" id="464302674"> - <reference key="NSMenu" ref="447628937"/> - <string key="NSTitle">^IDS_BOOKMARK_BAR_REMOVE</string> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="259139760"/> - <reference key="NSMixedImage" ref="1004300648"/> - </object> - <object class="NSMenuItem" id="896885093"> - <reference key="NSMenu" ref="447628937"/> - <bool key="NSIsDisabled">YES</bool> - <bool key="NSIsSeparator">YES</bool> - <string key="NSTitle"/> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="259139760"/> - <reference key="NSMixedImage" ref="1004300648"/> - </object> - <object class="NSMenuItem" id="684143027"> - <reference key="NSMenu" ref="447628937"/> - <string key="NSTitle">^IDS_BOOKMARK_BAR_ADD_NEW_BOOKMARK</string> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="259139760"/> - <reference key="NSMixedImage" ref="1004300648"/> - </object> - <object class="NSMenuItem" id="941759083"> - <reference key="NSMenu" ref="447628937"/> - <string key="NSTitle">^IDS_BOOKMARK_BAR_NEW_FOLDER</string> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="259139760"/> - <reference key="NSMixedImage" ref="1004300648"/> - </object> - <object class="NSMenuItem" id="496552916"> - <reference key="NSMenu" ref="447628937"/> - <bool key="NSIsDisabled">YES</bool> - <bool key="NSIsSeparator">YES</bool> - <string key="NSTitle"/> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="259139760"/> - <reference key="NSMixedImage" ref="1004300648"/> - </object> - <object class="NSMenuItem" id="60766120"> - <reference key="NSMenu" ref="447628937"/> - <string key="NSTitle">^IDS_BOOKMARK_MANAGER</string> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="259139760"/> - <reference key="NSMixedImage" ref="1004300648"/> - <int key="NSTag">40011</int> - </object> - <object class="NSMenuItem" id="96803390"> - <reference key="NSMenu" ref="447628937"/> - <string key="NSTitle">^IDS_BOOKMARK_BAR_ALWAYS_SHOW_MAC</string> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="259139760"/> - <reference key="NSMixedImage" ref="1004300648"/> - <int key="NSTag">40009</int> - </object> - </object> - </object> - <object class="NSMenu" id="243908609"> - <string key="NSTitle"/> - <object class="NSMutableArray" key="NSMenuItems"> - <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSMenuItem" id="727065194"> - <reference key="NSMenu" ref="243908609"/> - <string key="NSTitle">^IDS_BOOKMARK_BAR_OPEN_ALL</string> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="259139760"/> - <reference key="NSMixedImage" ref="1004300648"/> - </object> - <object class="NSMenuItem" id="236903630"> - <reference key="NSMenu" ref="243908609"/> - <string key="NSTitle">^IDS_BOOKMARK_BAR_OPEN_ALL_NEW_WINDOW</string> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="259139760"/> - <reference key="NSMixedImage" ref="1004300648"/> - </object> - <object class="NSMenuItem" id="233735276"> - <reference key="NSMenu" ref="243908609"/> - <string key="NSTitle">^IDS_BOOKMARK_BAR_OPEN_ALL_INCOGNITO</string> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="259139760"/> - <reference key="NSMixedImage" ref="1004300648"/> - </object> - <object class="NSMenuItem" id="370949212"> - <reference key="NSMenu" ref="243908609"/> - <bool key="NSIsDisabled">YES</bool> - <bool key="NSIsSeparator">YES</bool> - <string key="NSTitle"/> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="259139760"/> - <reference key="NSMixedImage" ref="1004300648"/> - </object> - <object class="NSMenuItem" id="349508807"> - <reference key="NSMenu" ref="243908609"/> - <string key="NSTitle">^IDS_BOOKMARK_BAR_RENAME_FOLDER</string> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="259139760"/> - <reference key="NSMixedImage" ref="1004300648"/> - </object> - <object class="NSMenuItem" id="668674447"> - <reference key="NSMenu" ref="243908609"/> - <bool key="NSIsDisabled">YES</bool> - <bool key="NSIsSeparator">YES</bool> - <string key="NSTitle"/> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="259139760"/> - <reference key="NSMixedImage" ref="1004300648"/> - </object> - <object class="NSMenuItem" id="820503943"> - <reference key="NSMenu" ref="243908609"/> - <string key="NSTitle">^IDS_CUT</string> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="259139760"/> - <reference key="NSMixedImage" ref="1004300648"/> - </object> - <object class="NSMenuItem" id="689396309"> - <reference key="NSMenu" ref="243908609"/> - <string key="NSTitle">^IDS_COPY</string> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="259139760"/> - <reference key="NSMixedImage" ref="1004300648"/> - </object> - <object class="NSMenuItem" id="432629396"> - <reference key="NSMenu" ref="243908609"/> - <string key="NSTitle">^IDS_PASTE</string> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="259139760"/> - <reference key="NSMixedImage" ref="1004300648"/> - </object> - <object class="NSMenuItem" id="147047106"> - <reference key="NSMenu" ref="243908609"/> - <bool key="NSIsDisabled">YES</bool> - <bool key="NSIsSeparator">YES</bool> - <string key="NSTitle"/> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="259139760"/> - <reference key="NSMixedImage" ref="1004300648"/> - </object> - <object class="NSMenuItem" id="593857611"> - <reference key="NSMenu" ref="243908609"/> - <string key="NSTitle">^IDS_BOOKMARK_BAR_REMOVE</string> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="259139760"/> - <reference key="NSMixedImage" ref="1004300648"/> - </object> - <object class="NSMenuItem" id="493723737"> - <reference key="NSMenu" ref="243908609"/> - <bool key="NSIsDisabled">YES</bool> - <bool key="NSIsSeparator">YES</bool> - <string key="NSTitle"/> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="259139760"/> - <reference key="NSMixedImage" ref="1004300648"/> - </object> - <object class="NSMenuItem" id="92546710"> - <reference key="NSMenu" ref="243908609"/> - <string key="NSTitle">^IDS_BOOKMARK_BAR_ADD_NEW_BOOKMARK</string> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="259139760"/> - <reference key="NSMixedImage" ref="1004300648"/> - </object> - <object class="NSMenuItem" id="682893323"> - <reference key="NSMenu" ref="243908609"/> - <string key="NSTitle">^IDS_BOOKMARK_BAR_NEW_FOLDER</string> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="259139760"/> - <reference key="NSMixedImage" ref="1004300648"/> - </object> - <object class="NSMenuItem" id="913220344"> - <reference key="NSMenu" ref="243908609"/> - <bool key="NSIsDisabled">YES</bool> - <bool key="NSIsSeparator">YES</bool> - <string key="NSTitle"/> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="259139760"/> - <reference key="NSMixedImage" ref="1004300648"/> - </object> - <object class="NSMenuItem" id="576055101"> - <reference key="NSMenu" ref="243908609"/> - <string key="NSTitle">^IDS_BOOKMARK_MANAGER</string> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="259139760"/> - <reference key="NSMixedImage" ref="1004300648"/> - <int key="NSTag">40011</int> - </object> - <object class="NSMenuItem" id="636966313"> - <reference key="NSMenu" ref="243908609"/> - <string key="NSTitle">^IDS_BOOKMARK_BAR_ALWAYS_SHOW_MAC</string> - <string key="NSKeyEquiv"/> - <int key="NSMnemonicLoc">2147483647</int> - <reference key="NSOnImage" ref="259139760"/> - <reference key="NSMixedImage" ref="1004300648"/> - <int key="NSTag">40009</int> - </object> - </object> - </object> <object class="NSCustomObject" id="297726234"> <string key="NSClassName">GTMUILocalizerAndLayoutTweaker</string> </object> @@ -600,182 +293,6 @@ </object> <object class="IBConnectionRecord"> <object class="IBOutletConnection" key="connection"> - <string key="label">folderMenu_</string> - <reference key="source" ref="1001"/> - <reference key="destination" ref="243908609"/> - </object> - <int key="connectionID">58</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBOutletConnection" key="connection"> - <string key="label">buttonMenu_</string> - <reference key="source" ref="1001"/> - <reference key="destination" ref="447628937"/> - </object> - <int key="connectionID">61</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBActionConnection" key="connection"> - <string key="label">openAllBookmarks:</string> - <reference key="source" ref="1001"/> - <reference key="destination" ref="727065194"/> - </object> - <int key="connectionID">63</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBActionConnection" key="connection"> - <string key="label">openAllBookmarksNewWindow:</string> - <reference key="source" ref="1001"/> - <reference key="destination" ref="236903630"/> - </object> - <int key="connectionID">64</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBActionConnection" key="connection"> - <string key="label">openAllBookmarksIncognitoWindow:</string> - <reference key="source" ref="1001"/> - <reference key="destination" ref="233735276"/> - </object> - <int key="connectionID">65</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBActionConnection" key="connection"> - <string key="label">editBookmark:</string> - <reference key="source" ref="1001"/> - <reference key="destination" ref="349508807"/> - </object> - <int key="connectionID">66</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBActionConnection" key="connection"> - <string key="label">cutBookmark:</string> - <reference key="source" ref="1001"/> - <reference key="destination" ref="820503943"/> - </object> - <int key="connectionID">67</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBActionConnection" key="connection"> - <string key="label">copyBookmark:</string> - <reference key="source" ref="1001"/> - <reference key="destination" ref="689396309"/> - </object> - <int key="connectionID">68</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBActionConnection" key="connection"> - <string key="label">pasteBookmark:</string> - <reference key="source" ref="1001"/> - <reference key="destination" ref="432629396"/> - </object> - <int key="connectionID">69</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBActionConnection" key="connection"> - <string key="label">deleteBookmark:</string> - <reference key="source" ref="1001"/> - <reference key="destination" ref="593857611"/> - </object> - <int key="connectionID">70</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBActionConnection" key="connection"> - <string key="label">addPage:</string> - <reference key="source" ref="1001"/> - <reference key="destination" ref="92546710"/> - </object> - <int key="connectionID">71</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBActionConnection" key="connection"> - <string key="label">addFolder:</string> - <reference key="source" ref="1001"/> - <reference key="destination" ref="682893323"/> - </object> - <int key="connectionID">72</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBActionConnection" key="connection"> - <string key="label">editBookmark:</string> - <reference key="source" ref="1001"/> - <reference key="destination" ref="642328622"/> - </object> - <int key="connectionID">80</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBActionConnection" key="connection"> - <string key="label">cutBookmark:</string> - <reference key="source" ref="1001"/> - <reference key="destination" ref="359154687"/> - </object> - <int key="connectionID">81</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBActionConnection" key="connection"> - <string key="label">copyBookmark:</string> - <reference key="source" ref="1001"/> - <reference key="destination" ref="632461975"/> - </object> - <int key="connectionID">82</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBActionConnection" key="connection"> - <string key="label">pasteBookmark:</string> - <reference key="source" ref="1001"/> - <reference key="destination" ref="202140151"/> - </object> - <int key="connectionID">83</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBActionConnection" key="connection"> - <string key="label">deleteBookmark:</string> - <reference key="source" ref="1001"/> - <reference key="destination" ref="464302674"/> - </object> - <int key="connectionID">84</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBActionConnection" key="connection"> - <string key="label">addPage:</string> - <reference key="source" ref="1001"/> - <reference key="destination" ref="684143027"/> - </object> - <int key="connectionID">85</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBActionConnection" key="connection"> - <string key="label">addFolder:</string> - <reference key="source" ref="1001"/> - <reference key="destination" ref="941759083"/> - </object> - <int key="connectionID">86</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBActionConnection" key="connection"> - <string key="label">openBookmarkInIncognitoWindow:</string> - <reference key="source" ref="1001"/> - <reference key="destination" ref="425700157"/> - </object> - <int key="connectionID">87</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBActionConnection" key="connection"> - <string key="label">openBookmarkInNewForegroundTab:</string> - <reference key="source" ref="1001"/> - <reference key="destination" ref="875931014"/> - </object> - <int key="connectionID">88</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBActionConnection" key="connection"> - <string key="label">openBookmarkInNewWindow:</string> - <reference key="source" ref="1001"/> - <reference key="destination" ref="1056378252"/> - </object> - <int key="connectionID">89</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBOutletConnection" key="connection"> <string key="label">scrollView_</string> <reference key="source" ref="1001"/> <reference key="destination" ref="680424923"/> @@ -823,38 +340,6 @@ <int key="connectionID">110</int> </object> <object class="IBConnectionRecord"> - <object class="IBActionConnection" key="connection"> - <string key="label">commandDispatch:</string> - <reference key="source" ref="1003"/> - <reference key="destination" ref="576055101"/> - </object> - <int key="connectionID">73</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBActionConnection" key="connection"> - <string key="label">commandDispatch:</string> - <reference key="source" ref="1003"/> - <reference key="destination" ref="636966313"/> - </object> - <int key="connectionID">74</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBActionConnection" key="connection"> - <string key="label">commandDispatch:</string> - <reference key="source" ref="1003"/> - <reference key="destination" ref="60766120"/> - </object> - <int key="connectionID">75</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBActionConnection" key="connection"> - <string key="label">commandDispatch:</string> - <reference key="source" ref="1003"/> - <reference key="destination" ref="96803390"/> - </object> - <int key="connectionID">76</int> - </object> - <object class="IBConnectionRecord"> <object class="IBOutletConnection" key="connection"> <string key="label">delegate</string> <reference key="source" ref="1005"/> @@ -864,14 +349,6 @@ </object> <object class="IBConnectionRecord"> <object class="IBOutletConnection" key="connection"> - <string key="label">delegate</string> - <reference key="source" ref="243908609"/> - <reference key="destination" ref="1001"/> - </object> - <int key="connectionID">56</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBOutletConnection" key="connection"> <string key="label">localizer_</string> <reference key="source" ref="297726234"/> <reference key="destination" ref="493003890"/> @@ -880,36 +357,12 @@ </object> <object class="IBConnectionRecord"> <object class="IBOutletConnection" key="connection"> - <string key="label">delegate</string> - <reference key="source" ref="447628937"/> - <reference key="destination" ref="1001"/> - </object> - <int key="connectionID">62</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBOutletConnection" key="connection"> - <string key="label">yetAnotherObjectToLocalize_</string> - <reference key="source" ref="493003890"/> - <reference key="destination" ref="243908609"/> - </object> - <int key="connectionID">53</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBOutletConnection" key="connection"> <string key="label">owner_</string> <reference key="source" ref="493003890"/> <reference key="destination" ref="1001"/> </object> <int key="connectionID">55</int> </object> - <object class="IBConnectionRecord"> - <object class="IBOutletConnection" key="connection"> - <string key="label">otherObjectToLocalize_</string> - <reference key="source" ref="493003890"/> - <reference key="destination" ref="447628937"/> - </object> - <int key="connectionID">60</int> - </object> </object> <object class="IBMutableOrderedSet" key="objectRecords"> <object class="NSArray" key="orderedObjects"> @@ -959,238 +412,16 @@ <reference key="parent" ref="1005"/> </object> <object class="IBObjectRecord"> - <int key="objectID">10</int> - <reference key="object" ref="243908609"/> - <object class="NSMutableArray" key="children"> - <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="727065194"/> - <reference ref="236903630"/> - <reference ref="233735276"/> - <reference ref="370949212"/> - <reference ref="493723737"/> - <reference ref="349508807"/> - <reference ref="593857611"/> - <reference ref="92546710"/> - <reference ref="682893323"/> - <reference ref="576055101"/> - <reference ref="636966313"/> - <reference ref="913220344"/> - <reference ref="668674447"/> - <reference ref="820503943"/> - <reference ref="689396309"/> - <reference ref="432629396"/> - <reference ref="147047106"/> - </object> - <reference key="parent" ref="0"/> - <string key="objectName">Folder Menu</string> - </object> - <object class="IBObjectRecord"> <int key="objectID">11</int> <reference key="object" ref="297726234"/> <reference key="parent" ref="0"/> </object> <object class="IBObjectRecord"> - <int key="objectID">12</int> - <reference key="object" ref="447628937"/> - <object class="NSMutableArray" key="children"> - <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="496552916"/> - <reference ref="96803390"/> - <reference ref="60766120"/> - <reference ref="941759083"/> - <reference ref="684143027"/> - <reference ref="464302674"/> - <reference ref="642328622"/> - <reference ref="896885093"/> - <reference ref="518061209"/> - <reference ref="425700157"/> - <reference ref="1056378252"/> - <reference ref="875931014"/> - <reference ref="359154687"/> - <reference ref="929181312"/> - <reference ref="632461975"/> - <reference ref="202140151"/> - <reference ref="416998881"/> - </object> - <reference key="parent" ref="0"/> - <string key="objectName">Button Menu</string> - </object> - <object class="IBObjectRecord"> <int key="objectID">13</int> <reference key="object" ref="493003890"/> <reference key="parent" ref="0"/> </object> <object class="IBObjectRecord"> - <int key="objectID">16</int> - <reference key="object" ref="496552916"/> - <reference key="parent" ref="447628937"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">17</int> - <reference key="object" ref="96803390"/> - <reference key="parent" ref="447628937"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">18</int> - <reference key="object" ref="60766120"/> - <reference key="parent" ref="447628937"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">19</int> - <reference key="object" ref="941759083"/> - <reference key="parent" ref="447628937"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">20</int> - <reference key="object" ref="684143027"/> - <reference key="parent" ref="447628937"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">21</int> - <reference key="object" ref="464302674"/> - <reference key="parent" ref="447628937"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">22</int> - <reference key="object" ref="642328622"/> - <reference key="parent" ref="447628937"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">23</int> - <reference key="object" ref="896885093"/> - <reference key="parent" ref="447628937"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">24</int> - <reference key="object" ref="518061209"/> - <reference key="parent" ref="447628937"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">25</int> - <reference key="object" ref="425700157"/> - <reference key="parent" ref="447628937"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">26</int> - <reference key="object" ref="1056378252"/> - <reference key="parent" ref="447628937"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">27</int> - <reference key="object" ref="875931014"/> - <reference key="parent" ref="447628937"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">28</int> - <reference key="object" ref="359154687"/> - <reference key="parent" ref="447628937"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">29</int> - <reference key="object" ref="929181312"/> - <reference key="parent" ref="447628937"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">30</int> - <reference key="object" ref="632461975"/> - <reference key="parent" ref="447628937"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">31</int> - <reference key="object" ref="202140151"/> - <reference key="parent" ref="447628937"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">32</int> - <reference key="object" ref="416998881"/> - <reference key="parent" ref="447628937"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">35</int> - <reference key="object" ref="727065194"/> - <reference key="parent" ref="243908609"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">36</int> - <reference key="object" ref="236903630"/> - <reference key="parent" ref="243908609"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">37</int> - <reference key="object" ref="233735276"/> - <reference key="parent" ref="243908609"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">38</int> - <reference key="object" ref="370949212"/> - <reference key="parent" ref="243908609"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">39</int> - <reference key="object" ref="493723737"/> - <reference key="parent" ref="243908609"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">40</int> - <reference key="object" ref="349508807"/> - <reference key="parent" ref="243908609"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">41</int> - <reference key="object" ref="593857611"/> - <reference key="parent" ref="243908609"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">42</int> - <reference key="object" ref="92546710"/> - <reference key="parent" ref="243908609"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">43</int> - <reference key="object" ref="682893323"/> - <reference key="parent" ref="243908609"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">44</int> - <reference key="object" ref="576055101"/> - <reference key="parent" ref="243908609"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">45</int> - <reference key="object" ref="636966313"/> - <reference key="parent" ref="243908609"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">46</int> - <reference key="object" ref="913220344"/> - <reference key="parent" ref="243908609"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">47</int> - <reference key="object" ref="668674447"/> - <reference key="parent" ref="243908609"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">48</int> - <reference key="object" ref="820503943"/> - <reference key="parent" ref="243908609"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">49</int> - <reference key="object" ref="689396309"/> - <reference key="parent" ref="243908609"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">50</int> - <reference key="object" ref="432629396"/> - <reference key="parent" ref="243908609"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">51</int> - <reference key="object" ref="147047106"/> - <reference key="parent" ref="243908609"/> - </object> - <object class="IBObjectRecord"> <int key="objectID">96</int> <reference key="object" ref="793970913"/> <object class="NSMutableArray" key="children"> @@ -1315,8 +546,6 @@ <string>1.IBPluginDependency</string> <string>1.IBWindowTemplateEditedContentRect</string> <string>1.NSWindowTemplate.visibleAtLaunch</string> - <string>10.CustomClassName</string> - <string>10.IBPluginDependency</string> <string>100.IBPluginDependency</string> <string>102.IBPluginDependency</string> <string>103.IBPluginDependency</string> @@ -1325,45 +554,9 @@ <string>106.IBPluginDependency</string> <string>107.IBPluginDependency</string> <string>11.IBPluginDependency</string> - <string>12.CustomClassName</string> - <string>12.IBPluginDependency</string> <string>13.IBPluginDependency</string> - <string>16.IBPluginDependency</string> - <string>17.IBPluginDependency</string> - <string>18.IBPluginDependency</string> - <string>19.IBPluginDependency</string> <string>2.IBPluginDependency</string> - <string>20.IBPluginDependency</string> - <string>21.IBPluginDependency</string> - <string>22.IBPluginDependency</string> - <string>23.IBPluginDependency</string> - <string>24.IBPluginDependency</string> - <string>25.IBPluginDependency</string> - <string>26.IBPluginDependency</string> - <string>27.IBPluginDependency</string> - <string>28.IBPluginDependency</string> - <string>29.IBPluginDependency</string> - <string>30.IBPluginDependency</string> - <string>31.IBPluginDependency</string> - <string>32.IBPluginDependency</string> - <string>35.IBPluginDependency</string> - <string>36.IBPluginDependency</string> - <string>37.IBPluginDependency</string> - <string>38.IBPluginDependency</string> - <string>39.IBPluginDependency</string> <string>4.IBPluginDependency</string> - <string>40.IBPluginDependency</string> - <string>41.IBPluginDependency</string> - <string>42.IBPluginDependency</string> - <string>43.IBPluginDependency</string> - <string>44.IBPluginDependency</string> - <string>45.IBPluginDependency</string> - <string>46.IBPluginDependency</string> - <string>47.IBPluginDependency</string> - <string>48.IBPluginDependency</string> - <string>49.IBPluginDependency</string> - <string>50.IBPluginDependency</string> - <string>51.IBPluginDependency</string> <string>90.CustomClassName</string> <string>90.IBPluginDependency</string> <string>91.IBPluginDependency</string> @@ -1382,44 +575,6 @@ <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>{{333, 734}, {480, 270}}</string> <boolean value="NO"/> - <string>BookmarkMenu</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>BookmarkMenu</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> @@ -1704,14 +859,6 @@ </object> </object> <object class="IBPartialClassDescription"> - <string key="className">BookmarkMenu</string> - <string key="superclassName">NSMenu</string> - <object class="IBClassDescriptionSource" key="sourceIdentifier"> - <string key="majorKey">IBProjectSource</string> - <string key="minorKey">./Classes/BookmarkMenu.h</string> - </object> - </object> - <object class="IBPartialClassDescription"> <string key="className">ChromeUILocalizer</string> <string key="superclassName">GTMUILocalizer</string> <object class="IBClassDescriptionSource" key="sourceIdentifier"> @@ -1839,10 +986,6 @@ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string> <integer value="1050" key="NS.object.0"/> </object> - <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults"> - <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string> - <real value="1070" key="NS.object.0"/> - </object> <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies"> <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3</string> <integer value="3000" key="NS.object.0"/> @@ -1853,15 +996,11 @@ <bool key="EncodedWithXMLCoder">YES</bool> <object class="NSArray" key="dict.sortedKeys"> <bool key="EncodedWithXMLCoder">YES</bool> - <string>NSMenuCheckmark</string> - <string>NSMenuMixedState</string> <string>menu_overflow_down</string> <string>menu_overflow_up</string> </object> <object class="NSArray" key="dict.values"> <bool key="EncodedWithXMLCoder">YES</bool> - <string>{11, 11}</string> - <string>{10, 3}</string> <string>{19, 19}</string> <string>{19, 19}</string> </object> diff --git a/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_controller.h b/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_controller.h index 01e16cc..24438e2 100644 --- a/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_controller.h +++ b/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_controller.h @@ -22,11 +22,10 @@ @class BookmarkBarController; @class BookmarkBarFolderController; @class BookmarkBarView; -@class BookmarkButton; @class BookmarkButtonCell; @class BookmarkFolderTarget; +@class BookmarkContextMenuCocoaController; class BookmarkModel; -@class BookmarkMenu; class BookmarkNode; class Browser; class GURL; @@ -154,7 +153,6 @@ willAnimateFromState:(BookmarkBar::State)oldState BookmarkBarToolbarViewController, BookmarkButtonDelegate, BookmarkButtonControllerProtocol, - NSUserInterfaceValidations, NSDraggingDestination> { @private // The state of the bookmark bar. If an animation is running, this is set to @@ -218,7 +216,6 @@ willAnimateFromState:(BookmarkBar::State)oldState IBOutlet BookmarkBarView* buttonView_; // Contains 'no items' text fields. IBOutlet BookmarkButton* offTheSideButton_; // aka the chevron. - IBOutlet NSMenu* buttonContextMenu_; NSRect originalNoItemsRect_; // Original, pre-resized field rect. NSRect originalImportBookmarksRect_; // Original, pre-resized field rect. @@ -226,10 +223,6 @@ willAnimateFromState:(BookmarkBar::State)oldState // "Other bookmarks" button on the right side. scoped_nsobject<BookmarkButton> otherBookmarksButton_; - // We have a special menu for folder buttons. This starts as a copy - // of the bar menu. - scoped_nsobject<BookmarkMenu> buttonFolderContextMenu_; - // When doing a drag, this is folder button "hovered over" which we // may want to open after a short delay. There are cases where a // mouse-enter can open a folder (e.g. if the menus are "active") @@ -272,6 +265,9 @@ willAnimateFromState:(BookmarkBar::State)oldState // The x point on the bar where the left edge of the new item will end // up if it is dropped. CGFloat insertionPos_; + + // Controller responsible for all bookmark context menus. + scoped_nsobject<BookmarkContextMenuCocoaController> contextMenuController_; } @property(readonly, nonatomic) BookmarkBar::State currentState; @@ -288,6 +284,12 @@ willAnimateFromState:(BookmarkBar::State)oldState delegate:(id<BookmarkBarControllerDelegate>)delegate resizeDelegate:(id<ViewResizer>)resizeDelegate; +// The Browser corresponding to this BookmarkBarController. +- (Browser*)browser; + +// The controller for all bookmark bar context menus. +- (BookmarkContextMenuCocoaController*)menuController; + // Updates the bookmark bar (from its current, possibly in-transition) state to // the new state. - (void)updateState:(BookmarkBar::State)newState @@ -319,9 +321,6 @@ willAnimateFromState:(BookmarkBar::State)oldState // Called by our view when it is moved to a window. - (void)viewDidMoveToWindow; -// Import bookmarks from another browser. -- (IBAction)importBookmarks:(id)sender; - // Provide a favicon for a bookmark node. May return nil. - (NSImage*)faviconForNode:(const BookmarkNode*)node; @@ -347,22 +346,8 @@ willAnimateFromState:(BookmarkBar::State)oldState - (IBAction)openBookmarkFolderFromButton:(id)sender; // From the "off the side" button, ... - (IBAction)openOffTheSideFolderFromButton:(id)sender; -// From a context menu over the button, ... -- (IBAction)openBookmarkInNewForegroundTab:(id)sender; -- (IBAction)openBookmarkInNewWindow:(id)sender; -- (IBAction)openBookmarkInIncognitoWindow:(id)sender; -- (IBAction)editBookmark:(id)sender; -- (IBAction)cutBookmark:(id)sender; -- (IBAction)copyBookmark:(id)sender; -- (IBAction)pasteBookmark:(id)sender; -- (IBAction)deleteBookmark:(id)sender; -// From a context menu over the bar, ... -- (IBAction)openAllBookmarks:(id)sender; -- (IBAction)openAllBookmarksNewWindow:(id)sender; -- (IBAction)openAllBookmarksIncognitoWindow:(id)sender; -// Or from a context menu over either the bar or a button. -- (IBAction)addPage:(id)sender; -- (IBAction)addFolder:(id)sender; +// Import bookmarks from another browser. +- (IBAction)importBookmarks:(id)sender; @end // Redirects from BookmarkBarBridge, the C++ object which glues us to @@ -404,7 +389,6 @@ willAnimateFromState:(BookmarkBar::State)oldState - (void)frameDidChange; - (int64)nodeIdFromMenuTag:(int32)tag; - (int32)menuTagFromNodeId:(int64)menuid; -- (const BookmarkNode*)nodeFromMenuItem:(id)sender; - (void)updateTheme:(ui::ThemeProvider*)themeProvider; - (BookmarkButton*)buttonForDroppingOnAtPoint:(NSPoint)point; - (BOOL)isEventAnExitEvent:(NSEvent*)event; @@ -413,8 +397,6 @@ willAnimateFromState:(BookmarkBar::State)oldState // The following are for testing purposes only and are not used internally. - (NSMenu *)menuForFolderNode:(const BookmarkNode*)node; -- (NSMenu*)buttonContextMenu; -- (void)setButtonContextMenu:(id)menu; @end #endif // CHROME_BROWSER_UI_COCOA_BOOKMARKS_BOOKMARK_BAR_CONTROLLER_H_ diff --git a/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_controller.mm b/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_controller.mm index 470e9d7e..e408fc3 100644 --- a/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_controller.mm +++ b/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_controller.mm @@ -32,9 +32,9 @@ #import "chrome/browser/ui/cocoa/bookmarks/bookmark_bar_view.h" #import "chrome/browser/ui/cocoa/bookmarks/bookmark_button.h" #import "chrome/browser/ui/cocoa/bookmarks/bookmark_button_cell.h" +#import "chrome/browser/ui/cocoa/bookmarks/bookmark_context_menu_cocoa_controller.h" #import "chrome/browser/ui/cocoa/bookmarks/bookmark_editor_controller.h" #import "chrome/browser/ui/cocoa/bookmarks/bookmark_folder_target.h" -#import "chrome/browser/ui/cocoa/bookmarks/bookmark_menu.h" #import "chrome/browser/ui/cocoa/bookmarks/bookmark_menu_cocoa_controller.h" #import "chrome/browser/ui/cocoa/bookmarks/bookmark_name_folder_controller.h" #import "chrome/browser/ui/cocoa/browser_window_controller.h" @@ -217,7 +217,6 @@ void RecordAppLaunch(Profile* profile, GURL url) { - (void)addNonBookmarkButtonsToView; - (void)addButtonsToView; - (void)centerNoItemsLabel; -- (void)setNodeForBarMenu; - (void)watchForExitEvent:(BOOL)watch; - (void)resetAllButtonPositionsWithAnimation:(BOOL)animate; @@ -277,6 +276,14 @@ void RecordAppLaunch(Profile* profile, GURL url) { return self; } +- (Browser*)browser { + return browser_; +} + +- (BookmarkContextMenuCocoaController*)menuController { + return contextMenuController_.get(); +} + - (void)pulseBookmarkNotification:(NSNotification*)notification { NSDictionary* dict = [notification userInfo]; const BookmarkNode* node = NULL; @@ -368,10 +375,6 @@ void RecordAppLaunch(Profile* profile, GURL url) { [offTheSideButton_ removeFromSuperview]; [buttonView_ addSubview:offTheSideButton_]; - // Copy the bar menu so we know if it's from the bar or a folder. - // Then we set its represented item to be the bookmark bar. - buttonFolderContextMenu_.reset([[[self view] menu] copy]); - // When resized we may need to add new buttons, or remove them (if // no longer visible), or add/remove the "off the side" menu. [[self view] setPostsFrameChangedNotifications:YES]; @@ -678,183 +681,6 @@ void RecordAppLaunch(Profile* profile, GURL url) { [self openBookmarkFolder:sender]; } -- (IBAction)openBookmarkInNewForegroundTab:(id)sender { - const BookmarkNode* node = [self nodeFromMenuItem:sender]; - if (node) - [self openURL:node->url() disposition:NEW_FOREGROUND_TAB]; - [self closeAllBookmarkFolders]; -} - -- (IBAction)openBookmarkInNewWindow:(id)sender { - const BookmarkNode* node = [self nodeFromMenuItem:sender]; - if (node) { - [self openURL:node->url() disposition:NEW_WINDOW]; - [self unhighlightBookmark:node]; - } -} - -- (IBAction)openBookmarkInIncognitoWindow:(id)sender { - const BookmarkNode* node = [self nodeFromMenuItem:sender]; - if (node) { - [self openURL:node->url() disposition:OFF_THE_RECORD]; - [self unhighlightBookmark:node]; - } -} - -- (IBAction)editBookmark:(id)sender { - [self closeFolderAndStopTrackingMenus]; - const BookmarkNode* node = [self nodeFromMenuItem:sender]; - if (!node) - return; - - [self unhighlightBookmark:node]; - - if (node->is_folder()) { - BookmarkNameFolderController* controller = - [[BookmarkNameFolderController alloc] - initWithParentWindow:[[self view] window] - profile:browser_->profile() - node:node]; - [controller runAsModalSheet]; - return; - } - - // This jumps to a platform-common routine at this point (which may just - // jump back to objc or may use the WebUI dialog). - // - // TODO(jrg): identify when we NO_TREE. I can see it in the code - // for the other platforms but can't find a way to trigger it in the - // UI. - BookmarkEditor::Show([[self view] window], - browser_->profile(), - BookmarkEditor::EditDetails::EditNode(node), - BookmarkEditor::SHOW_TREE); -} - -- (IBAction)cutBookmark:(id)sender { - const BookmarkNode* node = [self nodeFromMenuItem:sender]; - if (node) { - std::vector<const BookmarkNode*> nodes; - nodes.push_back(node); - bookmark_utils::CopyToClipboard(bookmarkModel_, nodes, true); - } -} - -- (IBAction)copyBookmark:(id)sender { - const BookmarkNode* node = [self nodeFromMenuItem:sender]; - if (node) { - std::vector<const BookmarkNode*> nodes; - nodes.push_back(node); - bookmark_utils::CopyToClipboard(bookmarkModel_, nodes, false); - } -} - -// Paste the copied node immediately after the node for which the context -// menu has been presented if the node is a non-folder bookmark, otherwise -// past at the end of the folder node. -- (IBAction)pasteBookmark:(id)sender { - const BookmarkNode* node = [self nodeFromMenuItem:sender]; - if (node) { - int index = -1; - if (node != bookmarkModel_->bookmark_bar_node() && !node->is_folder()) { - const BookmarkNode* parent = node->parent(); - index = parent->GetIndexOf(node) + 1; - if (index > parent->child_count()) - index = -1; - node = parent; - } - bookmark_utils::PasteFromClipboard(bookmarkModel_, node, index); - } -} - -- (IBAction)deleteBookmark:(id)sender { - const BookmarkNode* node = [self nodeFromMenuItem:sender]; - if (node) { - bookmarkModel_->Remove(node->parent(), - node->parent()->GetIndexOf(node)); - } -} - -- (IBAction)openAllBookmarks:(id)sender { - const BookmarkNode* node = [self nodeFromMenuItem:sender]; - if (node) { - [self openAll:node disposition:NEW_FOREGROUND_TAB]; - content::RecordAction(UserMetricsAction("OpenAllBookmarks")); - } -} - -- (IBAction)openAllBookmarksNewWindow:(id)sender { - const BookmarkNode* node = [self nodeFromMenuItem:sender]; - if (node) { - [self openAll:node disposition:NEW_WINDOW]; - content::RecordAction(UserMetricsAction("OpenAllBookmarksNewWindow")); - [self unhighlightBookmark:node]; - } -} - -- (IBAction)openAllBookmarksIncognitoWindow:(id)sender { - const BookmarkNode* node = [self nodeFromMenuItem:sender]; - if (node) { - [self openAll:node disposition:OFF_THE_RECORD]; - content::RecordAction( - UserMetricsAction("OpenAllBookmarksIncognitoWindow")); - - [self unhighlightBookmark:node]; - } -} - -// May be called from the bar or from a folder button. -// If called from a button, that button becomes the parent. -- (IBAction)addPage:(id)sender { - const BookmarkNode* parent = [self nodeFromMenuItem:sender]; - if (!parent) - parent = bookmarkModel_->bookmark_bar_node(); - GURL url; - string16 title; - chrome::GetURLAndTitleToBookmark( - browser_->tab_strip_model()->GetActiveWebContents(), - &url, &title); - BookmarkEditor::Show([[self view] window], - browser_->profile(), - BookmarkEditor::EditDetails::AddNodeInFolder( - parent, -1, url, title), - BookmarkEditor::SHOW_TREE); - - [self unhighlightBookmark:parent]; -} - -// Might be called from the context menu over the bar OR over a -// button. If called from a button, that button becomes a sibling of -// the new node. If called from the bar, add to the end of the bar. -- (IBAction)addFolder:(id)sender { - const BookmarkNode* senderNode = [self nodeFromMenuItem:sender]; - const BookmarkNode* parent = NULL; - int newIndex = 0; - // If triggered from the bar, folder or "others" folder - add as a child to - // the end. - // If triggered from a bookmark, add as next sibling. - BookmarkNode::Type type = senderNode->type(); - if (type == BookmarkNode::BOOKMARK_BAR || - type == BookmarkNode::OTHER_NODE || - type == BookmarkNode::MOBILE || - type == BookmarkNode::FOLDER) { - parent = senderNode; - newIndex = parent->child_count(); - } else { - parent = senderNode->parent(); - newIndex = parent->GetIndexOf(senderNode) + 1; - } - BookmarkNameFolderController* controller = - [[BookmarkNameFolderController alloc] - initWithParentWindow:[[self view] window] - profile:browser_->profile() - parent:parent - newIndex:newIndex]; - [controller runAsModalSheet]; - - [self unhighlightBookmark:senderNode]; -} - - (IBAction)importBookmarks:(id)sender { chrome::ShowImportDialog(browser_); } @@ -1067,96 +893,6 @@ void RecordAppLaunch(Profile* profile, GURL url) { return YES; } -// Enable or disable items. We are the menu delegate for both the bar -// and for bookmark folder buttons. -- (BOOL)validateUserInterfaceItem:(id<NSValidatedUserInterfaceItem>)anItem { - // NSUserInterfaceValidations says that the passed-in object has type - // |id<NSValidatedUserInterfaceItem>|, but this function needs to call the - // NSObject method -isKindOfClass: on the parameter. In theory, this is not - // correct, but this is probably a bug in the method signature. - NSMenuItem* item = static_cast<NSMenuItem*>(anItem); - // Yes for everything we don't explicitly deny. - if (![item isKindOfClass:[NSMenuItem class]]) - return YES; - - // Yes if we're not a special BookmarkMenu. - if (![[item menu] isKindOfClass:[BookmarkMenu class]]) - return YES; - - // No if we think it's a special BookmarkMenu but have trouble. - const BookmarkNode* node = [self nodeFromMenuItem:item]; - if (!node) - return NO; - - // If this is the bar menu, we only have things to do if there are - // buttons. If this is a folder button menu, we only have things to - // do if the folder has items. - NSMenu* menu = [item menu]; - BOOL thingsToDo = NO; - if (menu == [[self view] menu]) { - thingsToDo = [buttons_ count] ? YES : NO; - } else { - if (node && node->is_folder() && !node->empty()) { - thingsToDo = YES; - } - } - - // Disable openAll* if we have nothing to do. - SEL action = [item action]; - if ((!thingsToDo) && - ((action == @selector(openAllBookmarks:)) || - (action == @selector(openAllBookmarksNewWindow:)) || - (action == @selector(openAllBookmarksIncognitoWindow:)))) { - return NO; - } - - bool can_edit = [self canEditBookmarks]; - if ((action == @selector(editBookmark:)) || - (action == @selector(deleteBookmark:)) || - (action == @selector(cutBookmark:)) || - (action == @selector(copyBookmark:))) { - if (![self canEditBookmark:node]) - return NO; - if (action != @selector(copyBookmark:) && !can_edit) - return NO; - } - - if (action == @selector(pasteBookmark:) && - (!bookmark_utils::CanPasteFromClipboard(node) || !can_edit)) { - return NO; - } - - if ((!can_edit) && - ((action == @selector(addPage:)) || - (action == @selector(addFolder:)))) { - return NO; - } - - Profile* profile = browser_->profile(); - // If this is an incognito window, don't allow "open in incognito". - if ((action == @selector(openBookmarkInIncognitoWindow:)) || - (action == @selector(openAllBookmarksIncognitoWindow:))) { - if (profile->IsOffTheRecord() || - IncognitoModePrefs::GetAvailability(profile->GetPrefs()) == - IncognitoModePrefs::DISABLED) { - return NO; - } - } - - // If Incognito mode is forced, do not let open bookmarks in normal window. - if ((action == @selector(openBookmark:)) || - (action == @selector(openAllBookmarksNewWindow:)) || - (action == @selector(openAllBookmarks:))) { - if (IncognitoModePrefs::GetAvailability(profile->GetPrefs()) == - IncognitoModePrefs::FORCED) { - return NO; - } - } - - // Enabled by default. - return YES; -} - // Actually open the URL. This is the last chance for a unit test to // override. - (void)openURL:(GURL)url disposition:(WindowOpenDisposition)disposition { @@ -1429,23 +1165,11 @@ void RecordAppLaunch(Profile* profile, GURL url) { [self positionOffTheSideButton]; } -// Now that the model is loaded, set the bookmark bar root as the node -// represented by the bookmark bar (default, background) menu. -- (void)setNodeForBarMenu { - const BookmarkNode* node = bookmarkModel_->bookmark_bar_node(); - BookmarkMenu* menu = static_cast<BookmarkMenu*>([[self view] menu]); - - // Make sure types are compatible - DCHECK(sizeof(long long) == sizeof(int64)); - [menu setRepresentedObject:[NSNumber numberWithLongLong:node->id()]]; -} - // To avoid problems with sync, changes that may impact the current // bookmark (e.g. deletion) make sure context menus are closed. This // prevents deleting a node which no longer exists. - (void)cancelMenuTracking { - [buttonContextMenu_ cancelTracking]; - [buttonFolderContextMenu_ cancelTracking]; + [contextMenuController_ cancelTracking]; } - (void)moveToState:(BookmarkBar::State)nextState @@ -1774,12 +1498,11 @@ void RecordAppLaunch(Profile* profile, GURL url) { // TODO(jrg): move much of the cell config into the BookmarkButtonCell class. - (BookmarkButtonCell*)cellForBookmarkNode:(const BookmarkNode*)node { NSImage* image = node ? [self faviconForNode:node] : nil; - NSMenu* menu = node && node->is_folder() ? buttonFolderContextMenu_ : - buttonContextMenu_; - BookmarkButtonCell* cell = [BookmarkButtonCell buttonCellForNode:node - contextMenu:menu - cellText:nil - cellImage:image]; + BookmarkButtonCell* cell = + [BookmarkButtonCell buttonCellForNode:node + menuController:contextMenuController_ + cellText:nil + cellImage:image]; [cell setTag:kStandardButtonTypeWithLimitedClickFeedback]; // Note: a quirk of setting a cell's text color is that it won't work @@ -1855,20 +1578,6 @@ void RecordAppLaunch(Profile* profile, GURL url) { return tag; } -// Return the BookmarkNode associated with the given NSMenuItem. Can -// return NULL which means "do nothing". One case where it would -// return NULL is if the bookmark model gets modified while you have a -// context menu open. -- (const BookmarkNode*)nodeFromMenuItem:(id)sender { - const BookmarkNode* node = NULL; - BookmarkMenu* menu = (BookmarkMenu*)[sender menu]; - if ([menu isKindOfClass:[BookmarkMenu class]]) { - int64 id = [menu id]; - node = bookmarkModel_->GetNodeByID(id); - } - return node; -} - // Adapt appearance of buttons to the current theme. Called after // theme changes, or when our view is added to the view hierarchy. // Oddly, the view pings us instead of us pinging our view. This is @@ -2174,6 +1883,10 @@ static BOOL ValueInRangeInclusive(CGFloat low, CGFloat value, CGFloat high) { if (!model->IsLoaded()) return; + contextMenuController_.reset( + [[BookmarkContextMenuCocoaController alloc] + initWithBookmarkBarController:self + bookmarkModel:bookmarkModel_]); // If this is a rebuild request while we have a folder open, close it. // TODO(mrossetti): Eliminate the need for this because it causes the folder // menu to disappear after a cut/copy/paste/delete change. @@ -2192,7 +1905,6 @@ static BOOL ValueInRangeInclusive(CGFloat low, CGFloat value, CGFloat high) { [self addNonBookmarkButtonsToView]; [self addButtonsToView]; [self configureOffTheSideButtonContentsAndVisibility]; - [self setNodeForBarMenu]; [self reconfigureBookmarkBar]; } @@ -2837,16 +2549,4 @@ static BOOL ValueInRangeInclusive(CGFloat low, CGFloat value, CGFloat high) { return [folderController_ controllerForNode:node]; } -#pragma mark TestingAPI Only - -- (NSMenu*)buttonContextMenu { - return buttonContextMenu_; -} - -// Intentionally ignores ownership issues; used for testing and we try -// to minimize touching the object passed in (likely a mock). -- (void)setButtonContextMenu:(id)menu { - buttonContextMenu_ = menu; -} - @end diff --git a/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_controller_unittest.mm b/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_controller_unittest.mm index ddefd62..bb94ee4 100644 --- a/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_controller_unittest.mm +++ b/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_controller_unittest.mm @@ -23,7 +23,6 @@ #import "chrome/browser/ui/cocoa/bookmarks/bookmark_bar_view.h" #import "chrome/browser/ui/cocoa/bookmarks/bookmark_button.h" #import "chrome/browser/ui/cocoa/bookmarks/bookmark_button_cell.h" -#import "chrome/browser/ui/cocoa/bookmarks/bookmark_menu.h" #include "chrome/browser/ui/cocoa/cocoa_profile_test.h" #import "chrome/browser/ui/cocoa/view_resizer_pong.h" #include "chrome/test/base/model_test_utils.h" @@ -334,8 +333,6 @@ class BookmarkBarControllerTestBase : public CocoaProfileTest { class BookmarkBarControllerTest : public BookmarkBarControllerTestBase { public: - scoped_nsobject<BookmarkMenu> menu_; - scoped_nsobject<NSMenuItem> menu_item_; scoped_nsobject<NSButtonCell> cell_; scoped_nsobject<BookmarkBarControllerNoOpen> bar_; @@ -351,31 +348,6 @@ class BookmarkBarControllerTest : public BookmarkBarControllerTestBase { resizeDelegate:resizeDelegate_.get()]); InstallAndToggleBar(bar_.get()); - - // Create a menu/item to act like a sender - menu_.reset([[BookmarkMenu alloc] initWithTitle:@"I_dont_care"]); - menu_item_.reset([[NSMenuItem alloc] - initWithTitle:@"still_dont_care" - action:NULL - keyEquivalent:@""]); - cell_.reset([[NSButtonCell alloc] init]); - [menu_item_ setMenu:menu_.get()]; - } - - // Return a menu item that points to the given URL. - NSMenuItem* ItemForBookmarkBarMenu(GURL& gurl) { - BookmarkModel* model = BookmarkModelFactory::GetForProfile(profile()); - const BookmarkNode* parent = model->bookmark_bar_node(); - const BookmarkNode* node = model->AddURL(parent, parent->child_count(), - ASCIIToUTF16("A title"), gurl); - [menu_ setRepresentedObject:[NSNumber numberWithLongLong:node->id()]]; - return menu_item_; - } - - // Does NOT take ownership of node. - NSMenuItem* ItemForBookmarkBarMenu(const BookmarkNode* node) { - [menu_ setRepresentedObject:[NSNumber numberWithLongLong:node->id()]]; - return menu_item_; } BookmarkBarControllerNoOpen* noOpenBar() { @@ -765,28 +737,6 @@ TEST_F(BookmarkBarControllerTest, OpenBookmark) { EXPECT_EQ(noOpenBar()->dispositions_[0], CURRENT_TAB); } -// Confirm opening of bookmarks works from the menus (different -// dispositions than clicking on the button). -TEST_F(BookmarkBarControllerTest, OpenBookmarkFromMenus) { - const char* urls[] = { "http://walla.walla.ding.dong.com", - "http://i_dont_know.com", - "http://cee.enn.enn.dot.com" }; - SEL selectors[] = { @selector(openBookmarkInNewForegroundTab:), - @selector(openBookmarkInNewWindow:), - @selector(openBookmarkInIncognitoWindow:) }; - WindowOpenDisposition dispositions[] = { NEW_FOREGROUND_TAB, - NEW_WINDOW, - OFF_THE_RECORD }; - for (unsigned int i = 0; i < arraysize(dispositions); i++) { - GURL gurl(urls[i]); - [bar_ performSelector:selectors[i] - withObject:ItemForBookmarkBarMenu(gurl)]; - EXPECT_EQ(noOpenBar()->urls_[0], gurl); - EXPECT_EQ(noOpenBar()->dispositions_[0], dispositions[i]); - [bar_ clear]; - } -} - TEST_F(BookmarkBarControllerTest, TestAddRemoveAndClear) { BookmarkModel* model = BookmarkModelFactory::GetForProfile(profile()); NSView* buttonView = [bar_ buttonView]; @@ -937,9 +887,9 @@ TEST_F(BookmarkBarControllerTest, DeleteBookmark) { } EXPECT_EQ(3, parent->child_count()); const BookmarkNode* middle_node = parent->GetChild(1); + model->Remove(middle_node->parent(), + middle_node->parent()->GetIndexOf(middle_node)); - NSMenuItem* item = ItemForBookmarkBarMenu(middle_node); - [bar_ deleteBookmark:item]; EXPECT_EQ(2, parent->child_count()); EXPECT_EQ(parent->GetChild(0)->url(), GURL(urls[0])); // node 2 moved into spot 1 @@ -1073,63 +1023,6 @@ TEST_F(BookmarkBarControllerTest, DropBookmarks) { } } -TEST_F(BookmarkBarControllerTest, TestButtonOrBar) { - BookmarkModel* model = BookmarkModelFactory::GetForProfile(profile()); - GURL gurl1("http://www.google.com"); - string16 title1(ASCIIToUTF16("x")); - bookmark_utils::AddIfNotBookmarked(model, gurl1, title1); - - GURL gurl2("http://www.google.com/gurl_power"); - string16 title2(ASCIIToUTF16("gurl power")); - bookmark_utils::AddIfNotBookmarked(model, gurl2, title2); - - NSButton* first = [[bar_ buttons] objectAtIndex:0]; - NSButton* second = [[bar_ buttons] objectAtIndex:1]; - EXPECT_TRUE(first && second); - - NSMenuItem* menuItem = [[[first cell] menu] itemAtIndex:0]; - const BookmarkNode* node = [bar_ nodeFromMenuItem:menuItem]; - EXPECT_TRUE(node); - EXPECT_EQ(node, model->bookmark_bar_node()->GetChild(0)); - - menuItem = [[[second cell] menu] itemAtIndex:0]; - node = [bar_ nodeFromMenuItem:menuItem]; - EXPECT_TRUE(node); - EXPECT_EQ(node, model->bookmark_bar_node()->GetChild(1)); - - menuItem = [[[bar_ view] menu] itemAtIndex:0]; - node = [bar_ nodeFromMenuItem:menuItem]; - EXPECT_TRUE(node); - EXPECT_EQ(node, model->bookmark_bar_node()); -} - -TEST_F(BookmarkBarControllerTest, TestMenuNodeAndDisable) { - BookmarkModel* model = BookmarkModelFactory::GetForProfile(profile()); - const BookmarkNode* parent = model->bookmark_bar_node(); - const BookmarkNode* folder = model->AddFolder(parent, - parent->child_count(), - ASCIIToUTF16("folder")); - NSButton* button = [[bar_ buttons] objectAtIndex:0]; - EXPECT_TRUE(button); - - // Confirm the menu knows which node it is talking about - BookmarkMenu* menu = static_cast<BookmarkMenu*>([[button cell] menu]); - EXPECT_TRUE(menu); - EXPECT_TRUE([menu isKindOfClass:[BookmarkMenu class]]); - EXPECT_EQ(folder->id(), [menu id]); - - // Make sure "Open All" is disabled (nothing to open -- no children!) - // (Assumes "Open All" is the 1st item) - NSMenuItem* item = [menu itemAtIndex:0]; - EXPECT_FALSE([bar_ validateUserInterfaceItem:item]); - - // Now add a child and make sure the item would be enabled. - model->AddURL(folder, folder->child_count(), - ASCIIToUTF16("super duper wide title"), - GURL("http://superfriends.hall-of-justice.edu")); - EXPECT_TRUE([bar_ validateUserInterfaceItem:item]); -} - TEST_F(BookmarkBarControllerTest, TestDragButton) { WithNoAnimation at_all; BookmarkModel* model = BookmarkModelFactory::GetForProfile(profile()); @@ -1517,71 +1410,6 @@ TEST_F(BookmarkBarControllerTest, DropDestination) { } } -TEST_F(BookmarkBarControllerTest, NodeDeletedWhileMenuIsOpen) { - BookmarkModel* model = BookmarkModelFactory::GetForProfile(profile()); - [bar_ loaded:model]; - - const BookmarkNode* parent = model->bookmark_bar_node(); - const BookmarkNode* initialNode = model->AddURL( - parent, parent->child_count(), - ASCIIToUTF16("initial"), - GURL("http://www.google.com")); - - NSMenuItem* item = ItemForBookmarkBarMenu(initialNode); - EXPECT_EQ(0U, noOpenBar()->urls_.size()); - - // Basic check of the menu item and an IBOutlet it can call. - EXPECT_EQ(initialNode, [bar_ nodeFromMenuItem:item]); - [bar_ openBookmarkInNewWindow:item]; - EXPECT_EQ(1U, noOpenBar()->urls_.size()); - [bar_ clear]; - - // Now delete the node and make sure things are happy (no crash, - // NULL node caught). - model->Remove(parent, parent->GetIndexOf(initialNode)); - EXPECT_EQ(nil, [bar_ nodeFromMenuItem:item]); - // Should not crash by referencing a deleted node. - [bar_ openBookmarkInNewWindow:item]; - // Confirm the above did nothing in case it somehow didn't crash. - EXPECT_EQ(0U, noOpenBar()->urls_.size()); - - // Confirm some more non-crashes. - [bar_ openBookmarkInNewForegroundTab:item]; - [bar_ openBookmarkInIncognitoWindow:item]; - [bar_ editBookmark:item]; - [bar_ copyBookmark:item]; - [bar_ deleteBookmark:item]; - [bar_ openAllBookmarks:item]; - [bar_ openAllBookmarksNewWindow:item]; - [bar_ openAllBookmarksIncognitoWindow:item]; -} - -TEST_F(BookmarkBarControllerTest, NodeDeletedWhileContextMenuIsOpen) { - BookmarkModel* model = BookmarkModelFactory::GetForProfile(profile()); - [bar_ loaded:model]; - - const BookmarkNode* parent = model->bookmark_bar_node(); - const BookmarkNode* folder = model->AddFolder(parent, - parent->child_count(), - ASCIIToUTF16("folder")); - const BookmarkNode* framma = model->AddURL(folder, folder->child_count(), - ASCIIToUTF16("f1"), - GURL("http://framma-lamma.com")); - - // Mock in a menu - id origMenu = [bar_ buttonContextMenu]; - id fakeMenu = [OCMockObject partialMockForObject:origMenu]; - [[fakeMenu expect] cancelTracking]; - [bar_ setButtonContextMenu:fakeMenu]; - - // Force a delete which should cancelTracking on the menu. - model->Remove(framma->parent(), framma->parent()->GetIndexOf(framma)); - - // Restore, then confirm cancelTracking was called. - [bar_ setButtonContextMenu:origMenu]; - EXPECT_OCMOCK_VERIFY(fakeMenu); -} - TEST_F(BookmarkBarControllerTest, CloseFolderOnAnimate) { BookmarkModel* model = BookmarkModelFactory::GetForProfile(profile()); [bar_ setStateAnimationsEnabled:YES]; @@ -1751,45 +1579,6 @@ public: const BookmarkNode* folder_; // Weak }; -TEST_F(BookmarkBarControllerOpenAllTest, OpenAllBookmarks) { - // Our first OpenAll... is from the bar itself. - [bar_ openAllBookmarks:ItemForBookmarkBarMenu(parent_)]; - BookmarkBarControllerOpenAllPong* specialBar = - (BookmarkBarControllerOpenAllPong*)bar_.get(); - EXPECT_EQ([specialBar dispositionDetected], NEW_FOREGROUND_TAB); - - // Now try an OpenAll... from a folder node. - [specialBar setDispositionDetected:IGNORE_ACTION]; // Reset - [bar_ openAllBookmarks:ItemForBookmarkBarMenu(folder_)]; - EXPECT_EQ([specialBar dispositionDetected], NEW_FOREGROUND_TAB); -} - -TEST_F(BookmarkBarControllerOpenAllTest, OpenAllNewWindow) { - // Our first OpenAll... is from the bar itself. - [bar_ openAllBookmarksNewWindow:ItemForBookmarkBarMenu(parent_)]; - BookmarkBarControllerOpenAllPong* specialBar = - (BookmarkBarControllerOpenAllPong*)bar_.get(); - EXPECT_EQ([specialBar dispositionDetected], NEW_WINDOW); - - // Now try an OpenAll... from a folder node. - [specialBar setDispositionDetected:IGNORE_ACTION]; // Reset - [bar_ openAllBookmarksNewWindow:ItemForBookmarkBarMenu(folder_)]; - EXPECT_EQ([specialBar dispositionDetected], NEW_WINDOW); -} - -TEST_F(BookmarkBarControllerOpenAllTest, OpenAllIncognito) { - // Our first OpenAll... is from the bar itself. - [bar_ openAllBookmarksIncognitoWindow:ItemForBookmarkBarMenu(parent_)]; - BookmarkBarControllerOpenAllPong* specialBar = - (BookmarkBarControllerOpenAllPong*)bar_.get(); - EXPECT_EQ([specialBar dispositionDetected], OFF_THE_RECORD); - - // Now try an OpenAll... from a folder node. - [specialBar setDispositionDetected:IGNORE_ACTION]; // Reset - [bar_ openAllBookmarksIncognitoWindow:ItemForBookmarkBarMenu(folder_)]; - EXPECT_EQ([specialBar dispositionDetected], OFF_THE_RECORD); -} - // Command-click on a folder should open all the bookmarks in it. TEST_F(BookmarkBarControllerOpenAllTest, CommandClickOnFolder) { NSButton* first = [[bar_ buttons] objectAtIndex:0]; diff --git a/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_folder_button_cell.h b/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_folder_button_cell.h index 09fba84..ec1ae6b 100644 --- a/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_folder_button_cell.h +++ b/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_folder_button_cell.h @@ -7,8 +7,6 @@ #import "chrome/browser/ui/cocoa/bookmarks/bookmark_button_cell.h" -class BookmarkNode; - // A button cell that handles drawing/highlighting of buttons in the // bookmark bar. This cell forwards mouseEntered/mouseExited events // to its control view so that pseudo-menu operations @@ -18,7 +16,7 @@ class BookmarkNode; // Create a button cell which draws without a theme and with a frame // color provided by the ThemeService defaults. + (id)buttonCellForNode:(const BookmarkNode*)node - contextMenu:(NSMenu*)contextMenu + menuController:(BookmarkContextMenuCocoaController*)menuController cellText:(NSString*)cellText cellImage:(NSImage*)cellImage; diff --git a/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_folder_button_cell.mm b/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_folder_button_cell.mm index 4c05c72..d38c6c7 100644 --- a/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_folder_button_cell.mm +++ b/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_folder_button_cell.mm @@ -7,12 +7,12 @@ @implementation BookmarkBarFolderButtonCell + (id)buttonCellForNode:(const BookmarkNode*)node - contextMenu:(NSMenu*)contextMenu + menuController:(BookmarkContextMenuCocoaController*)menuController cellText:(NSString*)cellText cellImage:(NSImage*)cellImage { id buttonCell = [[[BookmarkBarFolderButtonCell alloc] initForNode:node - contextMenu:contextMenu + menuController:menuController cellText:cellText cellImage:cellImage] autorelease]; diff --git a/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_folder_button_cell_unittest.mm b/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_folder_button_cell_unittest.mm index 5884de4..ec9bf5c 100644 --- a/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_folder_button_cell_unittest.mm +++ b/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_folder_button_cell_unittest.mm @@ -17,7 +17,7 @@ class BookmarkBarFolderButtonCellTest : public CocoaTest { TEST_F(BookmarkBarFolderButtonCellTest, Create) { scoped_nsobject<BookmarkBarFolderButtonCell> cell; cell.reset([[BookmarkBarFolderButtonCell buttonCellForNode:nil - contextMenu:nil + menuController:nil cellText:nil cellImage:nil] retain]); EXPECT_TRUE(cell); @@ -41,7 +41,7 @@ TEST_F(BookmarkBarFolderButtonCellTest, FaviconPositioning) { [[BookmarkButtonCell alloc] initTextCell:@"Testing"]); scoped_nsobject<BookmarkBarFolderButtonCell> folder_cell( [[BookmarkBarFolderButtonCell buttonCellForNode:nil - contextMenu:nil + menuController:nil cellText:@"Testing" cellImage:image] retain]); diff --git a/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_folder_controller.h b/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_folder_controller.h index 6da954c..d0b5a41 100644 --- a/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_folder_controller.h +++ b/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_folder_controller.h @@ -13,17 +13,16 @@ @class BookmarkBarController; @class BookmarkBarFolderView; -@class BookmarkFolderTarget; @class BookmarkBarFolderHoverState; @class BookmarkBarFolderWindow; @class BookmarkBarFolderWindowContentView; +@class BookmarkFolderTarget; // A controller for the pop-up windows from bookmark folder buttons // which look sort of like menus. @interface BookmarkBarFolderController : NSWindowController<BookmarkButtonDelegate, - BookmarkButtonControllerProtocol, - NSUserInterfaceValidations> { + BookmarkButtonControllerProtocol> { @private // The button whose click opened us. scoped_nsobject<BookmarkButton> parentButton_; @@ -98,12 +97,6 @@ // setShowsBorderOnlyWhileMouseInside bug. BookmarkButton* buttonThatMouseIsIn_; - // The context menu for a bookmark button which represents an URL. - IBOutlet NSMenu* buttonMenu_; - - // The context menu for a bookmark button which represents a folder. - IBOutlet NSMenu* folderMenu_; - // We model hover state as a state machine with specific allowable // transitions. |hoverState_| is the state of this machine at any // given time. @@ -180,30 +173,11 @@ // and altering the contents of the off-the-side folder. - (void)reconfigureMenu; -// Actions from a context menu over a button or folder. -- (IBAction)cutBookmark:(id)sender; -- (IBAction)copyBookmark:(id)sender; -- (IBAction)pasteBookmark:(id)sender; -- (IBAction)deleteBookmark:(id)sender; - // Passed up by a child view to tell us of a desire to scroll. - (void)scrollWheel:(NSEvent *)theEvent; - (void)mouseDragged:(NSEvent*)theEvent; - -// Forwarded to the associated BookmarkBarController. -- (IBAction)addFolder:(id)sender; -- (IBAction)addPage:(id)sender; -- (IBAction)editBookmark:(id)sender; -- (IBAction)openBookmark:(id)sender; -- (IBAction)openAllBookmarks:(id)sender; -- (IBAction)openAllBookmarksIncognitoWindow:(id)sender; -- (IBAction)openAllBookmarksNewWindow:(id)sender; -- (IBAction)openBookmarkInIncognitoWindow:(id)sender; -- (IBAction)openBookmarkInNewForegroundTab:(id)sender; -- (IBAction)openBookmarkInNewWindow:(id)sender; - @property(assign, nonatomic) BOOL subFolderGrowthToRight; @end diff --git a/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_folder_controller.mm b/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_folder_controller.mm index 5eedc13..0e8eb20 100644 --- a/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_folder_controller.mm +++ b/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_folder_controller.mm @@ -305,8 +305,6 @@ struct LayoutMetrics { [button setTarget:nil]; [button setAction:nil]; } - [buttonMenu_ setDelegate:nil]; - [folderMenu_ setDelegate:nil]; // Note: we don't need to // [NSObject cancelPreviousPerformRequestsWithTarget:self]; @@ -360,10 +358,11 @@ struct LayoutMetrics { - (BookmarkButtonCell*)cellForBookmarkNode:(const BookmarkNode*)child { NSImage* image = child ? [barController_ faviconForNode:child] : nil; - NSMenu* menu = child ? child->is_folder() ? folderMenu_ : buttonMenu_ : nil; + BookmarkContextMenuCocoaController* menuController = + [barController_ menuController]; BookmarkBarFolderButtonCell* cell = [BookmarkBarFolderButtonCell buttonCellForNode:child - contextMenu:menu + menuController:menuController cellText:nil cellImage:image]; [cell setTag:kStandardButtonTypeWithLimitedClickFeedback]; @@ -1133,70 +1132,6 @@ struct LayoutMetrics { } } -#pragma mark Actions Forwarded to Parent BookmarkBarController - -- (BOOL)validateUserInterfaceItem:(id<NSValidatedUserInterfaceItem>)item { - return [barController_ validateUserInterfaceItem:item]; -} - -- (IBAction)openBookmark:(id)sender { - [barController_ openBookmark:sender]; -} - -- (IBAction)openBookmarkInNewForegroundTab:(id)sender { - [barController_ openBookmarkInNewForegroundTab:sender]; -} - -- (IBAction)openBookmarkInNewWindow:(id)sender { - [barController_ openBookmarkInNewWindow:sender]; -} - -- (IBAction)openBookmarkInIncognitoWindow:(id)sender { - [barController_ openBookmarkInIncognitoWindow:sender]; -} - -- (IBAction)editBookmark:(id)sender { - [barController_ editBookmark:sender]; -} - -- (IBAction)cutBookmark:(id)sender { - [self closeBookmarkFolder:self]; - [barController_ cutBookmark:sender]; -} - -- (IBAction)copyBookmark:(id)sender { - [barController_ copyBookmark:sender]; -} - -- (IBAction)pasteBookmark:(id)sender { - [barController_ pasteBookmark:sender]; -} - -- (IBAction)deleteBookmark:(id)sender { - [self closeBookmarkFolder:self]; - [barController_ deleteBookmark:sender]; -} - -- (IBAction)openAllBookmarks:(id)sender { - [barController_ openAllBookmarks:sender]; -} - -- (IBAction)openAllBookmarksNewWindow:(id)sender { - [barController_ openAllBookmarksNewWindow:sender]; -} - -- (IBAction)openAllBookmarksIncognitoWindow:(id)sender { - [barController_ openAllBookmarksIncognitoWindow:sender]; -} - -- (IBAction)addPage:(id)sender { - [barController_ addPage:sender]; -} - -- (IBAction)addFolder:(id)sender { - [barController_ addFolder:sender]; -} - #pragma mark Drag & Drop // Find something like std::is_between<T>? I can't believe one doesn't exist. @@ -1663,7 +1598,7 @@ static BOOL ValueInRangeInclusive(CGFloat low, CGFloat value, CGFloat high) { case NSCarriageReturnCharacter: case NSEnterCharacter: if (selectedIndex_ >= 0 && selectedIndex_ < [self buttonCount]) { - [self openBookmark:[buttons_ objectAtIndex:selectedIndex_]]; + [barController_ openBookmark:[buttons_ objectAtIndex:selectedIndex_]]; return NO; // NO because the selection-handling code will close later. } else { return YES; // Triggering with no selection closes the menu. diff --git a/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_folder_controller_unittest.mm b/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_folder_controller_unittest.mm index a980691..6e5b30c 100644 --- a/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_folder_controller_unittest.mm +++ b/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_folder_controller_unittest.mm @@ -2,8 +2,6 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#import <Cocoa/Cocoa.h> - #include "base/basictypes.h" #include "base/memory/scoped_nsobject.h" #include "base/utf_string_conversions.h" @@ -23,6 +21,22 @@ #import "testing/gtest_mac.h" #include "testing/platform_test.h" + +namespace { + +const int kLotsOfNodesCount = 150; + +// Deletes the bookmark corresponding to |button|. +void DeleteBookmark(BookmarkButton* button, Profile* profile) { + const BookmarkNode* node = [button bookmarkNode]; + if (node) { + BookmarkModel* model = BookmarkModelFactory::GetForProfile(profile); + model->Remove(node->parent(), node->parent()->GetIndexOf(node)); + } +} + +} // namespace + // Add a redirect to make testing easier. @interface BookmarkBarFolderController(MakeTestingEasier) - (IBAction)openBookmarkFolderFromButton:(id)sender; @@ -94,10 +108,6 @@ @end -namespace { -const int kLotsOfNodesCount = 150; -}; - // Redirect certain calls so they can be seen by tests. @interface BookmarkBarControllerChildFolderRedirect : BookmarkBarController { @@ -559,7 +569,7 @@ TEST_F(BookmarkBarFolderControllerTest, MenuPlacementWhileScrollingDeleting) { // not moved. Pick a button which is near the top and visible. CGFloat oldTop = [menuWindow frame].origin.y + NSHeight([menuWindow frame]); BookmarkButton* button = [buttons objectAtIndex:3]; - [folder deleteBookmark:button]; + DeleteBookmark(button, profile()); CGFloat newTop = [menuWindow frame].origin.y + NSHeight([menuWindow frame]); EXPECT_CGFLOAT_EQ(oldTop, newTop); @@ -581,7 +591,7 @@ TEST_F(BookmarkBarFolderControllerTest, MenuPlacementWhileScrollingDeleting) { EXPECT_NE(oldTop, newTop); oldTop = newTop; button = [buttons objectAtIndex:buttonCounter + 3]; - [folder deleteBookmark:button]; + DeleteBookmark(button, profile()); newTop = [menuWindow frame].origin.y + NSHeight([menuWindow frame]); EXPECT_CGFLOAT_EQ(oldTop, newTop); @@ -593,7 +603,7 @@ TEST_F(BookmarkBarFolderControllerTest, MenuPlacementWhileScrollingDeleting) { --buttonCounter; } button = [buttons objectAtIndex:buttonCounter + 3]; - [folder deleteBookmark:button]; + DeleteBookmark(button, profile()); newTop = [menuWindow frame].origin.y + NSHeight([menuWindow frame]); EXPECT_CGFLOAT_EQ(oldTop - bookmarks::kScrollWindowVerticalMargin, newTop); } @@ -1567,7 +1577,7 @@ TEST_F(BookmarkBarFolderControllerClosingTest, DeleteClosesFolder) { // Delete the folder node and verify the window closed down by looking // for its controller again. - [folder deleteBookmark:folder]; + DeleteBookmark([folder parentButton], profile()); EXPECT_FALSE([folder folderController]); } diff --git a/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_view.mm b/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_view.mm index 36f41ee..be91c38 100644 --- a/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_view.mm +++ b/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_view.mm @@ -10,6 +10,7 @@ #import "chrome/browser/themes/theme_service.h" #import "chrome/browser/ui/cocoa/bookmarks/bookmark_bar_controller.h" #import "chrome/browser/ui/cocoa/bookmarks/bookmark_button.h" +#import "chrome/browser/ui/cocoa/bookmarks/bookmark_context_menu_cocoa_controller.h" #import "chrome/browser/ui/cocoa/bookmarks/bookmark_folder_target.h" #import "chrome/browser/ui/cocoa/browser_window_controller.h" #import "chrome/browser/ui/cocoa/themed_window.h" @@ -264,6 +265,10 @@ using content::UserMetricsAction; return NO; } +- (NSMenu*)menu { + return [[controller_ menuController] menuForBookmarkNode:NULL]; +} + - (void)setController:(id)controller { controller_ = controller; } diff --git a/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_view_unittest.mm b/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_view_unittest.mm index 6ae761d..f002a7e 100644 --- a/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_view_unittest.mm +++ b/chrome/browser/ui/cocoa/bookmarks/bookmark_bar_view_unittest.mm @@ -223,7 +223,7 @@ TEST_F(BookmarkBarViewTest, BookmarkButtonDragAndDrop) { scoped_nsobject<BookmarkButtonCell> button_cell( [[BookmarkButtonCell buttonCellForNode:node - contextMenu:nil + menuController:nil cellText:nil cellImage:nil] retain]); scoped_nsobject<BookmarkButton> dragged_button([[BookmarkButton alloc] init]); @@ -263,7 +263,7 @@ TEST_F(BookmarkBarViewTest, BookmarkButtonDragAndDropAcrossProfiles) { scoped_nsobject<BookmarkButtonCell> button_cell( [[BookmarkButtonCell buttonCellForNode:node - contextMenu:nil + menuController:nil cellText:nil cellImage:nil] retain]); scoped_nsobject<BookmarkButton> dragged_button([[BookmarkButton alloc] init]); diff --git a/chrome/browser/ui/cocoa/bookmarks/bookmark_button_cell.h b/chrome/browser/ui/cocoa/bookmarks/bookmark_button_cell.h index a56bd83..718f57b 100644 --- a/chrome/browser/ui/cocoa/bookmarks/bookmark_button_cell.h +++ b/chrome/browser/ui/cocoa/bookmarks/bookmark_button_cell.h @@ -7,6 +7,7 @@ #import "chrome/browser/ui/cocoa/gradient_button_cell.h" +@class BookmarkContextMenuCocoaController; class BookmarkNode; // A button cell that handles drawing/highlighting of buttons in the @@ -15,6 +16,10 @@ class BookmarkNode; // (e.g. hover-over to open) can be implemented. @interface BookmarkButtonCell : GradientButtonCell<NSMenuDelegate> { @private + // Controller for showing the context menu. Weak, owned by + // BookmarkBarController. + BookmarkContextMenuCocoaController* menuController_; + BOOL empty_; // is this an "empty" button placeholder button cell? // Starting index of bookmarkFolder children that we care to use. @@ -37,14 +42,14 @@ class BookmarkNode; // Create a button cell which draws with a theme. + (id)buttonCellForNode:(const BookmarkNode*)node - contextMenu:(NSMenu*)contextMenu + menuController:(BookmarkContextMenuCocoaController*)menuController cellText:(NSString*)cellText cellImage:(NSImage*)cellImage; // Initialize a button cell which draws with a theme. // Designated initializer. - (id)initForNode:(const BookmarkNode*)node - contextMenu:(NSMenu*)contextMenu + menuController:(BookmarkContextMenuCocoaController*)menuController cellText:(NSString*)cellText cellImage:(NSImage*)cellImage; diff --git a/chrome/browser/ui/cocoa/bookmarks/bookmark_button_cell.mm b/chrome/browser/ui/cocoa/bookmarks/bookmark_button_cell.mm index 7667860..9ea3ec2 100644 --- a/chrome/browser/ui/cocoa/bookmarks/bookmark_button_cell.mm +++ b/chrome/browser/ui/cocoa/bookmarks/bookmark_button_cell.mm @@ -8,7 +8,7 @@ #include "base/sys_string_conversions.h" #import "chrome/browser/bookmarks/bookmark_model.h" #import "chrome/browser/ui/cocoa/bookmarks/bookmark_button.h" -#import "chrome/browser/ui/cocoa/bookmarks/bookmark_menu.h" +#import "chrome/browser/ui/cocoa/bookmarks/bookmark_context_menu_cocoa_controller.h" #include "content/public/browser/user_metrics.h" #include "grit/generated_resources.h" #include "grit/ui_resources.h" @@ -31,12 +31,12 @@ const int kHierarchyButtonXMargin = 4; @synthesize drawFolderArrow = drawFolderArrow_; + (id)buttonCellForNode:(const BookmarkNode*)node - contextMenu:(NSMenu*)contextMenu + menuController:(BookmarkContextMenuCocoaController*)menuController cellText:(NSString*)cellText cellImage:(NSImage*)cellImage { id buttonCell = [[[BookmarkButtonCell alloc] initForNode:node - contextMenu:contextMenu + menuController:menuController cellText:cellText cellImage:cellImage] autorelease]; @@ -44,10 +44,11 @@ const int kHierarchyButtonXMargin = 4; } - (id)initForNode:(const BookmarkNode*)node - contextMenu:(NSMenu*)contextMenu + menuController:(BookmarkContextMenuCocoaController*)menuController cellText:(NSString*)cellText cellImage:(NSImage*)cellImage { if ((self = [super initTextCell:cellText])) { + menuController_ = menuController; [self configureBookmarkButtonCell]; [self setTextColor:[NSColor blackColor]]; [self setBookmarkNode:node]; @@ -55,7 +56,6 @@ const int kHierarchyButtonXMargin = 4; if (node) { NSString* title = base::SysUTF16ToNSString(node->GetTitle()); [self setBookmarkCellText:title image:cellImage]; - [self setMenu:contextMenu]; } else { [self setEmpty:YES]; [self setBookmarkCellText:l10n_util::GetNSString(IDS_MENU_EMPTY_SUBMENU) @@ -67,7 +67,10 @@ const int kHierarchyButtonXMargin = 4; } - (id)initTextCell:(NSString*)string { - return [self initForNode:nil contextMenu:nil cellText:string cellImage:nil]; + return [self initForNode:nil + menuController:nil + cellText:string + cellImage:nil]; } // Used by the off-the-side menu, the only case where a @@ -154,25 +157,17 @@ const int kHierarchyButtonXMargin = 4; pointerValue]); } -// We share the context menu among all bookmark buttons. To allow us -// to disambiguate when needed (e.g. "open bookmark"), we set the -// menu's associated bookmark node ID to be our represented object. - (NSMenu*)menu { if (empty_) return nil; - BookmarkMenu* menu = (BookmarkMenu*)[super menu]; - const BookmarkNode* node = - static_cast<const BookmarkNode*>([[self representedObject] pointerValue]); + const BookmarkNode* node = [self bookmarkNode]; if (node->parent() && node->parent()->type() == BookmarkNode::FOLDER) { content::RecordAction(UserMetricsAction("BookmarkBarFolder_CtxMenu")); } else { content::RecordAction(UserMetricsAction("BookmarkBar_CtxMenu")); } - - [menu setRepresentedObject:[NSNumber numberWithLongLong:node->id()]]; - - return menu; + return [menuController_ menuForBookmarkNode:node]; } - (void)setTitle:(NSString*)title { diff --git a/chrome/browser/ui/cocoa/bookmarks/bookmark_button_cell_unittest.mm b/chrome/browser/ui/cocoa/bookmarks/bookmark_button_cell_unittest.mm index 34d6e0e..30fd9b4 100644 --- a/chrome/browser/ui/cocoa/bookmarks/bookmark_button_cell_unittest.mm +++ b/chrome/browser/ui/cocoa/bookmarks/bookmark_button_cell_unittest.mm @@ -7,7 +7,6 @@ #include "chrome/browser/bookmarks/bookmark_model.h" #include "chrome/browser/bookmarks/bookmark_model_factory.h" #import "chrome/browser/ui/cocoa/bookmarks/bookmark_button_cell.h" -#import "chrome/browser/ui/cocoa/bookmarks/bookmark_menu.h" #include "chrome/browser/ui/cocoa/cocoa_profile_test.h" #import "chrome/browser/ui/cocoa/cocoa_test_helper.h" #include "grit/ui_resources.h" @@ -92,7 +91,7 @@ TEST_F(BookmarkButtonCellTest, MouseEnterStuff) { [[BookmarkButtonCell alloc] initTextCell:@"Testing"]); // Setting the menu should have no affect since we either share or // dynamically compose the menu given a node. - [cell setMenu:[[[BookmarkMenu alloc] initWithTitle:@"foo"] autorelease]]; + [cell setMenu:[[[NSMenu alloc] initWithTitle:@"foo"] autorelease]]; EXPECT_FALSE([cell menu]); BookmarkModel* model = BookmarkModelFactory::GetForProfile(profile()); @@ -100,11 +99,9 @@ TEST_F(BookmarkButtonCellTest, MouseEnterStuff) { [cell setEmpty:NO]; [cell setBookmarkNode:node]; EXPECT_TRUE([cell showsBorderOnlyWhileMouseInside]); - EXPECT_TRUE([cell menu]); [cell setEmpty:YES]; EXPECT_FALSE([cell.get() showsBorderOnlyWhileMouseInside]); - EXPECT_FALSE([cell menu]); } TEST_F(BookmarkButtonCellTest, BookmarkNode) { @@ -164,7 +161,7 @@ TEST_F(BookmarkButtonCellTest, FolderArrow) { GURL("http://www.google.com")); scoped_nsobject<BookmarkButtonCell> cell( [[BookmarkButtonCell alloc] initForNode:node - contextMenu:nil + menuController:nil cellText:@"small" cellImage:nil]); EXPECT_TRUE(cell.get()); @@ -191,7 +188,7 @@ TEST_F(BookmarkButtonCellTest, VerticalTextOffset) { [[GradientButtonCell alloc] initTextCell:@"Testing"]); scoped_nsobject<BookmarkButtonCell> bookmark_cell( [[BookmarkButtonCell alloc] initForNode:node - contextMenu:nil + menuController:nil cellText:@"small" cellImage:nil]); diff --git a/chrome/browser/ui/cocoa/bookmarks/bookmark_context_menu_cocoa_controller.h b/chrome/browser/ui/cocoa/bookmarks/bookmark_context_menu_cocoa_controller.h new file mode 100644 index 0000000..79518bb --- /dev/null +++ b/chrome/browser/ui/cocoa/bookmarks/bookmark_context_menu_cocoa_controller.h @@ -0,0 +1,66 @@ +// Copyright (c) 2013 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROME_BROWSER_UI_COCOA_BOOKMARKS_BOOKMARK_CONTEXT_MENU_COCOA_CONTROLLER_H_ +#define CHROME_BROWSER_UI_COCOA_BOOKMARKS_BOOKMARK_CONTEXT_MENU_COCOA_CONTROLLER_H_ + +#import <Cocoa/Cocoa.h> + +#include "base/basictypes.h" +#include "base/memory/scoped_nsobject.h" +#include "base/memory/scoped_ptr.h" + +@class BookmarkBarController; +class BookmarkContextMenuController; +class BookmarkContextMenuDelegateBridge; +class BookmarkModel; +class BookmarkNode; +@class MenuController; + +// A controller to manage bookmark bar context menus. One instance of this +// class exists per bookmark bar controller, used for all of its context menus +// (including those for items in bookmark bar folder drop downs). +@interface BookmarkContextMenuCocoaController : NSObject { + @private + // Bookmark bar controller, used for retrieving the Browser, Profile and + // NSWindow when instantiating the BookmarkContextMenuController. Weak, owns + // us. + BookmarkBarController* bookmarkBarController_; + + // Bookmark model - weak, owned by the Profile of the current Browser. + BookmarkModel* bookmarkModel_; + + // Helper for receiving C++ callbacks. + scoped_ptr<BookmarkContextMenuDelegateBridge> bridge_; + + // The current |bookmarkNode_| for which |bookmarkContextMenuController_| and + // |menuController_| are initialized. Weak, owned by the BookmarkModel. + const BookmarkNode* bookmarkNode_; + + // The cross-platform BookmarkContextMenuController, containing the logic for + // which items and corresponding actions exist in the menu. + scoped_ptr<BookmarkContextMenuController> bookmarkContextMenuController_; + + // Controller responsible for creating a Cocoa NSMenu from the cross-platform + // SimpleMenuModel owned by the |bookmarkContextMenuController_|. + scoped_nsobject<MenuController> menuController_; +} + +// Initializes the BookmarkContextMenuCocoaController for the given bookmark +// bar |controller| and |bookmarkModel|. +- (id)initWithBookmarkBarController:(BookmarkBarController*)controller + bookmarkModel:(BookmarkModel*)bookmarkModel; + +// Returns an NSMenu customized for |node|. Works under the assumption that +// only one menu should ever be shown at a time, and thus caches the last +// returned menu and re-creates it if a menu for a different node is requested. +// Passing in a NULL |node| will return the menu for the bookmark bar itself. +- (NSMenu*)menuForBookmarkNode:(const BookmarkNode*)node; + +// Closes the menu, if it's currently open. +- (void)cancelTracking; + +@end + +#endif // CHROME_BROWSER_UI_COCOA_BOOKMARKS_BOOKMARK_CONTEXT_MENU_COCOA_CONTROLLER_H_ diff --git a/chrome/browser/ui/cocoa/bookmarks/bookmark_context_menu_cocoa_controller.mm b/chrome/browser/ui/cocoa/bookmarks/bookmark_context_menu_cocoa_controller.mm new file mode 100644 index 0000000..824ba5b --- /dev/null +++ b/chrome/browser/ui/cocoa/bookmarks/bookmark_context_menu_cocoa_controller.mm @@ -0,0 +1,103 @@ +// Copyright (c) 2013 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#import "chrome/browser/ui/cocoa/bookmarks/bookmark_context_menu_cocoa_controller.h" + +#include "chrome/browser/bookmarks/bookmark_model.h" +#include "chrome/browser/ui/bookmarks/bookmark_context_menu_controller.h" +#import "chrome/browser/ui/cocoa/bookmarks/bookmark_bar_controller.h" +#import "chrome/browser/ui/cocoa/menu_controller.h" +#include "chrome/browser/ui/browser.h" + +@interface BookmarkContextMenuCocoaController (Private) +- (void)willExecuteCommand; +@end + +class BookmarkContextMenuDelegateBridge : + public BookmarkContextMenuControllerDelegate { + public: + BookmarkContextMenuDelegateBridge( + BookmarkContextMenuCocoaController* controller) + : controller_(controller) { + } + + virtual ~BookmarkContextMenuDelegateBridge() { + } + + virtual void CloseMenu() OVERRIDE { + [controller_ cancelTracking]; + } + + virtual void WillExecuteCommand() OVERRIDE { + [controller_ willExecuteCommand]; + } + + private: + BookmarkContextMenuCocoaController* controller_; // Weak; owns us. + + DISALLOW_COPY_AND_ASSIGN(BookmarkContextMenuDelegateBridge); +}; + +@implementation BookmarkContextMenuCocoaController + +- (id)initWithBookmarkBarController:(BookmarkBarController*)controller + bookmarkModel:(BookmarkModel*)bookmarkModel { + if ((self = [super init])) { + bookmarkBarController_ = controller; + bookmarkModel_ = bookmarkModel; + bridge_.reset(new BookmarkContextMenuDelegateBridge(self)); + } + return self; +} + +// Re-created |bookmarkContextMenuController_| and |menuController_| based on +// the current value of |bookmarkNode_|. +- (void)createMenuControllers { + const BookmarkNode* parent = NULL; + std::vector<const BookmarkNode*> nodes; + if (bookmarkNode_ == bookmarkModel_->other_node()) { + nodes.push_back(bookmarkNode_); + parent = bookmarkModel_->bookmark_bar_node(); + } else if (bookmarkNode_ != bookmarkModel_->bookmark_bar_node()) { + nodes.push_back(bookmarkNode_); + parent = bookmarkNode_->parent(); + } else { + parent = bookmarkModel_->bookmark_bar_node(); + nodes.push_back(parent); + } + + Browser* browser = [bookmarkBarController_ browser]; + bookmarkContextMenuController_.reset( + new BookmarkContextMenuController([bookmarkBarController_ browserWindow], + bridge_.get(), browser, + browser->profile(), browser, parent, + nodes)); + ui::SimpleMenuModel* menuModel = + bookmarkContextMenuController_->menu_model(); + menuController_.reset([[MenuController alloc] initWithModel:menuModel + useWithPopUpButtonCell:NO]); +} + +- (NSMenu*)menuForBookmarkNode:(const BookmarkNode*)node { + if (!node) + node = bookmarkModel_->bookmark_bar_node(); + + // Rebuild the menu if it's for a different node than the last request. + if (!menuController_ || node != bookmarkNode_) { + bookmarkNode_ = node; + [self createMenuControllers]; + } + return [menuController_ menu]; +} + +- (void)willExecuteCommand { + [bookmarkBarController_ closeFolderAndStopTrackingMenus]; + [bookmarkBarController_ unhighlightBookmark:bookmarkNode_]; +} + +- (void)cancelTracking { + [[menuController_ menu] cancelTracking]; +} + +@end diff --git a/chrome/browser/ui/cocoa/bookmarks/bookmark_editor_base_controller.mm b/chrome/browser/ui/cocoa/bookmarks/bookmark_editor_base_controller.mm index 6a73b9b..5702472 100644 --- a/chrome/browser/ui/cocoa/bookmarks/bookmark_editor_base_controller.mm +++ b/chrome/browser/ui/cocoa/bookmarks/bookmark_editor_base_controller.mm @@ -17,6 +17,7 @@ #import "chrome/browser/ui/cocoa/bookmarks/bookmark_all_tabs_controller.h" #import "chrome/browser/ui/cocoa/bookmarks/bookmark_cell_single_line.h" #import "chrome/browser/ui/cocoa/bookmarks/bookmark_editor_controller.h" +#import "chrome/browser/ui/cocoa/bookmarks/bookmark_name_folder_controller.h" #import "chrome/browser/ui/cocoa/bookmarks/bookmark_tree_browser_cell.h" #import "chrome/browser/ui/cocoa/browser_window_controller.h" #include "grit/generated_resources.h" @@ -63,14 +64,36 @@ // static; implemented for each platform. Update this function for new // classes derived from BookmarkEditorBaseController. -void BookmarkEditor::Show(gfx::NativeWindow parent_hwnd, +void BookmarkEditor::Show(gfx::NativeWindow parent_window, Profile* profile, const EditDetails& details, Configuration configuration) { + if (details.type == EditDetails::EXISTING_NODE && + details.existing_node->is_folder()) { + BookmarkNameFolderController* controller = + [[BookmarkNameFolderController alloc] + initWithParentWindow:parent_window + profile:profile + node:details.existing_node]; + [controller runAsModalSheet]; + return; + } + + if (details.type == EditDetails::NEW_FOLDER && details.urls.empty()) { + BookmarkNameFolderController* controller = + [[BookmarkNameFolderController alloc] + initWithParentWindow:parent_window + profile:profile + parent:details.parent_node + newIndex:details.index]; + [controller runAsModalSheet]; + return; + } + BookmarkEditorBaseController* controller = nil; if (details.type == EditDetails::NEW_FOLDER) { controller = [[BookmarkAllTabsController alloc] - initWithParentWindow:parent_hwnd + initWithParentWindow:parent_window profile:profile parent:details.parent_node url:details.url @@ -78,7 +101,7 @@ void BookmarkEditor::Show(gfx::NativeWindow parent_hwnd, configuration:configuration]; } else { controller = [[BookmarkEditorController alloc] - initWithParentWindow:parent_hwnd + initWithParentWindow:parent_window profile:profile parent:details.parent_node node:details.existing_node diff --git a/chrome/browser/ui/cocoa/bookmarks/bookmark_menu.h b/chrome/browser/ui/cocoa/bookmarks/bookmark_menu.h deleted file mode 100644 index bba953f..0000000 --- a/chrome/browser/ui/cocoa/bookmarks/bookmark_menu.h +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright (c) 2009 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#import <Cocoa/Cocoa.h> - -#include "base/basictypes.h" - - -// The context menu for bookmark buttons needs to know which -// BookmarkNode it is talking about. For example, "Open All" is -// disabled if the bookmark node is a folder and has no children. -@interface BookmarkMenu : NSMenu { - @private - int64 id_; // id of the bookmark node we represent. -} -- (void)setRepresentedObject:(id)object; -@property(nonatomic) int64 id; -@end - diff --git a/chrome/browser/ui/cocoa/bookmarks/bookmark_menu.mm b/chrome/browser/ui/cocoa/bookmarks/bookmark_menu.mm deleted file mode 100644 index 274edc7..0000000 --- a/chrome/browser/ui/cocoa/bookmarks/bookmark_menu.mm +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright (c) 2009 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#import "chrome/browser/ui/cocoa/bookmarks/bookmark_menu.h" - - -@implementation BookmarkMenu - -@synthesize id = id_; - -// Convention in the bookmark bar controller: the bookmark button -// cells have a BookmarkNode as their represented object. This object -// is placed in a BookmarkMenu at the time a cell is asked for its -// menu. -- (void)setRepresentedObject:(id)object { - if ([object isKindOfClass:[NSNumber class]]) { - id_ = static_cast<int64>([object longLongValue]); - } -} - -@end diff --git a/chrome/browser/ui/cocoa/bookmarks/bookmark_menu_unittest.mm b/chrome/browser/ui/cocoa/bookmarks/bookmark_menu_unittest.mm deleted file mode 100644 index cf444db..0000000 --- a/chrome/browser/ui/cocoa/bookmarks/bookmark_menu_unittest.mm +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "base/memory/scoped_nsobject.h" -#import "chrome/browser/ui/cocoa/bookmarks/bookmark_menu.h" -#import "chrome/browser/ui/cocoa/cocoa_test_helper.h" -#include "testing/gtest/include/gtest/gtest.h" -#include "testing/platform_test.h" - -namespace { - -class BookmarkMenuTest : public CocoaTest { -}; - -TEST_F(BookmarkMenuTest, Basics) { - scoped_nsobject<BookmarkMenu> menu([[BookmarkMenu alloc] - initWithTitle:@"title"]); - scoped_nsobject<NSMenuItem> item([[NSMenuItem alloc] initWithTitle:@"item" - action:NULL - keyEquivalent:@""]); - [menu addItem:item]; - long long l = 103849459459598948LL; // arbitrary - NSNumber* number = [NSNumber numberWithLongLong:l]; - [menu setRepresentedObject:number]; - EXPECT_EQ(l, [menu id]); -} - -} // namespace diff --git a/chrome/browser/ui/cocoa/menu_controller.mm b/chrome/browser/ui/cocoa/menu_controller.mm index 96f48c9..886d31a 100644 --- a/chrome/browser/ui/cocoa/menu_controller.mm +++ b/chrome/browser/ui/cocoa/menu_controller.mm @@ -97,7 +97,7 @@ } // Adds an item or a hierarchical menu to the item at the |index|, -// associated with the entry in the model indentifed by |modelIndex|. +// associated with the entry in the model identified by |modelIndex|. - (void)addItemToMenu:(NSMenu*)menu atIndex:(NSInteger)index fromModel:(ui::MenuModel*)model { diff --git a/chrome/chrome_browser_ui.gypi b/chrome/chrome_browser_ui.gypi index 7af12f2a..fc96995 100644 --- a/chrome/chrome_browser_ui.gypi +++ b/chrome/chrome_browser_ui.gypi @@ -383,6 +383,8 @@ 'browser/ui/cocoa/bookmarks/bookmark_button.mm', 'browser/ui/cocoa/bookmarks/bookmark_button_cell.h', 'browser/ui/cocoa/bookmarks/bookmark_button_cell.mm', + 'browser/ui/cocoa/bookmarks/bookmark_context_menu_cocoa_controller.h', + 'browser/ui/cocoa/bookmarks/bookmark_context_menu_cocoa_controller.mm', 'browser/ui/cocoa/bookmarks/bookmark_drag_drop.h', 'browser/ui/cocoa/bookmarks/bookmark_drag_drop.mm', 'browser/ui/cocoa/bookmarks/bookmark_editor_base_controller.h', @@ -391,8 +393,6 @@ 'browser/ui/cocoa/bookmarks/bookmark_editor_controller.mm', 'browser/ui/cocoa/bookmarks/bookmark_folder_target.h', 'browser/ui/cocoa/bookmarks/bookmark_folder_target.mm', - 'browser/ui/cocoa/bookmarks/bookmark_menu.h', - 'browser/ui/cocoa/bookmarks/bookmark_menu.mm', 'browser/ui/cocoa/bookmarks/bookmark_menu_bridge.h', 'browser/ui/cocoa/bookmarks/bookmark_menu_bridge.mm', 'browser/ui/cocoa/bookmarks/bookmark_menu_cocoa_controller.h', diff --git a/chrome/chrome_nibs.gyp b/chrome/chrome_nibs.gyp index 909458f..4ffce6d 100644 --- a/chrome/chrome_nibs.gyp +++ b/chrome/chrome_nibs.gyp @@ -73,8 +73,6 @@ 'browser/ui/cocoa/bookmarks/bookmark_button_cell.mm', 'browser/ui/cocoa/bookmarks/bookmark_editor_base_controller.h', 'browser/ui/cocoa/bookmarks/bookmark_editor_base_controller.mm', - 'browser/ui/cocoa/bookmarks/bookmark_menu.h', - 'browser/ui/cocoa/bookmarks/bookmark_menu.mm', 'browser/ui/cocoa/bookmarks/bookmark_name_folder_controller.h', 'browser/ui/cocoa/bookmarks/bookmark_name_folder_controller.mm', 'browser/ui/cocoa/browser/avatar_menu_bubble_controller.h', diff --git a/chrome/chrome_tests_unit.gypi b/chrome/chrome_tests_unit.gypi index 502fe04..21c5cd2 100644 --- a/chrome/chrome_tests_unit.gypi +++ b/chrome/chrome_tests_unit.gypi @@ -1280,7 +1280,6 @@ 'browser/ui/cocoa/bookmarks/bookmark_folder_target_unittest.mm', 'browser/ui/cocoa/bookmarks/bookmark_menu_bridge_unittest.mm', 'browser/ui/cocoa/bookmarks/bookmark_menu_cocoa_controller_unittest.mm', - 'browser/ui/cocoa/bookmarks/bookmark_menu_unittest.mm', 'browser/ui/cocoa/bookmarks/bookmark_model_observer_for_cocoa_unittest.mm', 'browser/ui/cocoa/bookmarks/bookmark_name_folder_controller_unittest.mm', 'browser/ui/cocoa/bookmarks/bookmark_tree_browser_cell_unittest.mm', diff --git a/ui/base/models/simple_menu_model.cc b/ui/base/models/simple_menu_model.cc index 5e947aa..dcfacd7b 100644 --- a/ui/base/models/simple_menu_model.cc +++ b/ui/base/models/simple_menu_model.cc @@ -103,8 +103,7 @@ void SimpleMenuModel::AddRadioItemWithStringId(int command_id, int string_id, AddRadioItem(command_id, l10n_util::GetStringUTF16(string_id), group_id); } -void SimpleMenuModel::AddSeparator(MenuSeparatorType separator_type) -{ +void SimpleMenuModel::AddSeparator(MenuSeparatorType separator_type) { if (items_.empty()) { if (separator_type == NORMAL_SEPARATOR) { return; |