// TODO: // * sztaki off még nem működik // * a megjelenő ablak legyen draggable és resizeable (jQuery UI) // * a kijelölt szavak szótövesítése, és a szótő lekérdezése a szótárból (pl. többes számú főneveknél, vagy ing-es igéknél jól jöhet) noun_type_sztaki_states = new CmdUtils.NounType("SztakiStates", ["on", "off"]); var dictionaryWindowStyle = ""; var dictionaryWindowTemplate = "
\

${englishWord}

\ \
"; CmdUtils.CreateCommand({ name: "sztaki", homepage: "http://hiperkocka.hu/", author: { name: "Tóth Dávid", email: "tothda@gmail.com" }, license: "GPL", description: "Sztaki szótár kliens", help: "A \"sztaki on\" paranccsal bekapcsolva, egy kis ablak jelenik meg a weboldalon. Ezután ha egy angol szóra duplán kattintunk, a program lekérdez a Sztaki szótárból, és az eredményt az ablakba teszi.", icon: "http://szotar.sztaki.hu/favicon.ico", takes: { "state": noun_type_sztaki_states }, inserWindowStyle: function() { var body = context.focusedWindow.document.body; jQuery(body).append(dictionaryWindowStyle); }, translate: function() { var word = CmdUtils.getSelection(); var dictUrl = 'http://szotar.sztaki.hu/dict_search.php'; var params = { L: "ENG:HUN:EngHunDict", M: "3", E: "1", T: "0", C: "0", A: "0", P: "0", O: "HUN", in_bookmarklet: "1", W: word }; jQuery.get(dictUrl, params, function(data) { var result var tempElement = CmdUtils.getHiddenWindow().document.createElementNS("http://www.w3.org/1999/xhtml", "div"); tempElement.innerHTML = data; var result = jQuery(tempElement).find('#result .normtext a'); var resultElems = jQuery(tempElement).find('#result .normtext a').get(); var words = jQuery.map(resultElems, function(e) {return jQuery(e).html();}); var body = context.focusedWindow.document.body; jQuery("#sztaki_results", body).html(CmdUtils.renderTemplate(dictionaryWindowTemplate, {words: words, englishWord:word})); } ); }, execute: function(state) { var body = context.focusedWindow.document.body; var resultsDiv = jQuery(body).append("
Szótár lekérdezés eredmények:
"); this.inserWindowStyle(); if (state.text == "off") { body.removeEventListener("dblclick", this.translate, false); return; } jQuery(body).bind("dblclick", this, this.translate); } })