Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(461)

Side by Side Diff: third_party/WebKit/Source/core/paint/ThemePainterDefault.cpp

Issue 2340633002: Modifies logic for computing drop down menu arrow's dimensions and how it is drawn. (Closed)
Patch Set: Modifies logic for computing drop down menu arrow's dimensions and how it is drawn. Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « third_party/WebKit/LayoutTests/TestExpectations ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2007 Apple Inc. 2 * Copyright (C) 2007 Apple Inc.
3 * Copyright (C) 2007 Alp Toker <alp@atoker.com> 3 * Copyright (C) 2007 Alp Toker <alp@atoker.com>
4 * Copyright (C) 2008 Collabora Ltd. 4 * Copyright (C) 2008 Collabora Ltd.
5 * Copyright (C) 2008, 2009 Google Inc. 5 * Copyright (C) 2008, 2009 Google Inc.
6 * Copyright (C) 2009 Kenneth Rohde Christiansen 6 * Copyright (C) 2009 Kenneth Rohde Christiansen
7 * 7 *
8 * This library is free software; you can redistribute it and/or 8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Library General Public 9 * modify it under the terms of the GNU Library General Public
10 * License as published by the Free Software Foundation; either 10 * License as published by the Free Software Foundation; either
(...skipping 24 matching lines...) Expand all
35 #include "platform/graphics/GraphicsContextStateSaver.h" 35 #include "platform/graphics/GraphicsContextStateSaver.h"
36 #include "public/platform/Platform.h" 36 #include "public/platform/Platform.h"
37 #include "public/platform/WebRect.h" 37 #include "public/platform/WebRect.h"
38 #include "public/platform/WebThemeEngine.h" 38 #include "public/platform/WebThemeEngine.h"
39 39
40 namespace blink { 40 namespace blink {
41 41
42 namespace { 42 namespace {
43 43
44 const unsigned defaultButtonBackgroundColor = 0xffdddddd; 44 const unsigned defaultButtonBackgroundColor = 0xffdddddd;
45 const unsigned dropdownMenuListArrowPadding = 3;
45 46
46 bool useMockTheme() 47 bool useMockTheme()
47 { 48 {
48 return LayoutTestSupport::isMockThemeEnabledForTest(); 49 return LayoutTestSupport::isMockThemeEnabledForTest();
49 } 50 }
50 51
51 WebThemeEngine::State getWebThemeState(const LayoutObject& o) 52 WebThemeEngine::State getWebThemeState(const LayoutObject& o)
52 { 53 {
53 if (!LayoutTheme::isEnabled(o)) 54 if (!LayoutTheme::isEnabled(o))
54 return WebThemeEngine::StateDisabled; 55 return WebThemeEngine::StateDisabled;
(...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after
255 256
256 void ThemePainterDefault::setupMenuListArrow(const LayoutBox& box, const IntRect & rect, WebThemeEngine::ExtraParams& extraParams) 257 void ThemePainterDefault::setupMenuListArrow(const LayoutBox& box, const IntRect & rect, WebThemeEngine::ExtraParams& extraParams)
257 { 258 {
258 const int right = rect.x() + rect.width(); 259 const int right = rect.x() + rect.width();
259 const int middle = rect.y() + rect.height() / 2; 260 const int middle = rect.y() + rect.height() / 2;
260 261
261 extraParams.menuList.arrowY = middle; 262 extraParams.menuList.arrowY = middle;
262 if (useMockTheme()) { 263 if (useMockTheme()) {
263 // The size and position of the drop-down button is different between 264 // The size and position of the drop-down button is different between
264 // the mock theme and the regular aura theme. 265 // the mock theme and the regular aura theme.
265 int spacingTop = (box.borderTop() + box.paddingTop()).toInt(); 266 int extraPadding = dropdownMenuListArrowPadding * box.styleRef().effecti veZoom();
266 int spacingBottom = (box.borderBottom() + box.paddingBottom()).toInt(); 267 // The width available for the arrow is based on the padding provided
267 int spacingRight = (box.borderRight() + box.paddingRight()).toInt(); 268 // in the child LayoutBox.
268 extraParams.menuList.arrowX = (box.styleRef().direction() == RTL) ? rect .x() + 4 + spacingRight: right - 10 - spacingRight; 269 int arrowBoxWidth = ((box.styleRef().direction() == RTL) ? box.firstChil dBox()->paddingLeft() : box.firstChildBox()->paddingRight()).toInt();
269 extraParams.menuList.arrowSize = rect.height() - spacingBottom - spacing Top; 270 int arrowSize = std::min(arrowBoxWidth, rect.height()) - 2 * extraPaddin g;
271 extraParams.menuList.arrowX = (box.styleRef().direction() == RTL) ? rect .x() + extraPadding + (arrowSize / 2) : right - (arrowSize / 2) - extraPadding;
272 extraParams.menuList.arrowSize = arrowSize;
270 } else { 273 } else {
271 const int arrowSize = 6; 274 const int arrowSize = 6;
272 const int arrowPadding = 6; 275 const int arrowPadding = 6;
273 extraParams.menuList.arrowX = (box.styleRef().direction() == RTL) 276 extraParams.menuList.arrowX = (box.styleRef().direction() == RTL)
274 ? rect.x() + arrowPadding * box.styleRef().effectiveZoom() + box.bor derLeft() 277 ? rect.x() + arrowPadding * box.styleRef().effectiveZoom() + box.bor derLeft()
275 : right - (arrowSize + arrowPadding) * box.styleRef().effectiveZoom( ) - box.borderRight(); 278 : right - (arrowSize + arrowPadding) * box.styleRef().effectiveZoom( ) - box.borderRight();
276 extraParams.menuList.arrowSize = arrowSize * box.styleRef().effectiveZoo m(); 279 extraParams.menuList.arrowSize = arrowSize * box.styleRef().effectiveZoo m();
277 } 280 }
278 extraParams.menuList.arrowColor = box.resolveColor(CSSPropertyColor).rgb(); 281 extraParams.menuList.arrowColor = box.resolveColor(CSSPropertyColor).rgb();
279 } 282 }
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
392 cancelButtonSize, cancelButtonSize); 395 cancelButtonSize, cancelButtonSize);
393 IntRect paintingRect = convertToPaintingRect(inputLayoutBox, cancelButtonObj ect, cancelButtonRect, r); 396 IntRect paintingRect = convertToPaintingRect(inputLayoutBox, cancelButtonObj ect, cancelButtonRect, r);
394 397
395 DEFINE_STATIC_REF(Image, cancelImage, (Image::loadPlatformResource("searchCa ncel"))); 398 DEFINE_STATIC_REF(Image, cancelImage, (Image::loadPlatformResource("searchCa ncel")));
396 DEFINE_STATIC_REF(Image, cancelPressedImage, (Image::loadPlatformResource("s earchCancelPressed"))); 399 DEFINE_STATIC_REF(Image, cancelPressedImage, (Image::loadPlatformResource("s earchCancelPressed")));
397 paintInfo.context.drawImage(LayoutTheme::isPressed(cancelButtonObject) ? can celPressedImage : cancelImage, paintingRect); 400 paintInfo.context.drawImage(LayoutTheme::isPressed(cancelButtonObject) ? can celPressedImage : cancelImage, paintingRect);
398 return false; 401 return false;
399 } 402 }
400 403
401 } // namespace blink 404 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/LayoutTests/TestExpectations ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698