add function to live change textbox font-size and color

This commit is contained in:
raphael 2019-02-22 13:49:40 +01:00
parent 74b1f10eaf
commit 5d6559ad42
3 changed files with 42 additions and 9 deletions

View File

@ -166,8 +166,8 @@ $(document).ready(function () {
}); });
// On thickness slider change // On thickness slider change
$("#whiteboardThicknessSlider").on("change", function () { $("#whiteboardThicknessSlider").on("input", function () {
whiteboard.thickness = $(this).val(); whiteboard.setStrokeThickness($(this).val());
}); });
// handle drag&drop // handle drag&drop
@ -242,7 +242,7 @@ $(document).ready(function () {
$('#whiteboardColorpicker').colorPicker({ $('#whiteboardColorpicker').colorPicker({
renderCallback: function (elm) { renderCallback: function (elm) {
whiteboard.drawcolor = elm.val(); whiteboard.setDrawColor(elm.val());
} }
}); });
}); });

View File

@ -20,6 +20,7 @@ var whiteboard = {
drawBuffer: [], drawBuffer: [],
drawId: 0, //Used for undo function drawId: 0, //Used for undo function
imgDragActive: false, imgDragActive: false,
latestActiveTextBoxId: false, //The id of the latest clicked Textbox (for font and color change)
pressedKeys: {}, pressedKeys: {},
settings: { settings: {
whiteboardId: "0", whiteboardId: "0",
@ -378,7 +379,7 @@ var whiteboard = {
return { "x": currX, "y": currY }; return { "x": currX, "y": currY };
} }
}, },
entfKeyAction : function() { entfKeyAction: function () {
var _this = this; var _this = this;
$.each(_this.mouseOverlay.find(".dragOutOverlay"), function () { $.each(_this.mouseOverlay.find(".dragOutOverlay"), function () {
var width = $(this).width(); var width = $(this).width();
@ -392,11 +393,11 @@ var whiteboard = {
}); });
_this.mouseOverlay.find(".xCanvasBtn").click(); //Remove all current drops _this.mouseOverlay.find(".xCanvasBtn").click(); //Remove all current drops
}, },
escKeyAction : function() { escKeyAction: function () {
var _this = this; var _this = this;
if (!_this.drawFlag) { if (!_this.drawFlag) {
_this.svgContainer.empty(); _this.svgContainer.empty();
} }
_this.mouseOverlay.find(".xCanvasBtn").click(); //Remove all current drops _this.mouseOverlay.find(".xCanvasBtn").click(); //Remove all current drops
}, },
dragCanvasRectContent: function (xf, yf, xt, yt, width, height) { dragCanvasRectContent: function (xf, yf, xt, yt, width, height) {
@ -471,6 +472,15 @@ var whiteboard = {
_this.drawBuffer = []; _this.drawBuffer = [];
_this.drawId = 0; _this.drawId = 0;
}, },
setStrokeThickness(thickness) {
var _this = this;
_this.thickness = thickness;
if (_this.tool == "text" && _this.latestActiveTextBoxId) {
_this.sendFunction({ "t": "setTextboxFontSize", "d": [_this.latestActiveTextBoxId, thickness] });
_this.setTextboxFontSize(_this.latestActiveTextBoxId, thickness);
}
},
addImgToCanvasByUrl: function (url) { addImgToCanvasByUrl: function (url) {
var _this = this; var _this = this;
var wasTextTool = false; var wasTextTool = false;
@ -532,8 +542,10 @@ var whiteboard = {
'<div title="remove textbox" class="removeIcon" style="position:absolute; cursor:pointer; top:-4px; right:2px;">x</div>' + '<div title="remove textbox" class="removeIcon" style="position:absolute; cursor:pointer; top:-4px; right:2px;">x</div>' +
'<div title="move textbox" class="moveIcon" style="position:absolute; cursor:move; top:1px; left:2px; font-size: 0.5em;"><i class="fas fa-expand-arrows-alt"></i></div>' + '<div title="move textbox" class="moveIcon" style="position:absolute; cursor:move; top:1px; left:2px; font-size: 0.5em;"><i class="fas fa-expand-arrows-alt"></i></div>' +
'</div>'); '</div>');
_this.latestActiveTextBoxId = txId;
textBox.click(function (e) { textBox.click(function (e) {
e.preventDefault(); e.preventDefault();
_this.latestActiveTextBoxId = txId;
return false; return false;
}) })
textBox.on("mousemove touchmove", function (e) { textBox.on("mousemove touchmove", function (e) {
@ -587,6 +599,12 @@ var whiteboard = {
setTextboxPosition(txId, top, left) { setTextboxPosition(txId, top, left) {
$("#" + txId).css({ "top": top + "px", "left": left + "px" }); $("#" + txId).css({ "top": top + "px", "left": left + "px" });
}, },
setTextboxFontSize(txId, fontSize) {
$("#" + txId).find(".textContent").css({ "font-size": fontSize + "em" });
},
setTextboxFontColor(txId, color) {
$("#" + txId).find(".textContent").css({ "color": color });
},
drawImgToCanvas(url, width, height, left, top, doneCallback) { drawImgToCanvas(url, width, height, left, top, doneCallback) {
var _this = this; var _this = this;
var img = document.createElement('img'); var img = document.createElement('img');
@ -635,6 +653,17 @@ var whiteboard = {
} }
this.refreshCursorAppearance(); this.refreshCursorAppearance();
this.mouseOverlay.find(".xCanvasBtn").click(); this.mouseOverlay.find(".xCanvasBtn").click();
this.latestActiveTextBoxId = null;
},
setDrawColor(color) {
var _this = this;
_this.drawcolor = color;
if (_this.tool == "text" && _this.latestActiveTextBoxId) {
_this.sendFunction({ "t": "setTextboxFontColor", "d": [_this.latestActiveTextBoxId, color] });
_this.setTextboxFontColor(_this.latestActiveTextBoxId, color);
}
}, },
handleEventsAndData: function (content, isNewData, doneCallback) { handleEventsAndData: function (content, isNewData, doneCallback) {
var _this = this; var _this = this;
@ -670,6 +699,10 @@ var whiteboard = {
_this.removeTextbox(data[0]); _this.removeTextbox(data[0]);
} else if (tool === "setTextboxPosition") { } else if (tool === "setTextboxPosition") {
_this.setTextboxPosition(data[0], data[1], data[2]); _this.setTextboxPosition(data[0], data[1], data[2]);
} else if (tool === "setTextboxFontSize") {
_this.setTextboxFontSize(data[0], data[1]);
} else if (tool === "setTextboxFontColor") {
_this.setTextboxFontColor(data[0], data[1]);
} else if (tool === "clear") { } else if (tool === "clear") {
_this.canvas.height = _this.canvas.height; _this.canvas.height = _this.canvas.height;
_this.imgContainer.empty(); _this.imgContainer.empty();
@ -693,7 +726,7 @@ var whiteboard = {
} }
}); });
if (isNewData && ["line", "pen", "rect", "circle", "eraser", "addImgBG", "recSelect", "eraseRec", "addTextBox", "setTextboxText", "removeTextbox", "setTextboxPosition"].includes(tool)) { if (isNewData && ["line", "pen", "rect", "circle", "eraser", "addImgBG", "recSelect", "eraseRec", "addTextBox", "setTextboxText", "removeTextbox", "setTextboxPosition", "setTextboxFontSize", "setTextboxFontColor"].includes(tool)) {
content["drawId"] = content["drawId"] ? content["drawId"] : _this.drawId; content["drawId"] = content["drawId"] ? content["drawId"] : _this.drawId;
content["username"] = content["username"] ? content["username"] : _this.settings.username; content["username"] = content["username"] ? content["username"] : _this.settings.username;
_this.drawBuffer.push(content); _this.drawBuffer.push(content);
@ -783,7 +816,7 @@ var whiteboard = {
if (_this.settings.sendFunction) { if (_this.settings.sendFunction) {
_this.settings.sendFunction(content); _this.settings.sendFunction(content);
} }
if (["line", "pen", "rect", "circle", "eraser", "addImgBG", "recSelect", "eraseRec", "addTextBox", "setTextboxText", "removeTextbox", "setTextboxPosition"].includes(tool)) { if (["line", "pen", "rect", "circle", "eraser", "addImgBG", "recSelect", "eraseRec", "addTextBox", "setTextboxText", "removeTextbox", "setTextboxPosition", "setTextboxFontSize", "setTextboxFontColor"].includes(tool)) {
_this.drawBuffer.push(content); _this.drawBuffer.push(content);
} }
}, },

View File

@ -22,7 +22,7 @@ module.exports = {
} }
} }
} }
} else if(["line", "pen", "rect", "circle", "eraser", "addImgBG", "recSelect", "eraseRec", "addTextBox", "setTextboxText", "removeTextbox", "setTextboxPosition"].includes(tool)) { //Save all this actions } else if(["line", "pen", "rect", "circle", "eraser", "addImgBG", "recSelect", "eraseRec", "addTextBox", "setTextboxText", "removeTextbox", "setTextboxPosition", "setTextboxFontSize", "setTextboxFontColor"].includes(tool)) { //Save all this actions
if(!savedBoards[wid]) { if(!savedBoards[wid]) {
savedBoards[wid] = []; savedBoards[wid] = [];
} }