summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorshess@chromium.org <shess@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-08-03 17:59:46 +0000
committershess@chromium.org <shess@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-08-03 17:59:46 +0000
commit7dc7633c2f1a5afab62b90441b49741f168d7d51 (patch)
tree89ca1509869715e0ffef64ecb65c8b2557b2c1cd
parent9bc0c4f776d55219a4aac4d85d88b51cd0010e88 (diff)
downloadchromium_src-7dc7633c2f1a5afab62b90441b49741f168d7d51.zip
chromium_src-7dc7633c2f1a5afab62b90441b49741f168d7d51.tar.gz
chromium_src-7dc7633c2f1a5afab62b90441b49741f168d7d51.tar.bz2
[Mac] Adjust toolbar spacing of browser actions for M6.
Toolbar.xib change brings browser-action container view out from under Omnibox. Push browser-action sizing code into controller to reduce exposed constants. Make size consistent with other toolbar buttons. 4px visual spacing from omnibox to first browser action (grippy in that area), between browser actions, and last action to wrench menu. browser_actions_overflow_Template.pdf resource for browser-action chevron. Chevron same height as browser actions. Get rid of divider between browser actions and wrench (future CL will integrate it into chevron button). Chevron 4px from Omnibox or 2px from last browser action, then 4px to wrench menu. Chevron button has hover like other buttons. BUG=50575 TEST=Browser-actions area still works right WRT spacing and rearranging and everything else. Review URL: http://codereview.chromium.org/3012044 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@54782 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/app/nibs/Toolbar.xib2
-rw-r--r--chrome/app/theme/browser_actions_overflow_Template.pdf279
-rw-r--r--chrome/browser/cocoa/extensions/browser_action_button.h9
-rw-r--r--chrome/browser/cocoa/extensions/browser_action_button.mm22
-rw-r--r--chrome/browser/cocoa/extensions/browser_actions_container_view.mm25
-rw-r--r--chrome/browser/cocoa/extensions/browser_actions_controller.h3
-rw-r--r--chrome/browser/cocoa/extensions/browser_actions_controller.mm82
-rw-r--r--chrome/chrome_dll.gypi1
8 files changed, 346 insertions, 77 deletions
diff --git a/chrome/app/nibs/Toolbar.xib b/chrome/app/nibs/Toolbar.xib
index 03c30d8..c0d5f13 100644
--- a/chrome/app/nibs/Toolbar.xib
+++ b/chrome/app/nibs/Toolbar.xib
@@ -44,7 +44,7 @@
<object class="NSCustomView" id="421615633">
<reference key="NSNextResponder" ref="928520650"/>
<int key="NSvFlags">-2147483383</int>
- <string key="NSFrame">{{570, -2}, {1, 35}}</string>
+ <string key="NSFrame">{{572, -2}, {2, 35}}</string>
<reference key="NSSuperview" ref="928520650"/>
<string key="NSClassName">BrowserActionsContainerView</string>
</object>
diff --git a/chrome/app/theme/browser_actions_overflow_Template.pdf b/chrome/app/theme/browser_actions_overflow_Template.pdf
new file mode 100644
index 0000000..9f1ba5e
--- /dev/null
+++ b/chrome/app/theme/browser_actions_overflow_Template.pdf
@@ -0,0 +1,279 @@
+%PDF-1.5 %
+1 0 obj <</Metadata 2 0 R/OCProperties<</D<</ON[5 0 R]/Order 6 0 R/RBGroups[]>>/OCGs[5 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <</Length 19675/Subtype/XML/Type/Metadata>>stream
+<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.0-c060 61.134777, 2010/02/12-17:32:00 ">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+ <rdf:Description rdf:about=""
+ xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
+ xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
+ xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#">
+ <xmpMM:RenditionClass>proof:pdf</xmpMM:RenditionClass>
+ <xmpMM:DocumentID>xmp.did:02801174072068118C14A9349BFD4BAD</xmpMM:DocumentID>
+ <xmpMM:InstanceID>uuid:ace3f8a0-a6df-4941-81a3-23eff89823fb</xmpMM:InstanceID>
+ <xmpMM:OriginalDocumentID>uuid:447173b7-1ac3-a84f-834d-0d130a6d1ba6</xmpMM:OriginalDocumentID>
+ <xmpMM:DerivedFrom rdf:parseType="Resource">
+ <stRef:instanceID>xmp.iid:01801174072068118C14A9349BFD4BAD</stRef:instanceID>
+ <stRef:documentID>xmp.did:01801174072068118C14A9349BFD4BAD</stRef:documentID>
+ <stRef:originalDocumentID>uuid:447173b7-1ac3-a84f-834d-0d130a6d1ba6</stRef:originalDocumentID>
+ <stRef:renditionClass>proof:pdf</stRef:renditionClass>
+ </xmpMM:DerivedFrom>
+ <xmpMM:History>
+ <rdf:Seq>
+ <rdf:li rdf:parseType="Resource">
+ <stEvt:action>saved</stEvt:action>
+ <stEvt:instanceID>xmp.iid:01801174072068118C14A9349BFD4BAD</stEvt:instanceID>
+ <stEvt:when>2010-07-30T15:21:54-07:00</stEvt:when>
+ <stEvt:softwareAgent>Adobe Illustrator CS5</stEvt:softwareAgent>
+ <stEvt:changed>/</stEvt:changed>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <stEvt:action>saved</stEvt:action>
+ <stEvt:instanceID>xmp.iid:02801174072068118C14A9349BFD4BAD</stEvt:instanceID>
+ <stEvt:when>2010-07-30T15:24-07:00</stEvt:when>
+ <stEvt:softwareAgent>Adobe Illustrator CS5</stEvt:softwareAgent>
+ <stEvt:changed>/</stEvt:changed>
+ </rdf:li>
+ </rdf:Seq>
+ </xmpMM:History>
+ </rdf:Description>
+ <rdf:Description rdf:about=""
+ xmlns:xmp="http://ns.adobe.com/xap/1.0/"
+ xmlns:xmpGImg="http://ns.adobe.com/xap/1.0/g/img/">
+ <xmp:CreateDate>2010-07-30T15:24:01-07:00</xmp:CreateDate>
+ <xmp:CreatorTool>Adobe Illustrator CS5</xmp:CreatorTool>
+ <xmp:ModifyDate>2010-07-30T15:24:01-07:00</xmp:ModifyDate>
+ <xmp:MetadataDate>2010-07-30T15:24:01-07:00</xmp:MetadataDate>
+ <xmp:Thumbnails>
+ <rdf:Alt>
+ <rdf:li rdf:parseType="Resource">
+ <xmpGImg:width>256</xmpGImg:width>
+ <xmpGImg:height>228</xmpGImg:height>
+ <xmpGImg:format>JPEG</xmpGImg:format>
+ <xmpGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA&#xA;AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK&#xA;DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f&#xA;Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgA5AEAAwER&#xA;AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA&#xA;AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB&#xA;UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE&#xA;1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ&#xA;qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy&#xA;obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp&#xA;0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo&#xA;+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq8I/O3/nKDRP&#xA;J/1jQvK5j1bzMtY5pq8rWzboeZB/eSj+Rdh+0duJVfN35ffn3538r+e5vNF9ezauupMBrlpPIaXE&#xA;Y6cf2Y2ir+74ii/ZpxqMVfeHlLzZoXmzy/aa9odwLnT7xOSN0ZGGzRyLvxdDswxVOMVdirsVdirs&#xA;VdirsVdirsVdirsVSHzp548seS9Dl1nzFepZ2ce0aneWWSm0cMY+J3PgPmaCpxV8R/nD/wA5EebP&#xA;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</xmpGImg:image>
+ </rdf:li>
+ </rdf:Alt>
+ </xmp:Thumbnails>
+ </rdf:Description>
+ <rdf:Description rdf:about=""
+ xmlns:pdf="http://ns.adobe.com/pdf/1.3/">
+ <pdf:Producer>Adobe PDF library 9.90</pdf:Producer>
+ </rdf:Description>
+ <rdf:Description rdf:about=""
+ xmlns:dc="http://purl.org/dc/elements/1.1/">
+ <dc:format>application/pdf</dc:format>
+ <dc:title>
+ <rdf:Alt>
+ <rdf:li xml:lang="x-default">browser_actions_overflow_Template</rdf:li>
+ </rdf:Alt>
+ </dc:title>
+ </rdf:Description>
+ <rdf:Description rdf:about=""
+ xmlns:xmpTPg="http://ns.adobe.com/xap/1.0/t/pg/"
+ xmlns:stDim="http://ns.adobe.com/xap/1.0/sType/Dimensions#"
+ xmlns:xmpG="http://ns.adobe.com/xap/1.0/g/">
+ <xmpTPg:NPages>1</xmpTPg:NPages>
+ <xmpTPg:HasVisibleTransparency>False</xmpTPg:HasVisibleTransparency>
+ <xmpTPg:HasVisibleOverprint>False</xmpTPg:HasVisibleOverprint>
+ <xmpTPg:MaxPageSize rdf:parseType="Resource">
+ <stDim:w>11.000000</stDim:w>
+ <stDim:h>19.000000</stDim:h>
+ <stDim:unit>Pixels</stDim:unit>
+ </xmpTPg:MaxPageSize>
+ <xmpTPg:PlateNames>
+ <rdf:Seq>
+ <rdf:li>Cyan</rdf:li>
+ <rdf:li>Magenta</rdf:li>
+ <rdf:li>Yellow</rdf:li>
+ <rdf:li>Black</rdf:li>
+ </rdf:Seq>
+ </xmpTPg:PlateNames>
+ <xmpTPg:SwatchGroups>
+ <rdf:Seq>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:groupName>Default Swatch Group</xmpG:groupName>
+ <xmpG:groupType>0</xmpG:groupType>
+ </rdf:li>
+ </rdf:Seq>
+ </xmpTPg:SwatchGroups>
+ </rdf:Description>
+ </rdf:RDF>
+</x:xmpmeta>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<?xpacket end="w"?> endstream endobj 3 0 obj <</Count 1/Kids[7 0 R]/Type/Pages>> endobj 7 0 obj <</ArtBox[0.682129 5.27246 10.3184 13.7275]/BleedBox[0.0 0.0 11.0 19.0]/Contents 8 0 R/LastModified(D:20100730152401-07'00')/MediaBox[0.0 0.0 11.0 19.0]/Parent 3 0 R/PieceInfo<</Illustrator 9 0 R>>/Resources<</ColorSpace<</CS0 10 0 R>>/ExtGState<</GS0 11 0 R>>/Properties<</MC0 5 0 R>>>>/TrimBox[0.0 0.0 11.0 19.0]/Type/Page>> endobj 8 0 obj <</Filter/FlateDecode/Length 154>>stream
+H\K
+1 9M3mǭU\ "a@]8X_dG~Mz g6Yf
+2k*DĒ0N'R^e8W3]]J:a
+WLgRO,Eb/˯N/K@>}0
+HyTSwoɞc [5laQIBHADED2mtFOE.c}08׎8GNg9w߽
+ 
+V)gB0iW8#8wթ8_٥ʨQQj@&A)/g>'K
+x-
+ꇆnQt}MA0alSx k&^>0|>_',G!"F$H:R!zFQd?r 9\A&G rQ hE]a4zBgE#H *B=0HIpp0MxJ$D1D, VĭKĻYdE"EI2EBGt4MzNr!YK ?%_&#(0J:EAiQ(()ӔWT6U@P+!~mD eԴ!hӦh/']B/ҏӿ?a0nhF!X8܌kc&5S6lIa2cKMA!E#ƒdV(kel }}Cq9
+N')].uJr
+ wG xR^[oƜchg`>b$*~ :Eb~,m,-ݖ,Y¬*6X[ݱF=3뭷Y~dó ti zf6~`{v.Ng#{}}jc1X6fm;'_9 r:8q:˜O:ϸ8uJqnv=MmR 4
+n3ܣkGݯz=[==<=G</z^^j^ ޡZQB0FX'+t<u-{__ߘ-G,}/Hh 8mW2p[AiAN#8$X?AKHI{!7<qWy(!46-aaaW @@`lYĎH,$((Yh7ъb<b*b<~L&Y&9%uMssNpJP%MI JlN<DHJIڐtCj'KwKgC%Nd |ꙪO=%mLuvx:HoL!ȨC&13#s$/Y=OsbsrnsO1v=ˏϟ\h٢#¼oZ<]TUt}`IÒsKV-Y,+>TB(/S,]6*-W:#7*e^YDY}UjAyT`#D="b{ų+ʯ:!kJ4Gmt}uC%K7YVfFY .=b?SƕƩȺy چ k5%4m7lqlioZlG+Zz͹mzy]?uuw|"űNwW&e֥ﺱ*|j5kyݭǯg^ykEklD_p߶7Dmo꿻1ml{Mś nLl<9O
+zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Km
+%!PS-Adobe-3.0 %%Creator: Adobe Illustrator(R) 15.0 %%AI8_CreatorVersion: 15.0.0 %%For: (Nicholas Jitkoff) () %%Title: (browser_actions_overflow_Template.pdf) %%CreationDate: 7/30/10 3:24 PM %%Canvassize: 16383 %%BoundingBox: 4 5 15 14 %%HiResBoundingBox: 4.68213 5.27246 14.3184 13.7275 %%DocumentProcessColors: Cyan Magenta Yellow Black %AI5_FileFormat 11.0 %AI12_BuildNumber: 399 %AI3_ColorUsage: Color %AI7_ImageSettings: 0 %%RGBProcessColor: 0 0 0 ([Registration]) %AI3_Cropmarks: 4 0 15 19 %AI3_TemplateBox: 8.5 9.5 8.5 9.5 %AI3_TileBox: -278.5 -346.5 297.5 387.5 %AI3_DocumentPreview: None %AI5_ArtSize: 14400 14400 %AI5_RulerUnits: 6 %AI9_ColorModel: 1 %AI5_ArtFlags: 0 0 0 1 0 0 1 0 0 %AI5_TargetResolution: 800 %AI5_NumLayers: 1 %AI9_OpenToView: -25 29 24 1573 891 26 0 0 60 304 0 0 0 1 1 0 1 1 0 1 %AI5_OpenViewLayers: 7 %%PageOrigin:-3 -3 %AI7_GridSettings: 72 144 72 144 1 0 0.8 0.8 0.8 0.9 0.9 0.9 %AI9_Flatten: 1 %AI12_CMSettings: 00.MS %%EndComments endstream endobj 17 0 obj <</Length 5391>>stream
+%%BoundingBox: 4 5 15 14 %%HiResBoundingBox: 4.68213 5.27246 14.3184 13.7275 %AI7_Thumbnail: 128 112 8 %%BeginData: 5250 Hex Bytes %0000330000660000990000CC0033000033330033660033990033CC0033FF %0066000066330066660066990066CC0066FF009900009933009966009999 %0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66 %00FF9900FFCC3300003300333300663300993300CC3300FF333300333333 %3333663333993333CC3333FF3366003366333366663366993366CC3366FF %3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99 %33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033 %6600666600996600CC6600FF6633006633336633666633996633CC6633FF %6666006666336666666666996666CC6666FF669900669933669966669999 %6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33 %66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF %9933009933339933669933999933CC9933FF996600996633996666996699 %9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33 %99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF %CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399 %CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933 %CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF %CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC %FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699 %FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33 %FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100 %000011111111220000002200000022222222440000004400000044444444 %550000005500000055555555770000007700000077777777880000008800 %000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB %DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF %00FF0000FFFFFF0000FF00FFFFFF00FFFFFF %524C45FD10FFA8F8A8FD37FF7DF8FD43FF52F8F8F8A8FD34FFA852F8F8F8 %FD40FFA827FD05F8A8FD32FFA827FD04F827FD3EFF7DFD08F8A8FD30FF7D %FD08F8FD3CFF52FD0AF8FD2FFF52FD09F827FD39FFA8FD0DF8FD2CFFA827 %FD0BF827FD37FF7DFD0EF827FD2AFFA8FD0EF852FD35FF52FD11F8FD28FF %52FD10F827FD32FFA827FD12F827FD25FFA852FD12F852FD30FF7DFD15F8 %27FD23FF7DFD15F852FD2EFF52FD17F827FD21FF52FD17F852FD2BFFA8FD %1AF827FD1FFF27FD19F852FD29FF7DFD1CF852FD1CFFA8FD1CF87DFD28FF %27FD1DF852FD1BFFFD1EF87DFD28FFFD1EF852FD1AFF7DFD1EF87DFD27FF %A8FD1EF852FD1AFF52FD1EF87DFD27FF7DFD1EF852FD1AFF27FD1EF87DFD %27FF52FD1EF87DFD19FFA8FD1FF87DFD27FF27FD1EF87DFD19FF7DFD1FF8 %A8FD26FFA8FD1FF87DFD19FF52FD1FF8A8FD26FFA8FD1FF87DFD19FF52FD %1EF827A8FD26FF52FD1FF87DFD19FF27FD1EF827A8FD26FF52FD1FF87DFD %19FFFD1FF827A8FD26FFFD20F87DFD18FFA8FD1FF827A8FD26FFFD1FF827 %A8FD18FF7DFD1FF827FD26FFA8FD20F8A8FD18FF52FD1FF827FD26FF7DFD %1FF827A8FD18FF27FD1FF827FD26FF52FD1FF827A8FD17FFA8FD20F827FD %26FF27FD1FF827A8FD17FF7DFD20F852FD25FFA8FD20F827A8FD17FF52FD %20F852FD25FF7DFD20F827FD18FF27FD20F852FD25FF52FD20F827FD18FF %FD21F852FD25FF27FD20F852FD17FFA8FD21F87DFD25FFFD21F852FD17FF %7DFD21F87DFD24FFA8FD21F852FD17FF7DFD21F87DFD24FF7DFD21F852FD %17FF27FD21F87DFD24FF52FD21F852FD17FF27FD21F8A8FD24FF27FD21F8 %52FD16FFA8FD22F8A8FD23FFA827FD21F87DFD16FF7DFD22F8A8FD23FF7D %FD22F87DFD16FF52FD22F8A8FD23FF7DFD22F87DFD16FF27FD22F8A8FD23 %FF52FD22F87DFD16FFFD23F8A8FD23FF27FD22F8A8FD15FFA8FD23F8FD24 %FFFD23F87DFD15FF7DFD23F8FD23FFA8FD23F8A8FD15FF52FD23F8FD23FF %7DFD23F8A8FD15FF27FD23F8FD23FF52FD23F8A8FD14FFA827FD22F827FD %23FF27FD23F8A8FD14FF7DFD23F827FD22FFA827FD23F8FD15FF7DFD23F8 %27FD22FF7DFD24F8FD15FF52FD23F827FD22FF52FD24F8FD15FF27FD23F8 %52FD22FF27FD24F8FD15FFFD24F852FD22FFFD24F827FD14FFA8FD24F852 %FD21FFA8FD24F827FD14FF7DFD24F852FD21FFA8FD24F827FD14FF52FD24 %F852FD20FFA8FD25F8A8FD13FF52FD24F827FD20FF27FD23F827A8FD13FF %A8FD24F827FD20FF52FD24F87DFD13FFA827FD23F827A8FD1FFF7DFD24F8 %7DFD14FF27FD23F827FD20FFA8FD24F87DFD14FF52FD23F827A8FD20FFFD %24F87DFD14FFA8FD23F827A8FD20FF27FD23F87DFD14FFA8FD24F8A8FD20 %FF52FD23F852FD15FF27FD23F8A8FD20FF52FD23F852FD15FF27FD23F87D %FD20FFA8FD23F852FD15FF52FD23F8A8FD20FFA827FD22F852FD15FF7DFD %23F87DFD21FF27FD22F852FD15FFA827FD22F87DFD21FF52FD22F827FD16 %FF27FD22F87DFD21FF7DFD22F852FD16FF52FD22F87DFD21FFA8FD22F827 %FD16FF7DFD22F852FD22FFFD22F827FD16FFA8FD22F852FD22FF27FD21F8 %27FD17FFFD22F852FD22FF52FD21F827FD17FF27FD21F852FD22FF7DFD22 %F8FD17FF52FD21F852FD22FFA8FD21F827FD17FF7DFD21F827FD22FFA827 %FD21F8FD17FF7DFD21F827FD23FF52FD21F8FD18FF27FD20F827FD23FF7D %FD21F8A8FD17FF27FD20F827FD23FFA8FD21F8A8FD17FF7DFD20F827FD23 %FFA8FD21F8A8FD17FF7DFD21F8FD24FF27FD20F8A8FD18FFFD21F8FD24FF %27FD20F8A8FD18FF27FD20F8FD24FF7DFD20F8A8FD18FF27FD20F8FD24FF %7DFD20F87DFD18FF52FD20F8A8FD23FFA827FD1FF87DFD18FFA8FD20F8A8 %FD24FF27FD1FF87DFD18FFA827FD1FF8A8FD24FF52FD1FF87DFD19FF27FD %1FF8A8FD24FF7DFD1FF852FD19FF52FD1FF8A8FD24FFA8FD1FF852FD19FF %7DFD1FF8A8FD25FFFD1FF852FD19FFA8FD1FF87DFD25FF27FD1EF852FD1A %FFFD1FF87DFD25FF52FD1EF852FD1AFF27FD1EF87DFD25FF7DFD1EF852FD %1AFF52FD1EF87DFD25FFA8FD1EF827FD1AFF7DFD1EF87DFD26FF27FD1DF8 %27FD1AFFA827FD1DF852FD26FF52FD1DF827A8FD1AFF27FD1DF852FD26FF %7DFD1DF827FD1BFF52FD1DF852FD27FF27FD1CF827A8FD1BFFFD1DF852FD %29FF52FD1AF827A8FD1DFF52FD1AF852FD2BFF7D27FD17F827A8FD1FFF7D %FD18F827FD2EFF52FD15F827A8FD21FFA827FD15F827FD30FF7DFD14F8A8 %FD24FF52FD13F827FD32FFA8FD12F8A8FD26FFA8FD11F827A8FD34FF27FD %0FF87DFD28FFA827FD0EF827A8FD36FF7DFD0DF87DFD2BFF52FD0CF827A8 %FD38FFA827FD0AF87DFD2DFF7DFD0BF8A8FD3BFF52FD08F87DFD2FFFA827 %FD07F827A8FD3DFF7DFD06F87DFD32FF52FD06F87DFD40FF27F8F8F87DFD %34FFA8FD04F87DFD42FF52F852FD37FF27F87DFD44FFA8FD39FFA8FDB3FF %FF %%EndData endstream endobj 18 0 obj <</Filter[/FlateDecode]/Length 18345>>stream
+HW{s9/wVpU `pvx
+oR)JP,FS 6<y%[19ys!\!#)R}pLa
+M؎jgtE@̱Dһ6yLBdwji"bo쎮2$RPvl,OˀLNDI*VpSb`
+trzjpjeu]x7+C<;$=!IVZ-H e3">TemMBp}€?Ű\0<`1%Y,5; ^'3Qp?jO- kNDV[KoV,\%EȄ>d^) NmTE\K}i7O$Aj<ⶄq;U#y
+ix/0ct*p86[蹦`-ch4/TZc!pI2'MEcB[a-j@)gWs tFP5t}nBQMV.j9/VL~=A;<'m9Ib lgCC#|ưa
+56_,
+!^[P]v#)ntc.O8œ'O_M
+ap<@0)aa@Uyx^U5/mٌ)6p
+ IJ!puJ]B
+Ojup,{.#fXCvB
+i UQEɔ'j%uݠT3.h
+| mD`S)<ʴ10H>@0pO-nF
+bzmq3`Qb*C9E23Ixgiۿ&L<(rowLO-h:`- +Rٯ" HN!KD![bG3iS5%SBV ԓ#Nwn[q+# YْLҪ@KM=/ Fi
+Twba7kd we߮l8eJ׊KTj%Zi{5`k+[̤MǨҧ0),FiwqQXQ642
+"𹮢iGgrޫ˝$c&漤9Kȫ9ُ)Vʕ8{T#:/Q8|НSږYΞcKlR5ƫwDU\[K,]^DX:*}IB)EtㆨvUk9-] ` 2’Z񺸄1Y?=C]ԣ8_-E{QYSeU\>A7eȶ>xFΕ=չ. 3ݧ'M$iL2}
+G<;jw/攆p
+U*ys4 Ogg7 xJk4u^6rFkԬT{{eiإ/8#wœLI1kHBrV:8|K7!qW@26V;݌V-,sJaLh+b#S{our}C#2];B̜)/AgKqG2MR'da~{GfE"kdک`A̓BHgB'?u-k AAyc5hE5(CC :2 e
+ٳ9Qlb‰ 23Aq}po_&xȋ>3͆0 "9[&ė{kcIN@c )x܂: ғ֖
+q'5qږL~s([BKnw bc{ 55\Tbf50{>)Vb"`磸Fb_p18s,p!\xs\poBd:hWd@֫ BJ95g"1}\{0FMDYk=YiF
+^X|c9}(|$BM+EBJyHgL͟5K*T,h<>-wq#{cW[b
+hZ8\ޥ?pq~w]1c2 L"ƺL(.yfl&e' =q,-lnl'~
+ G-ކ[ 3JK./u7bwA-kq̅g#vc^?nZ.;d,dRĜ]JyW֟G +V*2NWgV2Xr8k<i*[^մ!#::K\JN r 9 3
+ɅtJb=A\R3gN|ZvU*o՞VӉnĭϱ:yfPI>v#gk4buuTꕣ5,nҪooߥVA]Ffc~Le*XgS^0OsjFC4ěyE-VG^Z^biI^̴纬PRvd/oBĒ+Ez+[)E ͟k_.f=m+{v׎{Ez䚥ZOs
+֫TEg5:G'ljҫVqomtYu2Rt?χig2|˲*JT#~)&Qd7X{]?f)cvn1AMt~smE>W,*;u;SK$y>Vr?MV$<*.>cP=ɛV@G>R$\\m B[h= .5CΉV 'aǹڽkEMqİ7h/&_c:}R :񉮒q6MBԞܝ`藎X_d6ВJvk5wzOڇp-Fw{LCq-C;QuB)$H/׽q ?P"(mAS(rPRImSϺ7H/_?2L>_tޔcex?~^
+.Zm`qw&8JW&ח/LұFbT=^ 쭜*K˅4'ui:7q`AY+uf00g
+j%ݒė S|~vNJQ/:Ps՛SAk\[F|‘09 q?]<s:^VY@}/z?yHơQ;ӑpit2LK2
+y_MղlBR3V4olo8=I#ª"onLsuv7 S/ ;g$9Ql> ="+p4eoЖTqN_ -*2dǶMvN_8P1 3eLe#SD^Ȫ@(o0n^Rſ#sX f5BM_!Y߈M h_޽s2ظNbNZToPTUW @Q/M@@tḣ.Yܶ+J
+(_ js+N3*$(
+ahocJӒfDDߎ2Ek5Kkբڼb2#{Td(E<(h~;1i@{i' @(ߥ+  m ٬ߎkN\ck[ckbnٶX E+('rw8U6hNArE$Uufptv"W7i4f+e/#٠0n^~g(Z.\(h6+A4h7NS$(Aۭ14lw:/]? GF/;' ȱ+Ʈ ~<qC_P?Knjdx}gYJe)#{߄e7QqЗ?CO'A1&ɸc"[HrH{@%jVqD 1%Zij 9? 񾤓VLI{̭1.ӑlSߦ/Tg jǏZMqڍ6
+3_%ݤ?%JA!m
+v<.]~PUoWxy
+/͗|ߦ0u@_=C/^nM\!\—/_n__|m| m_|Y;-.]vY?9 en]v]Wiϒ>e7u$l}HѮڞ͙bWpaΞ:3׺fzI.I#>Gsp<ɃRf)
+kX$\V@Oe4f$V囧!.
+YyLc~!;r1,^m:)M4
+lT?L5&ԞP2BT^T8Vp,m2AVIwK/jl}}L:7A6)rڰ1Z YD -U{~*+ԂK3R =K8*x-.ݥzd<0:x1P:>}/hy0Bg/TNn"Y)+U9Z(keh;,+I`n)Ѫܘ--slQFII ]*6 ,Jg;BIa-z&mpB”EC<}j*uC&MRN
+G/6>(A'RY("/͕p}O0RG5)S= M3lR*9=z/:uhq(ېwdgVl<4/"1]/QZNM- ,rA e _:J桄FSCvĸ{Ƃw])}! & YC(+(/۬ǯm2:,VbRIJizHrP9:PlQ":|,)H9 V>o0 ҦU:-GTAfZ#::03G
+fq RP<-6@i#,W&W!hb<m)9-tqq 8c-!}rt2: D\rB2f-[~,řswlFď@TaC_ic=gQ8Fv G8y犘3杨 Jp5xXAj٢a1B!#mkf!b9[
+G2JlLMJ}s0D4aH{I2fCi8uZ1`ef?lh*?Sԝ3dzj9ЪI
+HXey˿Ao:11RUFClgR[Un<wq+-mg2サXR!%+wqVc{ak5cLBjF FhǸfgYifg=6lpbp>4kn1ӧS[DȎ?}h<)!lf&=?lr<QT қK$8aO
+E?{ 6(3XBb'U1Ο1`U¥hl9{\ʰ>l5-X[r|Ocf̛+Rḯڮo>:8 ktEnpQ \_ZZ2=/P6RIJ$ ?}yO v S~*e&Eµ-7:Yh '.F
+"_n g^;£,?`nw1ɛwW>pM`M1N/#{vkՐdqMߖ ]̖}
+IV>o[@J뾇n5uuLjgN*e^9|VLW-roIk^Y>Ct)ѐA$I\:؉Z@/ΑtYHS}Ht}01i^
+^7_fp?/Q.u)f~$T|F* sEiɚNert |ClK60*R;uZI]u[Vjh)ˆ
+qbbb0kù/{xMJ<n@ Ic(5!'j"azJ
+0qW,B j픘9=[iɺM!qKDZ\kʫt**'[$tPjy9)e9q5T]H'=)̴ p=mk {JlhX#c n_pjE$\>זiiG$rV& w=Tsu
+)1ɻ|yԝLhy†qWO@Yjn/&ニmG)LEѨ %7ب;E֓J麔ARnn9ݡւCC|5hM^2 G67Iodx웎:~ws/2i^%lw
+S)ˏVӋy@AdlrKVEG:kg-ƲyeTy
+
+|!L.
+_< ZGoB(2S 4;FD<483Uop dk2%']'A,}`R,{{y-uGngg}j6芲k5HuUe}B? bgv;T:)zY0J+); bl4CᏮў"%!-FlCM!X)Q˷gU:ՍnWv%!}t{K{\=ov#Mb{"NJiXZkwW_ؤ nT.{<[+<hykApFÉfR"bJ (EZNjzT%&VE5ɿSJcCS#@וSWdrW喙U8E(X-,B ( 0(?iZڦMڢ9w=oĜ6z)@P"g5F!((əfuw"XJQRA`Uv@ m~TWA
+{pmsh4ҟYVj+G
+?4&J{-}-~"uz+Ol
+
+I9Ac!ܒHDPqsvAM4Z=2GuТ"|mJexr'2˴c/5{5߉l5Z3n=ü\#vAy5֭^_ -7y_4<t> s/n3^/fNMǴw|ڸ{Vb^5&gZ>IX
+uMN$/mD-2$7a:paŐ]i]b/敥֕TbXgF.}y29iw9/B'1PO?E
+/DZ M֢c X0qLm q0Ïc`2p,S$`\@7!hT6YZY L
+U{?,wNՖ eL/[|A_,  [ ay!--NXT~ȋF*ԌScȞV[< [WL<dyFjCR0/4q"XZDP%C(z1vZ4n>zP;J*
+V=!M
+4E;_mFCS籈16JV @|yI(ߡ)]/bژmS-*ҦŠW¤1XcPT o^'u+y[Տ?WujQ8b!:MX0A
+ތSF!;\hx,{d-z%C'Cȥ )Ed@GfA.6IHS^{>1 qGCnNb,LJ!%7>V #GQYn*PS~' 72.dfݎ[f1cbUdaKv{<]
+5;`wR{Vv9~4@]Pq)<`1n{-gDk8$4{ m6.} 1W~ϺvxOSC\~+}vd8$
+b}vRk~ x.0S0"5de̬w:9^=$P.̗f)B;4XtmnIܸ ǘ=wRqWd/;2,2U|]P0l̈́;դDVN{^JaR>{H1/ȿ؝I\ni M\G*{n.}>f(3&b42ST/#ʟdK95Y%8?p3 KB}!5|J&8 7Ucb|tFur_'V!p·^k86Y)wQ`?Ȑ^!^uO,+G $Q? w׋Q?쇹F*\0yͷ&ыߍ:6/qhpfz]S_5u,S/3>985NWU;N\tiqˆu_gƩ;qb=L)J+ŴqzN3>)(T#k<kNxs:Z]S{7vU(k{+FyIYD{L_hI.?h\rιQȈ~Zp\m3.YJXxqlFv/{1^mΆ%qP@–
+) d͔fSJ:>uBUg^ OzxLrG`VasCR<NOaog؛&?g4y"]B"$ENZ1[m$Og[XӋEYku_KC$;A6Y7Vo) .:=У~*j=FtqRÙiLO1oV99 YET3+;j@-R\N%qաt8?].ZɅ%PILsmFQYj_$&oOfhkUe/j7"hͧ5LL.o W9q#ꚙ$ #dc#U q=dtc> Xݴtpl0`Ѧ>}?_[w\ MVb^JQc0iDSi0(CjP[ ;H=R_6\buN< > 981h*yȊY1Kc S4h1s쯲fV ZuI.[t,g7`_DbVXb, _dުnwv @P \-mUvy5I,љI0&Ԋs]q'aޗM9(2)8oP !\xd!\ZP<Rb摜IHv d>rnORHro}ߛr7YuEjAוԌݦ v
+iRU#g;cjJ4@ӬSFR6TinDt"V2wzZ%nexUKIGaVU:_
+HWZJ}% K@PG12"#qvwzC rNթ`9v[D3JD|6xiresf]$~-*
+~Xu5QN[o_
+Fu*ӅPeUHFHQǸR 92q,nl4[Հ01ЯR (
+-*j
+g^7^a
+P⬸ *>^M
+=͘Yxgr
+9tD՗ӛM@axh0 ]u\u;H8@ O/nyY2Z^BӰ/ 9{pWv3G<X48Ļ>:+pٓ-veOiV1TSrzh|aUVxR1#FF?"5 V:\ !s2Bo>yB=,v~5>9<ȄNv2jhpvaDo1y}bqR~X- o#9u_jmo2z;рwh8X|7 }$'Lf#-$%[PхPIbSn]2ƞ6͘,YFdu] *1M0Dz FGH lK!R>w}6Z1R0`𗄲s2v
+W]Rw?>c_QRwo_޾
+#5U}B]C5;<+ix8hKc,r*Vp=' #@~r{ %~`9 K7%LPl=}P
+8r0Y/ٔ OƷ>nhʼyNܕa8*bBշf Q,C
+'[58N^H Epaio'.L4뱝>h;
+*Hͷ:{?<<՛: &?fu$G@`qF(!6'R/M¸i52fս-:c:Zx8HVL~F- ܂?55xf)v[&|}p뱂xZ2`T_>+u";bpzB7l~1Ui2敚x2.gN
+tNl-DАv4?4fbByA) yHrDTk UV{aV+(O"X!{)Yҵy0zZ( 08MB?yy#lm J&3 Bi\wP̋Q&$Q)w cq@:!j5%Ǯn,~hyv|c(_$P/]]e<Bw{;=j a]![C{Cj8!b"{Ѕ7ʿMDf
+ho@cp".R sN{  ǀDZ
+qANE5" vPN!W),juN.2DvS ?=N !a1t| ,@09l GK2x*0p
+CkXNU89aB2{a)_7va1o,|؄eJ2
+fG Н{` ~sF/tk45GFsAۨ.˷XP6
+O[\?HсmcA"'t-v>3O,
+c}
+=$5h%_Rd]E˨"QI~k,DSwO/|p~#xWfߙ4Y1(im'"O|;6K>EYD=l
+{,vA|#8rCݫT֪J,(%Uh#]R\8%(U>HDԭ e7J|-zuS'ť3 O󈥔-L'=K]Szw~}pS|Pw E.Х%ŅS~X:ezc^(ֺM]VOrJ- bkA|-VLdL|7+z:Fhg/:3jy:H:BU +OBFT|f;$pz+T_e\%}\-::P`s<gmB^2 q̲f\~›^t\Ǵ}=9>]̚ز"w2}ٞFʔ e⊊3f%q4Kb#I)7ҿnFꢌM\_G?m)\dɲȨ%ש_@jjWJ{ԩ%&%e 4ڄ-.\OQy\Zs3,i5~u 2ƾ2FZO`Fbel:ч]}f;T Z0JG5X? Am~~JqAdo(+r\.JWhDu뽙$S?Jr,A*%t"olԪN@9ـvR;7$MHTTzz\YSUfa(EtHؕD:=w~hep3J L+C_ OcsG"'0/TЪk\2"rj0\`AOReWDp]tjBϯ ov6y垬+ר>Qkn'ܕ$5amZ`!ăFxԁXN` Cs)<T195 -<na,V:\D
+p]IOƣcTݕJ/'ON4B"1ܴ m CQ931M nvșv2 =+-Rg=,٭h. R*nT(c[Q ®%h%BSTAnМX5j>Y}܋RGpcYWP>C$ŮtQUwƍXpG) 94(=ֿMe2*ɺ_~k_|0BrP.
+y_ "€&ҶfbL)?ʙ3@z3L{Uay(t
+cp|=ʀ~W
+'>bU)-.9ĕ)>
+w ];N~؅Ob'[e+y1ԇz aE@z !. Pc^Y͎t1`RC10{Q@jc!HCpaCsᏡB {憁`/+`&T.Z
+nA X3zoË/Lj~#b{<Ǿ +-e0>_3
+"E =_< L*JH>PR^nm_PFa>RP_>lL3}
+͵<&~wڑ}yDbrrNDrX(wY+M[j(7aos`ܴ Й!cbH$9"Xs T}ͭ>o=!qdAe<N<`o0_r"X;i .G[q{Ek&CH=02 ݷRF;nzN} &<XoOmg3Sټzʺ cs =lyZ,>8Uy@eO$&
+À0
+j4#7QEj]0-`(:7v6"\mFhMD6W&2>+b)򴶭rRN镬{۹(mT ثK?ҍ*S]nHfJh.LxWGug}Wib5]| ?UR)(%Xd4T \TݼK?܉աrzRˆ/N'K-cm3Hܘ,~nKEkPQ:xIsvlXYm0/tSc>_YhSE?gѶU?v(9
+Bu8Ͽsshr|`|1Qf}w
+O;F]' o,R'O,A֖W@+sq`޹,o9%w.L_9 ehN_ '9lJ2g0[o~YB9 ZCbG/)/-c$W_j k
+D=-:=R$'.IL%=
+ ͞VO/P( ~FX/C,C$
+#k?oz|r G3s4K/-OIEG1VS 1k6n~
+"ɘnb
+  |}P|]@ݼ4X %8ʵG:7nX/g \Tydצ֗2(P,׺ƙU2+uVū!_JS/qP,b2]T^Ԏ JTTk=[Unoį*?EF`=ɤꎫvOB+oɫz0<;,d# MŰ"h2<knen5jxpܤBr r)E&f2 azBx9
+0eKE >Tr#:sh׾~<oC{8H _3t5sq݁D{D|KQ{C+#Ӿׯ>MHni}!WhO6s5c@W~$ #6ud8S+,&c
+$ >)Ǩe
+4,zy,\&uO62=DzDt\Ur*{ KαRaY<D E+ aP_.!YHg\u3쌱]ٸԵ[RC"g\|$)yYʨPO#<qҶNg_t^ /|+n|R>)Fx8gFt|%R;L07zza zL%<|QX˅jaUe'&i?Qϓ8|#cY _ S̢t !)󶿑[v|-X*]]3w׾r 7 3ݠI*pjGަq33FFjl^3pB+UfV`6'8
+XHh
+
+ȽfV
+.DzdۦZ!1pO 22z ĂiN3S2
+)V8q33ٮTd+z9[U
+?v+%MBӾi:znV\ؙnhӋ+@}K_şi ɛ-,4sQvx3\c-:`4;S]ͤx
+Mޥ:;.0POHpiZi)w
+%kXYm)uc`^6cb|2!AQ[͘F&wkR}0F(
+Ŝ^
+PC#Ol<
+f ,/sJ9짽<|0^);-m(!6tcvܑk2`s5;O%6{ fAY/f9B2>)uoHĶ0
+pHQx^:|>Wn
+:6L<@Q9}D!(gAS2ٞZ wDkV9_j,;rtQ,(TRAiiCʵ,֌Ɗ1 ԯ%Lj.;[K# +I3
+*fz{5ٚ-v.ArUM*J%Z"Ejil& htln*0Vѭ`nnz1:;l^5q0r>\o8A驪3\25d_#%*/:e וxϦ6CWR$FYsn<D#wa66
+`~aaP$|5&2CgB,/WL)m:PM䔫GËe tsp-qG{:g/
+0000000016 00000 n
+0000000144 00000 n
+0000019896 00000 n
+0000000000 00000 f
+0000020511 00000 n
+0000062124 00000 n
+0000019947 00000 n
+0000020289 00000 n
+0000023493 00000 n
+0000020810 00000 n
+0000020697 00000 n
+0000020581 00000 n
+0000020612 00000 n
+0000020845 00000 n
+0000023566 00000 n
+0000023749 00000 n
+0000024766 00000 n
+0000030208 00000 n
+0000048626 00000 n
+0000062147 00000 n
+trailer <</Size 21/Root 1 0 R/Info 20 0 R/ID[<39D08B82788F4999ADE822199DC32A3E><85118B3161AD4D6EBA577A1D082C5B4B>]>> startxref 62344 %%EOF \ No newline at end of file
diff --git a/chrome/browser/cocoa/extensions/browser_action_button.h b/chrome/browser/cocoa/extensions/browser_action_button.h
index 4c8346c..606b033 100644
--- a/chrome/browser/cocoa/extensions/browser_action_button.h
+++ b/chrome/browser/cocoa/extensions/browser_action_button.h
@@ -26,8 +26,6 @@ extern NSString* const kBrowserActionButtonDraggingNotification;
// Fired when the user drops the button.
extern NSString* const kBrowserActionButtonDragEndNotification;
-extern const CGFloat kBrowserActionWidth;
-
@interface BrowserActionButton : NSButton {
@private
// Bridge to proxy Chrome notifications to the Obj-C class as well as load the
@@ -58,9 +56,10 @@ extern const CGFloat kBrowserActionWidth;
BOOL dragCouldStart_;
}
-- (id)initWithExtension:(Extension*)extension
- profile:(Profile*)profile
- tabId:(int)tabId;
+- (id)initWithFrame:(NSRect)frame
+ extension:(Extension*)extension
+ profile:(Profile*)profile
+ tabId:(int)tabId;
- (void)setFrame:(NSRect)frameRect animate:(BOOL)animate;
diff --git a/chrome/browser/cocoa/extensions/browser_action_button.mm b/chrome/browser/cocoa/extensions/browser_action_button.mm
index 202cd93..70f15ee 100644
--- a/chrome/browser/cocoa/extensions/browser_action_button.mm
+++ b/chrome/browser/cocoa/extensions/browser_action_button.mm
@@ -35,15 +35,6 @@ NSString* const kBrowserActionButtonDragEndNotification =
static const CGFloat kBrowserActionBadgeOriginYOffset = 5;
-// Since the container is the maximum height of the toolbar, we have to move the
-// buttons up by this amount in order to have them look vertically centered
-// within the toolbar.
-static const CGFloat kBrowserActionOriginYOffset = 6.0;
-
-// The size of each button on the toolbar.
-static const CGFloat kBrowserActionHeight = 27;
-const CGFloat kBrowserActionWidth = 29;
-
namespace {
const CGFloat kAnimationDuration = 0.2;
const CGFloat kShadowOffset = 2.0;
@@ -121,13 +112,10 @@ class ExtensionImageTrackerBridge : public NotificationObserver,
return [BrowserActionCell class];
}
-- (id)initWithExtension:(Extension*)extension
- profile:(Profile*)profile
- tabId:(int)tabId {
- NSRect frame = NSMakeRect(0.0,
- kBrowserActionOriginYOffset,
- kBrowserActionWidth,
- kBrowserActionHeight);
+- (id)initWithFrame:(NSRect)frame
+ extension:(Extension*)extension
+ profile:(Profile*)profile
+ tabId:(int)tabId {
if ((self = [super initWithFrame:frame])) {
BrowserActionCell* cell = [[[BrowserActionCell alloc] init] autorelease];
// [NSButton setCell:] warns to NOT use setCell: other than in the
@@ -280,7 +268,7 @@ class ExtensionImageTrackerBridge : public NotificationObserver,
}
- (NSImage*)compositedImage {
- NSRect bounds = NSMakeRect(0, 0, kBrowserActionWidth, kBrowserActionHeight);
+ NSRect bounds = [self bounds];
NSImage* image = [[[NSImage alloc] initWithSize:bounds.size] autorelease];
[image lockFocus];
diff --git a/chrome/browser/cocoa/extensions/browser_actions_container_view.mm b/chrome/browser/cocoa/extensions/browser_actions_container_view.mm
index 234ed6c..56dbcec 100644
--- a/chrome/browser/cocoa/extensions/browser_actions_container_view.mm
+++ b/chrome/browser/cocoa/extensions/browser_actions_container_view.mm
@@ -19,13 +19,8 @@ NSString* const kBrowserActionGrippyDragFinishedNotification =
namespace {
const CGFloat kAnimationDuration = 0.2;
-const CGFloat kGrippyWidth = 8.0;
-const CGFloat kLowerPadding = 6.0;
+const CGFloat kGrippyWidth = 4.0;
const CGFloat kMinimumContainerWidth = 10.0;
-const CGFloat kRightBorderXOffset = -1.0;
-const CGFloat kRightBorderWidth = 1.0;
-const CGFloat kRightBorderGrayscale = 0.5;
-const CGFloat kUpperPadding = 9.0;
} // namespace
@interface BrowserActionsContainerView(Private)
@@ -57,24 +52,6 @@ const CGFloat kUpperPadding = 9.0;
return self;
}
-- (void)drawRect:(NSRect)dirtyRect {
- NSRect bounds = [self bounds];
- NSColor* middleColor =
- [NSColor colorWithCalibratedWhite:kRightBorderGrayscale alpha:1.0];
- NSColor* endPointColor =
- [NSColor colorWithCalibratedWhite:kRightBorderGrayscale alpha:0.0];
- scoped_nsobject<NSGradient> borderGradient([[NSGradient alloc]
- initWithColorsAndLocations:endPointColor, (CGFloat)0.0,
- middleColor, (CGFloat)0.5,
- endPointColor, (CGFloat)1.0,
- nil]);
- CGFloat xPos = bounds.origin.x + bounds.size.width - kRightBorderWidth +
- kRightBorderXOffset;
- NSRect borderRect = NSMakeRect(xPos, kLowerPadding, kRightBorderWidth,
- bounds.size.height - kUpperPadding);
- [borderGradient drawInRect:borderRect angle:90.0];
-}
-
- (void)setResizable:(BOOL)resizable {
if (resizable == resizable_)
return;
diff --git a/chrome/browser/cocoa/extensions/browser_actions_controller.h b/chrome/browser/cocoa/extensions/browser_actions_controller.h
index 350743c..21b0b95 100644
--- a/chrome/browser/cocoa/extensions/browser_actions_controller.h
+++ b/chrome/browser/cocoa/extensions/browser_actions_controller.h
@@ -22,9 +22,6 @@ class ExtensionsServiceObserverBridge;
class PrefService;
class Profile;
-// The padding between browser action buttons.
-extern const CGFloat kBrowserActionButtonPadding;
-
// Sent when the visibility of the Browser Actions changes.
extern NSString* const kBrowserActionVisibilityChangedNotification;
diff --git a/chrome/browser/cocoa/extensions/browser_actions_controller.mm b/chrome/browser/cocoa/extensions/browser_actions_controller.mm
index 19a1d56..cded5e9 100644
--- a/chrome/browser/cocoa/extensions/browser_actions_controller.mm
+++ b/chrome/browser/cocoa/extensions/browser_actions_controller.mm
@@ -7,7 +7,7 @@
#include <cmath>
#include <string>
-#include "app/resource_bundle.h"
+#include "base/nsimage_cache_mac.h"
#include "base/sys_string_conversions.h"
#include "chrome/browser/browser.h"
#include "chrome/browser/pref_service.h"
@@ -25,11 +25,8 @@
#include "chrome/common/notification_observer.h"
#include "chrome/common/notification_registrar.h"
#include "chrome/common/pref_names.h"
-#include "grit/theme_resources.h"
#import "third_party/GTM/AppKit/GTMNSAnimation+Duration.h"
-const CGFloat kBrowserActionButtonPadding = 3;
-
NSString* const kBrowserActionVisibilityChangedNotification =
@"BrowserActionVisibilityChangedNotification";
@@ -38,11 +35,28 @@ const CGFloat kAnimationDuration = 0.2;
// When determining the opacity during a drag, we artificially reduce the
// distance to the edge in order to make the fade more apparent.
const CGFloat kButtonOpacityLeadPadding = 5.0;
-const CGFloat kChevronHeight = 28.0;
-const CGFloat kChevronLowerPadding = 5.0;
-const CGFloat kChevronRightPadding = 5.0;
const CGFloat kChevronWidth = 14.0;
-const CGFloat kGrippyXOffset = 5.0;
+
+// Image used for the overflow button.
+NSString* const kOverflowChevronsName =
+ @"browser_actions_overflow_Template.pdf";
+
+// Since the container is the maximum height of the toolbar, we have
+// to move the buttons up by this amount in order to have them look
+// vertically centered within the toolbar.
+const CGFloat kBrowserActionOriginYOffset = 5.0;
+
+// The size of each button on the toolbar.
+const CGFloat kBrowserActionHeight = 29.0;
+const CGFloat kBrowserActionWidth = 29.0;
+
+// The padding between browser action buttons.
+const CGFloat kBrowserActionButtonPadding = 2.0;
+
+// Padding between Omnibox and first button. Since the buttons have a
+// pixel of internal padding, this needs an extra pixel.
+const CGFloat kBrowserActionLeftPadding = kBrowserActionButtonPadding + 1.0;
+
} // namespace
@interface BrowserActionsController(Private)
@@ -449,10 +463,14 @@ class ExtensionsServiceObserverBridge : public NotificationObserver,
if ([self buttonCount] == 0)
[containerView_ setHidden:NO];
- BrowserActionButton* newButton = [[[BrowserActionButton alloc]
- initWithExtension:extension
- profile:profile_
- tabId:[self currentTabId]] autorelease];
+ NSRect buttonFrame = NSMakeRect(0.0, kBrowserActionOriginYOffset,
+ kBrowserActionWidth, kBrowserActionHeight);
+ BrowserActionButton* newButton =
+ [[[BrowserActionButton alloc]
+ initWithFrame:buttonFrame
+ extension:extension
+ profile:profile_
+ tabId:[self currentTabId]] autorelease];
[newButton setTarget:self];
[newButton setAction:@selector(browserActionClicked:)];
NSString* buttonKey = base::SysUTF8ToNSString(extension->id());
@@ -549,25 +567,34 @@ class ExtensionsServiceObserverBridge : public NotificationObserver,
}
- (CGFloat)containerWidthWithButtonCount:(NSUInteger)buttonCount {
- CGFloat width = 0.0;
+ // Left-side padding which works regardless of whether a button or
+ // chevron leads.
+ CGFloat width = kBrowserActionLeftPadding;
+
+ // Include the buttons and padding between.
if (buttonCount > 0) {
- width = kGrippyXOffset + (2 * kBrowserActionButtonPadding) +
- (buttonCount * (kBrowserActionWidth + kBrowserActionButtonPadding));
+ width += buttonCount * kBrowserActionWidth;
+ width += (buttonCount - 1) * kBrowserActionButtonPadding;
}
+
// Make room for the chevron if any buttons are hidden.
if ([self buttonCount] != [self visibleButtonCount]) {
- width += kChevronWidth + kBrowserActionButtonPadding;
- // Add more space if all buttons are hidden.
- if ([self visibleButtonCount] == 0)
- width += 3 * kBrowserActionButtonPadding;
+ // Chevron and buttons both include 1px padding w/in their bounds,
+ // so this leaves 2px between the last browser action and chevron,
+ // and also works right if the chevron is the only button.
+ width += kChevronWidth;
}
return width;
}
- (NSUInteger)containerButtonCapacity {
- CGFloat containerWidth = [self savedWidth];
- return (containerWidth - kGrippyXOffset) /
+ // Edge-to-edge span of the browser action buttons.
+ CGFloat actionSpan = [self savedWidth] - kBrowserActionLeftPadding;
+
+ // Add in some padding for the browser action on the end, then
+ // divide out to get the number of action buttons that fit.
+ return (actionSpan + kBrowserActionButtonPadding) /
(kBrowserActionWidth + kBrowserActionButtonPadding);
}
@@ -668,7 +695,7 @@ class ExtensionsServiceObserverBridge : public NotificationObserver,
- (void)moveButton:(BrowserActionButton*)button
toIndex:(NSUInteger)index
animate:(BOOL)animate {
- CGFloat xOffset = kGrippyXOffset +
+ CGFloat xOffset = kBrowserActionLeftPadding +
(index * (kBrowserActionWidth + kBrowserActionButtonPadding));
NSRect buttonFrame = [button frame];
buttonFrame.origin.x = xOffset;
@@ -733,11 +760,11 @@ class ExtensionsServiceObserverBridge : public NotificationObserver,
}
- (void)updateChevronPositionInFrame:(NSRect)frame {
- CGFloat xPos = NSWidth(frame) - kChevronWidth - kChevronRightPadding;
+ CGFloat xPos = NSWidth(frame) - kChevronWidth;
NSRect buttonFrame = NSMakeRect(xPos,
- kChevronLowerPadding,
+ kBrowserActionOriginYOffset,
kChevronWidth,
- kChevronHeight);
+ kBrowserActionHeight);
[chevronMenuButton_ setFrame:buttonFrame];
}
@@ -750,8 +777,9 @@ class ExtensionsServiceObserverBridge : public NotificationObserver,
if (!chevronMenuButton_.get()) {
chevronMenuButton_.reset([[MenuButton alloc] init]);
[chevronMenuButton_ setBordered:NO];
- ResourceBundle& rb = ResourceBundle::GetSharedInstance();
- [chevronMenuButton_ setImage:rb.GetNSImageNamed(IDR_BOOKMARK_BAR_CHEVRONS)];
+ [chevronMenuButton_ setShowsBorderOnlyWhileMouseInside:YES];
+ NSImage* chevronImage = nsimage_cache::ImageNamed(kOverflowChevronsName);
+ [chevronMenuButton_ setImage:chevronImage];
[containerView_ addSubview:chevronMenuButton_];
}
diff --git a/chrome/chrome_dll.gypi b/chrome/chrome_dll.gypi
index 758bfeb..c3c6b08 100644
--- a/chrome/chrome_dll.gypi
+++ b/chrome/chrome_dll.gypi
@@ -246,6 +246,7 @@
'app/nibs/Toolbar.xib',
'app/theme/back_Template.pdf',
'app/theme/balloon_wrench.pdf',
+ 'app/theme/browser_actions_overflow_Template.pdf',
'app/theme/chevron.pdf',
'app/theme/find_next_Template.pdf',
'app/theme/find_prev_Template.pdf',