Merge pull request #4110 from huffman/update-properties-layout

Update properties layout
This commit is contained in:
Brad Hefta-Gaub 2015-01-15 11:03:21 -08:00
commit 28c0cb0c3e
2 changed files with 274 additions and 284 deletions

View file

@ -181,10 +181,10 @@
elLocked.checked = properties.locked;
if (properties.locked) {
disableChildren(document.getElementById("properties-table"), 'input');
disableChildren(document.getElementById("properties-list"), 'input');
elLocked.removeAttribute('disabled');
} else {
enableChildren(document.getElementById("properties-table"), 'input');
enableChildren(document.getElementById("properties-list"), 'input');
}
elVisible.checked = properties.visible;
@ -231,7 +231,7 @@
}
} else {
for (var i = 0; i < elBoxSections.length; i++) {
elBoxSections[i].style.display = 'table-row';
elBoxSections[i].style.display = 'block';
}
elBoxColorRed.value = properties.color.red;
@ -245,7 +245,7 @@
}
} else {
for (var i = 0; i < elModelSections.length; i++) {
elModelSections[i].style.display = 'table-row';
elModelSections[i].style.display = 'block';
}
elModelURL.value = properties.modelURL;
@ -264,7 +264,7 @@
}
} else {
for (var i = 0; i < elTextSections.length; i++) {
elTextSections[i].style.display = 'table-row';
elTextSections[i].style.display = 'block';
}
elTextText.value = properties.text;
@ -283,7 +283,7 @@
}
} else {
for (var i = 0; i < elLightSections.length; i++) {
elLightSections[i].style.display = 'table-row';
elLightSections[i].style.display = 'block';
}
elLightDiffuseRed.value = properties.diffuseColor.red;
@ -442,117 +442,60 @@
percentage: parseInt(elRescaleDimensionsPct.value),
}));
});
var resizing = false;
var startX = 0;
var originalWidth = 0;
var resizeHandleWidth = 10;
var col1 = document.querySelector("#col-label");
document.body.addEventListener('mousemove', function(event) {
if (resizing) {
var dX = event.x - startX;
col1.style.width = (originalWidth + dX) + "px";
}
});
document.body.addEventListener('mouseup', function(event) {
resizing = false;
});
document.body.addEventListener('mouseleave', function(event) {
resizing = false;
});
var els = document.querySelectorAll("#properties-table td");
for (var i = 0; i < els.length; i++) {
var el = els[i];
el.addEventListener('mousemove', function(event) {
if (!resizing) {
var distance = this.offsetWidth - event.offsetX;
if (distance < resizeHandleWidth) {
document.body.style.cursor = "ew-resize";
} else {
document.body.style.cursor = "initial";
}
}
});
el.addEventListener('mousedown', function(event) {
var distance = this.offsetWidth - event.offsetX;
if (distance < resizeHandleWidth) {
startX = event.x;
originalWidth = this.offsetWidth;
resizing = true;
target = this;
}
});
}
}
</script>
</head>
<body onload='loaded();'>
<div class="section-header">
<label>Entity Properties</label>
</div>
<table id="properties-table">
<colgroup>
<col id="col-label">
<col>
</colgroup>
<tr>
<td class="label">
ID
</td>
<td>
<body class="properties" onload='loaded();'>
<div id="properties-list">
<div id="type" class="property">
<div class="label">
<label>Type: </label><span id="property-type"></span>
</div>
</div>
<div class="property">
<div class="value">
<label id="property-id" class="selectable"></label>
</td>
</tr>
<tr>
<td class="label">
Type
</td>
<td>
<label id="property-type"></label>
</td>
</tr>
<tr>
<td class="label">Locked</td>
<td>
</div>
</div>
<div class="property">
<div class="label">Locked</div>
<div class="value">
<input type='checkbox' id="property-locked">
</td>
</tr>
</div>
</div>
<tr>
<td class="label">Visible</td>
<td>
<div class="property">
<div class="label">Visible</div>
<div class="value">
<input type='checkbox' id="property-visible">
</td>
</tr>
</div>
</div>
<tr>
<td class="label">Position</td>
<td>
<div class="input-area">X <input class="coord" type='number' id="property-pos-x"></input></div>
<div class="input-area">Y <input class="coord" type='number' id="property-pos-y"></input></div>
<div class="input-area">Z <input class="coord" type='number' id="property-pos-z"></input></div>
<div class="property">
<div class="label">Position</div>
<div class="value">
<div class="input-area">X <br><input class="coord" type='number' id="property-pos-x"></input></div>
<div class="input-area">Y <br><input class="coord" type='number' id="property-pos-y"></input></div>
<div class="input-area">Z <br><input class="coord" type='number' id="property-pos-z"></input></div>
<div>
<input type="button" id="move-selection-to-grid" value="Selection to Grid">
<input type="button" id="move-all-to-grid" value="All to Grid">
</div>
</td>
</tr>
</div>
</div>
<tr>
<td class="label">Registration</td>
<td>
<div class="property">
<div class="label">Registration</div>
<div class="value">
<div class="input-area">X <input class="coord" type='number' id="property-reg-x"></input></div>
<div class="input-area">Y <input class="coord" type='number' id="property-reg-y"></input></div>
<div class="input-area">Z <input class="coord" type='number' id="property-reg-z"></input></div>
</td>
</tr>
</div>
</div>
<tr>
<td class="label">Dimensions</td>
<td>
<div class="property">
<div class="label">Dimensions</div>
<div class="value">
<div class="input-area">X <input class="coord" type='number' id="property-dim-x"></input></div>
<div class="input-area">Y <input class="coord" type='number' id="property-dim-y"></input></div>
<div class="input-area">Z <input class="coord" type='number' id="property-dim-z"></input></div>
@ -560,248 +503,255 @@
<input type="button" id="reset-to-natural-dimensions" value="Reset to Natural Dimensions">
</div>
<div class="input-area">
<input class="coord" type='number' id="dimension-rescale-pct" value=100></input>%
<input class="" type='number' id="dimension-rescale-pct" value=100></input>%
</div>
<span>
<input type="button" id="dimension-rescale-button" value="Rescale"></input>
</span>
</td>
</tr>
</div>
</div>
<tr>
<td class="label">Rotation</td>
<td>
<div class="property">
<div class="label">Rotation</div>
<div class="value">
<div class="input-area">Pitch <input class="coord" type='number' id="property-rot-x"></input></div>
<div class="input-area">Yaw <input class="coord" type='number' id="property-rot-y"></input></div>
<div class="input-area">Roll <input class="coord" type='number' id="property-rot-z"></input></div>
</td>
</tr>
</div>
</div>
<tr>
<td class="label">Linear Velocity</td>
<td>
<div class="property">
<div class="label">Linear Velocity</div>
<div class="value">
<div class="input-area">X <input class="coord" type='number' id="property-lvel-x"></input></div>
<div class="input-area">Y <input class="coord" type='number' id="property-lvel-y"></input></div>
<div class="input-area">Z <input class="coord" type='number' id="property-lvel-z"></input></div>
</td>
</tr>
<tr>
<td class="label">Linear Damping</td>
<td>
</div>
</div>
<div class="property">
<div class="label">Linear Damping</div>
<div class="value">
<input class="coord" type='number' id="property-ldamping"></input>
</td>
</tr>
<tr>
<td class="label">Angular Velocity</td>
<td>
</div>
</div>
<div class="property">
<div class="label">Angular Velocity</div>
<div class="value">
<div class="input-area">Pitch <input class="coord" type='number' id="property-avel-x"></input></div>
<div class="input-area">Yaw <input class="coord" type='number' id="property-avel-y"></input></div>
<div class="input-area">Roll <input class="coord" type='number' id="property-avel-z"></input></div>
</td>
</tr>
<tr>
<td class="label">Angular Damping</td>
<td>
</div>
</div>
<div class="property">
<div class="label">Angular Damping</div>
<div class="value">
<input class="coord" type='number' id="property-adamping"></input>
</td>
</tr>
</div>
</div>
<tr>
<td class="label">Gravity</td>
<td>
<div class="property">
<div class="label">Gravity</div>
<div class="value">
<div class="input-area">X <input class="coord" type='number' id="property-grav-x"></input></div>
<div class="input-area">Y <input class="coord" type='number' id="property-grav-y"></input></div>
<div class="input-area">Z <input class="coord" type='number' id="property-grav-z"></input></div>
</td>
</tr>
</div>
</div>
<tr>
<td class="label">Density</td>
<td>
<div class="property">
<div class="label">Mass</div>
<div class="value">
<input type='number' id="property-mass"></input>
</div>
</div>
<div>
<div class="label">Density</div>
<div>
<input type='number' id="property-density"></input>
</td>
</tr>
</div>
</div>
<tr>
<td class="label">Ignore For Collisions</td>
<td>
<div class="property">
<div class="label">Ignore For Collisions</div>
<div class="value">
<input type='checkbox' id="property-ignore-for-collisions"></input>
</td>
</tr>
</div>
</div>
<tr>
<td class="label">Collisions Will Move</td>
<td>
<div class="property">
<div class="label">Collisions Will Move</div>
<div class="value">
<input type='checkbox' id="property-collisions-will-move"></input>
</td>
</tr>
</div>
</div>
<tr>
<td class="label">Lifetime</td>
<td>
<div class="property">
<div class="label">Lifetime</div>
<div class="value">
<input type='number' id="property-lifetime"></input>
</td>
</tr>
</div>
</div>
<tr>
<td class="label">Script URL</td>
<td>
<div class="property">
<div class="label">Script URL</div>
<div class="value">
<input id="property-script-url" class="url"></input>
</td>
</tr>
</div>
</div>
<tr class="box-section">
<td class="label">Color</td>
<td>
<div class="box-section property">
<div class="label">Color</div>
<div class="value">
<div class="input-area">R <input class="coord" type='number' id="property-box-red"></input></div>
<div class="input-area">G <input class="coord" type='number' id="property-box-green"></input></div>
<div class="input-area">B <input class="coord" type='number' id="property-box-blue"></input></div>
</td>
</tr>
</div>
</div>
<tr class="model-section">
<td class="label">Model URL</td>
<td>
<div class="model-section property">
<div class="label">Model URL</div>
<div class="value">
<input type="text" id="property-model-url" class="url"></input>
</td>
</tr>
<tr class="model-section">
<td class="label">Animation URL</td>
<td>
</div>
</div>
<div class="model-section property">
<div class="label">Animation URL</div>
<div class="value">
<input type="text" id="property-model-animation-url" class="url"></input>
</td>
</tr>
<tr class="model-section">
<td class="label">Animation Playing</td>
<td>
</div>
</div>
<div class="model-section property">
<div class="label">Animation Playing</div>
<div class="value">
<input type='checkbox' id="property-model-animation-playing">
</td>
</tr>
<tr class="model-section">
<td class="label">Animation FPS</td>
<td>
</div>
</div>
<div class="model-section property">
<div class="label">Animation FPS</div>
<div class="value">
<input class="coord" type='number' id="property-model-animation-fps"></input>
</td>
</tr>
<tr class="model-section">
<td class="label">Animation Frame</td>
<td>
</div>
</div>
<div class="model-section property">
<div class="label">Animation Frame</div>
<div class="value">
<input class="coord" type='number' id="property-model-animation-frame"></input>
</td>
</tr>
<tr class="model-section">
<td class="label">Animation Settings</td>
<td>
</div>
</div>
<div class="model-section property">
<div class="label">Animation Settings</div>
<div class="value">
<textarea id="property-model-animation-settings" value='asdfasdf'></textarea>
</td>
</tr>
<tr class="model-section">
<td class="label">Textures</td>
<td>
</div>
</div>
<div class="model-section property">
<div class="label">Textures</div>
<div class="value">
<textarea id="property-model-textures" value='asdfasdf'></textarea>
</td>
</tr>
<tr class="model-section">
<td class="label">Original Textures</td>
<td>
</div>
</div>
<div class="model-section property">
<div class="label">Original Textures</div>
<div class="value">
<textarea id="property-model-original-textures" readonly value='asdfasdf'></textarea>
</td>
</tr>
</div>
</div>
<tr class="text-section">
<td class="label">Text</td>
<td>
<div class="text-section property">
<div class="label">Text</div>
<div class="value">
<input type="text" id="property-text-text"></input>
</td>
</tr>
<tr class="text-section">
<td class="label">Line Height</td>
<td>
</div>
</div>
<div class="text-section property">
<div class="label">Line Height</div>
<div class="value">
<input class="coord" type='number' id="property-text-line-height"></input>
</td>
</tr>
<tr class="text-section">
<td class="label">Text Color</td>
<td>
</div>
</div>
<div class="text-section property">
<div class="label">Text Color</div>
<div class="value">
<div class="input-area">R <input class="coord" type='number' id="property-text-text-color-red"></input></div>
<div class="input-area">G <input class="coord" type='number' id="property-text-text-color-green"></input></div>
<div class="input-area">B <input class="coord" type='number' id="property-text-text-color-blue"></input></div>
</td>
</tr>
<tr class="text-section">
<td class="label">Background Color</td>
<td>
</div>
</div>
<div class="text-section property">
<div class="label">Background Color</div>
<div class="value">
<div class="input-area">R <input class="coord" type='number' id="property-text-background-color-red"></input></div>
<div class="input-area">G <input class="coord" type='number' id="property-text-background-color-green"></input></div>
<div class="input-area">B <input class="coord" type='number' id="property-text-background-color-blue"></input></div>
</td>
</tr>
</div>
</div>
<tr class="light-section">
<td class="label">Spot Light</td>
<td>
<div class="light-section property">
<div class="label">Spot Light</div>
<div class="value">
<input type='checkbox' id="property-light-spot-light">
</td>
</tr>
<tr class="light-section">
<td class="label">Diffuse</td>
<td>
</div>
</div>
<div class="light-section property">
<div class="label">Diffuse</div>
<div class="value">
<div class="input-area">R <input class="coord" type='number' id="property-light-diffuse-red"></input></div>
<div class="input-area">G <input class="coord" type='number' id="property-light-diffuse-green"></input></div>
<div class="input-area">B <input class="coord" type='number' id="property-light-diffuse-blue"></input></div>
</td>
</tr>
<tr class="light-section">
<td class="label">Ambient</td>
<td>
</div>
</div>
<div class="light-section property">
<div class="label">Ambient</div>
<div class="value">
<div class="input-area">R <input class="coord" type='number' id="property-light-ambient-red"></input></div>
<div class="input-area">G <input class="coord" type='number' id="property-light-ambient-green"></input></div>
<div class="input-area">B <input class="coord" type='number' id="property-light-ambient-blue"></input></div>
</td>
</tr>
<tr class="light-section">
<td class="label">Specular</td>
<td>
</div>
</div>
<div class="light-section property">
<div class="label">Specular</div>
<div class="value">
<div class="input-area">R <input class="coord" type='number' id="property-light-specular-red"></input></div>
<div class="input-area">G <input class="coord" type='number' id="property-light-specular-green"></input></div>
<div class="input-area">B <input class="coord" type='number' id="property-light-specular-blue"></input></div>
</td>
</tr>
<tr class="light-section">
<td class="label">Constant Attenuation</td>
<td>
</div>
</div>
<div class="light-section property">
<div class="label">Constant Attenuation</div>
<div class="value">
<input class="coord" type='number' id="property-light-constant-attenuation"></input>
</td>
</tr>
<tr class="light-section">
<td class="label">Linear Attenuation</td>
<td>
</div>
</div>
<div class="light-section property">
<div class="label">Linear Attenuation</div>
<div class="value">
<input class="coord" type='number' id="property-light-linear-attenuation"></input>
</td>
</tr>
<tr class="light-section">
<td class="label">Quadratic Attenuation</td>
<td>
</div>
</div>
<div class="light-section property">
<div class="label">Quadratic Attenuation</div>
<div class="value">
<input class="coord" type='number' id="property-light-quadratic-attenuation"></input>
</td>
</tr>
<tr class="light-section">
<td class="label">Exponent</td>
<td>
</div>
</div>
<div class="light-section property">
<div class="label">Exponent</div>
<div class="value">
<input class="coord" type='number' id="property-light-exponent"></input>
</td>
</tr>
<tr class="light-section">
<td class="label">Cutoff (degrees)</td>
<td>
</div>
</div>
<div class="light-section property">
<div class="label">Cutoff (degrees)</div>
<div class="value">
<input class="coord" type='number' id="property-light-cutoff"></input>
</td>
</tr>
</table>
</div>
</div>
</div>
</body>
</html>

