src/manager/UIManager.js
import Manager from './Manager';
import { TextureManager } from '../entry';
export class _UIManager extends Manager {
constructor() {
super();
this.defaultStyle = {
buttonTexture: TextureManager.getTexture('uiButtonDefault'),
buttonSubImage: 0,
buttonHoverSubImage: 0,
buttonPressedSubImage: 1,
buttonReleasedSubImage: 1,
fontTexture: TextureManager.getTexture('fontDefault'),
textInputBoxTexture: TextureManager.getTexture('uiButtonDefault'),
};
this.styles = [];
this.currentStyle = null;
this.addStyle('Default', {});
this.setCurrentStyle('Default');
}
/**
*
*
* @param {JSONObject} jsonStyleObject A JSON formatted object containing generic drawing data for styles.
*/
addStyle(uiStyleName, jsonStyleObject) {
this.styles[uiStyleName] = Object.assign({}, this.defaultStyle, jsonStyleObject);
}
setCurrentStyle(uiStyleName) {
this.currentStyle = this.getStyle(uiStyleName);
}
getCurrentStyle() {
return this.currentStyle;
}
getStyle(styleName) {
let style = this.styles[styleName];
if (style == null)
throw 'UI style does not exist!';
return style;
}
}
/**
* Singleton reference to the UIManager.
*/
const UIManager = new _UIManager();
export default UIManager;