mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2026-10-04 06:47:03 +00:00
Add test cases for showSaveDialog & showOpenDialog
This commit is contained in:
Vendored
+6103
-6099
File diff suppressed because it is too large
Load Diff
+118
-77
@@ -1,13 +1,13 @@
|
||||
|
||||
import {
|
||||
ipcRenderer,
|
||||
remote,
|
||||
webFrame,
|
||||
clipboard,
|
||||
crashReporter,
|
||||
nativeImage,
|
||||
screen,
|
||||
shell
|
||||
ipcRenderer,
|
||||
remote,
|
||||
webFrame,
|
||||
clipboard,
|
||||
crashReporter,
|
||||
nativeImage,
|
||||
screen,
|
||||
shell
|
||||
} from 'electron';
|
||||
|
||||
import * as fs from 'fs';
|
||||
@@ -17,8 +17,8 @@ import * as fs from 'fs';
|
||||
console.log(ipcRenderer.sendSync('synchronous-message', 'ping')); // prints "pong"
|
||||
|
||||
ipcRenderer.on('asynchronous-reply', (event: Electron.IpcRendererEvent, arg: any) => {
|
||||
console.log(arg); // prints "pong"
|
||||
event.sender.send('another-message', 'Hello World!');
|
||||
console.log(arg); // prints "pong"
|
||||
event.sender.send('another-message', 'Hello World!');
|
||||
});
|
||||
|
||||
ipcRenderer.send('asynchronous-message', 'ping');
|
||||
@@ -31,21 +31,21 @@ var win = new BrowserWindow({ width: 800, height: 600 });
|
||||
win.loadURL('https://github.com');
|
||||
|
||||
remote.getCurrentWindow().on('close', () => {
|
||||
// blabla...
|
||||
// blabla...
|
||||
});
|
||||
|
||||
remote.getCurrentWindow().capturePage(buf => {
|
||||
fs.writeFile('/tmp/screenshot.png', buf, err => {
|
||||
console.log(err);
|
||||
});
|
||||
fs.writeFile('/tmp/screenshot.png', buf, err => {
|
||||
console.log(err);
|
||||
});
|
||||
});
|
||||
|
||||
remote.getCurrentWebContents().print();
|
||||
|
||||
remote.getCurrentWindow().capturePage(buf => {
|
||||
remote.require('fs').writeFile('/tmp/screenshot.png', buf, (err: Error) => {
|
||||
console.log(err);
|
||||
});
|
||||
remote.require('fs').writeFile('/tmp/screenshot.png', buf, (err: Error) => {
|
||||
console.log(err);
|
||||
});
|
||||
});
|
||||
|
||||
// web-frame
|
||||
@@ -61,17 +61,17 @@ webFrame.setVisualZoomLevelLimits(50, 200);
|
||||
webFrame.setLayoutZoomLevelLimits(50, 200);
|
||||
|
||||
webFrame.setSpellCheckProvider('en-US', true, {
|
||||
spellCheck: text => {
|
||||
return !(require('spellchecker').isMisspelled(text));
|
||||
}
|
||||
spellCheck: text => {
|
||||
return !(require('spellchecker').isMisspelled(text));
|
||||
}
|
||||
});
|
||||
|
||||
webFrame.registerURLSchemeAsSecure('app');
|
||||
webFrame.registerURLSchemeAsBypassingCSP('app');
|
||||
webFrame.registerURLSchemeAsPrivileged('app');
|
||||
webFrame.registerURLSchemeAsPrivileged('app', {
|
||||
secure: true,
|
||||
supportFetchAPI: true,
|
||||
secure: true,
|
||||
supportFetchAPI: true,
|
||||
});
|
||||
|
||||
webFrame.insertText('text');
|
||||
@@ -93,20 +93,20 @@ console.log(clipboard.availableFormats());
|
||||
clipboard.clear();
|
||||
|
||||
clipboard.write({
|
||||
html: '<html></html>',
|
||||
text: 'Hello World!',
|
||||
bookmark: "Bookmark name",
|
||||
image: clipboard.readImage()
|
||||
html: '<html></html>',
|
||||
text: 'Hello World!',
|
||||
bookmark: "Bookmark name",
|
||||
image: clipboard.readImage()
|
||||
});
|
||||
|
||||
// crash-reporter
|
||||
// https://github.com/atom/electron/blob/master/docs/api/crash-reporter.md
|
||||
|
||||
crashReporter.start({
|
||||
productName: 'YourName',
|
||||
companyName: 'YourCompany',
|
||||
submitURL: 'https://your-domain.com/url-to-submit',
|
||||
autoSubmit: true
|
||||
productName: 'YourName',
|
||||
companyName: 'YourCompany',
|
||||
submitURL: 'https://your-domain.com/url-to-submit',
|
||||
autoSubmit: true
|
||||
});
|
||||
|
||||
// desktopCapturer
|
||||
@@ -115,33 +115,33 @@ crashReporter.start({
|
||||
var desktopCapturer = require('electron').desktopCapturer;
|
||||
|
||||
desktopCapturer.getSources({types: ['window', 'screen']}, function(error, sources) {
|
||||
if (error) throw error;
|
||||
for (var i = 0; i < sources.length; ++i) {
|
||||
if (sources[i].name == "Electron") {
|
||||
(navigator as any).webkitGetUserMedia({
|
||||
audio: false,
|
||||
video: {
|
||||
mandatory: {
|
||||
chromeMediaSource: 'desktop',
|
||||
chromeMediaSourceId: sources[i].id,
|
||||
minWidth: 1280,
|
||||
maxWidth: 1280,
|
||||
minHeight: 720,
|
||||
maxHeight: 720
|
||||
}
|
||||
}
|
||||
}, gotStream, getUserMediaError);
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (error) throw error;
|
||||
for (var i = 0; i < sources.length; ++i) {
|
||||
if (sources[i].name == "Electron") {
|
||||
(navigator as any).webkitGetUserMedia({
|
||||
audio: false,
|
||||
video: {
|
||||
mandatory: {
|
||||
chromeMediaSource: 'desktop',
|
||||
chromeMediaSourceId: sources[i].id,
|
||||
minWidth: 1280,
|
||||
maxWidth: 1280,
|
||||
minHeight: 720,
|
||||
maxHeight: 720
|
||||
}
|
||||
}
|
||||
}, gotStream, getUserMediaError);
|
||||
return;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
function gotStream(stream: any) {
|
||||
(document.querySelector('video') as HTMLVideoElement).src = URL.createObjectURL(stream);
|
||||
(document.querySelector('video') as HTMLVideoElement).src = URL.createObjectURL(stream);
|
||||
}
|
||||
|
||||
function getUserMediaError(error: Error) {
|
||||
console.log('getUserMediaError', error);
|
||||
console.log('getUserMediaError', error);
|
||||
}
|
||||
|
||||
// File object
|
||||
@@ -186,8 +186,8 @@ var appIcon4 = new Tray('/Users/somebody/images/icon.png');
|
||||
var _setImmediate = setImmediate;
|
||||
var _clearImmediate = clearImmediate;
|
||||
process.once('loaded', function() {
|
||||
global.setImmediate = _setImmediate;
|
||||
global.clearImmediate = _clearImmediate;
|
||||
global.setImmediate = _setImmediate;
|
||||
global.clearImmediate = _clearImmediate;
|
||||
});
|
||||
|
||||
// screen
|
||||
@@ -198,26 +198,26 @@ var app = remote.app;
|
||||
var mainWindow: Electron.BrowserWindow = null;
|
||||
|
||||
app.on('ready', () => {
|
||||
var size = screen.getPrimaryDisplay().workAreaSize;
|
||||
mainWindow = new BrowserWindow({ width: size.width, height: size.height });
|
||||
var size = screen.getPrimaryDisplay().workAreaSize;
|
||||
mainWindow = new BrowserWindow({ width: size.width, height: size.height });
|
||||
});
|
||||
|
||||
app.on('ready', () => {
|
||||
var displays = screen.getAllDisplays();
|
||||
var externalDisplay: any = null;
|
||||
for (var i in displays) {
|
||||
if (displays[i].bounds.x > 0 || displays[i].bounds.y > 0) {
|
||||
externalDisplay = displays[i];
|
||||
break;
|
||||
}
|
||||
}
|
||||
var displays = screen.getAllDisplays();
|
||||
var externalDisplay: any = null;
|
||||
for (var i in displays) {
|
||||
if (displays[i].bounds.x > 0 || displays[i].bounds.y > 0) {
|
||||
externalDisplay = displays[i];
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (externalDisplay) {
|
||||
mainWindow = new BrowserWindow({
|
||||
x: externalDisplay.bounds.x + 50,
|
||||
y: externalDisplay.bounds.y + 50,
|
||||
});
|
||||
}
|
||||
if (externalDisplay) {
|
||||
mainWindow = new BrowserWindow({
|
||||
x: externalDisplay.bounds.x + 50,
|
||||
y: externalDisplay.bounds.y + 50,
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
// shell
|
||||
@@ -232,28 +232,28 @@ var webview = document.createElement('webview');
|
||||
webview.loadURL('https://github.com');
|
||||
|
||||
webview.addEventListener('console-message', function(e) {
|
||||
console.log('Guest page logged a message:', e.message);
|
||||
console.log('Guest page logged a message:', e.message);
|
||||
});
|
||||
|
||||
webview.addEventListener('found-in-page', function(e) {
|
||||
if (e.result.finalUpdate) {
|
||||
webview.stopFindInPage("keepSelection");
|
||||
}
|
||||
if (e.result.finalUpdate) {
|
||||
webview.stopFindInPage("keepSelection");
|
||||
}
|
||||
});
|
||||
|
||||
var requestId = webview.findInPage("test");
|
||||
|
||||
webview.addEventListener('new-window', function(e) {
|
||||
require('electron').shell.openExternal(e.url);
|
||||
require('electron').shell.openExternal(e.url);
|
||||
});
|
||||
|
||||
webview.addEventListener('close', function() {
|
||||
webview.src = 'about:blank';
|
||||
webview.src = 'about:blank';
|
||||
});
|
||||
|
||||
// In embedder page.
|
||||
webview.addEventListener('ipc-message', function(event) {
|
||||
console.log(event.channel); // Prints "pong"
|
||||
console.log(event.channel); // Prints "pong"
|
||||
});
|
||||
webview.send('ping');
|
||||
webview.capturePage((image) => { console.log(image); });
|
||||
@@ -266,5 +266,46 @@ webview.capturePage((image) => { console.log(image); });
|
||||
|
||||
// In guest page.
|
||||
ipcRenderer.on('ping', function() {
|
||||
ipcRenderer.sendToHost('pong');
|
||||
ipcRenderer.sendToHost('pong');
|
||||
});
|
||||
|
||||
|
||||
// showOpenDialog
|
||||
// https://electron.atom.io/docs/api/dialog/#dialogshowopendialogbrowserwindow-options-callback
|
||||
|
||||
remote.dialog.showOpenDialog(win);
|
||||
remote.dialog.showOpenDialog(win, {}, fileNames => fileNames);
|
||||
remote.dialog.showOpenDialog(win, {
|
||||
title: 'foo',
|
||||
defaultPath: '/bar',
|
||||
buttonLabel: 'foo bar',
|
||||
filters: [
|
||||
{name: 'Images', extensions: ['jpg', 'png', 'gif']},
|
||||
{name: 'Movies', extensions: ['mkv', 'avi', 'mp4']},
|
||||
{name: 'Custom File Type', extensions: ['as']},
|
||||
{name: 'All Files', extensions: ['*']}
|
||||
],
|
||||
properties: ['openFile', 'openDirectory', 'multiSelections', 'showHiddenFiles', 'createDirectory', 'promptToCreate', 'noResolveAliases'],
|
||||
normalizeAccessKeys: true,
|
||||
message: 'foo message',
|
||||
});
|
||||
|
||||
// showSaveDialog
|
||||
// https://electron.atom.io/docs/api/dialog/#dialogshowsavedialogbrowserwindow-options-callback
|
||||
|
||||
remote.dialog.showSaveDialog(win);
|
||||
remote.dialog.showSaveDialog(win, {}, fileNames => fileNames);
|
||||
remote.dialog.showSaveDialog(win, {
|
||||
title: 'foo',
|
||||
defaultPath: '/bar',
|
||||
buttonLabel: 'foo bar',
|
||||
filters: [
|
||||
{name: 'Images', extensions: ['jpg', 'png', 'gif']},
|
||||
{name: 'Movies', extensions: ['mkv', 'avi', 'mp4']},
|
||||
{name: 'Custom File Type', extensions: ['as']},
|
||||
{name: 'All Files', extensions: ['*']}
|
||||
],
|
||||
message: 'foo message',
|
||||
nameFieldLabel: 'foo name',
|
||||
showsTagField: true
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user