View file

@ -6,8 +6,8 @@ body {
padding: 0;
background-color: #efefef;
font-family: Sans-Serif;
font-size: 12px;
font-family: Arial;
font-size: 11.5px;
-webkit-touch-callout: none;
-webkit-user-select: none;
@ -17,6 +17,12 @@ body {
user-select: none;
}
body.properties {
background-color: rgb(76, 76, 76);
color: rgb(204, 204, 204);
font-size: 11px;
}
.selectable {
-webkit-touch-callout: text;
-webkit-user-select: text;
@ -85,12 +91,10 @@ input[type=button] {
border: 0;
color: #fff;
font-weight: bold;
margin: 0 2px;
margin-top: 5px;
font-size: .9em;
}
textarea, input {
margin: 0;
padding: 2px;
border: 1px solid #999;
background-color: #eee;
@ -105,10 +109,15 @@ input.url {
width: 100%;
}
input.coord {
width: 7em;
display: block;
}
table#entity-table {
border-collapse: collapse;
font-family: Sans-Serif;
font-size: 12px;
/* font-size: 12px; */
width: 100%;
}
@ -145,31 +154,62 @@ th#entity-url {
div.input-area {
display: inline-block;
font-size: 10px;
}
input {
}
#type {
font-size: 14px;
}
#type label {
color: rgb(150, 150, 150);
}
#properties-list input, #properties-list textarea {
background-color: rgb(102, 102, 102);
color: rgb(204, 204, 204);
border: none;
font-size: 10px;
}
#properties-list input[type=button] {
cursor: pointer;
background-color: rgb(51, 102, 102);
border-color: #608e96;
border-radius: 5px;
padding: 5px 10px;
border: 0;
color: rgb(204, 204, 204);
}
#properties-list .property {
padding: 8px 8px;
border-top: 1px solid rgb(63, 63, 63);
min-height: 1em;
}
table#properties-table {
table#properties-list {
border: none;
border-collapse: collapse;
width: 100%;
background-color: #efefef;
font-family: Arial;
font-size: 12px;
table-layout: fixed;
}
#properties-table tr {
#properties-list > div {
margin: 4px 0;
}
#properties-list {
border-bottom: 1px solid #e5e5e5;
}
#properties-table td.label {
padding-right: 10px;
border-right: 1px solid #999;
text-align: right;
#properties-list .label {
font-weight: bold;
white-space: nowrap;
overflow: hidden;
@ -179,8 +219,8 @@ table#properties-table {
height: 1.2em;
}
#properties-table td {
padding: 5px;
#properties-list .value > div{
padding: 4px 0;
}
col#col-label {