| Index: tools/win/sizeviewer/template.html
|
| diff --git a/tools/win/sizeviewer/template.html b/tools/win/sizeviewer/template.html
|
| index ffbffbb1f1574a2c7ec30b20d12e640bee97b527..a5fe1332e8a1096c02fb84121546d21dd5ba76f2 100644
|
| --- a/tools/win/sizeviewer/template.html
|
| +++ b/tools/win/sizeviewer/template.html
|
| @@ -1,199 +1,380 @@
|
| <!DOCTYPE html>
|
| <html>
|
| <head>
|
| - <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
|
| - <link type="text/css" rel="stylesheet" href="style.css"/>
|
| - <script src="http://d3js.org/d3.v3.min.js" charset="utf-8"></script>
|
| + <script type="text/javascript" src="https://www.google.com/jsapi"></script>
|
| <style type="text/css">
|
| +/* ----------------------------------------- Slightly modified codemirror.css */
|
|
|
| -body {
|
| - overflow: hidden;
|
| - margin: 0;
|
| - font-size: 14px;
|
| - font-family: "Helvetica Neue", Helvetica;
|
| +/* BASICS */
|
| +
|
| +.CodeMirror {
|
| + /* Set height, width, borders, and global font properties here */
|
| + font-family: 'Consolas', 'Monaco', 'Courier';
|
| + font-size: 12px;
|
| + height: 300px;
|
| +}
|
| +.CodeMirror-scroll {
|
| + /* Set scrolling behaviour here */
|
| + overflow: auto;
|
| }
|
|
|
| -#chart, #header, #footer {
|
| - position: absolute;
|
| - top: 0;
|
| +/* PADDING */
|
| +
|
| +.CodeMirror-lines {
|
| + padding: 4px 0; /* Vertical padding around content */
|
| +}
|
| +.CodeMirror pre {
|
| + padding: 0 4px; /* Horizontal padding of content */
|
| }
|
|
|
| -#header, #footer {
|
| - z-index: 1;
|
| - display: block;
|
| - font-size: 36px;
|
| - font-weight: 300;
|
| - text-shadow: 0 1px 0 #fff;
|
| +.CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {
|
| + background-color: white; /* The little square between H and V scrollbars */
|
| }
|
|
|
| -#header.inverted, #footer.inverted {
|
| - color: #fff;
|
| - text-shadow: 0 1px 4px #000;
|
| +/* GUTTER */
|
| +
|
| +.CodeMirror-gutters {
|
| + border-right: 1px solid #ddd;
|
| + background-color: #f7f7f7;
|
| + white-space: nowrap;
|
| +}
|
| +.CodeMirror-linenumbers {}
|
| +.CodeMirror-linenumber {
|
| + padding: 0 3px 0 5px;
|
| + min-width: 20px;
|
| + text-align: right;
|
| + color: #999;
|
| + -moz-box-sizing: content-box;
|
| + box-sizing: content-box;
|
| }
|
|
|
| -#header {
|
| - top: 80px;
|
| - left: 140px;
|
| - width: 1000px;
|
| +.CodeMirror-guttermarker { color: black; }
|
| +.CodeMirror-guttermarker-subtle { color: #999; }
|
| +
|
| +/* CURSOR */
|
| +
|
| +.CodeMirror div.CodeMirror-cursor {
|
| + border-left: 1px solid black;
|
| +}
|
| +/* Shown when moving in bi-directional text */
|
| +.CodeMirror div.CodeMirror-secondarycursor {
|
| + border-left: 1px solid silver;
|
| +}
|
| +.CodeMirror.cm-fat-cursor div.CodeMirror-cursor {
|
| + width: auto;
|
| + border: 0;
|
| + background: #7e7;
|
| +}
|
| +.CodeMirror.cm-fat-cursor div.CodeMirror-cursors {
|
| + z-index: 1;
|
| }
|
|
|
| -#footer {
|
| - top: 1080px;
|
| - right: 140px;
|
| - text-align: right;
|
| +.cm-animate-fat-cursor {
|
| + width: auto;
|
| + border: 0;
|
| + -webkit-animation: blink 1.06s steps(1) infinite;
|
| + -moz-animation: blink 1.06s steps(1) infinite;
|
| + animation: blink 1.06s steps(1) infinite;
|
| }
|
| +@-moz-keyframes blink {
|
| + 0% { background: #7e7; }
|
| + 50% { background: none; }
|
| + 100% { background: #7e7; }
|
| +}
|
| +@-webkit-keyframes blink {
|
| + 0% { background: #7e7; }
|
| + 50% { background: none; }
|
| + 100% { background: #7e7; }
|
| +}
|
| +@keyframes blink {
|
| + 0% { background: #7e7; }
|
| + 50% { background: none; }
|
| + 100% { background: #7e7; }
|
| +}
|
| +
|
| +/* Can style cursor different in overwrite (non-insert) mode */
|
| +div.CodeMirror-overwrite div.CodeMirror-cursor {}
|
|
|
| -rect {
|
| - fill: none;
|
| - pointer-events: all;
|
| +.cm-tab { display: inline-block; text-decoration: inherit; }
|
| +
|
| +.CodeMirror-ruler {
|
| + border-left: 1px solid #ccc;
|
| + position: absolute;
|
| }
|
|
|
| -pre {
|
| - font-size: 18px;
|
| +/* DEFAULT THEME */
|
| +
|
| +.cm-s-default .cm-keyword {color: #708;}
|
| +.cm-s-default .cm-atom {color: #219;}
|
| +.cm-s-default .cm-number {color: #164;}
|
| +.cm-s-default .cm-def {color: #00f;}
|
| +.cm-s-default .cm-variable,
|
| +.cm-s-default .cm-punctuation,
|
| +.cm-s-default .cm-property,
|
| +.cm-s-default .cm-operator {}
|
| +.cm-s-default .cm-variable-2 {color: #05a;}
|
| +.cm-s-default .cm-variable-3 {color: #085;}
|
| +.cm-s-default .cm-comment {color: #a50;}
|
| +.cm-s-default .cm-string {color: #a11;}
|
| +.cm-s-default .cm-string-2 {color: #f50;}
|
| +.cm-s-default .cm-meta {color: #555;}
|
| +.cm-s-default .cm-qualifier {color: #555;}
|
| +.cm-s-default .cm-builtin {color: #30a;}
|
| +.cm-s-default .cm-bracket {color: #997;}
|
| +.cm-s-default .cm-tag {color: #170;}
|
| +.cm-s-default .cm-attribute {color: #00c;}
|
| +.cm-s-default .cm-header {color: blue;}
|
| +.cm-s-default .cm-quote {color: #090;}
|
| +.cm-s-default .cm-hr {color: #999;}
|
| +.cm-s-default .cm-link {color: #00c;}
|
| +
|
| +.cm-negative {color: #d44;}
|
| +.cm-positive {color: #292;}
|
| +.cm-header, .cm-strong {font-weight: bold;}
|
| +.cm-em {font-style: italic;}
|
| +.cm-link {text-decoration: underline;}
|
| +.cm-strikethrough {text-decoration: line-through;}
|
| +
|
| +.cm-s-default .cm-error {color: #f00;}
|
| +.cm-invalidchar {color: #f00;}
|
| +
|
| +/* Default styles for common addons */
|
| +
|
| +div.CodeMirror span.CodeMirror-matchingbracket {color: #0f0;}
|
| +div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;}
|
| +.CodeMirror-matchingtag { background: rgba(255, 150, 0, .3); }
|
| +.CodeMirror-activeline-background {background: #e8f2ff;}
|
| +
|
| +/* STOP */
|
| +
|
| +/* The rest of this file contains styles related to the mechanics of
|
| + the editor. You probably shouldn't touch them. */
|
| +
|
| +.CodeMirror {
|
| + line-height: 1;
|
| + position: relative;
|
| + overflow: hidden;
|
| + background: white;
|
| + color: black;
|
| }
|
|
|
| -line {
|
| - stroke: #000;
|
| - stroke-width: 1.5px;
|
| +.CodeMirror-scroll {
|
| + /* 30px is the magic margin used to hide the element's real scrollbars */
|
| + /* See overflow: hidden in .CodeMirror */
|
| + margin-bottom: -30px; margin-right: -30px;
|
| + padding-bottom: 30px;
|
| + height: 100%;
|
| + outline: none; /* Prevent dragging from highlighting the element */
|
| + position: relative;
|
| + -moz-box-sizing: content-box;
|
| + box-sizing: content-box;
|
| +}
|
| +.CodeMirror-sizer {
|
| + position: relative;
|
| + border-right: 30px solid transparent;
|
| + -moz-box-sizing: content-box;
|
| + box-sizing: content-box;
|
| }
|
|
|
| -.string, .regexp {
|
| - color: #f39;
|
| +/* The fake, visible scrollbars. Used to force redraw during scrolling
|
| + before actuall scrolling happens, thus preventing shaking and
|
| + flickering artifacts. */
|
| +.CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {
|
| + position: absolute;
|
| + z-index: 6;
|
| + display: none;
|
| +}
|
| +.CodeMirror-vscrollbar {
|
| + right: 0; top: 0;
|
| + overflow-x: hidden;
|
| + overflow-y: scroll;
|
| +}
|
| +.CodeMirror-hscrollbar {
|
| + bottom: 0; left: 0;
|
| + overflow-y: hidden;
|
| + overflow-x: scroll;
|
| +}
|
| +.CodeMirror-scrollbar-filler {
|
| + right: 0; bottom: 0;
|
| +}
|
| +.CodeMirror-gutter-filler {
|
| + left: 0; bottom: 0;
|
| }
|
|
|
| -.keyword {
|
| - color: #00c;
|
| +.CodeMirror-gutters {
|
| + position: absolute; left: 0; top: 0;
|
| + padding-bottom: 30px;
|
| + z-index: 3;
|
| +}
|
| +.CodeMirror-gutter {
|
| + white-space: normal;
|
| + height: 100%;
|
| + -moz-box-sizing: content-box;
|
| + box-sizing: content-box;
|
| + padding-bottom: 30px;
|
| + margin-bottom: -32px;
|
| + display: inline-block;
|
| + /* Hack to make IE7 behave */
|
| + *zoom:1;
|
| + *display:inline;
|
| +}
|
| +.CodeMirror-gutter-wrapper {
|
| + position: absolute;
|
| + z-index: 4;
|
| + height: 100%;
|
| +}
|
| +.CodeMirror-gutter-elt {
|
| + position: absolute;
|
| + cursor: default;
|
| + z-index: 4;
|
| }
|
|
|
| -.comment {
|
| - color: #777;
|
| - font-style: oblique;
|
| +.CodeMirror-lines {
|
| + cursor: text;
|
| + min-height: 1px; /* prevents collapsing before first draw */
|
| +}
|
| +.CodeMirror pre {
|
| + /* Reset some styles that the rest of the page might have set */
|
| + -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0;
|
| + border-width: 0;
|
| + background: transparent;
|
| + font-family: inherit;
|
| + font-size: inherit;
|
| + margin: 0;
|
| + white-space: pre;
|
| + word-wrap: normal;
|
| + line-height: inherit;
|
| + color: inherit;
|
| + z-index: 2;
|
| + position: relative;
|
| + overflow: visible;
|
| +}
|
| +.CodeMirror-wrap pre {
|
| + word-wrap: break-word;
|
| + white-space: pre-wrap;
|
| + word-break: normal;
|
| }
|
|
|
| -.number {
|
| - color: #369;
|
| +.CodeMirror-linebackground {
|
| + position: absolute;
|
| + left: 0; right: 0; top: 0; bottom: 0;
|
| + z-index: 0;
|
| }
|
|
|
| -.class, .special {
|
| - color: #1181B8;
|
| +.CodeMirror-linewidget {
|
| + position: relative;
|
| + z-index: 2;
|
| + overflow: auto;
|
| }
|
|
|
| -a:link, a:visited {
|
| - color: #000;
|
| - text-decoration: none;
|
| +.CodeMirror-widget {}
|
| +
|
| +.CodeMirror-wrap .CodeMirror-scroll {
|
| + overflow-x: hidden;
|
| }
|
|
|
| -a:hover {
|
| - color: #666;
|
| +.CodeMirror-measure {
|
| + position: absolute;
|
| + width: 100%;
|
| + height: 0;
|
| + overflow: hidden;
|
| + visibility: hidden;
|
| }
|
| +.CodeMirror-measure pre { position: static; }
|
|
|
| -.hint {
|
| +.CodeMirror div.CodeMirror-cursor {
|
| position: absolute;
|
| - right: 0;
|
| - width: 1280px;
|
| - font-size: 12px;
|
| - color: #999;
|
| + border-right: none;
|
| + width: 0;
|
| +}
|
| +
|
| +div.CodeMirror-cursors {
|
| + visibility: hidden;
|
| + position: relative;
|
| + z-index: 3;
|
| }
|
| -.chart {
|
| - display: block;
|
| - margin: auto;
|
| - margin-top: 60px;
|
| - font-size: 11px;
|
| +.CodeMirror-focused div.CodeMirror-cursors {
|
| + visibility: visible;
|
| }
|
|
|
| -rect {
|
| - stroke: #eee;
|
| - fill: #aaa;
|
| - fill-opacity: .8;
|
| +.CodeMirror-selected { background: #d9d9d9; }
|
| +.CodeMirror-focused .CodeMirror-selected { background: #d7d4f0; }
|
| +.CodeMirror-crosshair { cursor: crosshair; }
|
| +
|
| +.cm-searching {
|
| + background: #ffa;
|
| + background: rgba(255, 255, 0, .4);
|
| }
|
|
|
| -rect.parent {
|
| - cursor: pointer;
|
| - fill: steelblue;
|
| +/* IE7 hack to prevent it from returning funny offsetTops on the spans */
|
| +.CodeMirror span { *vertical-align: text-bottom; }
|
| +
|
| +/* Used to force a border model for a node */
|
| +.cm-force-border { padding-right: .1px; }
|
| +
|
| +@media print {
|
| + /* Hide the cursor when printing */
|
| + .CodeMirror div.CodeMirror-cursors {
|
| + visibility: hidden;
|
| + }
|
| }
|
|
|
| -text {
|
| - pointer-events: none;
|
| +/* See issue #2901 */
|
| +.cm-tab-wrap-hack:after { content: ''; }
|
| +
|
| +/* Help users use markselection to safely style text background */
|
| +span.CodeMirror-selectedtext { background: none; }
|
| +
|
| +/* ---------------------------------- End of slightly modified codemirror.css */
|
| +
|
| +body {
|
| + font-family: "Helvetica Neue", Helvetica, Arial;
|
| }
|
|
|
| +#outer {
|
| + width: 1500px;
|
| + height: 800px;
|
| + display: flex;
|
| +}
|
| +.CodeMirror {
|
| + border: 1px solid black;
|
| + margin-top: 3px;
|
| +}
|
| +.CodeMirror-linenumbers {
|
| + width: 150px;
|
| +}
|
| +.linebg-top10 { background: #f88; }
|
| +.linebg-top25 { background: #fbb; }
|
| +.linebg-top50 { background: #fee; }
|
| +.symbol-tag { background: #eee; }
|
| +.charts-tooltip { z-index: 1000; }
|
| </style>
|
| </head>
|
| <body>
|
| - <div id="body">
|
| - <div id="footer">
|
| - $dllname
|
| + <h1 id='title'>Loading...</h1>
|
| + <div id="outer">
|
| + <div id="tree>">
|
| + <button onclick="tree.goUpAndDraw()">Go up</button>
|
| + <div id="chart_div" style="width: 600px; height: 750px;">
|
| + </div>
|
| </div>
|
| - </div>
|
| - <script type="text/javascript">
|
| -
|
| -var w = 1120,
|
| - h = 1000,
|
| - x = d3.scale.linear().range([0, w]),
|
| - y = d3.scale.linear().range([0, h]);
|
| -
|
| -var vis = d3.select("#body").append("div")
|
| - .attr("class", "chart")
|
| - .style("width", w + "px")
|
| - .style("height", h + "px")
|
| - .append("svg:svg")
|
| - .attr("width", w)
|
| - .attr("height", h);
|
| -
|
| -var partition = d3.layout.partition()
|
| - .value(function(d) { return d.size; });
|
| -
|
| -(function(root) {
|
| - var g = vis.selectAll("g")
|
| - .data(partition.nodes(root))
|
| - .enter().append("svg:g")
|
| - .attr("transform", function(d) { return "translate(" + x(d.y) + "," + y(d.x) + ")"; })
|
| - .on("click", click);
|
| -
|
| - var kx = w / root.dx,
|
| - ky = h / 1;
|
| -
|
| - g.append("svg:rect")
|
| - .attr("width", root.dy * kx)
|
| - .attr("height", function(d) { return d.dx * ky; })
|
| - .attr("class", function(d) { return d.children ? "parent" : "child"; });
|
| -
|
| - g.append("svg:text")
|
| - .attr("transform", transform)
|
| - .attr("dy", ".35em")
|
| - .style("opacity", function(d) { return d.dx * ky > 12 ? 1 : 0; })
|
| - .text(function(d) { return d.name; })
|
| -
|
| - d3.select(window)
|
| - .on("click", function() { click(root); })
|
| -
|
| - function click(d) {
|
| - if (!d.children) return;
|
| -
|
| - kx = (d.y ? w - 40 : w) / (1 - d.y);
|
| - ky = h / d.dx;
|
| - x.domain([d.y, 1]).range([d.y ? 40 : 0, w]);
|
| - y.domain([d.x, d.x + d.dx]);
|
| -
|
| - var t = g.transition()
|
| - .duration(d3.event.altKey ? 7500 : 750)
|
| - .attr("transform", function(d) { return "translate(" + x(d.y) + "," + y(d.x) + ")"; });
|
| -
|
| - t.select("rect")
|
| - .attr("width", d.dy * kx)
|
| - .attr("height", function(d) { return d.dx * ky; });
|
| -
|
| - t.select("text")
|
| - .attr("transform", transform)
|
| - .style("opacity", function(d) { return d.dx * ky > 12 ? 1 : 0; });
|
| -
|
| - d3.event.stopPropagation();
|
| - }
|
| + <div id=source">
|
| + <textarea id="source_view" style="width: 850px; height: 600px;">
|
| +/*
|
|
|
| - function transform(d) {
|
| - return "translate(8," + d.dx * ky / 2 + ")";
|
| - }
|
| -})($data);
|
| +Drill down on the left to an interesting file to see a line-by-line breakdown.
|
| +
|
| +Largest lines are annotated here in darkest red.
|
|
|
| - </script>
|
| +Click on a line with bytes assigned to see contributing symbols below
|
| +
|
| +*/
|
| + </textarea>
|
| + <textarea id="symlist_view" style="width: 850px; height: 100px;">
|
| + </textarea>
|
| + </div>
|
| </body>
|
| -</html>
|
| +<!--
|
| +Various things appended: codemirror.js, clike.js, various g_xxx variables ending
|
| +with main.js, followed by the closing html tag.
|
| +-->
|
|
|