mirror of
https://github.com/dataarts/dat.gui.git
synced 2024-12-12 04:08:27 +00:00
comment rollovers
This commit is contained in:
parent
0dfd9f1d1a
commit
a4ef8f0b83
@ -17,11 +17,11 @@
|
|||||||
Polymer('controller-number', {
|
Polymer('controller-number', {
|
||||||
|
|
||||||
min: 0,
|
min: 0,
|
||||||
max: 100,
|
max: 1,
|
||||||
|
value: 0,
|
||||||
step: null,
|
step: null,
|
||||||
decimals: 3,
|
decimals: 3,
|
||||||
value: 50,
|
|
||||||
|
|
||||||
ready: function() {
|
ready: function() {
|
||||||
|
|
||||||
var _this = this;
|
var _this = this;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
@import 'shared';
|
@import '../shared';
|
||||||
|
|
||||||
fill-color = number-color
|
fill-color = number-color
|
||||||
track-color = light
|
track-color = light
|
||||||
@ -12,7 +12,8 @@ knob-size = 6px
|
|||||||
display: block;
|
display: block;
|
||||||
font-size: 0;
|
font-size: 0;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
user-select: none;
|
user-select: none;\
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -76,12 +77,12 @@ knob-size = 6px
|
|||||||
// }
|
// }
|
||||||
|
|
||||||
input {
|
input {
|
||||||
|
|
||||||
font();
|
font();
|
||||||
|
|
||||||
height: track-height;
|
height: track-height;
|
||||||
|
|
||||||
margin-left: 5px;
|
margin: 0 ( padding/2 );
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
background: transparent;
|
background: transparent;
|
||||||
border: 0;
|
border: 0;
|
||||||
|
@ -10,6 +10,7 @@
|
|||||||
|
|
||||||
<div>
|
<div>
|
||||||
<content></content>
|
<content></content>
|
||||||
|
<div id="closeButton">×</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
|
@ -9,11 +9,27 @@ Polymer('gui-panel', {
|
|||||||
add: function( object, property ) {
|
add: function( object, property ) {
|
||||||
|
|
||||||
var row = document.createElement( 'gui-row' );
|
var row = document.createElement( 'gui-row' );
|
||||||
row.name = property;
|
|
||||||
|
|
||||||
var controller;
|
var controller;
|
||||||
|
|
||||||
if ( typeof object[ property ] == 'number' ) {
|
|
||||||
|
|
||||||
|
var value;
|
||||||
|
|
||||||
|
// gui.add( object, 'property' ...
|
||||||
|
if ( typeof object == 'object' ) {
|
||||||
|
|
||||||
|
value = object[ property ];
|
||||||
|
|
||||||
|
// gui.add( 0, 'anonymous-value' ...
|
||||||
|
} else {
|
||||||
|
|
||||||
|
value = object;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if ( typeof value == 'number' ) {
|
||||||
|
|
||||||
controller = document.createElement( 'controller-number' );
|
controller = document.createElement( 'controller-number' );
|
||||||
|
|
||||||
@ -23,13 +39,22 @@ Polymer('gui-panel', {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
controller.object = object;
|
// gui.add( object, 'property' ...
|
||||||
controller.property = property;
|
if ( typeof object == 'object' ) {
|
||||||
|
controller.object = object;
|
||||||
|
controller.property = property;
|
||||||
|
}
|
||||||
|
|
||||||
|
row.name = property;
|
||||||
|
|
||||||
controller.name = function( name ) {
|
controller.name = function( name ) {
|
||||||
row.name = name;
|
row.name = name;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
controller.comment = function( comment ) {
|
||||||
|
row.comment = comment;
|
||||||
|
};
|
||||||
|
|
||||||
row.appendChild( controller );
|
row.appendChild( controller );
|
||||||
this.appendChild( row );
|
this.appendChild( row );
|
||||||
|
|
||||||
|
@ -1,6 +1,21 @@
|
|||||||
|
@import '../shared';
|
||||||
|
|
||||||
:host {
|
:host {
|
||||||
|
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 0;
|
top: 0;
|
||||||
right: 20px;
|
right: 20px;
|
||||||
width: 300px;
|
width: 270px;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#closeButton {
|
||||||
|
|
||||||
|
font();
|
||||||
|
font-size: 14px;
|
||||||
|
cursor: pointer;
|
||||||
|
background: #000;
|
||||||
|
text-align: center;
|
||||||
|
padding: padding*0.4 padding;
|
||||||
|
}
|
@ -1,22 +1,43 @@
|
|||||||
<link rel="import" href="../../components/polymer/polymer.html">
|
<link rel="import" href="../../components/polymer/polymer.html">
|
||||||
|
|
||||||
<polymer-element
|
<polymer-element name="gui-row" attributes="name comment">
|
||||||
name="gui-row"
|
|
||||||
attributes="name">
|
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
|
|
||||||
<link rel="stylesheet" href="gui-row.css">
|
<div>
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="gui-row.css">
|
||||||
|
|
||||||
|
<div id="row" class="comment-{{ comment != null }}" layout horizontal center>
|
||||||
|
|
||||||
|
<div
|
||||||
|
id="name"
|
||||||
|
on-mouseover="{{ openComment }}"
|
||||||
|
on-mouseout="{{ closeComment }}"
|
||||||
|
>
|
||||||
|
<div id="nameInner">{{ name }}</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="controller" flex>
|
||||||
|
<content></content>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div id="row" layout horizontal center>
|
|
||||||
<div id="name">{{ name }}</div>
|
|
||||||
<div id="controller" flex>
|
|
||||||
<content></content>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div id="comment"
|
||||||
|
on-mouseover="{{ openComment }}"
|
||||||
|
on-mouseout="{{ closeComment }}"
|
||||||
|
class="open-{{ commentOpen }}" hidden?="{{ comment == null }}">
|
||||||
|
|
||||||
|
<div id="commentInner">{{ comment }}</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script src="gui-row.js"></script>
|
<script src="gui-row.js"></script>
|
||||||
|
@ -1,7 +1,27 @@
|
|||||||
|
/*
|
||||||
|
|
||||||
|
[ ] comment hover behavior
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
Polymer('gui-row', {
|
Polymer('gui-row', {
|
||||||
|
|
||||||
|
comment: null,
|
||||||
|
|
||||||
|
commentOpen: false,
|
||||||
|
|
||||||
ready: function() {
|
ready: function() {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
openComment: function() {
|
||||||
|
this.$.comment.style.height = this.$.commentInner.offsetHeight + 'px';
|
||||||
|
},
|
||||||
|
|
||||||
|
closeComment: function() {
|
||||||
|
this.$.comment.style.height = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
@ -1,20 +1,73 @@
|
|||||||
@import 'shared';
|
@import '../shared';
|
||||||
|
|
||||||
|
|
||||||
|
:host {
|
||||||
|
|
||||||
|
user-select: none;
|
||||||
|
background: #1a1a1a;
|
||||||
|
|
||||||
|
height: 100%;
|
||||||
|
width: 100%;
|
||||||
|
display: block;
|
||||||
|
|
||||||
|
font();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
#row {
|
#row {
|
||||||
-webkit-text-select: none;
|
|
||||||
background: #1a1a1a;
|
}
|
||||||
|
|
||||||
|
#comment {
|
||||||
|
|
||||||
|
line-height: 16px;
|
||||||
|
user-select: text;
|
||||||
|
|
||||||
|
background: #E0CF99;
|
||||||
|
height: 0;
|
||||||
|
color: #333;
|
||||||
|
|
||||||
|
|
||||||
|
box-sizing: border-box;
|
||||||
|
overflow: hidden;
|
||||||
|
transition: height 0.15s ease;
|
||||||
|
box-shadow: inset 0 2px 0 dark;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#commentInner {
|
||||||
|
padding: padding;
|
||||||
}
|
}
|
||||||
|
|
||||||
#name {
|
#name {
|
||||||
|
|
||||||
font();
|
|
||||||
|
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
word-wrap: break-word;
|
word-wrap: break-word;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
width: 33%;
|
padding: 0 padding;
|
||||||
padding: 0 10px;
|
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
|
display: inline-block;
|
||||||
|
width: 40%;
|
||||||
|
|
||||||
|
height: 30px;
|
||||||
|
line-height: 30px;
|
||||||
|
|
||||||
|
cursor: default;
|
||||||
|
|
||||||
|
.comment-true & {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.comment-true #nameInner {
|
||||||
|
|
||||||
|
display: inline-block;
|
||||||
|
border-bottom: 1px dotted light;
|
||||||
|
|
||||||
|
&:after {
|
||||||
|
content: ' ?';
|
||||||
|
color: light;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -2,6 +2,8 @@
|
|||||||
|
|
||||||
number-color = #25a0d8
|
number-color = #25a0d8
|
||||||
|
|
||||||
|
padding = 10px
|
||||||
|
|
||||||
ease = cubic-bezier( .25, .25, 0, 1 )
|
ease = cubic-bezier( .25, .25, 0, 1 )
|
||||||
|
|
||||||
light = rgba( 255, 255, 255, 0.25 )
|
light = rgba( 255, 255, 255, 0.25 )
|
||||||
|
19
index.js
19
index.js
@ -1,21 +1,30 @@
|
|||||||
var object = {
|
var object = {
|
||||||
"listen4Free": 25,
|
"listen4Free": 0,
|
||||||
"step": 10,
|
"step": 10,
|
||||||
"straddleZero": 0,
|
"straddleZero": 0,
|
||||||
"maxIsNegative": -2,
|
"maxIsNegative": -2,
|
||||||
|
"hasComment": 0
|
||||||
};
|
};
|
||||||
|
|
||||||
// How do we kill polymer-ready ...
|
// How do we kill polymer-ready ...
|
||||||
document.addEventListener( 'polymer-ready', function() {
|
document.addEventListener( 'polymer-ready', function() {
|
||||||
|
|
||||||
var gui = new GUI();
|
var gui = new GUI();
|
||||||
|
|
||||||
gui.add( object, 'listen4Free' );
|
gui.add( object, 'listen4Free' );
|
||||||
gui.add( object, 'listen4Free' );
|
gui.add( object, 'listen4Free' );
|
||||||
gui.add( object, 'listen4Free' );
|
gui.add( object, 'listen4Free' );
|
||||||
gui.add( object, 'listen4Free' ).name( 'customName' );
|
|
||||||
gui.add( object, 'step', 0, 50, 5 );
|
gui.add( object, 'hasComment' ).comment( 'Hi there.' );
|
||||||
gui.add( object, 'straddleZero', -1, 1, 0.01 );
|
|
||||||
|
|
||||||
var c = gui.add( object, 'maxIsNegative', -5, -2 );
|
gui.add( -2, 'anonymousSlider', -5, -2 );
|
||||||
|
|
||||||
|
gui.add( object, 'listen4Free' ).name( 'customName' )
|
||||||
|
|
||||||
|
gui.add( object, 'step', 0, 50, 5 ).comment( 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam semper dui metus, sed aliquet nulla fermentum nec. Sed massa felis, congue nec libero ut, condimentum hendrerit purus. Cras a cursus ante. Integer nec nibh vitae lacus convallis viverra in at urna. Donec hendrerit convallis lacus, nec condimentum neque aliquam ac. Sed suscipit leo vel ligula condimentum scelerisque. Aliquam fermentum sagittis nisi vitae accumsan. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. In et dolor eros. Sed vel venenatis odio, quis porta mi. Ut sed commodo velit, in porta ante.' );
|
||||||
|
|
||||||
|
gui.add( object, 'straddleZero', -1, 1, 0.01 ).comment( 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam semper dui metus, sed aliquet nulla fermentum nec. ' );;
|
||||||
|
|
||||||
|
gui.add( object, 'maxIsNegative', -5, -2 );
|
||||||
|
|
||||||
});
|
});
|
Loading…
Reference in New Issue
Block a user