電卓コントロールは、電卓のボタンのテキストを変更することができます。
ボタンのテキストを変更する方法
変更したいボタンに対して値を設定後、GcCalculatorクラスのbuttonTextプロパティに値を設定します。
変更できるボタンの種類はGcCalculatorKey列挙型の値となります。
またMStatusボタンのみ、2種類の値(メモリに値がある場合とそれ以外の場合)を設定することができます。
MStatusボタンで値を1つだけ設定した場合は、メモリに値がある場合の値となります。
変更したボタンのテキストを元に戻す方法
restoreButtonTextメソッドを使用することで、ボタンに設定したテキストを元に戻すことができます。
import '@mescius/inputman/CSS/gc.inputman-js.css';
import './styles.css';
import { InputMan } from '@mescius/inputman';
InputMan.appearanceStyle = InputMan.AppearanceStyle.Modern;
let gcCalculator = new InputMan.GcCalculator(document.getElementById('calculator'));
document.getElementById('changeButtonText').addEventListener('click', (e) => {
let buttonText = {};
buttonText[InputMan.GcCalculatorKey.D_0] = "零";
buttonText[InputMan.GcCalculatorKey.D_1] = "一";
buttonText[InputMan.GcCalculatorKey.D_2] = "二";
buttonText[InputMan.GcCalculatorKey.D_3] = "三";
buttonText[InputMan.GcCalculatorKey.D_4] = "四";
buttonText[InputMan.GcCalculatorKey.D_5] = "五";
buttonText[InputMan.GcCalculatorKey.D_6] = "六";
buttonText[InputMan.GcCalculatorKey.D_7] = "七";
buttonText[InputMan.GcCalculatorKey.D_8] = "八";
buttonText[InputMan.GcCalculatorKey.D_9] = "九";
buttonText[InputMan.GcCalculatorKey.Add] = "加算";
buttonText[InputMan.GcCalculatorKey.Sub] = "減算";
buttonText[InputMan.GcCalculatorKey.Multiply] = "乗算";
buttonText[InputMan.GcCalculatorKey.Divide] = "除算";
buttonText[InputMan.GcCalculatorKey.Sign] = "符号";
buttonText[InputMan.GcCalculatorKey.Sqrt] = "平方根";
buttonText[InputMan.GcCalculatorKey.Fraction] = "逆数";
buttonText[InputMan.GcCalculatorKey.Dot] = "小数点";
buttonText[InputMan.GcCalculatorKey.Equal] = "実行";
buttonText[InputMan.GcCalculatorKey.Percentage] = "割合";
buttonText[InputMan.GcCalculatorKey.BS] = "最後の桁を消去";
buttonText[InputMan.GcCalculatorKey.CE] = "現在の値を消去";
buttonText[InputMan.GcCalculatorKey.C] = "計算を消去";
buttonText[InputMan.GcCalculatorKey.MC] = "記憶消去";
buttonText[InputMan.GcCalculatorKey.MR] = "記憶呼出";
buttonText[InputMan.GcCalculatorKey.MS] = "記憶格納";
buttonText[InputMan.GcCalculatorKey.MAdd] = "記憶加算";
buttonText[InputMan.GcCalculatorKey.MStatus] = "記憶有";
gcCalculator.buttonText = buttonText;
});
document.getElementById('restore').addEventListener('click', (e) => {
gcCalculator.restoreButtonText();
});
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>電卓コントロール - ボタンのテキスト変更</title>
<!-- SystemJS -->
<script src="node_modules/systemjs/dist/system.src.js"></script>
<script src="systemjs.config.js"></script>
<script>
window.onload = function() {
System.import('./src/app');
}
</script>
</head>
<body>
<div>
<div id="calculator"></div>
</div>
<br>
<div>
<button id="changeButtonText">ボタンテキストの変更する</button>
<button id="restore">ボタンテキストを初期化する</button>
</div>
</body>
</html>
body {
padding-bottom: 2rem;
}
#calculator .gcim__calculator {
width: 300px;
height: 300px;
}
body {
padding-bottom: 2rem;
}
[gcim-control-appearance="modern"] #calculator .gcim__calculator {
width: 300px;
height: 300px;
}
System.config({
transpiler: 'plugin-babel',
babelOptions: {
es2015: true
},
meta: {
'*.css': { loader: 'css' }
},
paths: {
// paths serve as alias
'npm:': 'node_modules/'
},
// map tells the System loader where to look for things
map: {
'@mescius/inputman': 'npm:@mescius/inputman/index.js',
'@mescius/inputman/CSS': 'npm:@mescius/inputman/CSS',
'css': 'npm:systemjs-plugin-css/css.js',
'plugin-babel': 'npm:systemjs-plugin-babel/plugin-babel.js',
'systemjs-babel-build': 'npm:systemjs-plugin-babel/systemjs-babel-browser.js'
},
// packages tells the System loader how to load when no filename and/or no extension
packages: {
src: {
defaultExtension: 'js'
},
"node_modules": {
defaultExtension: 'js'
},
}
});