|
- import Utils from "/app/js/common/Utils.js";
- import GlobalEvents from "/app/js/common/EventCaller.js";
-
- const EL_CANVAS_ID = "painter";
-
- // For reference...
- // https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/stroke
- class CTRLPainter {
- constructor(){
- this.__canvas = null;
- this.__context = null;
- this.__scale = 1.0; // This is the scale the painter will display source information.
- this.__offset = [0.0, 0.0]; // This is the X,Y offset from origin to display source information.
-
- this.__canvas = document.getElementById(EL_CANVAS_ID);
- if (!this.__canvas)
- throw new Error("Failed to obtain the canvas element.");
- this.__context = this.__canvas.getContext("2d");
- if (!this.__context)
- throw new Error("Failed to obtain canvas context.");
-
- //var imgdata = this.__context.getImageData();
- var handle_resize = Utils.debounce((function(e){
- console.log("DEBOUNCED");
- console.log(e);
- var w = this.__canvas.clientWidth;
- var h = this.__canvas.clientHeight;
- this.__canvas.width = w;
- this.__canvas.height = h;
- console.log(this.__canvas.width + ", " + this.__canvas.height);
- console.log(this.__canvas.clientWidth + ", " + this.__canvas.clientHeight);
- }).bind(this), 250);
- window.addEventListener("resize", handle_resize);
- }
-
- get scale(){
- return this.__scale;
- }
-
- set scale(s){
- if (typeof(s) !== 'number')
- throw new TypeError("Expected number value.");
- this.__scale = Math.max(0.1, Math.min(100.0, s));
- }
-
- scale_up(amount=1){
- this.scale = this.scale + (amount*0.1);
- }
-
- scale_down(amount=1){
- this.scale = this.scale - (amount*0.1);
- }
- }
-
-
- const instance = new CTRLPainter();
- export default instance;
-
-
|