Rethinking dictionary switching

This commit is contained in:
Alex Yatskov 2016-04-17 18:42:44 -07:00
parent 5bebf3ed2c
commit de268e73a6
4 changed files with 15 additions and 47 deletions

View File

@ -12,7 +12,7 @@ templates['header.html'] = template({"compiler":[7,">= 4.0.0"],"main":function(c
return "<!DOCTYPE html>\n<html lang=\"en\">\n <head>\n <meta charset=\"UTF-8\">\n <title></title>\n <link rel=\"stylesheet\" href=\""
+ container.escapeExpression(((helper = (helper = helpers.root || (depth0 != null ? depth0.root : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === "function" ? helper.call(depth0 != null ? depth0 : {},{"name":"root","hash":{},"data":data}) : helper)))
+ "/css/popup.css\">\n </head>\n <body>\n <div class=\"dictionary\">\n <a href=\"javascript:selectDict('edict');\">単</a><a href=\"javascript:selectDict('enamdict')\">名</a><a href=\"javascript:selectDict('kanjidic');\">漢</a>\n </div>\n";
+ "/css/popup.css\">\n </head>\n <body>\n";
},"useData":true});
templates['kanji.html'] = template({"compiler":[7,">= 4.0.0"],"main":function(container,depth0,helpers,partials,data) {
var helper, alias1=depth0 != null ? depth0 : {}, alias2=helpers.helperMissing, alias3="function", alias4=container.escapeExpression;

View File

@ -50,26 +50,6 @@ body {
white-space: nowrap;
}
.dictionary {
position: fixed;
right: 0px;
bottom: 0px;
}
.dictionary a {
background-color: #333;
color: #eee;
display: inline-block;
font-size: 16px;
opacity: 0.75;
padding: 0.3em;
text-decoration: none;
}
.dictionary a:hover {
opacity: 1.0;
}
ol {
padding-left: 1.2em;
}

View File

@ -19,11 +19,11 @@
class Client {
constructor() {
this.lastMosePos = null;
this.popupQuery = '';
this.popupOffset = 10;
this.enabled = false;
this.options = null;
this.popupMousePos = null;
this.popupQuery = '';
this.popupOffset = 10;
this.enabled = false;
this.options = {};
this.popup = document.createElement('iframe');
this.popup.classList.add('yomichan-popup');
@ -40,29 +40,28 @@ class Client {
window.addEventListener('resize', (e) => this.hidePopup());
getOptions((opts) => {
this.setDict('edict');
this.setOptions(opts);
getState((state) => this.setEnabled(state === 'enabled'));
});
}
onKeyDown(e) {
if (this.enabled && this.lastMousePos !== null && (e.keyCode === 16 || e.charCode === 16)) {
this.searchAtPoint(this.lastMousePos);
if (this.enabled && this.popupMousePos !== null && (e.keyCode === 16 || e.charCode === 16)) {
this.searchAtPoint(this.popupMousePos);
}
}
onMouseMove(e) {
this.lastMousePos = {x: e.clientX, y: e.clientY};
this.popupMousePos = {x: e.clientX, y: e.clientY};
if (this.enabled && (e.shiftKey || e.which === 2)) {
this.searchAtPoint(this.lastMousePos);
this.searchAtPoint(this.popupMousePos);
}
}
onMouseDown(e) {
this.lastMousePos = {x: e.clientX, y: e.clientY};
this.popupMousePos = {x: e.clientX, y: e.clientY};
if (this.enabled && (e.shiftKey || e.which === 2)) {
this.searchAtPoint(this.lastMousePos);
this.searchAtPoint(this.popupMousePos);
} else {
this.hidePopup();
}
@ -82,12 +81,9 @@ class Client {
}
onFrameMessage(e) {
const {action, data} = e.data;
switch (action) {
case 'selectDict':
this.setDict(data);
break;
}
// const {action, data} = e.data;
// switch (action) {
// }
}
searchAtPoint(point) {
@ -167,11 +163,6 @@ class Client {
setOptions(opts) {
this.options = opts;
}
setDict(dict) {
this.dict = dict;
alert(dict);
}
}
window.yomiClient = new Client();

View File

@ -6,6 +6,3 @@
<link rel="stylesheet" href="{{root}}/css/popup.css">
</head>
<body>
<div class="dictionary">
<a href="javascript:selectDict('edict');"></a><a href="javascript:selectDict('enamdict')"></a><a href="javascript:selectDict('kanjidic');"></a>
</div>