Add working Start menu with app launcher

This commit is contained in:
Greg Hendrickson
2026-01-27 23:30:11 +00:00
parent 0d91104203
commit 59f4d6d808
3 changed files with 142 additions and 0 deletions

View File

@@ -12,6 +12,7 @@ class GregOS {
this.bindIconClicks();
this.startClock();
this.setupTerminal();
this.setupStartMenu();
}
bindIconClicks() {
@@ -211,6 +212,35 @@ class GregOS {
setInterval(updateClock, 1000);
}
setupStartMenu() {
const startButton = document.querySelector('.start-button');
const startMenu = document.getElementById('start-menu');
startButton.addEventListener('click', (e) => {
e.stopPropagation();
startMenu.classList.toggle('open');
startButton.classList.toggle('active');
});
// Close menu when clicking elsewhere
document.addEventListener('click', (e) => {
if (!startMenu.contains(e.target) && !startButton.contains(e.target)) {
startMenu.classList.remove('open');
startButton.classList.remove('active');
}
});
// Start menu item clicks
document.querySelectorAll('.start-menu-item').forEach(item => {
item.addEventListener('click', () => {
const windowId = item.dataset.window;
this.openWindow(windowId);
startMenu.classList.remove('open');
startButton.classList.remove('active');
});
});
}
setupTerminal() {
document.addEventListener('keydown', (e) => {
const input = document.getElementById('terminal-input');