Skip to content

Commit d21543b

Browse files
authored
Merge pull request #20 from brunopicinin/fullscreen-mode
Add fullscreen mode
2 parents f757c2b + 8d54df5 commit d21543b

File tree

3 files changed

+49
-3
lines changed

3 files changed

+49
-3
lines changed

index.html

+8-1
Original file line numberDiff line numberDiff line change
@@ -106,21 +106,28 @@ <h2>JSON Points</h2>
106106
<span>(Esc)</span>
107107
</span>
108108
</div>
109-
<div class="t-divider"></div>
110109
<div class="t-icon" id="clear">
111110
<i class="fa-solid fa-trash"></i>
112111
<span class="ti-caption">
113112
<span>Clear all polygons</span>
114113
<span>(Ctrl/⌘-E)</span>
115114
</span>
116115
</div>
116+
<div class="t-divider"></div>
117117
<div class="t-icon" id="save-image">
118118
<i class="fa-solid fa-floppy-disk"></i>
119119
<span class="ti-caption">
120120
<span>Save image</span>
121121
<span>(Ctrl/⌘-S)</span>
122122
</span>
123123
</div>
124+
<div class="t-icon" id="fullscreen">
125+
<i class="fa-solid fa-expand"></i>
126+
<span class="ti-caption">
127+
<span>Fullscreen</span>
128+
<span>(F)</span>
129+
</span>
130+
</div>
124131
</div>
125132
<div class="coordinates">
126133
<span class="cc-title">Coordinates</span>

script.js

+39
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,15 @@ var showNormalized = false;
4242
var modeMessage = document.querySelector('#mode');
4343
// var coords = document.querySelector('#coords');
4444

45+
46+
var isFullscreen = false;
47+
var taskbarAndCanvas = document.querySelector('.right');
48+
4549
var editMode = false;
4650
var selectedPointIndex = -1;
4751
var selectedPolygonIndex = -1;
4852

53+
4954
function blitCachedCanvas() {
5055
mainCtx.clearRect(0, 0, canvas.width, canvas.height);
5156
mainCtx.drawImage(offScreenCanvas, 0, 0);
@@ -595,6 +600,36 @@ document.querySelector('#save-image').addEventListener('click', function(e) {
595600
saveImage();
596601
})
597602

603+
function toggleFullscreen() {
604+
highlightButtonInteraction('#fullscreen');
605+
606+
if (!isFullscreen) {
607+
if (taskbarAndCanvas.requestFullscreen) {
608+
taskbarAndCanvas.requestFullscreen();
609+
} else if (taskbarAndCanvas.webkitRequestFullscreen) { // Safari
610+
taskbarAndCanvas.webkitRequestFullscreen();
611+
} else if (taskbarAndCanvas.msRequestFullscreen) { // IE/Edge
612+
taskbarAndCanvas.msRequestFullscreen();
613+
}
614+
} else {
615+
if (document.exitFullscreen) {
616+
document.exitFullscreen();
617+
} else if (document.webkitExitFullscreen) { // Safari
618+
document.webkitExitFullscreen();
619+
} else if (document.msExitFullscreen) { // IE/Edge
620+
document.msExitFullscreen();
621+
}
622+
}
623+
}
624+
625+
document.addEventListener('fullscreenchange', function() {
626+
isFullscreen = document.fullscreenElement !== null;
627+
});
628+
629+
document.querySelector('#fullscreen').addEventListener('click', function(e) {
630+
toggleFullscreen();
631+
});
632+
598633
window.addEventListener('keydown', function(e) {
599634
if (e.key === 'z' && (e.ctrlKey || e.metaKey)) {
600635
e.preventDefault();
@@ -626,4 +661,8 @@ window.addEventListener('keydown', function(e) {
626661
onPathClose();
627662
}
628663
}
664+
665+
if (e.key === 'f' || e.key === 'F') {
666+
toggleFullscreen();
667+
}
629668
})

styles.css

+2-2
Original file line numberDiff line numberDiff line change
@@ -63,13 +63,13 @@ a {
6363
display: flex;
6464
}
6565
.left {
66-
flex: 50%;
66+
flex: 40%;
6767
padding: 0 1em;
6868
border-right: 1px solid #e5e7eb;
6969
box-sizing: border-box;
7070
}
7171
.right {
72-
flex: 50%;
72+
flex: 60%;
7373
padding: 0 2em;
7474
box-sizing: border-box;
7575
}

0 commit comments

Comments
 (0)