<!doctype html>

<!--
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
-->

<html>

    <head>
        <title>weinre interfaces</title>
        <link rel="stylesheet" href="interfaces.css">
        <script src="/modjewel.js"></script>
        <script type="text/javascript">require("modjewel").warnOnRecursiveRequire(true)</script>
        <script src="/weinre/common/Weinre.transportd.js"></script>
        <script src="/weinre/common/Ex.transportd.js"></script>
        <script src="/weinre/common/StackTrace.transportd.js"></script>
        <script src="/weinre/common/IDLTools.transportd.js"></script>
        <script src="/weinre/common/Callback.transportd.js"></script>
        <script src="/weinre/common/MethodNamer.transportd.js"></script>

        <script src="all-json-idls.js"></script>

        <script src="interfaces.js"></script>
    </head>

    <body>
        <h1>weinre interfaces</h1>

        <div class="noprint">
            show:
            <label><input id="show-Idl"        type="checkbox" checked="on"> IDL</label> /
            <label><input id="show-JavaScript" type="checkbox" checked="on"> JavaScript</label> /
            <label><input id="show-Java"       type="checkbox" checked="on"> Java</label>
        </div>

        <div id="browser">
            <div id="interface-picker" class="noprint">
                <h2>Interfaces</h2>
                <ul id="interface-list">
                    <li>interface 1
                    <li>interface 2
                    <li>interface 3
                </ul>
            </div>

            <div id="interface-content">
                <h2 id="interface-name">[ nothing selected ]</h2>
                <div id="interface-body">
                    [ nothing selected ]
                </div>
            </div>
        </div>
    </body>

</html>
