/* * [Česky] * Projekt: Robot Karel * Copyright: Viz KOPIROVANI v kořenovém adresáři projektu * * [English] * Project: Karel, the Robot * Copyright: See COPYING in the top level directory */ // JavaScript - tvořicí funkce pro HTML // =========================================================================== // =~ Globální proměnné ~===================================================== tvoric = new Object(); // =========================================================================== // =~ Vygenerování nástrojů ~================================================= // Vytvoř nové tlačítko zápisem do dokumentu. Všechny parametry jsou řetězce tvoric.zapis_tlacitko = function (vytvor_mezeru, id, mys, mys_info, mys_detail) { if ( ! vytvor_mezeru ) { var detail = ''; if ( mys_detail ) { detail = ','+mys_detail; } document.write('
'+ '
'+ '
'+ '
'); } else { document.write('
'+ '
'); } } tvoric.nastav_udalosti_mysi = function (element, mys, mys_info, mys_detail) { var detail = ''; if ( mys_detail ) { detail = ','+mys_detail; } // Události element.onmouseover = new Function( "e", 'return '+mys+'.pres(e,'+mys_info+detail+');' ); element.onmouseout = new Function( "e", 'return '+mys+'.pryc(e,'+mys_info+detail+');' ); element.onmousedown = new Function( "e", 'return '+mys+'.stisk(e,'+mys_info+detail+');' ); element.onmouseup = new Function( "e", 'return '+mys+'.pust(e,'+mys_info+detail+');' ); } tvoric.vytvor_tlacitko = function (vytvor_mezeru, id, mys, mys_info, mys_detail) { if ( ! vytvor_mezeru ) { // Vytvoř tlačítko // Elementy var element_tlacitko = document.createElement('DIV'); var element_tlacitko_nastroj = element_tlacitko.cloneNode(false); var element_tlacitko_ikona = element_tlacitko.cloneNode(false); var element_tlacitko_maska = element_tlacitko.cloneNode(false); // Události tvoric.nastav_udalosti_mysi(element_tlacitko_maska, mys, mys_info, mys_detail); // Styly element_tlacitko.className = "tlacitko"; element_tlacitko_nastroj.className = "tlacitko-nastroj"; element_tlacitko_ikona.className = "ikona"; element_tlacitko_ikona.id = id; element_tlacitko_maska.className = "tlacitko-maska"; // Tvar element_tlacitko_nastroj.appendChild( element_tlacitko_ikona ); element_tlacitko.appendChild( element_tlacitko_nastroj ); element_tlacitko.appendChild( element_tlacitko_maska ); return element_tlacitko; } else { // Vytvoř mezeru // Elementy var element_tlacitko_mezera = document.createElement('DIV'); var element_nastroje_mezera = element_tlacitko_mezera.cloneNode(false); // Styly element_tlacitko_mezera.className = "tlacitko-mezera"; element_nastroje_mezera.className = "nastroje-mezera"; // Tvar element_tlacitko_mezera.appendChild(element_nastroje_mezera); return element_tlacitko_mezera; } } tvoric.maska_tlacitka_z_ikony = function (element_ikona) { return element_ikona.parentNode.nextSibling; } // Zvýrazňování tlačítek tvoric.zvyraznovac = function(id, zvyraznen, stisknut, vybran) { var element = document.getElementById(id); var parent = element.parentNode; if ( vybran || stisknut ) { parent.className = "tlacitko-dole"; } else if ( zvyraznen ) { parent.className = "tlacitko-nahore"; } else { parent.className = "tlacitko-nastroj"; } } // Tvar nástrojových tipů tvoric.tooltip = function() { /* Struktura tooltipu
*/ // Elementy var tooltip_hranice = document.createElement('DIV') var tooltip = tooltip_hranice.cloneNode(false); var horni = tooltip.cloneNode(false); var pixel = tooltip.cloneNode(false); var margin_5 = tooltip.cloneNode(false); var margin_3 = tooltip.cloneNode(false); var margin_2 = tooltip.cloneNode(false); var margin_1 = tooltip.cloneNode(false); var stred = tooltip.cloneNode(false); var ikona = tooltip.cloneNode(false); var nadpis = tooltip.cloneNode(false); var popis = tooltip.cloneNode(false); var vypln = tooltip.cloneNode(false); var prazdny = tooltip.cloneNode(false); var spodni = tooltip.cloneNode(false); // Styly tooltip_hranice.className = 'tooltip-hranice'; tooltip.className = 'tooltip'; horni.className = 'horni'; pixel.className = 'pixel'; margin_5.className = 'margin-5'; margin_3.className = 'margin-3'; margin_2.className = 'margin-2'; margin_1.className = 'margin-1'; stred.className = 'stred'; ikona.className = 'ikona'; nadpis.className = 'nadpis'; popis.className = 'popis'; vypln.className = 'vypln'; spodni.className = 'spodni'; // Tvar tooltip_hranice.appendChild(tooltip); tooltip.appendChild(horni); horni.appendChild(margin_5.cloneNode(false)); horni.lastChild.appendChild(pixel.cloneNode(false)); horni.appendChild(margin_3.cloneNode(false)); horni.lastChild.appendChild(margin_2.cloneNode(false)); horni.lastChild.lastChild.appendChild(pixel.cloneNode(false)); horni.appendChild(margin_2.cloneNode(false)); horni.lastChild.appendChild(margin_1.cloneNode(false)); horni.lastChild.lastChild.appendChild(pixel.cloneNode(false)); horni.appendChild(margin_1.cloneNode(false)); horni.lastChild.appendChild(margin_1.cloneNode(false)); horni.lastChild.lastChild.appendChild(pixel.cloneNode(false)); horni.appendChild(margin_1.cloneNode(false)); horni.lastChild.appendChild(margin_1.cloneNode(false)); horni.lastChild.lastChild.appendChild(pixel.cloneNode(false)); tooltip.appendChild(stred); stred.appendChild(vypln.cloneNode(false)); stred.lastChild.appendChild(prazdny.cloneNode(false)); stred.appendChild(ikona); ikona.appendChild(prazdny.cloneNode(false)); stred.appendChild(nadpis); nadpis.appendChild(document.createTextNode("")); stred.appendChild(popis); popis.appendChild(document.createTextNode("")); stred.appendChild(vypln); stred.lastChild.appendChild(prazdny); tooltip.appendChild(spodni); spodni.appendChild(margin_1.cloneNode(false)); spodni.lastChild.appendChild(margin_1.cloneNode(false)); spodni.lastChild.lastChild.appendChild(pixel.cloneNode(false)); spodni.appendChild(margin_1.cloneNode(false)); spodni.lastChild.appendChild(margin_1.cloneNode(false)); spodni.lastChild.lastChild.appendChild(pixel.cloneNode(false)); spodni.appendChild(margin_2.cloneNode(false)); spodni.lastChild.appendChild(margin_1); spodni.lastChild.lastChild.appendChild(pixel.cloneNode(false)); spodni.appendChild(margin_3); spodni.lastChild.appendChild(margin_2); spodni.lastChild.lastChild.appendChild(pixel.cloneNode(false)); spodni.appendChild(margin_5); spodni.lastChild.appendChild(pixel); // Některé zvláštní vlastnosti tooltip_hranice.element_ikona = ikona.firstChild; tooltip_hranice.element_nadpis = nadpis.firstChild; tooltip_hranice.element_popis = popis.firstChild; tooltip_hranice.element_tooltip = tooltip_hranice.firstChild; return tooltip_hranice; } // Nastav vlastnosti tooltipu tvoric.obnov_tooltip = function (tooltip, ikona, nadpis, popis) { if ( ! tooltip ) { return; } if ( !ikona ) { ikona = ""; } tooltip.element_ikona.className = ikona; if ( !nadpis ) { nadpis = ""; } tooltip.element_nadpis.nodeValue = nadpis; if ( !popis ) { popis = ""; } tooltip.element_popis.nodeValue = popis; // Nastav mezeru mezi nadpisem a popisem if ( nadpis.length > 0 && popis.length > 0 ) { tooltip.element_nadpis.parentNode.style.marginBottom = "1em"; } else { tooltip.element_nadpis.parentNode.style.marginBottom = "0"; } var margin = "0px"; if ( ikona.length > 0 ) { var velikost = zjisti_velikost(tooltip.element_ikona); margin = (velikost.x+8)+"px"; } tooltip.element_nadpis.parentNode.style.marginLeft = margin; tooltip.element_popis.parentNode.style.marginLeft = margin; }