Home | History | Annotate | Download | only in media
      1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 cr.define('media', function() {
      6   'use strict';
      7 
      8   /**
      9    * The width and height of a bar drawn on a file canvas in pixels.
     10    */
     11   var BAR_WIDTH = 500;
     12   var BAR_HEIGHT = 16;
     13 
     14   /**
     15    * Draws a 1px white horizontal line across |context|.
     16    */
     17   function drawLine(context, top) {
     18     context.moveTo(0, top);
     19     context.lineTo(BAR_WIDTH, top);
     20     context.strokeStyle = '#fff';
     21     context.stroke();
     22   }
     23 
     24   /**
     25    * Creates an HTMLElement of type |type| with textContent |content|.
     26    * @param {string} type The type of element to create.
     27    * @param {string} content The content to place in the element.
     28    * @return {HTMLElement} A newly initialized element.
     29    */
     30   function makeElement(type, content) {
     31     var element = document.createElement(type);
     32     element.textContent = content;
     33     return element;
     34   }
     35 
     36   /**
     37    * Creates a new <li> containing a <details> with a <summary> and sets
     38    * properties to reference them.
     39    * @return {Object} The new <li>.
     40    */
     41   function createDetailsLi() {
     42     var li = document.createElement('li');
     43     li.details = document.createElement('details');
     44     li.summary = document.createElement('summary');
     45     li.appendChild(li.details);
     46     li.details.appendChild(li.summary);
     47     return li
     48   }
     49 
     50   /**
     51    * Appends each key-value pair in a dictionary to a row in a table.
     52    * @param {Object} dict The dictionary to append.
     53    * @param {HTMLElement} table The <table> element to append to.
     54    */
     55   function appendDictionaryToTable(dict, table) {
     56     table.textContent = '';
     57     for (var key in dict) {
     58       var tr = document.createElement('tr');
     59       tr.appendChild(makeElement('td', key + ':'));
     60       tr.appendChild(makeElement('td', dict[key]));
     61       table.appendChild(tr);
     62     }
     63     return table;
     64   }
     65 
     66   return {
     67     BAR_WIDTH: BAR_WIDTH,
     68     BAR_HEIGHT: BAR_HEIGHT,
     69     drawLine: drawLine,
     70     makeElement: makeElement,
     71     createDetailsLi: createDetailsLi,
     72     appendDictionaryToTable: appendDictionaryToTable
     73   };
     74 });
     75