Prvni commit.
This commit is contained in:
@@ -0,0 +1,643 @@
|
||||
/*
|
||||
* [Č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 - příkazy a ovládání slovníku
|
||||
|
||||
// ===========================================================================
|
||||
// =~ Globální nastavení ~====================================================
|
||||
|
||||
// Při smazání slovníku: zachovat zobrazený příkaz, nebo nezachovat?
|
||||
nastaveni.zachovej_zobrazeny_prikaz = false;
|
||||
|
||||
// ===========================================================================
|
||||
// =~ Globální proměnné ~=====================================================
|
||||
|
||||
// Počet systémových příkazů
|
||||
prikazy.pocet_systemovych = prikazy.seznam.length;
|
||||
|
||||
// Tooltip
|
||||
prikazy.tooltip = {
|
||||
spustit: "Proveď příkaz",
|
||||
zastavit: "Zastav provádění příkazu"
|
||||
};
|
||||
|
||||
// Prefix pro ID příkazů
|
||||
prikazy.id_prefix = "příkaz ";
|
||||
|
||||
// Prefix pro název příkazů
|
||||
prikazy.nazev_prefix = "název ";
|
||||
|
||||
// Prefix pro celý příkaz
|
||||
prikazy.prikaz_prefix = "celý příkaz ";
|
||||
|
||||
// Zobrazený název, když není nic vybraného
|
||||
prikazy.zadny_prikaz = "(žádný)";
|
||||
|
||||
// Panel nástrojů
|
||||
prikazy.nastroje = new Array(
|
||||
[ "zobraz", "tip-zobraz", "Ukaž příkaz", "Ukaž vybraný příkaz" ],
|
||||
[ "smaz", "tip-smaz-prikaz", "Smaž příkaz", "Vymaž vybraný příkaz z paměti" ],
|
||||
null,
|
||||
[ "smaz-vse", "tip-smaz-vse", "Reset paměti", "Vymaž všechny naučené příkazy z paměti" ],
|
||||
null,
|
||||
[ "nacist", "tip-nacist", "Načti slovník", "Načti uložený slovník (i město)" ],
|
||||
[ "ulozit", "tip-ulozit", "Ulož slovník", "Ulož slovník pro budoucí použití. " +
|
||||
"Při ukládání se automaticky použije nejstarší formát vhodný pro uložení" ],
|
||||
null,
|
||||
[ "exportovat-12", "tip-exportovat-12", "Ulož slovník",
|
||||
"Ulož slovník ve starším formátu rozpoznaném starším Karlem 1.2. "+
|
||||
"Komentáře a prázdné řádky nebudou zachovány. Při ukládání se " +
|
||||
"automaticky použije nejstarší formát vhodný pro uložení" ],
|
||||
[ "exportovat-k99", "tip-exportovat-k99", "Exportuj slovník",
|
||||
"Ulož slovník do formátu Visual Karel 99" ]
|
||||
);
|
||||
prikazy.nastroje.id_prefix = "slovnik-";
|
||||
prikazy.nastroje.mys = "prikazy.mys_nastroje";
|
||||
|
||||
// Myš nad tlačítkem
|
||||
prikazy.mys_tlacitko = new Mys(new Tooltip());
|
||||
|
||||
// Myš nad příkazem
|
||||
prikazy.mys_prikaz = new Mys();
|
||||
|
||||
// Myš nad nástroji
|
||||
prikazy.mys_nastroje = new Mys(new Tooltip());
|
||||
|
||||
// ===========================================================================
|
||||
// =~ Základní funkce pro práci se slovníkem ~================================
|
||||
|
||||
// Kontrola prázdného slovníku
|
||||
prikazy.je_slovnik_prazdny = function ()
|
||||
{
|
||||
return ( prikazy.seznam[prikazy.seznam.length-1].systemovy );
|
||||
}
|
||||
|
||||
// Zobraz nový příkaz v seznamu příkazů
|
||||
prikazy.pridej = function (prikaz)
|
||||
{
|
||||
var id = prikazy.id_prefix+prikaz.jmeno;
|
||||
var nazev = prikazy.nazev_prefix+prikaz.jmeno;
|
||||
var prikaz_id = prikazy.prikaz_prefix+prikaz.jmeno;
|
||||
|
||||
// Elementy
|
||||
var element = document.getElementById('zobrazene');
|
||||
var element_prikaz = document.createElement('DIV');
|
||||
var element_nazev = element_prikaz.cloneNode(false);
|
||||
var element_nazev_text = document.createElement('DIV');
|
||||
|
||||
// Text
|
||||
element_nazev_text.appendChild( document.createTextNode(prikaz.jmeno) );
|
||||
|
||||
// Události
|
||||
tvoric.nastav_udalosti_mysi( element_nazev, "prikazy.mys_prikaz",
|
||||
'\''+nazev+'\'', '\''+prikaz.jmeno+'\'' );
|
||||
|
||||
// Styly
|
||||
element_prikaz.className = "prikaz";
|
||||
element_nazev.className = "nazev";
|
||||
element_nazev.id = nazev;
|
||||
element_nazev_text.className = "nazev-text";
|
||||
element_prikaz.id = prikaz_id;
|
||||
|
||||
// Tlačítko
|
||||
var element_tlacitko = tvoric.vytvor_tlacitko( false, id,
|
||||
"prikazy.mys_tlacitko", '\''+id+'\'', '\''+prikaz.jmeno+'\'' );
|
||||
|
||||
// Tvar
|
||||
element_nazev.appendChild( element_nazev_text );
|
||||
|
||||
element_prikaz.appendChild( element_tlacitko );
|
||||
element_prikaz.appendChild( element_nazev );
|
||||
|
||||
// Zařazení do HTML
|
||||
element.appendChild( element_prikaz );
|
||||
}
|
||||
|
||||
// Smaž příkaz ze zobrazeného seznamu příkazů
|
||||
prikazy.zrus = function (prikaz)
|
||||
{
|
||||
var prikaz_id = prikazy.prikaz_prefix+prikaz.jmeno;
|
||||
var element_prikaz = document.getElementById( prikaz_id );
|
||||
element_prikaz.parentNode.removeChild(element_prikaz);
|
||||
}
|
||||
|
||||
// Inicializace nového příkazu
|
||||
prikazy.nastav_novy = function (prikaz)
|
||||
{
|
||||
prikaz.zobrazit = true;
|
||||
prikaz.spust = prikazy.jadro.UZIVATELSKY;
|
||||
prikaz.kompatibilita = prikazy.min_VERZE_10;
|
||||
prikaz.verze_ulozeni = prikazy.min_VERZE_10;
|
||||
}
|
||||
|
||||
// Přidej nový příkaz a obnov zobrazený seznam
|
||||
prikazy.pridej_novy = function (prikaz)
|
||||
{
|
||||
if ( ! (prikaz instanceof Object) ) {
|
||||
ladici_vypis( DETAIL, "prikazy.pridej_novy", "přidávám nový příkaz " +
|
||||
prikaz );
|
||||
prikaz = { jmeno: prikaz, telo: [ [ prikazy.KONEC ]] };
|
||||
prikaz.telo.unshift( [ prikazy.NAZEV, prikaz ] );
|
||||
} else {
|
||||
ladici_vypis( DETAIL, "prikazy.pridej_novy", "přidávám nový příkaz " +
|
||||
prikaz.jmeno );
|
||||
}
|
||||
prikazy.nastav_novy(prikaz);
|
||||
prikazy.seznam.push(prikaz);
|
||||
prikazy.prikaz[prikaz.jmeno] = prikaz;
|
||||
prikazy.pridej( prikaz );
|
||||
|
||||
return prikaz;
|
||||
}
|
||||
|
||||
// Změň příkaz v tělech ostatních příkazů. Pokud je novy_prikaz prazdny, smaže
|
||||
// ho z příkazu
|
||||
prikazy.nahrad_telo = function (stary_prikaz, novy_prikaz)
|
||||
{
|
||||
if ( novy_prikaz ) {
|
||||
ladici_vypis( DETAIL, "prikazy.nahrad_telo", "měním výskyt příkazu " +
|
||||
stary_prikaz.jmeno + " na " + novy_prikaz.jmeno );
|
||||
} else {
|
||||
ladici_vypis( DETAIL, "prikazy.nahrad_telo", "mažu výskyt příkazu " +
|
||||
stary_prikaz.jmeno + " ze všech příkazů" );
|
||||
}
|
||||
|
||||
var i = prikazy.seznam.length-1;
|
||||
while ( i >= 0 && !prikazy.seznam[i].systemovy ) {
|
||||
var prikaz = prikazy.seznam[i];
|
||||
for ( var j = prikaz.telo.length-1; j >= 0; j-- ) {
|
||||
if ( prikaz.telo[j][0] == stary_prikaz ) {
|
||||
if ( novy_prikaz ) {
|
||||
ladici_vypis( LADENI, "prikazy.nahrad_telo", "změna v příkazu " +
|
||||
prikaz.jmeno + " na řádce " + (j+1) );
|
||||
prikaz.telo[j][0] = novy_prikaz;
|
||||
} else {
|
||||
ladici_vypis( LADENI, "prikazy.nahrad_telo", "smazán z příkazu " +
|
||||
prikaz.jmeno + " z řádky " + (j+1) );
|
||||
var pred_prikazem = prikaz.telo.slice(0, j);
|
||||
var po_prikazu = prikaz.telo.slice(j+1);
|
||||
prikaz.telo = pred_prikazem.concat(po_prikazu);
|
||||
}
|
||||
}
|
||||
}
|
||||
i--;
|
||||
}
|
||||
}
|
||||
|
||||
// Připrav příkaz na smazání
|
||||
prikazy.dokonci_smazani = function (prikaz)
|
||||
{
|
||||
delete prikaz.telo;
|
||||
}
|
||||
|
||||
// Obnov informaci v seznamu známých příkazů. Pokud není uveden novy_prikaz,
|
||||
// je příkaz smazán
|
||||
prikazy.zmen_seznam = function (stary_prikaz, novy_prikaz)
|
||||
{
|
||||
if ( novy_prikaz ) {
|
||||
ladici_vypis( LADENI, "prikazy.zmen_seznam",
|
||||
"měním v seznamu příkaz " + stary_prikaz.jmeno + " na " +
|
||||
novy_prikaz.jmeno );
|
||||
} else {
|
||||
ladici_vypis( LADENI, "prikazy.zmen_seznam",
|
||||
"mažu ze seznamu příkaz " + stary_prikaz.jmeno );
|
||||
}
|
||||
|
||||
var i;
|
||||
for ( i = prikazy.seznam.length - 1; i >= 0; i-- ) {
|
||||
if ( prikazy.seznam[i] == stary_prikaz ) {
|
||||
if ( novy_prikaz ) {
|
||||
prikazy.seznam[i] = novy_prikaz;
|
||||
} else {
|
||||
prikazy.dokonci_smazani( prikazy.seznam[i] );
|
||||
var pred_prikazem = prikazy.seznam.slice(0, i);
|
||||
var po_prikazu = prikazy.seznam.slice(i+1);
|
||||
prikazy.seznam = pred_prikazem.concat(po_prikazu);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
if ( i < 0 ) {
|
||||
ladici_vypis( CHYBA, "prikazy.zmen_seznam", "příkaz " +
|
||||
stary_prikaz.jmeno + " nebyl nalezen v seznamu příkazů" );
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
// Změň příkaz a obnov zobrazenou informaci
|
||||
prikazy.zmen_prikaz = function (stary_prikaz, novy_prikaz)
|
||||
{
|
||||
if ( stary_prikaz.jmeno == novy_prikaz.jmeno ) {
|
||||
ladici_vypis( DETAIL, "prikazy.zmen_prikaz", "aktualizuji příkaz " +
|
||||
novy_prikaz.jmeno );
|
||||
} else {
|
||||
ladici_vypis( DETAIL, "prikazy.zmen_prikaz", "měním příkaz " +
|
||||
stary_prikaz.jmeno + " na " + novy_prikaz.jmeno );
|
||||
}
|
||||
|
||||
// Obnov seznam známých příkazů
|
||||
if ( !this.zmen_seznam(stary_prikaz, novy_prikaz) ) {
|
||||
ladici_vypis( CHYBA, "prikazy.zmen_prikaz", "starý příkaz " +
|
||||
stary_prikaz.jmeno + " nenalezen v seznamu, raději přidám nový" );
|
||||
prikazy.pridej_novy( novy_prikaz );
|
||||
return;
|
||||
}
|
||||
|
||||
// Atributy nového příkazu
|
||||
prikazy.nastav_novy(novy_prikaz);
|
||||
delete prikazy.prikaz[stary_prikaz.jmeno];
|
||||
prikazy.prikaz[novy_prikaz.jmeno] = novy_prikaz;
|
||||
|
||||
var stary_id = prikazy.id_prefix+stary_prikaz.jmeno;
|
||||
var stary_nazev = prikazy.nazev_prefix+stary_prikaz.jmeno;
|
||||
var novy_id = prikazy.id_prefix+novy_prikaz.jmeno;
|
||||
var novy_nazev = prikazy.nazev_prefix+novy_prikaz.jmeno;
|
||||
var novy_prikaz_id = prikazy.prikaz_prefix+novy_prikaz.jmeno;
|
||||
|
||||
// Zjisti, jestli je co upravovat u tlačítek a zobrazení
|
||||
if ( novy_nazev != stary_nazev || novy_id != stary_id
|
||||
|| stary_prikaz.jmeno != novy_prikaz.jmeno ) {
|
||||
|
||||
var element_nazev = document.getElementById(stary_nazev);
|
||||
var element_ikona = document.getElementById(stary_id);
|
||||
var element_maska = tvoric.maska_tlacitka_z_ikony(element_ikona);
|
||||
var element_prikaz = element_nazev.parentNode;
|
||||
|
||||
// Uprav Id
|
||||
element_nazev.id = novy_nazev;
|
||||
element_ikona.id = novy_id;
|
||||
element_prikaz.id = novy_prikaz_id;
|
||||
|
||||
// Uprav název
|
||||
element_nazev.firstChild.firstChild.nodeValue = novy_prikaz.jmeno;
|
||||
|
||||
// Obnov informaci myši
|
||||
tvoric.nastav_udalosti_mysi( element_nazev, "prikazy.mys_prikaz",
|
||||
'\''+novy_nazev+'\'', '\''+novy_prikaz.jmeno+'\'' );
|
||||
tvoric.nastav_udalosti_mysi( element_maska, "prikazy.mys_tlacitko",
|
||||
'\''+novy_id+'\'', '\''+novy_prikaz.jmeno+'\'' );
|
||||
|
||||
// Informace objektu myši, že proběhlo přejmenování
|
||||
ladici_vypis( LADENI, "prikazy.zmen_prikaz",
|
||||
"měním detaily u názvu příkazu" );
|
||||
prikazy.mys_prikaz.prejmenuj(stary_nazev, novy_nazev, novy_prikaz.jmeno);
|
||||
|
||||
ladici_vypis( LADENI, "prikazy.zmen_prikaz",
|
||||
"měním detaily u tlačítka příkazu" );
|
||||
prikazy.mys_tlacitko.prejmenuj(stary_id, novy_id, novy_prikaz.jmeno);
|
||||
}
|
||||
|
||||
this.nahrad_telo( stary_prikaz, novy_prikaz );
|
||||
prikazy.dokonci_smazani( stary_prikaz );
|
||||
}
|
||||
|
||||
// Smaž příkaz (i z těl příkazů) a obnov zobrazenou informaci
|
||||
prikazy.proved_smazani = function (prikaz)
|
||||
{
|
||||
ladici_vypis( DETAIL, "prikazy.proved_smazani", "mažu příkaz " +
|
||||
prikaz.jmeno );
|
||||
var nazev = prikazy.nazev_prefix+prikaz.jmeno;
|
||||
|
||||
// Informace objektu myši, že proběhlo přejmenování
|
||||
ladici_vypis( LADENI, "prikazy.proved_smazani",
|
||||
"mažu detaily u názvu příkazu" );
|
||||
prikazy.mys_prikaz.smaz(nazev, prikaz.jmeno);
|
||||
|
||||
ladici_vypis( LADENI, "prikazy.proved_smazani",
|
||||
"mažu detaily u tlačítka příkazu" );
|
||||
prikazy.mys_tlacitko.smaz(nazev, prikaz.jmeno);
|
||||
|
||||
// Vymaž příkaz z těl ostatních příkazů
|
||||
this.nahrad_telo( prikaz );
|
||||
|
||||
// Vymaž příkaz ze známých příkazů
|
||||
this.zmen_seznam( prikaz );
|
||||
|
||||
// Smaž příkaz ze zobrazeného seznamu příkazů
|
||||
this.zrus( prikaz );
|
||||
}
|
||||
|
||||
prikazy.obsahuje_prikaz = function (ktery_prikaz)
|
||||
{
|
||||
var seznam = new Array();
|
||||
for ( var i = 0; i < prikazy.seznam.length; i++ ) {
|
||||
var prikaz = prikazy.seznam[i];
|
||||
if ( !prikaz.systemovy && prikaz != ktery_prikaz ) {
|
||||
for ( var j = 0; j < prikaz.telo.length; j++ ) {
|
||||
if ( prikaz.telo[j][0] == ktery_prikaz ) {
|
||||
seznam.push(prikaz.jmeno);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return seznam;
|
||||
}
|
||||
|
||||
prikazy.smaz_prikaz = function (prikaz)
|
||||
{
|
||||
if ( !prikazy.test_spusteni() ) return;
|
||||
var obsahuje = prikazy.obsahuje_prikaz(prikaz);
|
||||
var detail = "";
|
||||
if ( obsahuje.length ) {
|
||||
var detail_prikaz;
|
||||
if ( obsahuje.length == 1 ) {
|
||||
detail_prikaz = "příkazu ";
|
||||
} else {
|
||||
detail_prikaz = "příkazech ";
|
||||
}
|
||||
detail = "\n\nPříkaz je obsažen v " + detail_prikaz + obsahuje.join(", ") +
|
||||
".";
|
||||
}
|
||||
var uzivatel_chce = window.confirm( "Opravdu si přejete smazat příkaz " +
|
||||
prikaz.jmeno + "?" + detail );
|
||||
if ( uzivatel_chce ) {
|
||||
prikazy.proved_smazani(prikaz);
|
||||
editor.smaz_prikaz(prikaz);
|
||||
}
|
||||
}
|
||||
|
||||
// Smaž celý slovník
|
||||
prikazy.smaz_vse = function (bez_kontroly, bez_noveho_prikazu)
|
||||
{
|
||||
if ( !prikazy.test_spusteni() ) return;
|
||||
if ( prikazy.je_slovnik_prazdny() ) {
|
||||
if ( !bez_noveho_prikazu ) {
|
||||
if ( editor.nastav_zmenu() && !nastaveni.zachovej_zobrazeny_prikaz ) {
|
||||
if ( bez_kontroly
|
||||
|| !bez_kontroly && window.confirm( "Slovník je prázdný. " +
|
||||
"Přejete si začít novým příkazem?" ) ) {
|
||||
editor.prikaz_novy(true);
|
||||
}
|
||||
} else {
|
||||
if ( !bez_kontroly ) alert( "Slovník je prázdný." );
|
||||
editor.prikaz_novy(true);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if ( bez_kontroly || !bez_kontroly
|
||||
&& window.confirm( "Opravdu si přejete smazat všechny příkazy?" ) ) {
|
||||
var i = prikazy.seznam.length-1;
|
||||
while ( i >= 0 && !prikazy.seznam[i].systemovy ) {
|
||||
var prikaz = prikazy.seznam[i];
|
||||
prikazy.proved_smazani(prikaz);
|
||||
if ( nastaveni.zachovej_zobrazeny_prikaz ) editor.smaz_prikaz(prikaz);
|
||||
i--;
|
||||
}
|
||||
if ( !bez_noveho_prikazu ) {
|
||||
if ( !editor.nastav_zmenu() || !nastaveni.zachovej_zobrazeny_prikaz ) {
|
||||
editor.prikaz_novy(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Obnov ikonu přehrání a tooltip
|
||||
prikazy.obnov_stav = function (probiha)
|
||||
{
|
||||
var element = document.getElementById('zobrazene');
|
||||
if ( probiha ) {
|
||||
element.className = "zastavit";
|
||||
} else {
|
||||
element.className = "spustit";
|
||||
}
|
||||
for ( var i = 0; i < prikazy.seznam.length; i++ ) {
|
||||
var prikaz = prikazy.seznam[i];
|
||||
if ( prikaz.zobrazit ) {
|
||||
var element_ikona = document.getElementById(prikazy.id_prefix+prikaz.jmeno);
|
||||
var element_maska = element_ikona.parentNode.nextSibling;
|
||||
}
|
||||
}
|
||||
prikazy.mys_tlacitko.tooltip.prekresli();
|
||||
}
|
||||
|
||||
// Nahrání nového slovníku
|
||||
prikazy.nahraj_slovnik = function (novy_slovnik)
|
||||
{
|
||||
if ( !novy_slovnik.length ) return;
|
||||
if ( !window.confirm(
|
||||
"Opravdu si přejete nahrát příkazy?\n\n" +
|
||||
"Všechny současné příkazy budou ztraceny. Mám pokračovat?" ) ) return;
|
||||
if ( !prikazy.test_spusteni() ) return;
|
||||
|
||||
prikazy.smaz_vse(true, true);
|
||||
for ( var i = 0; i < novy_slovnik.length; i++ ) {
|
||||
var prikaz = novy_slovnik[i];
|
||||
prikazy.pridej_novy( prikaz );
|
||||
}
|
||||
if ( editor.nastav_zmenu() ) {
|
||||
if ( !nastaveni.zachovej_zobrazeny_prikaz ) {
|
||||
editor.prikaz_novy(true);
|
||||
}
|
||||
} else {
|
||||
editor.prikaz_novy(true);
|
||||
}
|
||||
}
|
||||
|
||||
// ===========================================================================
|
||||
// =~ Práce myši ~============================================================
|
||||
|
||||
prikazy.mys_tlacitko.proved_zvyrazneni = function(info, detail)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
prikazy.mys_tlacitko.prekresli_stav = function(info, detail, zvyraznen,
|
||||
stisknut, vybran)
|
||||
{
|
||||
tvoric.zvyraznovac(info, zvyraznen, stisknut, vybran);
|
||||
}
|
||||
|
||||
prikazy.mys_tlacitko.proved_vyber = function(info, detail)
|
||||
{
|
||||
var vysledek = prikazy.jadro.proved_nebo_zastav(detail);
|
||||
vysledek.zobraz_chybu();
|
||||
return false;
|
||||
}
|
||||
|
||||
prikazy.mys_prikaz.proved_zvyrazneni = function(info, detail)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
prikazy.mys_prikaz.proved_vyber = function(info, detail)
|
||||
{
|
||||
var element = document.getElementById('vybrany-prikaz');
|
||||
element.lastChild.nodeValue = detail;
|
||||
return true;
|
||||
}
|
||||
|
||||
prikazy.mys_prikaz.zrus_vyber = function(info, detail)
|
||||
{
|
||||
var element = document.getElementById('vybrany-prikaz');
|
||||
element.lastChild.nodeValue = prikazy.zadny_prikaz;
|
||||
return true;
|
||||
}
|
||||
|
||||
prikazy.mys_prikaz.smaz_vyber = function(info, detail)
|
||||
{
|
||||
this.zrus_vyber(info, detail);
|
||||
}
|
||||
|
||||
prikazy.mys_prikaz.prekresli_stav = function(info, detail, zvyraznen, stisknut,
|
||||
vybran)
|
||||
{
|
||||
var element = document.getElementById(info);
|
||||
var vybrany = (vybran?"-vybrany":"");
|
||||
var zvyrazneny = (zvyraznen?"-zvyrazneny":"");
|
||||
if ( stisknut ) {
|
||||
element.className = "nazev"+vybrany+"-stisknuty";
|
||||
} else {
|
||||
element.className = "nazev"+vybrany+zvyrazneny;
|
||||
}
|
||||
}
|
||||
|
||||
prikazy.mys_nastroje.proved_zvyrazneni = function(info, detail)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
prikazy.mys_nastroje.prekresli_stav = function(nastroj, detail, zvyraznen,
|
||||
stisknut, vybran)
|
||||
{
|
||||
tvoric.zvyraznovac(prikazy.nastroje.id_prefix+nastroj, zvyraznen, stisknut,
|
||||
vybran);
|
||||
}
|
||||
|
||||
prikazy.mys_nastroje.proved_vyber = function(nastroj, detail)
|
||||
{
|
||||
switch (nastroj) {
|
||||
case "zobraz":
|
||||
case "smaz": {
|
||||
// Kontrola vybraného příkazu
|
||||
var jmeno = prikazy.vybrany_prikaz();
|
||||
if ( jmeno && prikazy.prikaz[jmeno] ) {
|
||||
prikazy.zobraz_nebo_smaz( nastroj, jmeno );
|
||||
} else {
|
||||
alert( "Není vybrán žádný příkaz.\n\n" +
|
||||
"Příkaz vyberte klepnutím myši." );
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "smaz-vse": {
|
||||
prikazy.smaz_vse();
|
||||
break;
|
||||
}
|
||||
case "ulozit":
|
||||
case "exportovat-12":
|
||||
case "exportovat-k99": {
|
||||
if ( editor.kontrola_zmeny() ) {
|
||||
if ( nastroj != "exportovat-k99" ) {
|
||||
data.ukladani.uloz_slovnik(
|
||||
(nastroj == "ulozit"?data.FORMAT_20:data.FORMAT_12) );
|
||||
} else {
|
||||
data.ukladani.export_slovnik_k99();
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "nacist": {
|
||||
data.nacitani.nacti();
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
// Zobraz nebo smaž vybraný příkaz
|
||||
prikazy.zobraz_nebo_smaz = function(akce, jmeno)
|
||||
{
|
||||
var prikaz = prikazy.prikaz[jmeno];
|
||||
if ( !prikaz.systemovy ) {
|
||||
if ( akce == "zobraz" ) {
|
||||
editor.zobraz_vybrany_prikaz();
|
||||
} else {
|
||||
prikazy.smaz_prikaz(prikaz);
|
||||
}
|
||||
} else {
|
||||
if ( akce == "zobraz" ) {
|
||||
alert( "Nelze prohližet systémový příkaz." );
|
||||
// TODO: Nápověda k systémovým příkazům?
|
||||
} else {
|
||||
alert( "Nelze smazat systémový příkaz." );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Který příkaz je vybraný
|
||||
prikazy.vybrany_prikaz = function()
|
||||
{
|
||||
return this.mys_prikaz.vybran.detail;
|
||||
}
|
||||
|
||||
// Vyber konkrétní příkaz
|
||||
prikazy.vyber_prikaz = function(nazev)
|
||||
{
|
||||
var prikaz = prikazy.prikaz[nazev];
|
||||
if ( prikaz && prikaz.zobrazit ) {
|
||||
this.mys_prikaz.vyber(prikazy.nazev_prefix+nazev, prikaz.jmeno);
|
||||
} else {
|
||||
ladici_vypis(CHYBA, "prikazy.vyber_prikaz", nazev,
|
||||
"výběr neexistujícího příkazu");
|
||||
}
|
||||
}
|
||||
|
||||
// ===========================================================================
|
||||
// =~ Tooltipy ~==============================================================
|
||||
|
||||
prikazy.text_tooltipu = function (jmeno)
|
||||
{
|
||||
var tooltip = new Object();
|
||||
if ( prikazy.jadro.probiha() ) {
|
||||
tooltip.nadpis = prikazy.tooltip["zastavit"];
|
||||
} else {
|
||||
tooltip.nadpis = prikazy.tooltip["spustit"]+" "+jmeno;
|
||||
if ( prikazy.prikaz[jmeno] instanceof Object ) {
|
||||
var prikaz = prikazy.prikaz[jmeno];
|
||||
if ( prikaz.tooltip ) {
|
||||
tooltip.popis = prikaz.tooltip;
|
||||
} else if ( prikaz.telo ) {
|
||||
var radka = prikaz.telo[0];
|
||||
if ( radka && radka[0] == prikazy.HLAVICKA_KOMENTAR ) {
|
||||
tooltip.popis = radka[1];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return tooltip;
|
||||
}
|
||||
|
||||
prikazy.mys_tlacitko.tooltip.muzu_zobrazit = function (info, detail)
|
||||
{
|
||||
return ( prikazy.prikaz[detail] ? true : false );
|
||||
}
|
||||
|
||||
prikazy.mys_tlacitko.tooltip.obnov = function (tooltip, info, detail)
|
||||
{
|
||||
var obsah = prikazy.text_tooltipu(detail);
|
||||
tvoric.obnov_tooltip(tooltip, "", obsah.nadpis, obsah.popis);
|
||||
}
|
||||
|
||||
prikazy.mys_tlacitko.tooltip.zjisti_rozmery = function (objekt)
|
||||
{
|
||||
var rozmery = zjisti_rozmery(objekt);
|
||||
var element = document.getElementById('zobrazene');
|
||||
if ( element.scrollTop ) {
|
||||
rozmery = posun_y(rozmery, -element.scrollTop);
|
||||
}
|
||||
return rozmery;
|
||||
}
|
||||
|
||||
prikazy.mys_nastroje.tooltip.obnov = function (tooltip, info, detail)
|
||||
{
|
||||
tvoric.obnov_tooltip(tooltip, detail.ikona, detail.nadpis, detail.popis);
|
||||
}
|
||||
Reference in New Issue
Block a user