16a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com<!DOCTYPE html> 26a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com<html> 36a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <!-- 46a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com Copyright 2013 Google Inc. 56a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com 66a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com Use of this source code is governed by a BSD-style license that can be 76a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com found in the LICENSE file. 86a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com --> 96a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com<head> 106a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <title>Skia Debugger</title> 116a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <link rel="stylesheet" type="text/css" href="debugger.css"/> 126a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <script type="text/javascript"> 136a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com "use strict"; 146a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com 156a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com var skia_module = null; // Global application object. 166a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com var display_right_panel = null; 176a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com var display_bottom_row = null; 186a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com var overview_text = ""; 196a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com var details_text = "Default details text."; 206a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com var command_list = []; 216a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com var command_types = {}; 226a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com var no_filter_text = "--Filter By Available Commands--"; 236a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com 246a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com function openFileDialog() { 256a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com var event = document.createEvent("MouseEvents"); 266a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com event.initEvent("click", true, false); 276a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com document.getElementById("file_open").dispatchEvent(event); 286a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com } 296a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com 306a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com function updateOverviewDetails() { 316a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com var radio_buttons = document.getElementsByName("overviewdetails_radio"); 326a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com for (var i = 0; i < radio_buttons.length; ++i) { 336a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com if (radio_buttons[i].checked) { 346a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com if (radio_buttons[i].value == "details") { 356a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com document.getElementById("overviewdetails").innerHTML = details_text; 366a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com } else { 376a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com document.getElementById("overviewdetails").innerHTML = overview_text; 386a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com } 396a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com return; 406a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com } 416a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com } 426a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com // If no radio button is checked, check the "overview" button. 436a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com for (var i = 0; i < radio_buttons.length; ++i) { 446a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com if (radio_buttons[i].value == "overview") { 456a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com radio_buttons[i].checked = true; 466a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com document.getElementById("overviewdetails").innerHTML = overview_text; 476a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com return; 486a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com } 496a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com } 506a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com } 516a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com 526a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com function makeIndentString(indent_amt) { 536a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com var indent_str = ""; 546a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com for (var i = 0; i < indent_amt; ++i) { 556a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com indent_str += "--"; 566a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com } 576a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com return indent_str; 586a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com } 596a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com 606a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com function updateCommandList(filter) { 616a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com var command_list_display = document.getElementById("command_list"); 626a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com command_list_display.options.length = 0; 636a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com var indent = 0; 646a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com var indent_str = ""; 656a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com for (var i = 0; i < command_list.length; ++i) { 666a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com if (command_list[i] == "Restore") { 676a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com indent--; 686a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com indent_str = makeIndentString(indent); 696a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com } 706a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com if (!filter || filter == no_filter_text || command_list[i] == filter) { 716a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com command_list_display.options.add(new Option(indent_str + command_list[i], i)); 726a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com } 736a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com if (command_list[i] == "Save" || command_list[i] == "Save Layer") { 746a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com indent++; 756a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com indent_str = makeIndentString(indent); 766a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com } 776a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com } 786a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com command_list_display.selectedIndex = command_list_display.length - 1; 796a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com 806a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com // TODO(borenet): Should the SKP re-draw when the command list is updated? 816a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com //commandSelected(); 826a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com } 836a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com 846a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com function updateFilterList() { 856a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com var filter_list_display = document.getElementById("command_filter"); 866a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com filter_list_display.options.length = 0; 876a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com filter_list_display.options.add(new Option(no_filter_text, no_filter_text)); 886a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com for (var command_type in command_types) { 896a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com if (command_types.hasOwnProperty(command_type)) { 906a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com filter_list_display.options.add(new Option(command_type, command_type)); 916a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com } 926a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com } 936a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com } 946a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com 956a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com function openFile(event) { 966a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com document.getElementById("overviewdetails").innerHTML = ""; 976a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com var files = event.target.files; 986a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com if (files.length != 1) { 996a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com return; 1006a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com } 1016a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com var file = files[0]; 1026a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com var reader = new FileReader(); 1036a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com reader.onload = (function(theFile) { 1046a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com return function(e) { 1056a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com var data_prefix = "data:;base64,"; 1066a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com skia_module.postMessage("LoadSKP" + e.target.result.slice(data_prefix.length)); 1076a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com }; 1086a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com })(file); 1096a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com reader.readAsDataURL(file); 1106a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com } 1116a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com 1126a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com function toggleInspector() { 1136a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com var right_panel = document.getElementById("right_panel"); 1146a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com var bottom_row = document.getElementById("bottom_row"); 1156a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com if (right_panel.style.display == display_right_panel) { 1166a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com right_panel.style.display = "none"; 1176a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com bottom_row.style.display = "none"; 1186a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com } else { 1196a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com right_panel.style.display = display_right_panel; 1206a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com bottom_row.style.display = display_bottom_row; 1216a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com } 1226a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com } 1236a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com 1246a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com function onLoad() { 1256a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com document.getElementById("file_open").addEventListener("change", openFile, false); 1266a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com var right_panel = document.getElementById("right_panel"); 1276a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com var bottom_row = document.getElementById("bottom_row"); 1286a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com display_right_panel = right_panel.style.display; 1296a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com display_bottom_row = bottom_row.style.display; 1306a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com updateOverviewDetails(); 1316a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com updateFilterList(); 1326a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com } 1336a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com 1346a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com // When the module loads, begin running the application. 1356a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com function moduleDidLoad() { 1366a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com skia_module = document.getElementById("skia_nacl"); 1376a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com sendMsg("init"); 1386a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com } 1396a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com 1406a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com function handleMessage(message_event) { 1416a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com var cmd_skdebugf = "SkDebugf:"; 1426a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com var cmd_clear_commands = "ClearCommands"; 1436a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com var cmd_add_command = "AddCommand:"; 1446a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com var cmd_update_commands = "UpdateCommands"; 1456a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com var cmd_set_overview = "SetOverview:"; 1466a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com var cmd_add_filter_option = "AddFilterOption"; 1476a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com if (message_event.data.indexOf(cmd_skdebugf) == 0) { 1486a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com var msg_contents = message_event.data.slice(cmd_skdebugf.length) 1496a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com console.log("Skia: " + msg_contents); 1506a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com } else if (message_event.data.indexOf(cmd_clear_commands) == 0) { 1516a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com command_list = []; 1526a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com command_types = {}; 1536a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com updateCommandList(); 1546a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com updateFilterList(); 1556a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com } else if (message_event.data.indexOf(cmd_add_command) == 0) { 1566a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com var command = message_event.data.slice(cmd_add_command.length); 1576a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com command_list.push(command); 1586a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com if (command_types[command] == undefined) { 1596a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com command_types[command] = 1; 1606a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com } else { 1616a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com command_types[command]++; 1626a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com } 1636a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com } else if (message_event.data.indexOf(cmd_update_commands) == 0) { 1646a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com updateCommandList(); 1656a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com updateFilterList(); 1666a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com } else if (message_event.data.indexOf(cmd_set_overview) == 0) { 1676a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com overview_text = message_event.data.slice(cmd_set_overview.length); 1686a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com document.getElementById("overview_radio").checked = true; 1696a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com updateOverviewDetails(); 1706a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com } else { 1716a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com alert(message_event.data); 1726a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com } 1736a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com } 1746a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com 1756a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com // Send a message to the plugin. 1766a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com function sendMsg(msg) { 1776a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com if (skia_module) { 1786a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com //console.log("Sending msg:" + msg); 1796a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com skia_module.postMessage(msg); 1806a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com } else { 1816a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com alert("The Skia module has not properly loaded..."); 1826a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com } 1836a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com } 1846a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com 1856a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com function commandSelected() { 1866a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com var command_list = document.getElementById("command_list"); 1876a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com var selected_index = command_list.options[command_list.selectedIndex].value; 1886a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com if (selected_index >= 0) { 1896a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com sendMsg("CommandSelected:" + selected_index); 1906a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com } 1916a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com } 1926a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com 1936a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com function rewind() { 1946a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com command_list.selectedIndex = 0; 1956a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com sendMsg("Rewind"); 1966a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com } 1976a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com 1986a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com function stepBack() { 1996a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com if (command_list.selectedIndex > 0) { 2006a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com command_list.selectedIndex = command_list.selectedIndex - 1; 2016a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com } 2026a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com sendMsg("StepBack"); 2036a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com } 2046a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com 2056a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com function pause() { 2066a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com sendMsg("Pause"); 2076a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com } 2086a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com 2096a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com function stepForward() { 2106a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com if (command_list.selectedIndex < command_list.length - 1) { 2116a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com command_list.selectedIndex = command_list.selectedIndex + 1; 2126a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com } 2136a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com sendMsg("StepForward"); 2146a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com } 2156a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com 2166a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com function play() { 2176a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com command_list.selectedIndex = command_list.length - 1; 2186a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com sendMsg("Play"); 2196a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com } 2206a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </script> 2216a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com</head> 2226a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com<body onLoad="javascript:onLoad()"> 2236a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com<div id="content" class="row-set"> 2246a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <div id="menu" class="row"> 2256a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <ul id="menu-bar" class="dropdown-menu"> 2266a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <li><a href="#">File</a> 2276a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <ul> 2286a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <li><a href="#" onClick="javascript:openFileDialog()">Open</a></li> 2296a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <li><a href="#">Save</a></li> 2306a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <li><a href="#">Save As</a></li> 2316a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <li><a href="#">Exit</a></li> 2326a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </ul> 2336a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </li> 2346a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <li><a href="#">Edit</a> 2356a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <ul> 2366a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <li><a href="#">Delete Command</a></li> 2376a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <li><a href="#">Clear Deletes</a></li> 2386a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <li><a href="#">Set Breakpoint</a></li> 2396a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <li><a href="#">Clear Breakpoints</a></li> 2406a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </ul> 2416a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </li> 2426a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <li><a href="#">View</a> 2436a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <ul> 2446a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <li><a href="#">Breakpoints</a></li> 2456a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <li><a href="#">Deleted Commands</a></li> 2466a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <li><a href="#">Zoom In</a></li> 2476a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <li><a href="#">Zoom Out</a></li> 2486a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </ul> 2496a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </li> 2506a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <li><a href="#">Navigate</a> 2516a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <ul> 2526a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <li><a href="#" onClick="javascript:rewind()">Rewind</a></li> 2536a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <li><a href="#" onClick="javascript:stepBack()">Step Back</a></li> 2546a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <li><a href="#" onClick="javascript:stepForward()">Step Forward</a></li> 2556a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <li><a href="#" onClick="javascript:play()">Play</a></li> 2566a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <li><a href="#" onClick="javascript:pause()">Pause</a></li> 2576a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <li><a href="#">Go to Line...</a></li> 2586a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </ul> 2596a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </li> 2606a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <li><a href="#">Window</a> 2616a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <ul> 2626a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <li><a href="#">Inspector</a></li> 2636a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <li><a href="#">Directory</a></li> 2646a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </ul> 2656a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </li> 2666a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </ul> 2676a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </div> 2686a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <div id="buttons" class="row"> 2696a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <div class="column-set"> 2706a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <div class="column"> 2716a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <button onClick="javascript:rewind()"><img src="icons/rewind.png"/><br/>Rewind</button> 2726a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <button onClick="javascript:stepBack()"><img src="icons/previous.png"/><br/>Step Back</button> 2736a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <button onClick="javascript:pause()"><img src="icons/pause.png"/><br/>Pause</button> 2746a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <button onClick="javascript:stepForward()"><img src="icons/next.png"/><br/>Step Forward</button> 2756a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <button onClick="javascript:play()"><img src="icons/play.png"/><br/>Play</button> 2766a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </div> 2776a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <div class="column"> 2786a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <button onClick="javascript:toggleInspector()"><img src="icons/inspector.png"/><br/>Inspector</button> 2796a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </div> 2806a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <div class="column"> 2816a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <button><img src="icons/profile.png"/><br/>Profile</button> 2826a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </div> 2836a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <div class="column" style="text-align:right; vertical-align:middle;"> 2846a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <select id="command_filter" onChange="javascript:updateCommandList(this.options[this.selectedIndex].value)"></select> 2856a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <button onClick="javascript:updateCommandList()"><img src="icons/reload.png" /><br/>Clear Filter</button> 2866a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </div> 2876a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </div> 2886a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </div> 2896a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <div class="row"> 2906a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <div class="column-set"> 2916a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <div id="left_column" class="column"> 2926a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <div class="row-set"> 2936a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <div id="command_list_div" class="row"> 2946a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <form id="command_list_form"> 2956a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <select id="command_list" size="2" onChange="javascript:commandSelected()"> 2966a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <option value="-1">Commands go here...</option> 2976a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </select> 2986a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </form> 2996a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </div> 3006a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </div> 3016a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </div> 3026a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <div id="right_column" class="row-set"> 3036a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <div id="top_row" class="row"> 3046a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <div id="display_pane" class="column"> 3056a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <div id="listener" style="width:100%; height:100%;"> 3066a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <script type="text/javascript"> 3076a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com var listener = document.getElementById('listener'); 3086a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com listener.addEventListener('load', moduleDidLoad, true); 3096a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com listener.addEventListener('message', handleMessage, true); 3106a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </script> 3116a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <embed name="nacl_module" 3126a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com id="skia_nacl" 3136a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com src="debugger.nmf" 3146a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com type="application/x-nacl" 3156a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com width="100%" 3166a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com height="100%" 3176a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com style="width:100%, height:100%;"/> 3186a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </div> 3196a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </div> 3206a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <div id="right_panel" class="column"> 3216a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <div class="thin_outline"> 3226a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <div id="visibility_filter" class="settings_block"> 3236a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com Visibility Filter<br/> 3246a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <div class="thin_outline"> 3256a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <form id="visibility_filter_form"> 3266a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <input type="radio" name="visibility_filter_radio" value="on">On<br/> 3276a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <input type="radio" name="visibility_filter_radio" value="off" checked>Off 3286a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </form> 3296a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </div> 3306a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </div> 3316a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <div id="command_scrolling" class="settings_block"> 3326a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com Command Scrolling Preferences<br/> 3336a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <div class="thin_outline"> 3346a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <div class="row-set"> 3356a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <div class="row"> 3366a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <div class="column-set"> 3376a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <div class="column"> 3386a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com Current Command: 3396a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </div> 3406a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <div class="column" style="text-align:right; width:35%;"> 3416a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <input type="text" style="width:100%;"/> 3426a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </div> 3436a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </div> 3446a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </div> 3456a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <div class="row"> 3466a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <div class="column-set"> 3476a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <div class="column"> 3486a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com Command HitBox: 3496a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </div> 3506a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <div class="column" style="text-align:right; width:35%;"> 3516a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <input type="text" style="width:100%;"/> 3526a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </div> 3536a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </div> 3546a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </div> 3556a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </div> 3566a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </div> 3576a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </div> 3586a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <div id="render_targets" class="settings_block"> 3596a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com Render Targets<br/> 3606a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <div class="thin_outline"> 3616a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <form id="render_targets_form"> 3626a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <div class="row-set"> 3636a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <div class="row"> 3646a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <div class="column-set"> 3656a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <div class="column">Raster:</div> 3666a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <div class="column" style="text-align:right;"> 3676a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <input type="checkbox" name="render_targets_checkbox" value="raster" checked/> 3686a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </div> 3696a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </div> 3706a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </div> 3716a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <div class="row"> 3726a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <div class="column-set"> 3736a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <div class="column" style="padding-left:30px;">Overdraw Viz:</div> 3746a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <div class="column" style="text-align:right;"> 3756a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <input type="checkbox" name="render_targets_checkbox" value="overdraw"/> 3766a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </div> 3776a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </div> 3786a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </div> 3796a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <div class="row"> 3806a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <div class="column-set"> 3816a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <div class="column">OpenGL</div> 3826a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <div class="column" style="text-align:right;"> 3836a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <input type="checkbox" name="render_targets_checkbox" value="opengl"/> 3846a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </div> 3856a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </div> 3866a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </div> 3876a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </div> 3886a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </form> 3896a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </div> 3906a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </div> 3916a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <div id="zoom_level" class="settings_block"> 3926a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <div class="thin_outline"> 3936a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <div class="row-set"> 3946a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <div class="row"> 3956a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <div class="column-set"> 3966a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <div class="column"> 3976a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com Zoom Level: 3986a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </div> 3996a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <div class="column" style="text-align:right; width:35%;"> 4006a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <input type="text" style="width:100%;"/> 4016a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </div> 4026a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </div> 4036a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </div> 4046a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </div> 4056a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </div> 4066a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </div> 4076a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </div> 4086a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <div id="small_window_wrapper" class="settings_block"> 4096a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <div class="thin_outline" style="padding:0px;"> 4106a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <div id="small_window"> 4116a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </div> 4126a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </div> 4136a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </div> 4146a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </div> 4156a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </div> 4166a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <div id="bottom_row" class="row"> 4176a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <div id="tabview" class="column"> 4186a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <div class="row-set"> 4196a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <div class="row" style="height:5px; overflow:auto;"> 4206a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <form id="overviewdetails_form"> 4216a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <input type="radio" name="overviewdetails_radio" onChange="javascript:updateOverviewDetails()" id="overview_radio" value="overview" checked>Overview 4226a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <input type="radio" name="overviewdetails_radio" onChange="javascript:updateOverviewDetails()" id="details_radio" value="details">Details 4236a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </form> 4246a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </div> 4256a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <div class="row"> 4266a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <div id="overviewdetails"></div> 4276a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </div> 4286a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </div> 4296a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </div> 4306a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <div id="matrixclip" class="column"> 4316a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com Current Matrix 4326a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <table> 4336a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <tr> 4346a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <td><input type="text" id="matrix00" class="matrix" /></td> 4356a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <td><input type="text" id="matrix01" class="matrix" /></td> 4366a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <td><input type="text" id="matrix02" class="matrix" /></td> 4376a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </tr> 4386a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <tr> 4396a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <td><input type="text" id="matrix10" class="matrix" /></td> 4406a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <td><input type="text" id="matrix11" class="matrix" /></td> 4416a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <td><input type="text" id="matrix12" class="matrix" /></td> 4426a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </tr> 4436a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <tr> 4446a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <td><input type="text" id="matrix20" class="matrix" /></td> 4456a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <td><input type="text" id="matrix21" class="matrix" /></td> 4466a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <td><input type="text" id="matrix22" class="matrix" /></td> 4476a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </tr> 4486a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </table> 4496a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com Current Clip 4506a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <table> 4516a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <tr> 4526a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <td><input type="text" id="clip00" class="matrix" /></td> 4536a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <td><input type="text" id="clip01" class="matrix" /></td> 4546a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </tr> 4556a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <tr> 4566a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <td><input type="text" id="clip10" class="matrix" /></td> 4576a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com <td><input type="text" id="clip11" class="matrix" /></td> 4586a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </tr> 4596a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </table> 4606a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </div> 4616a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </div> 4626a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </div> 4636a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </div> 4646a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com </div> 4656a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com</div> 4666a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com<input type="file" id="file_open" style="display:none;"/> 4676a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com</body> 4686a98b8c0b5ffe1a23902cdf7e692f702b703eaebborenet@google.com</html> 469