proton-native/docs/external_functionality.md
Gustav Hansen b5ca0f7f86
V2 (#230)
* Add initial test structure and some tests for Window

* Start on rewriting registerComponent

* Add View support

* Add flexbox support, still need to test more

* Add styling and better props management

* Add nested text support

* Fix text measurement and qt hogging layout styles

* Font size must be in px, so convert if it isn't

* Add stylesheet

* Various changes, start adding tests

* Try out travis CI

* Remove xwd package

* Install qt5

* Install correct moc

* Add g++ 5

* Add xwd and imagemagick

* Yoga layout doesn't support v12 right now

* Add touchablewithoutfeedback

* Add opacity. Need to investigate seg fault

* Fix build errors, unsupport trusty

* Force xenial version

* Add touchablehighlight. Start button

* Add support for image require

* Start on image

* Add image resizing and TextInput

* Fix button view

* Quit loop when all windows closed

* Fix require not working with jest

* Fix quit deleting still in use pointers

* Disable caching

* Depend on stable node-qt-napi

* Copy docs, start examples

* Many bug fixes, get cat example to work

* Fix percent issue and start more documentation

* Start docs

* Finish docs

* Fix App appendChild with comments

* Abstract QT bindings

* Add calculator example; try to get devtools working

* Update react-devtools

* Add hot reloading support

* Add hot reloading to examples, fix reloading bugs

* Update documentation on v2

* Add more examples to v2 changes

* Change readme for v2

* Remove packaging until it works

* Add prepack instead

* Use node-qt-napi up

* 2.0.1

* Convert everything to typescript

* Add note on TS

* Update readme with new images

* Add comparison to others in docs

* Add packaging instructions

* Fix windows packaging

* Create FUNDING.yml

* Update v2_changes.md

* Create LICENSE

* Add wx backend option

* Add more wx components

* Add wx backend notes

* Add note on mac wxwidgets libuv bug

* Add note on Macs with libuv bug

* Use npx by default

* Bump version for wx backend

* V2 small code improvements (#240)

* slightly improved import

* better type defs

* merged append and insert as they pretty same

* Run prettier

* Add issue templates (#241)

* About page typo (#216)

* Update quickstart.md (#223)

* Update README.md (#229)

* Create FUNDING.yml

* Add issue templates

* Update README.md

Co-authored-by: Yevhen Hraivoronskyi <evhenious@gmail.com>
2020-01-19 06:55:30 -08:00

1.6 KiB

External Functionality

Some functionality will probably never make it to Proton Native, but that doesn't mean that it isn't possible. This is a list of external tools found that help common tasks. All of these are designed to be cross platform.

Tools

System Tray

https://zaaack.github.io/node-systray/index.html

import React, { Component } from 'react';
import SysTray from 'systray';
import fs from 'fs';

import { AppRegistry, Window, App, View, TextInput } from 'proton-native';

const systray = new SysTray({
  menu: {
    // you should using .png icon in macOS/Linux, but .ico format in windows
    icon: new Buffer(fs.readFileSync('/.../icon.png')).toString('base64'),
    title: 'Test',
    tooltip: 'Tips',
    items: [
      {
        title: 'Item',
        tooltip: 'Item Tooltip',
        enabled: true,
      },
      {
        title: 'Exit',
        tooltip: 'bb',
        enabled: true,
      },
    ],
  },
  debug: false,
  copyDir: true,
});

systray.onClick(action => {
  if (action.seq_id === 0) {
    console.log('Hi!');
  } else if (action.seq_id === 1) {
    systray.kill();
  }
});

const stop = () => {
  systray.kill(false);
};

class Example extends Component {
  render() {
    return (
      <App>
        <Window style={{ width: 400, height: 400 }}>
          <View>
            <TextInput />
          </View>
        </Window>
      </App>
    );
  }
}

AppRegistry.registerComponent('example', <Example />);

Notifications

https://github.com/mikaelbr/node-notifier