diff options
author | shess@chromium.org <shess@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-08-03 17:59:46 +0000 |
---|---|---|
committer | shess@chromium.org <shess@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-08-03 17:59:46 +0000 |
commit | 7dc7633c2f1a5afab62b90441b49741f168d7d51 (patch) | |
tree | 89ca1509869715e0ffef64ecb65c8b2557b2c1cd | |
parent | 9bc0c4f776d55219a4aac4d85d88b51cd0010e88 (diff) | |
download | chromium_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.xib | 2 | ||||
-rw-r--r-- | chrome/app/theme/browser_actions_overflow_Template.pdf | 279 | ||||
-rw-r--r-- | chrome/browser/cocoa/extensions/browser_action_button.h | 9 | ||||
-rw-r--r-- | chrome/browser/cocoa/extensions/browser_action_button.mm | 22 | ||||
-rw-r--r-- | chrome/browser/cocoa/extensions/browser_actions_container_view.mm | 25 | ||||
-rw-r--r-- | chrome/browser/cocoa/extensions/browser_actions_controller.h | 3 | ||||
-rw-r--r-- | chrome/browser/cocoa/extensions/browser_actions_controller.mm | 82 | ||||
-rw-r--r-- | chrome/chrome_dll.gypi | 1 |
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
AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgA5AEAAwER
AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq8I/O3/nKDRP
J/1jQvK5j1bzMtY5pq8rWzboeZB/eSj+Rdh+0duJVfN35ffn3538r+e5vNF9ezauupMBrlpPIaXE
Y6cf2Y2ir+74ii/ZpxqMVfeHlLzZoXmzy/aa9odwLnT7xOSN0ZGGzRyLvxdDswxVOMVdirsVdirs
VdirsVdirsVdirsVSHzp548seS9Dl1nzFepZ2ce0aneWWSm0cMY+J3PgPmaCpxV8R/nD/wA5EebP
P98Lezkk0by7bSLJaWELlZHeNuSSzyLQs4IBVR8Knpv8WKvoL/nHH/nIOHznZx+WfM1wsfmy2Wlv
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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 +19M3mǭU\
"a@]8X_dG~Mzg6Yf +2k*DĒ0N'R^e8W3]]J:a +WLgRO,Eb/˯N/K@>}0 +HyTSwoɞc
[5laQIBHADED2mtFOE.c}088GNg9w߽ + +V)gB0iW8#8wթ8_٥ʨQQj@&A)/g>'K +x- +ꇆnQt}MA0alSx k&^>0|>_',G!"F$H:R!zFQd?r9\A&GrQhE]a4zBgE#H *B=0HIpp0MxJ$D1D, VĭKĻYdE"EI2EBGt4MzNr!YK ?%_&#(0J:EAiQ(()ӔWT6U@P+!~mDeԴ!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ó tizf6~`{v.Ng#{}}jc1X6fm;'_9 r:8q:˜O:ϸ8uJqnv=MmR 4 +n3ܣkGݯz=[==<=G</z^^j^ ޡZQB0FX'+t<u-{__ߘ-G,}/Hh8mW2p[AiAN#8$X?AKHI{!7<qWy(!46-aaaW @@`lYĎH,$((Yh7ъb<b*b<~L&Y&9%uMssNpJP%MIJlN<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+Zzmzy]?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@)gWstFP5t}nBQMV.j9/VL~=A;<'m9IblgCC#|ưa +56_, +!^[P]v#)ntc.O8'O_M +ap<@0)aa@Uyx^U5/mٌ)6p + IJ!puJ]B +Ojup,{.#fXCvB +iUQEɔ'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߮l8eJKTj%Zi{5`k+[̤MǨҧ0),FiwqQXQ642 +"iGgrޫ˝$c&漤9Kȫ9ُ)Vʕ8{T#:/Q8|НSږYΞcKlR5ƫwDU\[K,]^DX:*}IB)EtㆨvUk9-] ` 2Z1Y?=C]ԣ8_-E{QYSeU\>A7eȶ>xFΕ=չ.3ݧ'M$iL2} +G<;jw/攆p +U*ys4
Ogg7xJk4u^6rFkԬT{{eiإ/8#wLI1kHBrV:8|K7!qW@26V;V-,sJaLh+b#S{our}C#2];B̜)/AgKqG2MR'da~{GfE"kdک`A̓BHgB'?u-k
AAyc5hE5(CC:2
e +ٳ9Qlb23Aq}po_&xȋ>3͆0
"9[&ė{kcIN@c )x܂:ғ֖ +q'5qږL~s([BKnwbc{ 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]1c2L"ƺL(.yfl&e' =q,-lnl'~ +
G-ކ[ 3JK./u7bwA-kq̅g#vc^?nZ.;d,dRĜ]JyW֟G+V*2NWgV2Xr8k<i*[^մ!#::K\JNr 9
3 +ɅtJb=A\R3gN|ZvU*o՞VӉnĭϱ:yfPI>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ҫVqomtYu2Rt?χig2|˲*JT#~)&Qd7X{]?f)cvn1AMt~smE>W,*;u;SK$y>Vr?MV$<*.>cP=ɛV@G>R$\\mB[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#ª"onLsuv7S/
;g$9Ql> ="+p4eoЖTqN_ -*2dǶMvN_8P1 3eLe#SD^Ȫ@(o0n^Rſ#sXf5BM_!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{@%jVqD1%Zij9?
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Ξ:3fzI.I#>Gsp<ɃRf) +kX$\V@Oe4f$V囧!. +YyLc~!;r1,^m:)M4 +lT?L5&ԞP2BT^T8Vp,m2AVIwK/jl}}L:7A6)rڰ1ZYD-U{~*+ԂK3R =K8*x-.ݥzd<0:x1P:>}/hy0Bg/TNn"Y)+U9Z(keh;,+I`n)Ѫܘ--slQFII
]*6,Jg;BIa-z&mpBEC<}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":|,)H9V>o0 ҦU:-GTAfZ#::03G +fq RP<-6@i#,W&W!hb<m)9-tqq
8c-!}rt2:D\rB2f-[~,řswlFď@TaC_ic=gQ8FvG8y犘3杨 Jp5xXAj٢a1B!#mkf!b9[ +G2JlLMJ}s0D4aH{I2fCi8uZ1`ef?lh*?Sԝ3dzj9ЪI +HXey˿Ao:11RUFClgR[Un<wq+-mg2サXR!%+wqVc{ak5cLBjFFhǸfgYifg=6lpbp>4kn1ӧS[DȎ?}h<)!lf&=?lr<QTқK$8aO +E?{6(3XBb'U1Ο1`U¥hl9{\ʰ>l5-X[r|Ocf̛+Rḯڮo>:8ktEnpQ\_ZZ2=/P6RIJ$ ?}yO vS~*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,Bj픘9=[iɺM!qKDZ\kʫt**'[$tPjy9)e9q5T]H'=)̴p=mk{JlhX#cn_pjE$\>זiiG$rV&
w=Tsu +)1ɻ|yԝLhyqWO@Yjn/&ニmG)LEѨ%7ب;E֓J麔ARnn9ݡւCC|5hM^2G67Iodx웎:~ws/2i^%lw +S)ˏVӋy@AdlrKVEG:kg-ƲyeTy + +|!L. +_<ZGoB(2S4;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֢cX0qLm
q0Ïc`2p,S$`\@7!hT6YZYL +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^{>1qGCnNb,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&87Ucb|tFur_'V!p·^k86Y)wQ`?Ȑ^!^uO,+G $Q?wQ?쇹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͔fSJ:>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#Uq=dtc>Xݴtpl0`Ѧ>}?_[w\ MVb^JQc0iDSi0(CjP[ ;H=R_6\buN<
>981h*yȊY1KcS4h1s쯲fV ZuI.[t,g7`_DbVXb,_dުnwv@P \-mUvy5I,љI0&Ԋs]q'aޗM9(2)8oP !\xd!\ZP<Rb摜IHvd>rnORHro}ߛr7YuEjAוԌݦv +iRU#g;cjJ4@ӬSFR6TinDt"V2wzZ%nexUKIGaVU:_ +HWZJ}% K@PG12"#qvwzC rNթ`9v[D3JD|6xiresf]$~-* +~Xu5QN[o_ +Fu*ӅPeUHFHQǸR92q,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?"5V:\ !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)yHrDTkUV{aV+(O"X!{)Yҵy0zZ( 08MB?yy#lm J&3Bi\wP̋Q&$Q)w
cq@:!j5%Ǯn,~hyv|c(_$P/]]e<Bw{;=ja]![C{Cj8!b"{Ѕ7ʿMDf +ho@cp".RsN{
ǀDZ +qANE5" vPN!W),juN.2DvS ?=N
!a1t| ,@09lGK2x*0p +CkXNU89aB2{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|PwE.Х%ŅS~X:ezc^(ֺM]VOrJ-
bkA|-VLdL|7+z:Fhg/:3jy:H:BU+OBFT|f;$pz+T_e\%}\-::P`s<gmB^2q̲f\~^t\Ǵ}=9>]̚ز"w2}ٞFʔ e⊊3f%q4Kb#I)7ҿnFꢌM\_G?m)\dɲȨ%ש_@jjWJ{ԩ%&%e4ڄ-.\OQy\Zs3,i5~u2ƾ2FZO`Fbel:ч]}f;T
Z0JG5X?
Am~~JqAdo(+r\.JWhDu뽙$S?Jr,A*%t"olԪN@9ـvR;7$MHTTzz\YSUfa(EtHؕD:=w~hep3JL+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 CQ931Mnvș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ԇzaE@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_9ehN_ '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&f2azBx9 +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*]]3wr
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Ëetsp-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', |