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

Side by Side Diff: Source/core/rendering/style/GridTrackSize.h

Issue 802243003: [CSS Grid Layout] Incorrect sizing of tracks with non-spanning items (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Rebased + Test fixes Created 5 years, 11 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2012 Google Inc. All rights reserved. 2 * Copyright (C) 2012 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 28 matching lines...) Expand all
39 LengthTrackSizing, 39 LengthTrackSizing,
40 MinMaxTrackSizing 40 MinMaxTrackSizing
41 }; 41 };
42 42
43 class GridTrackSize { 43 class GridTrackSize {
44 public: 44 public:
45 GridTrackSize(const GridLength& length) 45 GridTrackSize(const GridLength& length)
46 : m_type(LengthTrackSizing) 46 : m_type(LengthTrackSizing)
47 , m_minTrackBreadth(length) 47 , m_minTrackBreadth(length)
48 , m_maxTrackBreadth(length) 48 , m_maxTrackBreadth(length)
49 , m_minTrackBreadthIsMinOrMaxContent(false)
50 , m_minTrackBreadthIsMaxContent(false) 49 , m_minTrackBreadthIsMaxContent(false)
51 , m_maxTrackBreadthIsMinOrMaxContent(false)
52 , m_maxTrackBreadthIsMaxContent(false) 50 , m_maxTrackBreadthIsMaxContent(false)
53 { 51 {
54 cacheMinMaxTrackBreadthTypes(); 52 cacheMinMaxTrackBreadthTypes();
55 } 53 }
56 54
57 GridTrackSize(const GridLength& minTrackBreadth, const GridLength& maxTrackB readth) 55 GridTrackSize(const GridLength& minTrackBreadth, const GridLength& maxTrackB readth)
58 : m_type(MinMaxTrackSizing) 56 : m_type(MinMaxTrackSizing)
59 , m_minTrackBreadth(minTrackBreadth) 57 , m_minTrackBreadth(minTrackBreadth)
60 , m_maxTrackBreadth(maxTrackBreadth) 58 , m_maxTrackBreadth(maxTrackBreadth)
61 , m_minTrackBreadthIsMinOrMaxContent(false)
62 , m_minTrackBreadthIsMaxContent(false) 59 , m_minTrackBreadthIsMaxContent(false)
63 , m_maxTrackBreadthIsMinOrMaxContent(false)
64 , m_maxTrackBreadthIsMaxContent(false) 60 , m_maxTrackBreadthIsMaxContent(false)
65 { 61 {
66 cacheMinMaxTrackBreadthTypes(); 62 cacheMinMaxTrackBreadthTypes();
67 } 63 }
68 64
69 const GridLength& length() const 65 const GridLength& length() const
70 { 66 {
71 ASSERT(m_type == LengthTrackSizing); 67 ASSERT(m_type == LengthTrackSizing);
72 ASSERT(m_minTrackBreadth == m_maxTrackBreadth); 68 ASSERT(m_minTrackBreadth == m_maxTrackBreadth);
73 const GridLength& minTrackBreadth = m_minTrackBreadth; 69 const GridLength& minTrackBreadth = m_minTrackBreadth;
(...skipping 24 matching lines...) Expand all
98 94
99 bool isPercentage() const { return m_type == LengthTrackSizing && length().i sLength() && length().length().isPercent(); } 95 bool isPercentage() const { return m_type == LengthTrackSizing && length().i sLength() && length().length().isPercent(); }
100 96
101 bool operator==(const GridTrackSize& other) const 97 bool operator==(const GridTrackSize& other) const
102 { 98 {
103 return m_type == other.m_type && m_minTrackBreadth == other.m_minTrackBr eadth && m_maxTrackBreadth == other.m_maxTrackBreadth; 99 return m_type == other.m_type && m_minTrackBreadth == other.m_minTrackBr eadth && m_maxTrackBreadth == other.m_maxTrackBreadth;
104 } 100 }
105 101
106 void cacheMinMaxTrackBreadthTypes() 102 void cacheMinMaxTrackBreadthTypes()
107 { 103 {
108 bool minTrackBreadthIsMinContent = minTrackBreadth().isLength() && minTr ackBreadth().length().isMinContent(); 104 m_minTrackBreadthIsMinContent = minTrackBreadth().isLength() && minTrack Breadth().length().isMinContent();
109 m_minTrackBreadthIsMaxContent = minTrackBreadth().isLength() && minTrack Breadth().length().isMaxContent(); 105 m_minTrackBreadthIsMaxContent = minTrackBreadth().isLength() && minTrack Breadth().length().isMaxContent();
110 m_minTrackBreadthIsMinOrMaxContent = m_minTrackBreadthIsMaxContent || mi nTrackBreadthIsMinContent;
111 m_maxTrackBreadthIsMaxContent = maxTrackBreadth().isLength() && maxTrack Breadth().length().isMaxContent(); 106 m_maxTrackBreadthIsMaxContent = maxTrackBreadth().isLength() && maxTrack Breadth().length().isMaxContent();
112 m_maxTrackBreadthIsMinOrMaxContent = m_maxTrackBreadthIsMaxContent || (m axTrackBreadth().isLength() && maxTrackBreadth().length().isMinContent()); 107 m_maxTrackBreadthIsMinContent = maxTrackBreadth().isLength() && maxTrack Breadth().length().isMinContent();
113 m_minTrackBreadthIsMinContentAndMaxTrackBreadthIsMinOrMaxContent = minTr ackBreadthIsMinContent && m_maxTrackBreadthIsMinOrMaxContent;
114 } 108 }
115 109
116 bool hasMinOrMaxContentMinTrackBreadth() const { return m_minTrackBreadthIsM inOrMaxContent; } 110 bool hasMinOrMaxContentMinTrackBreadth() const { return m_minTrackBreadthIsM axContent || m_minTrackBreadthIsMinContent; }
117 bool hasMaxContentMinTrackBreadth() const { return m_minTrackBreadthIsMaxCon tent; } 111 bool hasMaxContentMinTrackBreadth() const { return m_minTrackBreadthIsMaxCon tent; }
118 bool hasMinOrMaxContentMaxTrackBreadth() const { return m_maxTrackBreadthIsM inOrMaxContent; } 112 bool hasMinContentMinTrackBreadth() const { return m_minTrackBreadthIsMinCon tent; }
113 bool hasMinOrMaxContentMaxTrackBreadth() const { return m_maxTrackBreadthIsM axContent || m_maxTrackBreadthIsMinContent; }
119 bool hasMaxContentMaxTrackBreadth() const { return m_maxTrackBreadthIsMaxCon tent; } 114 bool hasMaxContentMaxTrackBreadth() const { return m_maxTrackBreadthIsMaxCon tent; }
120 bool hasMinContentMinTrackBreadthAndMinOrMaxContentMaxTrackBreadth() const { return m_minTrackBreadthIsMinContentAndMaxTrackBreadthIsMinOrMaxContent; } 115 bool hasMinContentMaxTrackBreadth() const { return m_maxTrackBreadthIsMinCon tent; }
116 bool hasMinContentMinTrackBreadthAndMinOrMaxContentMaxTrackBreadth() const { return m_minTrackBreadthIsMinContent && hasMinOrMaxContentMaxTrackBreadth(); }
121 bool hasMaxContentMinTrackBreadthAndMaxContentMaxTrackBreadth() const { retu rn m_minTrackBreadthIsMaxContent && m_maxTrackBreadthIsMaxContent; } 117 bool hasMaxContentMinTrackBreadthAndMaxContentMaxTrackBreadth() const { retu rn m_minTrackBreadthIsMaxContent && m_maxTrackBreadthIsMaxContent; }
122 118
123 private: 119 private:
124 GridTrackSizeType m_type; 120 GridTrackSizeType m_type;
125 GridLength m_minTrackBreadth; 121 GridLength m_minTrackBreadth;
126 GridLength m_maxTrackBreadth; 122 GridLength m_maxTrackBreadth;
127 bool m_minTrackBreadthIsMinOrMaxContent;
128 bool m_minTrackBreadthIsMaxContent; 123 bool m_minTrackBreadthIsMaxContent;
129 bool m_maxTrackBreadthIsMinOrMaxContent; 124 bool m_minTrackBreadthIsMinContent;
130 bool m_maxTrackBreadthIsMaxContent; 125 bool m_maxTrackBreadthIsMaxContent;
131 bool m_minTrackBreadthIsMinContentAndMaxTrackBreadthIsMinOrMaxContent; 126 bool m_maxTrackBreadthIsMinContent;
132 }; 127 };
133 128
134 } // namespace blink 129 } // namespace blink
135 130
136 #endif // GridTrackSize_h 131 #endif // GridTrackSize_h
OLDNEW
« Source/core/rendering/RenderGrid.cpp ('K') | « Source/core/rendering/RenderGrid.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698