mirror of
https://github.com/MeexReay/poshlostios.git
synced 2025-06-24 02:22:58 +03:00
mxwm zcom implementation
This commit is contained in:
parent
6c6cc99013
commit
1479a4dfbb
8
app/mxwm/package.json
Normal file
8
app/mxwm/package.json
Normal file
@ -0,0 +1,8 @@
|
||||
{
|
||||
"name": "mxwm",
|
||||
"version": "0.1.0",
|
||||
"description": "Mega eXtreme Window Manager",
|
||||
"author": "MeexReay",
|
||||
"apps": [ "zcom.js", "startz.js" ],
|
||||
"configs": []
|
||||
}
|
20
app/mxwm/startz.js
Normal file
20
app/mxwm/startz.js
Normal file
@ -0,0 +1,20 @@
|
||||
eval(readFile("/app/zcom.js"))
|
||||
|
||||
async function main(args) {
|
||||
enableGraphics()
|
||||
|
||||
window.mxwm_windows = []
|
||||
|
||||
let ctx = getGraphics()
|
||||
|
||||
while (true) {
|
||||
ctx.fillStyle = "black"
|
||||
ctx.fillRect(0, 0, ctx.canvas.width, ctx.canvas.height)
|
||||
|
||||
for (const win of window.mxwm_windows) {
|
||||
ctx.drawImage(win.canvas, win.x, win.y);
|
||||
}
|
||||
}
|
||||
|
||||
disableGraphics()
|
||||
}
|
88
app/mxwm/zcom.js
Normal file
88
app/mxwm/zcom.js
Normal file
@ -0,0 +1,88 @@
|
||||
function hasGraphicsImplementation() {
|
||||
return true
|
||||
}
|
||||
|
||||
/** returns wid and context */
|
||||
function createWindow(options) {
|
||||
let canvas = document.createElement("canvas")
|
||||
|
||||
let win = {
|
||||
"title": options["title"],
|
||||
"x": options["x"] || 0,
|
||||
"y": options["y"] || 0,
|
||||
"width": options["width"] || options["w"] || 200,
|
||||
"height": options["height"] || options["h"] || 200,
|
||||
"wid": Date.now().toString() + Math.round(Math.random() * 100).toString(),
|
||||
"on_signal": options["on_signal"] || options["callback"] || (o => {})
|
||||
}
|
||||
|
||||
canvas.width = win["width"].toString()
|
||||
canvas.height = win["height"].toString()
|
||||
|
||||
let context = canvas.getContext("2d")
|
||||
|
||||
win["canvas"] = canvas
|
||||
win["context"] = context
|
||||
|
||||
if ("mxwm_windows" in window) {
|
||||
window.mxwm_windows.push(win)
|
||||
} else {
|
||||
window.mxwm_windows = [ win ]
|
||||
}
|
||||
}
|
||||
|
||||
function moveWindow(wid, x, y, w, h) {
|
||||
if (!("mxwm_windows" in window)) {
|
||||
window.mxwm_windows = [ ]
|
||||
}
|
||||
|
||||
for (const win of window.mxwm_windows) {
|
||||
if (win["wid"] == wid) {
|
||||
win.x = x
|
||||
win.y = y
|
||||
win.width = w
|
||||
win.height = h
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function signalWindow(wid, signal) {
|
||||
if (!("mxwm_windows" in window)) {
|
||||
window.mxwm_windows = [ ]
|
||||
}
|
||||
|
||||
for (const win of window.mxwm_windows) {
|
||||
if (win["wid"] == wid) {
|
||||
win.on_signal(signal)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function closeWindow(wid) {
|
||||
if (!("mxwm_windows" in window)) {
|
||||
window.mxwm_windows = [ ]
|
||||
}
|
||||
|
||||
window.mxwm_windows = window.mxwm_windows.filter(o => o.wid != wid)
|
||||
}
|
||||
|
||||
function getWindow(wid) {
|
||||
if (!("mxwm_windows" in window)) {
|
||||
window.mxwm_windows = [ ]
|
||||
}
|
||||
|
||||
for (const win of window.mxwm_windows) {
|
||||
if (win["wid"] == wid) {
|
||||
return win
|
||||
}
|
||||
}
|
||||
return null
|
||||
}
|
||||
|
||||
function listWindows() {
|
||||
if (!("mxwm_windows" in window)) {
|
||||
window.mxwm_windows = [ ]
|
||||
}
|
||||
|
||||
return window.mxwm_windows
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user