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

Side by Side Diff: third_party/WebKit/Source/core/layout/LayoutButton.h

Issue 2177563003: Button experiment Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 5 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 | « no previous file | third_party/WebKit/Source/core/layout/LayoutButton.cpp » ('j') | 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) 2005 Apple Computer 2 * Copyright (C) 2005 Apple Computer
3 * 3 *
4 * This library is free software; you can redistribute it and/or 4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Library General Public 5 * modify it under the terms of the GNU Library General Public
6 * License as published by the Free Software Foundation; either 6 * License as published by the Free Software Foundation; either
7 * version 2 of the License, or (at your option) any later version. 7 * version 2 of the License, or (at your option) any later version.
8 * 8 *
9 * This library is distributed in the hope that it will be useful, 9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Library General Public License for more details. 12 * Library General Public License for more details.
13 * 13 *
14 * You should have received a copy of the GNU Library General Public License 14 * You should have received a copy of the GNU Library General Public License
15 * along with this library; see the file COPYING.LIB. If not, write to 15 * along with this library; see the file COPYING.LIB. If not, write to
16 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 16 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17 * Boston, MA 02110-1301, USA. 17 * Boston, MA 02110-1301, USA.
18 * 18 *
19 */ 19 */
20 20
21 #ifndef LayoutButton_h 21 #ifndef LayoutButton_h
22 #define LayoutButton_h 22 #define LayoutButton_h
23 23
24 #include "core/html/HTMLInputElement.h" 24 #include "core/html/HTMLInputElement.h"
25 #include "core/layout/LayoutFlexibleBox.h" 25 #include "core/layout/LayoutBlockFlow.h"
26 26
27 namespace blink { 27 namespace blink {
28 28
29 // LayoutButtons are just like normal flexboxes except that they will generate a n anonymous block child. 29 // LayoutButtons are just like normal flexboxes except that they will generate a n anonymous block child.
30 // For inputs, they will also generate an anonymous LayoutText and keep its styl e and content up 30 // For inputs, they will also generate an anonymous LayoutText and keep its styl e and content up
31 // to date as the button changes. 31 // to date as the button changes.
32 class LayoutButton final : public LayoutFlexibleBox { 32 class LayoutButton final : public LayoutBlockFlow {
33 public: 33 public:
34 explicit LayoutButton(Element*); 34 explicit LayoutButton(Element*);
35 ~LayoutButton() override; 35 ~LayoutButton() override;
36 36
37 const char* name() const override { return "LayoutButton"; } 37 const char* name() const override { return "LayoutButton"; }
38 bool isOfType(LayoutObjectType type) const override { return type == LayoutO bjectLayoutButton || LayoutFlexibleBox::isOfType(type); } 38 bool isOfType(LayoutObjectType type) const override { return type == LayoutO bjectLayoutButton || LayoutBlockFlow::isOfType(type); }
39 39
40 bool canBeSelectionLeaf() const override { return node() && hasEditableStyle (*node()); } 40 bool canBeSelectionLeaf() const override { return node() && hasEditableStyle (*node()); }
41 41
42 void addChild(LayoutObject* newChild, LayoutObject *beforeChild = nullptr) o verride; 42 void addChild(LayoutObject* newChild, LayoutObject *beforeChild = nullptr) o verride;
43 void removeChild(LayoutObject*) override; 43 void removeChild(LayoutObject*) override;
44 void removeLeftoverAnonymousBlock(LayoutBlock*) override { } 44 void removeLeftoverAnonymousBlock(LayoutBlock*) override { }
45 bool createsAnonymousWrapper() const override { return true; } 45 bool createsAnonymousWrapper() const override { return true; }
46 46
47 bool hasControlClip() const override; 47 bool hasControlClip() const override;
48 LayoutRect controlClipRect(const LayoutPoint&) const override; 48 LayoutRect controlClipRect(const LayoutPoint&) const override;
49 49
50 int baselinePosition(FontBaseline, bool firstLine, LineDirectionMode, LinePo sitionMode) const override; 50 int baselinePosition(FontBaseline, bool firstLine, LineDirectionMode, LinePo sitionMode) const override;
51 51
52 private: 52 private:
53 void updateAnonymousChildStyle(const LayoutObject& child, ComputedStyle& chi ldStyle) const override; 53 void updateAnonymousChildStyle(const LayoutObject& child, ComputedStyle& chi ldStyle) const override;
54 54
55 bool hasLineIfEmpty() const override { return isHTMLInputElement(node()); } 55 bool hasLineIfEmpty() const override { return isHTMLInputElement(node()); }
56 56
57 LayoutBlock* m_inner; 57 LayoutBlock* m_inner;
58 }; 58 };
59 59
60 DEFINE_LAYOUT_OBJECT_TYPE_CASTS(LayoutButton, isLayoutButton()); 60 DEFINE_LAYOUT_OBJECT_TYPE_CASTS(LayoutButton, isLayoutButton());
61 61
62 } // namespace blink 62 } // namespace blink
63 63
64 #endif // LayoutButton_h 64 #endif // LayoutButton_h
OLDNEW
« no previous file with comments | « no previous file | third_party/WebKit/Source/core/layout/LayoutButton.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698