feat: move Files to its own process; add window server messaging (multi-format clipboard, drag and drop), undo/redo, sidebar, breadcrumbs, thumbnails, file type icons, New menu and proper text fields

This commit is contained in:
daniel committed 2026-10-24 12:44:20 +02:00
1 parent 07191b1286
commit d3e49a925d
66 files changed
+6855 -905

No files matched your search

+36
View File
@@ -795,6 +795,20 @@ namespace montauk {
inline int clipboard_clear() {
return (int)syscall0(montauk::abi::SYS_CLIPBOARD_CLEAR);
}
// Multi-format clipboard. The text calls above operate on its
// TRANSFER_MIME_TEXT format; gui/transfer.hpp has friendlier helpers.
inline int clipboard_set_data(const montauk::abi::TransferItem* items, uint32_t count) {
return (int)syscall2(montauk::abi::SYS_CLIPBOARD_SET_DATA, (uint64_t)items, (uint64_t)count);
}
inline int clipboard_formats(montauk::abi::TransferFormatInfo* out, uint32_t max,
uint64_t* outSerial = nullptr) {
return (int)syscall3(montauk::abi::SYS_CLIPBOARD_FORMATS, (uint64_t)out, (uint64_t)max,
(uint64_t)outSerial);
}
inline int clipboard_get_data(const char* mime, void* buf, uint32_t bufLen, uint32_t* outLen) {
return (int)syscall4(montauk::abi::SYS_CLIPBOARD_GET_DATA, (uint64_t)mime, (uint64_t)buf,
(uint64_t)bufLen, (uint64_t)outLen);
}
// Window server
inline int win_create(const char* title, int w, int h, montauk::abi::WinCreateResult* result) {
@@ -837,4 +851,26 @@ namespace montauk {
return (int)syscall2(montauk::abi::SYS_WINSETFLAGS, (uint64_t)id, (uint64_t)flags);
}
// Window server messaging (see Api/Syscall.hpp, gui/transfer.hpp).
inline int win_request(int id, const montauk::abi::WinRequest* request) {
return (int)syscall2(montauk::abi::SYS_WIN_REQUEST, (uint64_t)id, (uint64_t)request);
}
inline int win_request_poll(montauk::abi::WinRequest* out) {
return (int)syscall1(montauk::abi::SYS_WIN_REQUEST_POLL, (uint64_t)out);
}
inline int win_drag_begin(int id, const montauk::abi::WinDragBegin* info,
const montauk::abi::TransferItem* items, uint32_t count) {
return (int)syscall4(montauk::abi::SYS_WIN_DRAG_BEGIN, (uint64_t)id, (uint64_t)info,
(uint64_t)items, (uint64_t)count);
}
inline int win_drag_formats(uint32_t serial, montauk::abi::TransferFormatInfo* out, uint32_t max) {
return (int)syscall3(montauk::abi::SYS_WIN_DRAG_FORMATS, (uint64_t)serial, (uint64_t)out,
(uint64_t)max);
}
inline int win_drag_get_data(uint32_t serial, const char* mime, void* buf, uint32_t bufLen,
uint32_t* outLen) {
return (int)syscall5(montauk::abi::SYS_WIN_DRAG_GET_DATA, (uint64_t)serial, (uint64_t)mime,
(uint64_t)buf, (uint64_t)bufLen, (uint64_t)outLen);
}
}