Skip to content

Commit b893484

Browse files
changes
1 parent ffa87e5 commit b893484

File tree

2 files changed

+28
-17
lines changed

2 files changed

+28
-17
lines changed

index.html

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,9 @@
6969
<button id="eraser-tool" class="btn btn-light w-100 mb-3" title="Eraser">
7070
<i class="fas fa-eraser"></i>
7171
</button>
72+
<button id="text-tool" class="btn btn-light w-100 mb-3" title="Add Text">
73+
<i class="fas fa-font"></i>
74+
</button>
7275
</div>
7376

7477
<!-- Shapes Menu -->
@@ -133,7 +136,7 @@
133136
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/js/bootstrap.bundle.min.js"></script>
134137
<script>
135138
// JavaScript to handle tool selection and update background color
136-
const tools = document.querySelectorAll('#select-tool, #pen-tool, #eraser-tool, #draw-line, #draw-rect, #draw-circle');
139+
const tools = document.querySelectorAll('#select-tool, #pen-tool, #eraser-tool, #draw-line, #draw-rect, #draw-circle, #text-tool');
137140

138141
tools.forEach(tool => {
139142
tool.addEventListener('click', () => {
@@ -144,7 +147,8 @@
144147
tool.classList.add('selected');
145148
});
146149
});
147-
</script>
150+
151+
</script>
148152
<script src="script.js"></script>
149153
</body>
150154
</html>

script.js

Lines changed: 22 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,19 @@
22
const canvas = document.getElementById("whiteboard");
33
const ctx = canvas.getContext("2d");
44

5-
65
// Canvas setup
76
function resizeCanvas() {
8-
// Save the current canvas content
9-
const savedContent = ctx.getImageData(0, 0, canvas.width, canvas.height);
10-
11-
// Resize the canvas
12-
canvas.width = canvas.parentElement.offsetWidth;
13-
canvas.height = canvas.parentElement.offsetHeight;
14-
15-
// Restore the saved content
16-
ctx.putImageData(savedContent, 0, 0);
17-
}
18-
resizeCanvas();
7+
// Save the current canvas content
8+
const savedContent = ctx.getImageData(0, 0, canvas.width, canvas.height);
9+
10+
// Resize the canvas
11+
canvas.width = canvas.parentElement.offsetWidth;
12+
canvas.height = canvas.parentElement.offsetHeight;
13+
14+
// Restore the saved content
15+
ctx.putImageData(savedContent, 0, 0);
16+
}
17+
resizeCanvas();
1918
window.addEventListener("resize", resizeCanvas);
2019

2120
// Variables for drawing
@@ -49,17 +48,14 @@ document.getElementById("fullscreen").addEventListener("click", () => {
4948
// Side menu tools
5049
document.getElementById("pen-tool").addEventListener("click", () => {
5150
currentTool = "pen";
52-
canvas.className = "pen";
5351
});
5452

5553
document.getElementById("eraser-tool").addEventListener("click", () => {
5654
currentTool = "eraser";
57-
canvas.className = "eraser";
5855
});
5956

6057
document.getElementById("select-tool").addEventListener("click", () => {
6158
currentTool = "select";
62-
canvas.className = "select";
6359
});
6460

6561
document.getElementById("draw-line").addEventListener("click", () => {
@@ -74,6 +70,10 @@ document.getElementById("draw-circle").addEventListener("click", () => {
7470
currentTool = "circle";
7571
});
7672

73+
document.getElementById("text-tool").addEventListener("click", () => {
74+
currentTool = "text";
75+
});
76+
7777
// Drawing functions
7878
let startX, startY;
7979

@@ -132,6 +132,13 @@ canvas.addEventListener("mouseup", (e) => {
132132
ctx.beginPath();
133133
ctx.arc(startX, startY, radius, 0, Math.PI * 2);
134134
ctx.stroke();
135+
} else if (currentTool === "text") {
136+
const text = prompt("Enter the text:");
137+
if (text) {
138+
ctx.fillStyle = brushColor;
139+
ctx.font = `${brushSize * 2}px Arial`;
140+
ctx.fillText(text, startX, startY);
141+
}
135142
}
136143
});
137144

0 commit comments

Comments
 (0)