Skip to content

Instantly share code, notes, and snippets.

@aryanshridhar
Created July 31, 2020 05:02
Show Gist options
  • Save aryanshridhar/383e0307a878bd9903da54164c900664 to your computer and use it in GitHub Desktop.
Save aryanshridhar/383e0307a878bd9903da54164c900664 to your computer and use it in GitHub Desktop.
// This file is required by the index.html file and will
// be executed in the renderer process for that window.
// All of the Node.js APIs are available in this process.
const remote = require('electron').remote
const { app, dialog, BrowserWindow } = remote
const {webFrame , desktopCapturer , ipcRenderer} = require('electron');
const {screen } = remote;
const {shell , nativeImage , clipboard} = require('electron');
const button = document.getElementById('test-button')
button.addEventListener('click', e => {
dialog.showMessageBox({ message: 'Dialog invoked from Renderer process' })
let secWin = new BrowserWindow({
width: 400, height: 350
})
secWin.loadFile('index.html')
console.log( remote.getGlobal('myglob') )
app.quit()
let win = remote.getCurrentWindow()
})
document.getElementById('click').addEventListener("click" , () =>{
window.open("https://electronjs.org" , "_blank");
} )
document.getElementById("zoom").addEventListener("click" , () => {
webFrame.setZoomFactor(webFrame.getZoomFactor() + 1)
})
document.getElementById("unzoom").addEventListener("click" , () => {
webFrame.setZoomFactor(webFrame.getZoomFactor() - 1)
})
document.getElementById("reset").addEventListener("click" , () => {
webFrame.setZoomFactor(1)
})
// Get screen shot of the display
desktopCapturer.getSources({types : ['screen'] , thumbnailSize : {height : 1080 , width : 1920}}).then((source , err) => {
document.getElementById('imgsrc').src = source[0].thumbnail.toDataURL()
})
// We can send async messages to main
ipcRenderer.send('channel1' , "Hello this is the message send to main window form renderer")
ipcRenderer.on("channel2" , (e,msg) => {
console.log(msg);
})
ipcRenderer.on('channelsend' , (e,msg) => {
document.getElementById("progress").innerHTML = msg;
})
// Shared APIs : Process
console.log(process)
console.log(process.type)
process.hang() // Hang the process
process.crash() // Crash the process
Screen
console.log(screen)
const disp = screen.getAllDisplays();
console.log(disp[0].size.height)
console.log(disp[0].size.width)
screen.on("display-metrics-changed" , (e,disp,array) => { // When screen settings are changed
console.log(disp);
console.log(array);
})
console.log(screen.getCursorScreenPoint()) // get cursor
let file_path = './tp.png'
let openfile = () => {
shell.openExternal('https://github.com') windows and mac
shell.showItemInFolder(file_path);
}
document.getElementById('click').addEventListener('click' , () =>{
openfile();
})
// Working with images
let path = 'tp.png';
let image = nativeImage.createFromPath(path);
console.log(image.getSize())
image.toPNG();
image.toJPEG(100)
// Used to get data in clipboard
let copied_data = clipboard.readText(); // get copied message in clipboard
let image = clipboard.readImage();
clipboard.writeText(copied_data);
// display notifications
let notify = new Notification('Electron app' , {
body : "This is a notification"
})
notify.onclick = e => {
console.log('The notification is pressed by the user');
}
let currentwindow = remote.getCurrentWindow();
currentwindow.setProgressBar(0.5); // 0 - null , 1 - ful , negative_numver - bar removed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment