概要
Electronが流行っていますね。Haxeでも扱いたいですね。
というわけでexternを書きました。
hxElectron (A Haxe extern for Electron)
https://github.com/seibe/hxElectron
使い方
基本的な使い方はこんな感じ。
package;
import electron.Electron;
import electron.ElectronBrowserWindow;
import js.Node;
class Main
{
static function main()
{
new Main();
}
public function new()
{
Electron.app.on(ElectronAppEventType.WINDOW_ALL_CLOSED, function():Void {
Electron.app.quit();
});
Electron.app.on(ElectronAppEventType.READY, function():Void {
var mainWindow = new ElectronBrowserWindow({ width: 800, height: 600 });
mainWindow.loadUrl('file://' + Node.__dirname + '/index.html');
});
}
}
各モジュールの呼び出し方
モジュールによって、呼び出し方が若干違います。
Node.js externの仕様を参考にして作ったらこうなりました。
1. Electronクラスの静的メンバから
- Electron.app
- Electron.autoUpdater
- Electron.contentTracing
- Electron.dialog
- Electron.globalShortcut
- Electron.ipc
- Electron.powerMonitor
- Electron.protocol
- Electron.clipboar
- Electron.crashReporter
- Electron.screen
- Electron.shell
- Electron.remote
2. それぞれのクラスから
- new ElectronBrowserWindow()
- new ElectronMenu()
- new ElectronMenuItem()
- new ElectronNativeImage()
- new ElectronTray()
3. rendererからremoteでの呼び出し方
Electron.remote.appと書ければスマートだったのですが、そうはいかなかったので以下を使ってください。
- Electron.remoteApp
- Electron.remoteAutoUpdater
- Electron.remoteContentTracing
- Electron.remoteDialog
- Electron.remoteGlobalShortcut
- Electron.remoteIpc
- Electron.remotePowerMonitor
- Electron.remoteProtocol
- Electron.remoteClipboard
- Electron.remoteCrashReporter
- Electron.remoteScreen
- Electron.remoteShell
- new ElectronRemoteBrowserWindow()
- new ElectronRemoteMenu()
- new ElectronRemoteMenuItem()
- new ElectronRemoteNativeImage()
- new ElectronRemoteTray()
注意点ほか
全てのモジュールを扱えるように作ったつもりですが、動作確認をほとんどしていないので、バグがあればPRください。