UNPKG

@launchmenu/applet-window-manager

Version:
59 lines 7 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.PositionInputContent = void 0; const core_1 = require("@launchmenu/core"); const electron_1 = require("electron"); const model_react_1 = require("model-react"); const react_1 = __importDefault(require("react")); /** * A component for showing content to control the window position */ const PositionInputContent = ({ browserWindowField, field }) => { const [h] = model_react_1.useDataHook(); const browserWindow = browserWindowField.get(h); const setPosition = (position) => { if (!browserWindow) return; const displays = electron_1.remote.screen.getAllDisplays().map(display => display.bounds); // Find the display to put the window in const { x, y } = field.get(); const display = displays.find(display => display.x <= x && display.x + display.width > x && display.y <= y && display.y + display.height > y) || electron_1.remote.screen.getPrimaryDisplay().bounds; // Find the exact coordinates const windowWidth = window.document.body.clientWidth; const windowHeight = window.document.body.clientHeight; const newX = Math.round(display.x + (display.width - windowWidth) * position.x); const newY = Math.round(display.y + (display.height - windowHeight) * position.y); // Update the position field.set({ x: newX, y: newY }); }; const positions = [ [ { x: 0, y: 0, name: "top left" }, { x: 0.5, y: 0, name: "top" }, { x: 1, y: 0, name: "top right" }, ], [ { x: 0, y: 0.5, name: "left" }, { x: 0.5, y: 0.5, name: "middle" }, { x: 1, y: 0.5, name: "right" }, ], [ { x: 0, y: 1, name: "bottom left" }, { x: 0.5, y: 1, name: "bottom" }, { x: 1, y: 1, name: "bottom right" }, ], ]; return (react_1.default.createElement(core_1.Box, null, react_1.default.createElement(core_1.Box, { padding: "medium", background: "secondary", borderRadius: "small", css: { WebkitAppRegion: "drag", WebkitUserSelect: "none" } }, "Click and drag here to move the window"), react_1.default.createElement(core_1.Box, null, react_1.default.createElement(core_1.Box, { marginY: "medium" }, "Or click one of the buttons below to snap to a position"), react_1.default.createElement(core_1.Box, { display: "flex", flexDirection: "column", gap: "small" }, positions.map((row, i) => (react_1.default.createElement(core_1.Box, { display: "flex", gap: "small", key: i }, row.map(({ x, y, name }, j) => (react_1.default.createElement(core_1.Button, { flexGrow: 1, onClick: () => setPosition({ x, y }), key: j }, name)))))))))); }; exports.PositionInputContent = PositionInputContent; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUG9zaXRpb25JbnB1dENvbnRlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcG9zaXRpb24vUG9zaXRpb25JbnB1dENvbnRlbnQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDJDQUFnRTtBQUNoRSx1Q0FBK0M7QUFDL0MsNkNBQXdDO0FBQ3hDLGtEQUEyQztBQUUzQzs7R0FFRztBQUNJLE1BQU0sb0JBQW9CLEdBRzVCLENBQUMsRUFBQyxrQkFBa0IsRUFBRSxLQUFLLEVBQUMsRUFBRSxFQUFFO0lBQ2pDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyx5QkFBVyxFQUFFLENBQUM7SUFDMUIsTUFBTSxhQUFhLEdBQUcsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2hELE1BQU0sV0FBVyxHQUFHLENBQUMsUUFBbUIsRUFBRSxFQUFFO1FBQ3hDLElBQUksQ0FBQyxhQUFhO1lBQUUsT0FBTztRQUMzQixNQUFNLFFBQVEsR0FBRyxpQkFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFL0Usd0NBQXdDO1FBQ3hDLE1BQU0sRUFBQyxDQUFDLEVBQUUsQ0FBQyxFQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQzNCLE1BQU0sT0FBTyxHQUNULFFBQVEsQ0FBQyxJQUFJLENBQ1QsT0FBTyxDQUFDLEVBQUUsQ0FDTixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDZCxPQUFPLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxLQUFLLEdBQUcsQ0FBQztZQUM3QixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDZCxPQUFPLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUNyQyxJQUFJLGlCQUFNLENBQUMsTUFBTSxDQUFDLGlCQUFp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