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

Side by Side Diff: sky/examples/style/toolbar-layout.sky

Issue 727993002: Specs: hit testing (and some cleanup) (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 6 years, 1 month 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 | « sky/examples/style/hex-layout.sky ('k') | sky/specs/style.md » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 SKY MODULE 1 SKY MODULE
2 <import src="sky:core" as="sky"/> 2 <import src="sky:core" as="sky"/>
3 <script> 3 <script>
4 // display: toolbar; 4 // display: toolbar;
5 // toolbar-spacing: <length> 5 // toolbar-spacing: <length>
6 // display: spring; // remaining space is split equally amongst the springs 6 // display: spring; // remaining space is split equally amongst the springs
7 // children are vertically centered, layout out left-to-right with toolbar-spac ing space between them 7 // children are vertically centered, layout out left-to-right with toolbar-spac ing space between them
8 // last child is hidden by default unless there's not enough room for the other s, then it's shown last, right-aligned 8 // last child is hidden by default unless there's not enough room for the other s, then it's shown last, right-aligned
9 module.exports.SpringLayoutManager = class SpringLayoutManager extends sky.Layo utManager { } 9 module.exports.SpringLayoutManager = class SpringLayoutManager extends sky.Layo utManager { }
10 sky.registerLayoutManager('spring', module.exports.SpringLayoutManager); 10 sky.registerLayoutManager('spring', module.exports.SpringLayoutManager);
11 sky.registerProperty({ 11 sky.registerProperty({
12 name: 'toolbar-spacing', 12 name: 'toolbar-spacing',
13 type: sky.LengthStyleValueType, 13 type: sky.PositiveLengthStyleValueType,
14 inherits: true, 14 inherits: true,
15 initialValue: { value: 8, unit: 'px' }, 15 initialValue: 8,
16 needsLayout: true, 16 needsLayout: true,
17 }); 17 });
18 module.exports.ToolbarLayoutManager = class ToolbarLayoutManager extends sky.La youtManager { 18 module.exports.ToolbarLayoutManager = class ToolbarLayoutManager extends sky.La youtManager {
19 constructor (styleNode) { 19 constructor (styleNode) {
20 super(styleNode); 20 super(styleNode);
21 this.showingOverflow = false; 21 this.showingOverflow = false;
22 this.firstSkippedChild = null; 22 this.firstSkippedChild = null;
23 this.overflowChild = null; 23 this.overflowChild = null;
24 } 24 }
25 function layout(width, height) { 25 function layout(width, height) {
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
124 else 124 else
125 this.firstSkippedChild = this.overflowChild; 125 this.firstSkippedChild = this.overflowChild;
126 126
127 return { 127 return {
128 width: width, 128 width: width,
129 height: height, 129 height: height,
130 } 130 }
131 } 131 }
132 function getIntrinsicWidth() { 132 function getIntrinsicWidth() {
133 let width = this.node.getProperty('width'); 133 let width = this.node.getProperty('width');
134 if (typeof height != 'number') { 134 if (typeof width != 'number') {
135 let spacing = this.node.getProperty('toolbar-spacing'); 135 let spacing = this.node.getProperty('toolbar-spacing');
136 if (typeof spacing != 'number') 136 if (typeof spacing != 'number')
137 spacing = 0; 137 spacing = 0;
138 width = 0; 138 width = 0;
139 let children = this.walkChildren(); 139 let children = this.walkChildren();
140 let loop = children.next(); 140 let loop = children.next();
141 // we exclude the last child because at our ideal width we wouldn't need it 141 // we exclude the last child because at our ideal width we wouldn't need it
142 let last1 = null; // last one 142 let last1 = null; // last one
143 let last2 = null; // one before the last one 143 let last2 = null; // one before the last one
144 while (!loop.done) { 144 while (!loop.done) {
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
199 canvas.clip(); 199 canvas.clip();
200 child.paint(canvas); 200 child.paint(canvas);
201 } finally { 201 } finally {
202 canvas.restore(); 202 canvas.restore();
203 } 203 }
204 } 204 }
205 } 205 }
206 } 206 }
207 sky.registerLayoutManager('toolbar', module.exports.ToolbarLayoutManager); 207 sky.registerLayoutManager('toolbar', module.exports.ToolbarLayoutManager);
208 </script> 208 </script>
OLDNEW
« no previous file with comments | « sky/examples/style/hex-layout.sky ('k') | sky/specs/style.md » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698