@bobfrankston/msger 0.1.71 → 0.1.73
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/FULLSCREEN-FEATURE.md +361 -0
- package/README.md +25 -1
- package/clihandler.d.ts.map +1 -1
- package/clihandler.js +6 -0
- package/clihandler.js.map +1 -1
- package/clihandler.ts +6 -0
- package/msger-native/bin/msgernative.exe +0 -0
- package/msger-native/src/main.rs +9 -2
- package/msger-native/src/template.html +15 -2
- package/msgernative-linux-x64 +0 -0
- package/package.json +1 -1
- package/shower.d.ts +1 -0
- package/shower.d.ts.map +1 -1
- package/shower.js.map +1 -1
- package/shower.ts +1 -0
|
@@ -0,0 +1,361 @@
|
|
|
1
|
+
# Fullscreen Feature Implementation
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
Adding a `-fullscreen` option to launch the message box window in fullscreen mode (like pressing F11 in a browser).
|
|
6
|
+
|
|
7
|
+
## Features
|
|
8
|
+
|
|
9
|
+
- Start window in fullscreen mode (no borders, title bar, or decorations)
|
|
10
|
+
- Window fills entire screen
|
|
11
|
+
- Can exit fullscreen with Escape key or F11
|
|
12
|
+
- Works with all content types (message, HTML, URL)
|
|
13
|
+
- Compatible with other options (zoom, detach, etc.)
|
|
14
|
+
|
|
15
|
+
## Implementation Plan
|
|
16
|
+
|
|
17
|
+
### 1. TypeScript API (index.ts)
|
|
18
|
+
|
|
19
|
+
Add `fullscreen?: boolean` to `MessageBoxOptions` interface and pass it to the Rust binary.
|
|
20
|
+
|
|
21
|
+
**Location:** Around line 17 in the interface definition
|
|
22
|
+
|
|
23
|
+
**Add:**
|
|
24
|
+
```typescript
|
|
25
|
+
interface MessageBoxOptions {
|
|
26
|
+
// ... existing options ...
|
|
27
|
+
fullscreen?: boolean; // Start window in fullscreen mode
|
|
28
|
+
}
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
**Location:** Around line 60-65 where JSON is constructed
|
|
32
|
+
|
|
33
|
+
**Add to the config object:**
|
|
34
|
+
```typescript
|
|
35
|
+
const config = {
|
|
36
|
+
// ... existing properties ...
|
|
37
|
+
fullscreen: options.fullscreen || false
|
|
38
|
+
};
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### 2. CLI Handler (clihandler.ts)
|
|
42
|
+
|
|
43
|
+
Add CLI flag parsing for `-fullscreen` option.
|
|
44
|
+
|
|
45
|
+
**Location:** Add to `CliOptions` interface (around line 15)
|
|
46
|
+
|
|
47
|
+
**Add:**
|
|
48
|
+
```typescript
|
|
49
|
+
interface CliOptions {
|
|
50
|
+
// ... existing options ...
|
|
51
|
+
fullscreen?: boolean;
|
|
52
|
+
}
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
**Location:** Flag parsing section (after line 113)
|
|
56
|
+
|
|
57
|
+
**Add:**
|
|
58
|
+
```typescript
|
|
59
|
+
} else if (arg === '-fullscreen' || arg === '--fullscreen') {
|
|
60
|
+
cli.fullscreen = true;
|
|
61
|
+
i++;
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
**Location:** Options construction (around line 170)
|
|
65
|
+
|
|
66
|
+
**Add:**
|
|
67
|
+
```typescript
|
|
68
|
+
fullscreen: cli.fullscreen
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
**Location:** Help text (around line 38)
|
|
72
|
+
|
|
73
|
+
**Add:**
|
|
74
|
+
```
|
|
75
|
+
-fullscreen, --fullscreen Start window in fullscreen mode (F11 to exit)
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### 3. Rust Binary (main.rs)
|
|
79
|
+
|
|
80
|
+
Configure the window to start in fullscreen mode using tao's WindowBuilder.
|
|
81
|
+
|
|
82
|
+
**File:** `msger-native/src/main.rs`
|
|
83
|
+
|
|
84
|
+
**Location:** Config struct (around line 10)
|
|
85
|
+
|
|
86
|
+
**Add:**
|
|
87
|
+
```rust
|
|
88
|
+
#[derive(Deserialize)]
|
|
89
|
+
struct Config {
|
|
90
|
+
// ... existing fields ...
|
|
91
|
+
#[serde(default)]
|
|
92
|
+
fullscreen: bool,
|
|
93
|
+
}
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
**Location:** Window creation (around line 120-130)
|
|
97
|
+
|
|
98
|
+
**Replace:**
|
|
99
|
+
```rust
|
|
100
|
+
let window = WindowBuilder::new()
|
|
101
|
+
.with_title(&config.title)
|
|
102
|
+
.with_inner_size(PhysicalSize::new(width, height))
|
|
103
|
+
.with_resizable(true)
|
|
104
|
+
.with_position(position)
|
|
105
|
+
.build(&event_loop)?;
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
**With:**
|
|
109
|
+
```rust
|
|
110
|
+
let mut window_builder = WindowBuilder::new()
|
|
111
|
+
.with_title(&config.title)
|
|
112
|
+
.with_inner_size(PhysicalSize::new(width, height))
|
|
113
|
+
.with_resizable(true)
|
|
114
|
+
.with_position(position);
|
|
115
|
+
|
|
116
|
+
// Set fullscreen mode if requested
|
|
117
|
+
if config.fullscreen {
|
|
118
|
+
window_builder = window_builder.with_fullscreen(Some(tao::window::Fullscreen::Borderless(None)));
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
let window = window_builder.build(&event_loop)?;
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
**Location:** JavaScript event handling (around line 185-195, in the keydown handler)
|
|
125
|
+
|
|
126
|
+
**Enhance Escape key to exit fullscreen:**
|
|
127
|
+
```javascript
|
|
128
|
+
document.addEventListener('keydown', function(e) {{
|
|
129
|
+
if (e.key === 'Escape') {{
|
|
130
|
+
// Try to exit fullscreen first
|
|
131
|
+
if (document.fullscreenElement) {{
|
|
132
|
+
document.exitFullscreen();
|
|
133
|
+
}} else {{
|
|
134
|
+
const result = {{ button: '{}', dismissed: true }};
|
|
135
|
+
window.ipc.postMessage(JSON.stringify(result));
|
|
136
|
+
}}
|
|
137
|
+
}} else if (e.key === 'F11') {{
|
|
138
|
+
// Toggle fullscreen
|
|
139
|
+
e.preventDefault();
|
|
140
|
+
if (!document.fullscreenElement) {{
|
|
141
|
+
document.documentElement.requestFullscreen();
|
|
142
|
+
}} else {{
|
|
143
|
+
document.exitFullscreen();
|
|
144
|
+
}}
|
|
145
|
+
}} else if (e.key === 'Enter') {{
|
|
146
|
+
// ... existing Enter handler ...
|
|
147
|
+
}}
|
|
148
|
+
}});
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
## How It Works
|
|
152
|
+
|
|
153
|
+
### Fullscreen Modes
|
|
154
|
+
|
|
155
|
+
**tao** (the windowing library) provides two fullscreen options:
|
|
156
|
+
|
|
157
|
+
1. **Borderless Fullscreen** (recommended) - `Fullscreen::Borderless(None)`
|
|
158
|
+
- Window fills the screen
|
|
159
|
+
- No decorations
|
|
160
|
+
- Faster switching
|
|
161
|
+
- Works across all monitors
|
|
162
|
+
|
|
163
|
+
2. **Exclusive Fullscreen** - `Fullscreen::Exclusive(video_mode)`
|
|
164
|
+
- Changes display resolution
|
|
165
|
+
- Better for games
|
|
166
|
+
- More invasive
|
|
167
|
+
|
|
168
|
+
We use **Borderless** for better compatibility and user experience.
|
|
169
|
+
|
|
170
|
+
### Fullscreen Control
|
|
171
|
+
|
|
172
|
+
Users can exit fullscreen via:
|
|
173
|
+
- **Escape** - Exits fullscreen if active, otherwise dismisses the window
|
|
174
|
+
- **F11** - Toggles fullscreen on/off (standard browser behavior)
|
|
175
|
+
|
|
176
|
+
## Use Cases
|
|
177
|
+
|
|
178
|
+
### 1. Full-Screen Presentations
|
|
179
|
+
```bash
|
|
180
|
+
msger -fullscreen -url "https://slides.example.com/presentation"
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
### 2. Kiosk Mode Displays
|
|
184
|
+
```bash
|
|
185
|
+
msger -fullscreen -url "http://localhost:3000/dashboard" -detach
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
### 3. Full-Screen Notifications
|
|
189
|
+
```bash
|
|
190
|
+
msger -fullscreen -html "<h1 style='font-size:200px;text-align:center'>BREAK TIME</h1>"
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
### 4. Immersive Content
|
|
194
|
+
```bash
|
|
195
|
+
msger -fullscreen -url "file:///path/to/video-player.html"
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
### 5. API Usage
|
|
199
|
+
```typescript
|
|
200
|
+
await showMessageBox({
|
|
201
|
+
title: 'Presentation',
|
|
202
|
+
url: 'https://example.com/slides',
|
|
203
|
+
fullscreen: true,
|
|
204
|
+
alwaysOnTop: true
|
|
205
|
+
});
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
## Combining with Other Features
|
|
209
|
+
|
|
210
|
+
### With Detach
|
|
211
|
+
```bash
|
|
212
|
+
# Launch fullscreen window that stays open after script exits
|
|
213
|
+
msger -fullscreen -detach -url "http://localhost:8080/monitor"
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
### With Zoom
|
|
217
|
+
```bash
|
|
218
|
+
# Fullscreen with 150% zoom for visibility
|
|
219
|
+
msger -fullscreen -zoom 150 -message "Large text display"
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
### With Always On Top
|
|
223
|
+
```bash
|
|
224
|
+
# Fullscreen notification that can't be hidden
|
|
225
|
+
msger -fullscreen -ontop -timeout 10 -message "ALERT: System reboot in 10 seconds"
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
## Platform Support
|
|
229
|
+
|
|
230
|
+
| Platform | Support | Notes |
|
|
231
|
+
|----------|---------|-------|
|
|
232
|
+
| Windows | ✅ Full | Uses native fullscreen API |
|
|
233
|
+
| Linux x64 | ✅ Full | Uses GTK fullscreen |
|
|
234
|
+
| Linux ARM64 | ✅ Full | Uses GTK fullscreen |
|
|
235
|
+
|
|
236
|
+
## Behavior Details
|
|
237
|
+
|
|
238
|
+
### Startup
|
|
239
|
+
- Window starts immediately in fullscreen mode
|
|
240
|
+
- No transition animation
|
|
241
|
+
- Original window size is remembered for when exiting fullscreen
|
|
242
|
+
|
|
243
|
+
### Exiting Fullscreen
|
|
244
|
+
- **F11** toggles fullscreen (returns to window mode)
|
|
245
|
+
- **Escape** exits fullscreen first, then dismisses window on second press
|
|
246
|
+
- Closing window works normally (clicks button or window close)
|
|
247
|
+
|
|
248
|
+
### Multi-Monitor
|
|
249
|
+
- Default: Fullscreen on current/primary monitor
|
|
250
|
+
- With `-screen N`: Can specify which monitor (Windows only)
|
|
251
|
+
|
|
252
|
+
## Testing Checklist
|
|
253
|
+
|
|
254
|
+
- [ ] Test `-fullscreen` flag launches fullscreen window
|
|
255
|
+
- [ ] Test F11 toggles fullscreen on/off
|
|
256
|
+
- [ ] Test Escape exits fullscreen before dismissing
|
|
257
|
+
- [ ] Test with `-message` (simple text)
|
|
258
|
+
- [ ] Test with `-html` (HTML content)
|
|
259
|
+
- [ ] Test with `-url` (web page)
|
|
260
|
+
- [ ] Test with `-detach` (stays open after parent exits)
|
|
261
|
+
- [ ] Test with `-zoom` (initial zoom level)
|
|
262
|
+
- [ ] Test with `-ontop` (stays on top)
|
|
263
|
+
- [ ] Test multi-monitor with `-screen` (Windows only)
|
|
264
|
+
- [ ] Test buttons work in fullscreen
|
|
265
|
+
- [ ] Test input fields work in fullscreen
|
|
266
|
+
- [ ] Test window close button (if visible)
|
|
267
|
+
|
|
268
|
+
## Building After Changes
|
|
269
|
+
|
|
270
|
+
```bash
|
|
271
|
+
# Rebuild TypeScript
|
|
272
|
+
tsc
|
|
273
|
+
|
|
274
|
+
# Rebuild Rust binary (Windows)
|
|
275
|
+
cd msger-native
|
|
276
|
+
cargo build --release
|
|
277
|
+
copy target\release\msgernative.exe bin\
|
|
278
|
+
|
|
279
|
+
# Rebuild for Linux (via WSL)
|
|
280
|
+
npm run build:native:wsl
|
|
281
|
+
|
|
282
|
+
# Rebuild for ARM64 (via Pi)
|
|
283
|
+
npm run build:native:pi
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
## Files to Modify
|
|
287
|
+
|
|
288
|
+
1. ✅ `index.ts` - Add interface and JSON config
|
|
289
|
+
2. ✅ `clihandler.ts` - Add flag parsing and help text
|
|
290
|
+
3. ✅ `main.rs` - Add fullscreen window configuration
|
|
291
|
+
4. ✅ `README.md` - Add documentation and examples
|
|
292
|
+
|
|
293
|
+
## Examples
|
|
294
|
+
|
|
295
|
+
### CLI Examples
|
|
296
|
+
|
|
297
|
+
```bash
|
|
298
|
+
# Simple fullscreen message
|
|
299
|
+
msger -fullscreen -message "Hello in fullscreen!"
|
|
300
|
+
|
|
301
|
+
# Fullscreen web page
|
|
302
|
+
msger -fullscreen -url "https://example.com"
|
|
303
|
+
|
|
304
|
+
# Fullscreen HTML with custom styling
|
|
305
|
+
msger -fullscreen -html "<div style='display:flex;align-items:center;justify-content:center;height:100vh;font-size:5em'>BIG TEXT</div>"
|
|
306
|
+
|
|
307
|
+
# Fullscreen with timeout
|
|
308
|
+
msger -fullscreen -timeout 5 -message "This will close in 5 seconds"
|
|
309
|
+
|
|
310
|
+
# Fullscreen detached browser
|
|
311
|
+
msger -fullscreen -detach -url "http://localhost:3000"
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
### API Examples
|
|
315
|
+
|
|
316
|
+
```typescript
|
|
317
|
+
// Fullscreen confirmation
|
|
318
|
+
const result = await showMessageBox({
|
|
319
|
+
title: 'Confirm',
|
|
320
|
+
message: 'Are you sure you want to continue?',
|
|
321
|
+
fullscreen: true,
|
|
322
|
+
buttons: ['Cancel', 'Confirm']
|
|
323
|
+
});
|
|
324
|
+
|
|
325
|
+
// Fullscreen presentation
|
|
326
|
+
await showMessageBox({
|
|
327
|
+
url: 'https://slides.example.com',
|
|
328
|
+
fullscreen: true,
|
|
329
|
+
alwaysOnTop: true
|
|
330
|
+
});
|
|
331
|
+
|
|
332
|
+
// Fullscreen with input
|
|
333
|
+
const result = await showMessageBox({
|
|
334
|
+
message: 'Enter password:',
|
|
335
|
+
fullscreen: true,
|
|
336
|
+
allowInput: true,
|
|
337
|
+
buttons: ['Cancel', 'OK']
|
|
338
|
+
});
|
|
339
|
+
```
|
|
340
|
+
|
|
341
|
+
## Security Considerations
|
|
342
|
+
|
|
343
|
+
- Fullscreen mode can be disorienting or used maliciously
|
|
344
|
+
- Users can always exit with Escape or F11
|
|
345
|
+
- Window close button may be hidden depending on platform
|
|
346
|
+
- Consider adding clear exit instructions in displayed content
|
|
347
|
+
|
|
348
|
+
## Future Enhancements
|
|
349
|
+
|
|
350
|
+
- Add `fullscreenMode: 'borderless' | 'exclusive'` option
|
|
351
|
+
- Add option to lock fullscreen (prevent F11 exit)
|
|
352
|
+
- Add fullscreen on specific monitor by index
|
|
353
|
+
- Add fullscreen toggle button in HTML content
|
|
354
|
+
|
|
355
|
+
## Notes
|
|
356
|
+
|
|
357
|
+
- Fullscreen windows still respect `-ontop` flag
|
|
358
|
+
- Zoom works normally in fullscreen mode
|
|
359
|
+
- Multi-monitor positioning requires platform support
|
|
360
|
+
- Some platforms may show a notification about fullscreen mode
|
|
361
|
+
- Detached fullscreen windows continue running independently
|
package/README.md
CHANGED
|
@@ -78,6 +78,9 @@ msger -message "Important!" -ontop -zoom 150
|
|
|
78
78
|
# Detached URL browser (stays open after script exits)
|
|
79
79
|
msger -url "https://example.com" -detach
|
|
80
80
|
|
|
81
|
+
# Fullscreen mode
|
|
82
|
+
msger -fullscreen -url "https://example.com"
|
|
83
|
+
|
|
81
84
|
# Multi-monitor (Windows only - show on second screen)
|
|
82
85
|
msger -message "Second screen" -pos 0,100 -screen 1
|
|
83
86
|
|
|
@@ -120,6 +123,7 @@ interface MessageBoxOptions {
|
|
|
120
123
|
zoomPercent?: number; // Initial zoom level (100=100%, 150=150%, 50=50%)
|
|
121
124
|
timeout?: number; // Auto-close after N seconds
|
|
122
125
|
detach?: boolean; // Launch detached from parent process
|
|
126
|
+
fullscreen?: boolean; // Start window in fullscreen mode (F11 to toggle)
|
|
123
127
|
debug?: boolean; // Return debug info (HTML, size, autoSize) in result
|
|
124
128
|
}
|
|
125
129
|
```
|
|
@@ -334,6 +338,24 @@ await showMessageBox({
|
|
|
334
338
|
// Script continues/exits immediately, window stays open
|
|
335
339
|
```
|
|
336
340
|
|
|
341
|
+
### Fullscreen Mode
|
|
342
|
+
|
|
343
|
+
```typescript
|
|
344
|
+
// Launch window in fullscreen mode (like F11 in browser)
|
|
345
|
+
await showMessageBox({
|
|
346
|
+
url: 'https://example.com',
|
|
347
|
+
fullscreen: true
|
|
348
|
+
});
|
|
349
|
+
// Users can press F11 to toggle fullscreen or Escape to exit
|
|
350
|
+
|
|
351
|
+
// Fullscreen with message
|
|
352
|
+
await showMessageBox({
|
|
353
|
+
message: 'Full screen presentation',
|
|
354
|
+
fullscreen: true,
|
|
355
|
+
buttons: ['Close']
|
|
356
|
+
});
|
|
357
|
+
```
|
|
358
|
+
|
|
337
359
|
## Architecture
|
|
338
360
|
|
|
339
361
|
```
|
|
@@ -421,9 +443,10 @@ All binaries are bundled with the npm package, and the correct one is selected a
|
|
|
421
443
|
- ✅ Always on top mode
|
|
422
444
|
- ✅ Zoom control (initial percent + runtime Ctrl+Wheel/+/-)
|
|
423
445
|
- ✅ Auto-sizing windows (fit content when size not specified)
|
|
424
|
-
- ✅ Keyboard shortcuts (Enter, Escape)
|
|
446
|
+
- ✅ Keyboard shortcuts (Enter, Escape, F11)
|
|
425
447
|
- ✅ Window close detection
|
|
426
448
|
- ✅ Detached process mode (independent window)
|
|
449
|
+
- ✅ Fullscreen mode with F11 toggle
|
|
427
450
|
- ✅ TypeScript type definitions
|
|
428
451
|
- ✅ Small binary size (~2-5MB per platform)
|
|
429
452
|
- ✅ Fast startup (~50-200ms)
|
|
@@ -462,6 +485,7 @@ Options:
|
|
|
462
485
|
-timeout, --timeout <seconds> Auto-close after specified seconds
|
|
463
486
|
-ontop, --ontop Keep window always on top
|
|
464
487
|
-detach, --detach Launch window independently (parent returns immediately)
|
|
488
|
+
-fullscreen, --fullscreen Start window in fullscreen mode (F11 to toggle, Escape to exit)
|
|
465
489
|
-debug, --debug Return debug info (HTML, size, autoSize) in result
|
|
466
490
|
-v, -version, --version Show version number
|
|
467
491
|
-help, -?, --help Show help message
|
package/clihandler.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clihandler.d.ts","sourceRoot":"","sources":["clihandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"clihandler.d.ts","sourceRoot":"","sources":["clihandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AA8EhD;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG;IAAE,OAAO,EAAE,iBAAiB,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,OAAO,CAAA;CAAE,CAgLpH;AAED,wBAAgB,QAAQ,IAAI,IAAI,CAE/B;AAED,wBAAgB,WAAW,IAAI,IAAI,CAElC"}
|
package/clihandler.js
CHANGED
|
@@ -24,6 +24,7 @@ Options:
|
|
|
24
24
|
-screen <number> [Windows only] Screen index for multi-monitor (0=primary, 1=second, etc.)
|
|
25
25
|
-timeout <seconds> Auto-close after specified seconds
|
|
26
26
|
-detach Leave window open after app exits (parent process returns immediately)
|
|
27
|
+
-fullscreen Start window in fullscreen mode (F11 to toggle, Escape to exit)
|
|
27
28
|
-ontop Keep window always on top of other windows
|
|
28
29
|
-debug Return debug info (HTML, size) in result
|
|
29
30
|
-v, -version, --version Show version number
|
|
@@ -125,6 +126,10 @@ export function parseCliArgs(args) {
|
|
|
125
126
|
cli.detach = true;
|
|
126
127
|
i++;
|
|
127
128
|
}
|
|
129
|
+
else if (arg === '-fullscreen' || arg === '--fullscreen') {
|
|
130
|
+
cli.fullscreen = true;
|
|
131
|
+
i++;
|
|
132
|
+
}
|
|
128
133
|
else if (arg === '-ontop' || arg === '--ontop' || arg === '-alwaysontop' || arg === '--alwaysontop') {
|
|
129
134
|
cli.alwaysOnTop = true;
|
|
130
135
|
i++;
|
|
@@ -211,6 +216,7 @@ export function parseCliArgs(args) {
|
|
|
211
216
|
inputPlaceholder: cli.inputPlaceholder,
|
|
212
217
|
timeout: cli.timeout,
|
|
213
218
|
detach: cli.detach,
|
|
219
|
+
fullscreen: cli.fullscreen,
|
|
214
220
|
alwaysOnTop: cli.alwaysOnTop,
|
|
215
221
|
zoomPercent: cli.zoomPercent,
|
|
216
222
|
debug: cli.debug
|
package/clihandler.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clihandler.js","sourceRoot":"","sources":["clihandler.ts"],"names":[],"mappings":"AACA,OAAO,WAAW,MAAM,gBAAgB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"clihandler.js","sourceRoot":"","sources":["clihandler.ts"],"names":[],"mappings":"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"}
|
package/clihandler.ts
CHANGED
|
@@ -14,6 +14,7 @@ interface CliOptions {
|
|
|
14
14
|
inputPlaceholder?: string;
|
|
15
15
|
timeout?: number;
|
|
16
16
|
detach?: boolean;
|
|
17
|
+
fullscreen?: boolean;
|
|
17
18
|
alwaysOnTop?: boolean;
|
|
18
19
|
zoomPercent?: number;
|
|
19
20
|
posX?: number;
|
|
@@ -49,6 +50,7 @@ Options:
|
|
|
49
50
|
-screen <number> [Windows only] Screen index for multi-monitor (0=primary, 1=second, etc.)
|
|
50
51
|
-timeout <seconds> Auto-close after specified seconds
|
|
51
52
|
-detach Leave window open after app exits (parent process returns immediately)
|
|
53
|
+
-fullscreen Start window in fullscreen mode (F11 to toggle, Escape to exit)
|
|
52
54
|
-ontop Keep window always on top of other windows
|
|
53
55
|
-debug Return debug info (HTML, size) in result
|
|
54
56
|
-v, -version, --version Show version number
|
|
@@ -141,6 +143,9 @@ export function parseCliArgs(args: string[]): { options: MessageBoxOptions; show
|
|
|
141
143
|
} else if (arg === '-detach' || arg === '--detach') {
|
|
142
144
|
cli.detach = true;
|
|
143
145
|
i++;
|
|
146
|
+
} else if (arg === '-fullscreen' || arg === '--fullscreen') {
|
|
147
|
+
cli.fullscreen = true;
|
|
148
|
+
i++;
|
|
144
149
|
} else if (arg === '-ontop' || arg === '--ontop' || arg === '-alwaysontop' || arg === '--alwaysontop') {
|
|
145
150
|
cli.alwaysOnTop = true;
|
|
146
151
|
i++;
|
|
@@ -216,6 +221,7 @@ export function parseCliArgs(args: string[]): { options: MessageBoxOptions; show
|
|
|
216
221
|
inputPlaceholder: cli.inputPlaceholder,
|
|
217
222
|
timeout: cli.timeout,
|
|
218
223
|
detach: cli.detach,
|
|
224
|
+
fullscreen: cli.fullscreen,
|
|
219
225
|
alwaysOnTop: cli.alwaysOnTop,
|
|
220
226
|
zoomPercent: cli.zoomPercent,
|
|
221
227
|
debug: cli.debug
|
|
Binary file
|
package/msger-native/src/main.rs
CHANGED
|
@@ -49,6 +49,8 @@ struct MessageBoxOptions {
|
|
|
49
49
|
#[serde(default)]
|
|
50
50
|
always_on_top: bool,
|
|
51
51
|
#[serde(default)]
|
|
52
|
+
fullscreen: bool,
|
|
53
|
+
#[serde(default)]
|
|
52
54
|
zoom_percent: Option<f64>,
|
|
53
55
|
#[serde(default)]
|
|
54
56
|
debug: bool,
|
|
@@ -210,11 +212,16 @@ fn main() {
|
|
|
210
212
|
))
|
|
211
213
|
.with_resizable(true)
|
|
212
214
|
.with_always_on_top(options.always_on_top);
|
|
213
|
-
|
|
215
|
+
|
|
216
|
+
// Set fullscreen mode if requested
|
|
217
|
+
if options.fullscreen {
|
|
218
|
+
window_builder = window_builder.with_fullscreen(Some(tao::window::Fullscreen::Borderless(None)));
|
|
219
|
+
}
|
|
220
|
+
|
|
214
221
|
if let Some(position) = final_position {
|
|
215
222
|
window_builder = window_builder.with_position(position);
|
|
216
223
|
}
|
|
217
|
-
|
|
224
|
+
|
|
218
225
|
let window = window_builder
|
|
219
226
|
.build(&event_loop)
|
|
220
227
|
.expect("Failed to create window");
|
|
@@ -211,8 +211,21 @@
|
|
|
211
211
|
document.addEventListener('keydown', function(e) {
|
|
212
212
|
if (e.key === 'Escape') {
|
|
213
213
|
e.preventDefault();
|
|
214
|
-
|
|
215
|
-
|
|
214
|
+
// Try to exit fullscreen first
|
|
215
|
+
if (document.fullscreenElement) {
|
|
216
|
+
document.exitFullscreen();
|
|
217
|
+
} else {
|
|
218
|
+
const result = { button: 'Cancel', dismissed: true };
|
|
219
|
+
window.ipc.postMessage(JSON.stringify(result));
|
|
220
|
+
}
|
|
221
|
+
} else if (e.key === 'F11') {
|
|
222
|
+
// Toggle fullscreen
|
|
223
|
+
e.preventDefault();
|
|
224
|
+
if (!document.fullscreenElement) {
|
|
225
|
+
document.documentElement.requestFullscreen();
|
|
226
|
+
} else {
|
|
227
|
+
document.exitFullscreen();
|
|
228
|
+
}
|
|
216
229
|
} else if (e.key === 'Enter') {
|
|
217
230
|
// Prevent default form submission
|
|
218
231
|
e.preventDefault();
|
package/msgernative-linux-x64
CHANGED
|
Binary file
|
package/package.json
CHANGED
package/shower.d.ts
CHANGED
|
@@ -21,6 +21,7 @@ export interface MessageBoxOptions {
|
|
|
21
21
|
allowInput?: boolean; /** Enable an input field in the message box (default: false) */
|
|
22
22
|
timeout?: number; /** Auto-close the message box after specified seconds */
|
|
23
23
|
detach?: boolean; /** Launch the message box detached from parent process */
|
|
24
|
+
fullscreen?: boolean; /** Start window in fullscreen mode (F11 to toggle, Escape to exit) */
|
|
24
25
|
debug?: boolean; /** Return debug information (HTML, size) in result (default: false) */
|
|
25
26
|
}
|
|
26
27
|
export interface MessageBoxResult {
|
package/shower.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shower.d.ts","sourceRoot":"","sources":["shower.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,iBAAiB;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC,CAAW,uDAAuD;IACjF,OAAO,CAAC,EAAE,MAAM,CAAC,CAAS,8EAA8E;IACxG,IAAI,CAAC,EAAE,MAAM,CAAC,CAAY,iDAAiD;IAC3E,GAAG,CAAC,EAAE,MAAM,CAAC,CAAa,0DAA0D;IAEpF,IAAI,CAAC,EAAE;QACH,KAAK,EAAE,MAAM,CAAC,CAAQ,mBAAmB;QACzC,MAAM,EAAE,MAAM,CAAC,CAAO,oBAAoB;KAC7C,CAAC;IACF,GAAG,CAAC,EAAE;QACF,CAAC,EAAE,MAAM,CAAC,CAAY,kCAAkC;QACxD,CAAC,EAAE,MAAM,CAAC,CAAY,kCAAkC;QACxD,MAAM,CAAC,EAAE,MAAM,CAAC,CAAM,8EAA8E;KACvG,CAAC;IACF,WAAW,CAAC,EAAE,MAAM,CAAC,CAAK,0EAA0E;IACpG,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAO,kEAAkE;IAC5F,WAAW,CAAC,EAAE,OAAO,CAAC,CAAI,2DAA2D;IACrF,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC,CAAO,0DAA0D;IACpF,YAAY,CAAC,EAAE,MAAM,CAAC,CAAI,4DAA4D;IACtF,gBAAgB,CAAC,EAAE,MAAM,CAAC,CAAC,wDAAwD;IACnF,UAAU,CAAC,EAAE,OAAO,CAAC,CAAK,gEAAgE;IAE1F,OAAO,CAAC,EAAE,MAAM,CAAC,CAAS,yDAAyD;IACnF,MAAM,CAAC,EAAE,OAAO,CAAC,CAAS,0DAA0D;IACpF,KAAK,CAAC,EAAE,OAAO,CAAC,CAAU,uEAAuE;CACpG;AAED,MAAM,WAAW,gBAAgB;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,OAAO,CAAC;KACrB,CAAC;CACL;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAqJ1F"}
|
|
1
|
+
{"version":3,"file":"shower.d.ts","sourceRoot":"","sources":["shower.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,iBAAiB;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC,CAAW,uDAAuD;IACjF,OAAO,CAAC,EAAE,MAAM,CAAC,CAAS,8EAA8E;IACxG,IAAI,CAAC,EAAE,MAAM,CAAC,CAAY,iDAAiD;IAC3E,GAAG,CAAC,EAAE,MAAM,CAAC,CAAa,0DAA0D;IAEpF,IAAI,CAAC,EAAE;QACH,KAAK,EAAE,MAAM,CAAC,CAAQ,mBAAmB;QACzC,MAAM,EAAE,MAAM,CAAC,CAAO,oBAAoB;KAC7C,CAAC;IACF,GAAG,CAAC,EAAE;QACF,CAAC,EAAE,MAAM,CAAC,CAAY,kCAAkC;QACxD,CAAC,EAAE,MAAM,CAAC,CAAY,kCAAkC;QACxD,MAAM,CAAC,EAAE,MAAM,CAAC,CAAM,8EAA8E;KACvG,CAAC;IACF,WAAW,CAAC,EAAE,MAAM,CAAC,CAAK,0EAA0E;IACpG,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAO,kEAAkE;IAC5F,WAAW,CAAC,EAAE,OAAO,CAAC,CAAI,2DAA2D;IACrF,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC,CAAO,0DAA0D;IACpF,YAAY,CAAC,EAAE,MAAM,CAAC,CAAI,4DAA4D;IACtF,gBAAgB,CAAC,EAAE,MAAM,CAAC,CAAC,wDAAwD;IACnF,UAAU,CAAC,EAAE,OAAO,CAAC,CAAK,gEAAgE;IAE1F,OAAO,CAAC,EAAE,MAAM,CAAC,CAAS,yDAAyD;IACnF,MAAM,CAAC,EAAE,OAAO,CAAC,CAAS,0DAA0D;IACpF,UAAU,CAAC,EAAE,OAAO,CAAC,CAAK,sEAAsE;IAChG,KAAK,CAAC,EAAE,OAAO,CAAC,CAAU,uEAAuE;CACpG;AAED,MAAM,WAAW,gBAAgB;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,OAAO,CAAC;KACrB,CAAC;CACL;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAqJ1F"}
|
package/shower.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shower.js","sourceRoot":"","sources":["shower.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAC9B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,UAAU,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"shower.js","sourceRoot":"","sources":["shower.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAC9B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,UAAU,MAAM,cAAc,CAAC;AA+CtC;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAA0B;IAC3D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnC,MAAM,SAAS,GAAG,QAAQ,EAAE,KAAK,OAAO,CAAC;QACzC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QAE1B,+DAA+D;QAC/D,IAAI,UAAkB,CAAC;QACvB,IAAI,SAAS,EAAE,CAAC;YACZ,UAAU,GAAG,iBAAiB,CAAC;QACnC,CAAC;aAAM,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YAC1B,UAAU,GAAG,mBAAmB,CAAC;QACrC,CAAC;aAAM,CAAC;YACJ,UAAU,GAAG,aAAa,CAAC;QAC/B,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QAErF,yBAAyB;QACzB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC7B,MAAM,CAAC,IAAI,KAAK,CAAC,qBAAqB,UAAU,EAAE,CAAC,CAAC,CAAC;YACrD,OAAO;QACX,CAAC;QAED,iDAAiD;QACjD,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,IAAI,CAAC;gBACD,EAAE,CAAC,UAAU,CAAC,UAAU,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACjD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,KAAK,CACZ,6BAA6B,UAAU,IAAI;oBAC3C,6BAA6B,UAAU,EAAE,CAC5C,CAAC,CAAC;gBACH,OAAO;YACX,CAAC;QACL,CAAC;QAED,wBAAwB;QACxB,gEAAgE;QAChE,8DAA8D;QAC9D,2DAA2D;QAC3D,MAAM,QAAQ,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAyB,CAAC;QAC3D,IAAI,cAAc,IAAI,QAAQ,EAAE,CAAC;YAC7B,OAAO,QAAQ,CAAC,YAAY,CAAC;QACjC,CAAC;QAED,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,EAAE,EAAE,EAAE;YAChC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAC/B,QAAQ,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK;YACjC,GAAG,EAAE,QAAQ;SAChB,CAAC,CAAC;QAEH,kDAAkD;QAClD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACjB,KAAK,CAAC,KAAK,EAAE,CAAC;QAClB,CAAC;QAED,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,iBAAiB;QACjB,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YAC7B,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC9B,CAAC,CAAC,CAAC;QAEH,iBAAiB;QACjB,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YAC7B,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC9B,CAAC,CAAC,CAAC;QAEH,4BAA4B;QAC5B,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACvB,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,KAAK,CAAC,0BAA0B,IAAI,KAAK,MAAM,EAAE,CAAC,CAAC,CAAC;gBAC/D,OAAO;YACX,CAAC;YAED,IAAI,CAAC;gBACD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAqB,CAAC;gBAC7D,OAAO,CAAC,MAAM,CAAC,CAAC;YACpB,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBAClB,MAAM,CAAC,IAAI,KAAK,CAAC,2BAA2B,KAAK,CAAC,OAAO,aAAa,MAAM,EAAE,CAAC,CAAC,CAAC;YACrF,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,wBAAwB;QACxB,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YACxB,MAAM,CAAC,IAAI,KAAK,CAAC,0BAA0B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;QAEH,0DAA0D;QAC1D,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAU,EAAE,EAAE;YACnC,kEAAkE;YAClE,uCAAuC;QAC3C,CAAC,CAAC,CAAC;QAEH,wBAAwB;QACxB,IAAI,CAAC;YACD,yEAAyE;YACzE,MAAM,aAAa,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;YACrC,IAAI,aAAa,CAAC,QAAQ,KAAK,SAAS,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;gBAC9D,aAAa,CAAC,QAAQ,GAAG,IAAI,CAAC;YAClC,CAAC;YAED,+DAA+D;YAC/D,mFAAmF;YACnF,sFAAsF;YACtF,IAAI,aAAa,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;gBAC/C,gDAAgD;gBAChD,IAAI,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC1C,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;oBACjE,IAAI,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;oBACxD,+EAA+E;oBAC/E,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;oBACpD,6DAA6D;oBAC7D,aAAa,CAAC,IAAI,GAAG,WAAW,CAAC;oBACjC,OAAO,aAAa,CAAC,OAAO,CAAC;gBACjC,CAAC;YACL,CAAC;YAED,iFAAiF;YACjF,MAAM,WAAW,GAAQ,EAAE,GAAG,aAAa,EAAE,CAAC;YAC9C,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC;gBACnB,WAAW,CAAC,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;gBAC3C,WAAW,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC;gBAC7C,OAAO,WAAW,CAAC,IAAI,CAAC;YAC5B,CAAC;YACD,IAAI,WAAW,CAAC,GAAG,EAAE,CAAC;gBAClB,mCAAmC;gBACnC,WAAW,CAAC,GAAG,GAAG;oBACd,CAAC,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;oBACpB,CAAC,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;oBACpB,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,MAAM;iBACjC,CAAC;YACN,CAAC;YAED,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YAC/C,4CAA4C;YAC5C,oEAAoE;YACpE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAC9B,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;YAElB,yDAAyD;YACzD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACjB,OAAO,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;YACtD,CAAC;QACL,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YAClB,MAAM,CAAC,IAAI,KAAK,CAAC,6BAA6B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACpE,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC"}
|
package/shower.ts
CHANGED
|
@@ -30,6 +30,7 @@ export interface MessageBoxOptions {
|
|
|
30
30
|
// devTools?: boolean; /** Open DevTools for debugging (default: false) */
|
|
31
31
|
timeout?: number; /** Auto-close the message box after specified seconds */
|
|
32
32
|
detach?: boolean; /** Launch the message box detached from parent process */
|
|
33
|
+
fullscreen?: boolean; /** Start window in fullscreen mode (F11 to toggle, Escape to exit) */
|
|
33
34
|
debug?: boolean; /** Return debug information (HTML, size) in result (default: false) */
|
|
34
35
|
}
|
|
35
36
|
|