diff options
author | Alex Yatskov <alex@foosoft.net> | 2017-03-01 20:49:46 -0800 |
---|---|---|
committer | Alex Yatskov <alex@foosoft.net> | 2017-03-01 20:49:46 -0800 |
commit | 95cf7a784f2212d21f9808d4cde43476b349e89e (patch) | |
tree | 693d969458eeebbe55bd85ad3a2d3fa8e37bd186 | |
parent | 4c0ed9c2922dbd82cae8e844fa33bbc3d96a6cf4 (diff) |
wip on browser action button
-rw-r--r-- | ext/bg/js/yomichan.js | 7 | ||||
-rw-r--r-- | ext/bg/popup.html | 34 | ||||
-rw-r--r-- | ext/lib/bootstrap-toggle/bootstrap-toggle.min.css | 28 | ||||
-rw-r--r-- | ext/lib/bootstrap-toggle/bootstrap-toggle.min.js | 9 | ||||
-rw-r--r-- | ext/manifest.json | 5 |
5 files changed, 75 insertions, 8 deletions
diff --git a/ext/bg/js/yomichan.js b/ext/bg/js/yomichan.js index b1bf710f..d7d2317f 100644 --- a/ext/bg/js/yomichan.js +++ b/ext/bg/js/yomichan.js @@ -29,7 +29,6 @@ class Yomichan { chrome.runtime.onMessage.addListener(this.onMessage.bind(this)); chrome.runtime.onInstalled.addListener(this.onInstalled.bind(this)); - chrome.browserAction.onClicked.addListener(e => chrome.runtime.openOptionsPage()); this.translator.prepare().then(optionsLoad).then(this.setOptions.bind(this)); } @@ -51,12 +50,6 @@ class Yomichan { return true; } - // setEnabled(enabled) { - // this.enabled = enabled; - // this.tabInvokeAll('setEnabled', this.enabled); - // chrome.browserAction.setBadgeText({text: enabled ? '' : 'off'}); - // } - setOptions(options) { this.options = options; diff --git a/ext/bg/popup.html b/ext/bg/popup.html new file mode 100644 index 00000000..ad66c374 --- /dev/null +++ b/ext/bg/popup.html @@ -0,0 +1,34 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8"> + <title>Welcome to Yomichan!</title> + <link rel="stylesheet" type="text/css" href="../lib/bootstrap-3.3.7-dist/css/bootstrap.min.css"> + <link rel="stylesheet" type="text/css" href="../lib/bootstrap-3.3.7-dist/css/bootstrap-theme.min.css"> + <link rel="stylesheet" type="text/css" href="../lib/bootstrap-toggle/bootstrap-toggle.min.css"> + <style type="text/css"> + body { + padding: 10px; + text-align: center; + } + + .btn-group { + display: flex; + } + </style> + </head> + <body> + <p> + <input type="checkbox" data-toggle="toggle"> + </p> + <p> + <div class="btn-group" style="white-space: nowrap"> + <button type="button" class="btn btn-default btn-xs glyphicon glyphicon-cog"></button> + <button type="button" class="btn btn-default btn-xs glyphicon glyphicon-search"></button> + <button type="button" class="btn btn-default btn-xs glyphicon glyphicon-question-sign"></button> + </div> + </p> + <script src="../lib/jquery-3.1.1.min.js"></script> + <script src="../lib/bootstrap-toggle/bootstrap-toggle.min.js"></script> + </body> +</html> diff --git a/ext/lib/bootstrap-toggle/bootstrap-toggle.min.css b/ext/lib/bootstrap-toggle/bootstrap-toggle.min.css new file mode 100644 index 00000000..0d42ed09 --- /dev/null +++ b/ext/lib/bootstrap-toggle/bootstrap-toggle.min.css @@ -0,0 +1,28 @@ +/*! ======================================================================== + * Bootstrap Toggle: bootstrap-toggle.css v2.2.0 + * http://www.bootstraptoggle.com + * ======================================================================== + * Copyright 2014 Min Hur, The New York Times Company + * Licensed under MIT + * ======================================================================== */ +.checkbox label .toggle,.checkbox-inline .toggle{margin-left:-20px;margin-right:5px} +.toggle{position:relative;overflow:hidden} +.toggle input[type=checkbox]{display:none} +.toggle-group{position:absolute;width:200%;top:0;bottom:0;left:0;transition:left .35s;-webkit-transition:left .35s;-moz-user-select:none;-webkit-user-select:none} +.toggle.off .toggle-group{left:-100%} +.toggle-on{position:absolute;top:0;bottom:0;left:0;right:50%;margin:0;border:0;border-radius:0} +.toggle-off{position:absolute;top:0;bottom:0;left:50%;right:0;margin:0;border:0;border-radius:0} +.toggle-handle{position:relative;margin:0 auto;padding-top:0;padding-bottom:0;height:100%;width:0;border-width:0 1px} +.toggle.btn{min-width:59px;min-height:34px} +.toggle-on.btn{padding-right:24px} +.toggle-off.btn{padding-left:24px} +.toggle.btn-lg{min-width:79px;min-height:45px} +.toggle-on.btn-lg{padding-right:31px} +.toggle-off.btn-lg{padding-left:31px} +.toggle-handle.btn-lg{width:40px} +.toggle.btn-sm{min-width:50px;min-height:30px} +.toggle-on.btn-sm{padding-right:20px} +.toggle-off.btn-sm{padding-left:20px} +.toggle.btn-xs{min-width:35px;min-height:22px} +.toggle-on.btn-xs{padding-right:12px} +.toggle-off.btn-xs{padding-left:12px}
\ No newline at end of file diff --git a/ext/lib/bootstrap-toggle/bootstrap-toggle.min.js b/ext/lib/bootstrap-toggle/bootstrap-toggle.min.js new file mode 100644 index 00000000..37113200 --- /dev/null +++ b/ext/lib/bootstrap-toggle/bootstrap-toggle.min.js @@ -0,0 +1,9 @@ +/*! ======================================================================== + * Bootstrap Toggle: bootstrap-toggle.js v2.2.0 + * http://www.bootstraptoggle.com + * ======================================================================== + * Copyright 2014 Min Hur, The New York Times Company + * Licensed under MIT + * ======================================================================== */ ++function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.toggle"),f="object"==typeof b&&b;e||d.data("bs.toggle",e=new c(this,f)),"string"==typeof b&&e[b]&&e[b]()})}var c=function(b,c){this.$element=a(b),this.options=a.extend({},this.defaults(),c),this.render()};c.VERSION="2.2.0",c.DEFAULTS={on:"On",off:"Off",onstyle:"primary",offstyle:"default",size:"normal",style:"",width:null,height:null},c.prototype.defaults=function(){return{on:this.$element.attr("data-on")||c.DEFAULTS.on,off:this.$element.attr("data-off")||c.DEFAULTS.off,onstyle:this.$element.attr("data-onstyle")||c.DEFAULTS.onstyle,offstyle:this.$element.attr("data-offstyle")||c.DEFAULTS.offstyle,size:this.$element.attr("data-size")||c.DEFAULTS.size,style:this.$element.attr("data-style")||c.DEFAULTS.style,width:this.$element.attr("data-width")||c.DEFAULTS.width,height:this.$element.attr("data-height")||c.DEFAULTS.height}},c.prototype.render=function(){this._onstyle="btn-"+this.options.onstyle,this._offstyle="btn-"+this.options.offstyle;var b="large"===this.options.size?"btn-lg":"small"===this.options.size?"btn-sm":"mini"===this.options.size?"btn-xs":"",c=a('<label class="btn">').html(this.options.on).addClass(this._onstyle+" "+b),d=a('<label class="btn">').html(this.options.off).addClass(this._offstyle+" "+b+" active"),e=a('<span class="toggle-handle btn btn-default">').addClass(b),f=a('<div class="toggle-group">').append(c,d,e),g=a('<div class="toggle btn" data-toggle="toggle">').addClass(this.$element.prop("checked")?this._onstyle:this._offstyle+" off").addClass(b).addClass(this.options.style);this.$element.wrap(g),a.extend(this,{$toggle:this.$element.parent(),$toggleOn:c,$toggleOff:d,$toggleGroup:f}),this.$toggle.append(f);var h=this.options.width||Math.max(c.outerWidth(),d.outerWidth())+e.outerWidth()/2,i=this.options.height||Math.max(c.outerHeight(),d.outerHeight());c.addClass("toggle-on"),d.addClass("toggle-off"),this.$toggle.css({width:h,height:i}),this.options.height&&(c.css("line-height",c.height()+"px"),d.css("line-height",d.height()+"px")),this.update(!0),this.trigger(!0)},c.prototype.toggle=function(){this.$element.prop("checked")?this.off():this.on()},c.prototype.on=function(a){return this.$element.prop("disabled")?!1:(this.$toggle.removeClass(this._offstyle+" off").addClass(this._onstyle),this.$element.prop("checked",!0),void(a||this.trigger()))},c.prototype.off=function(a){return this.$element.prop("disabled")?!1:(this.$toggle.removeClass(this._onstyle).addClass(this._offstyle+" off"),this.$element.prop("checked",!1),void(a||this.trigger()))},c.prototype.enable=function(){this.$toggle.removeAttr("disabled"),this.$element.prop("disabled",!1)},c.prototype.disable=function(){this.$toggle.attr("disabled","disabled"),this.$element.prop("disabled",!0)},c.prototype.update=function(a){this.$element.prop("disabled")?this.disable():this.enable(),this.$element.prop("checked")?this.on(a):this.off(a)},c.prototype.trigger=function(b){this.$element.off("change.bs.toggle"),b||this.$element.change(),this.$element.on("change.bs.toggle",a.proxy(function(){this.update()},this))},c.prototype.destroy=function(){this.$element.off("change.bs.toggle"),this.$toggleGroup.remove(),this.$element.removeData("bs.toggle"),this.$element.unwrap()};var d=a.fn.bootstrapToggle;a.fn.bootstrapToggle=b,a.fn.bootstrapToggle.Constructor=c,a.fn.toggle.noConflict=function(){return a.fn.bootstrapToggle=d,this},a(function(){a("input[type=checkbox][data-toggle^=toggle]").bootstrapToggle()}),a(document).on("click.bs.toggle","div[data-toggle^=toggle]",function(b){var c=a(this).find("input[type=checkbox]");c.bootstrapToggle("toggle"),b.preventDefault()})}(jQuery); +//# sourceMappingURL=bootstrap-toggle.min.js.map
\ No newline at end of file diff --git a/ext/manifest.json b/ext/manifest.json index 3edc8fa6..bbdf6a80 100644 --- a/ext/manifest.json +++ b/ext/manifest.json @@ -5,7 +5,10 @@ "description": "Japanese dictionary with Anki integration", "icons": {"16": "img/icon16.png", "48": "img/icon48.png", "128": "img/icon128.png"}, - "browser_action": {"default_icon": {"19": "img/icon19.png", "38": "img/icon38.png"}}, + "browser_action": { + "default_icon": {"19": "img/icon19.png", "38": "img/icon38.png"}, + "default_popup": "bg/popup.html" + }, "author": "Alex Yatskov", "background": {"page": "bg/background.html"}, |