From 90d927df0a42a92495cfef9a24a8e87d3c3f0191 Mon Sep 17 00:00:00 2001 From: Atul R Date: Sun, 29 Sep 2019 21:19:24 +0200 Subject: [PATCH] removes old docs --- docs/.nojekyll | 0 docs/CNAME | 1 - docs/README.md | 75 --------- docs/_coverpage.md | 11 -- docs/development/README.md | 48 ------ docs/development/common_errors.md | 7 - docs/development/debugging.md | 11 -- docs/development/getting-started.md | 113 ------------- docs/development/setting-up.md | 55 ------- docs/development/signal_and_event_handling.md | 150 ------------------ docs/development/styling.md | 100 ------------ docs/development/wrapping_widgets.md | 3 - docs/faq.md | 62 -------- docs/images/demo.png | Bin 132876 -> 0 bytes docs/images/nodegui.svg | 5 - docs/index.html | 71 --------- docs/react/README.md | 69 -------- docs/react/about.md | 17 -- docs/react/first-app.md | 116 -------------- docs/tutorial/about.md | 23 --- docs/tutorial/application-architecture.md | 104 ------------ docs/tutorial/debugging-app-vscode.md | 38 ----- docs/tutorial/debugging-app.md | 54 ------- docs/tutorial/development-environment.md | 99 ------------ docs/tutorial/first-app.md | 120 -------------- docs/tutorial/support.md | 34 ---- docs/tutorial/using-native-node-modules.md | 52 ------ 27 files changed, 1438 deletions(-) delete mode 100644 docs/.nojekyll delete mode 100644 docs/CNAME delete mode 100644 docs/README.md delete mode 100644 docs/_coverpage.md delete mode 100644 docs/development/README.md delete mode 100644 docs/development/common_errors.md delete mode 100644 docs/development/debugging.md delete mode 100644 docs/development/getting-started.md delete mode 100644 docs/development/setting-up.md delete mode 100644 docs/development/signal_and_event_handling.md delete mode 100644 docs/development/styling.md delete mode 100644 docs/development/wrapping_widgets.md delete mode 100644 docs/faq.md delete mode 100644 docs/images/demo.png delete mode 100644 docs/images/nodegui.svg delete mode 100644 docs/index.html delete mode 100644 docs/react/README.md delete mode 100644 docs/react/about.md delete mode 100644 docs/react/first-app.md delete mode 100644 docs/tutorial/about.md delete mode 100644 docs/tutorial/application-architecture.md delete mode 100644 docs/tutorial/debugging-app-vscode.md delete mode 100644 docs/tutorial/debugging-app.md delete mode 100644 docs/tutorial/development-environment.md delete mode 100644 docs/tutorial/first-app.md delete mode 100644 docs/tutorial/support.md delete mode 100644 docs/tutorial/using-native-node-modules.md diff --git a/docs/.nojekyll b/docs/.nojekyll deleted file mode 100644 index e69de29bb..000000000 diff --git a/docs/CNAME b/docs/CNAME deleted file mode 100644 index 334ded21e..000000000 --- a/docs/CNAME +++ /dev/null @@ -1 +0,0 @@ -docs.nodegui.org \ No newline at end of file diff --git a/docs/README.md b/docs/README.md deleted file mode 100644 index 664922125..000000000 --- a/docs/README.md +++ /dev/null @@ -1,75 +0,0 @@ -# main doc - -> Looking for React NodeGUI docs? [React NodeGUI docs](react/README.md) - -# Guides and Tutorials - -- [About NodeGui](tutorial/about.md) -- [React NodeGUI](react/README.md) -- [Examples](https://github.com/nodegui/nodegui/tree/master/examples) -- [FAQ](faq.md) -- [Setting up the Development Environment](tutorial/development-environment.md) - - [Setting up macOS](tutorial/development-environment.md#setting-up-macos) - - [Setting up Windows](tutorial/development-environment.md#setting-up-windows) - - [Setting up Linux](tutorial/development-environment.md#setting-up-linux) - - [Choosing an Editor](tutorial/development-environment.md#a-good-editor) -- [Creating your First App](tutorial/first-app.md) - - [Hello World](tutorial/first-app.md#Hello-World) - - [NodeGui Development in a Nutshell](tutorial/first-app.md#NodeGui-development-in-a-nutshell) - - [Running Your App](tutorial/first-app.md#running-your-app) -- [Application Architecture](tutorial/application-architecture.md) - - [Qode](tutorial/application-architecture.md#qode) - - [Using NodeGui's APIs](tutorial/application-architecture.md#using-NodeGui-apis) - - [Using Node.js APIs](tutorial/application-architecture.md#using-nodejs-apis) - - [Using Native Node.js Modules](tutorial/using-native-node-modules.md) -- [Testing and Debugging](tutorial/debugging-app.md) - - [Debugging Qode/NodeGui Process](tutorial/debugging-qode-process.md) - - [Debugging a NodeGui app with Visual Studio Code](tutorial/debugging-app-vscode.md) -- [Distribution](http://github.com/nodegui/packer) -- [Getting Support](tutorial/support.md) - -## API References - -- [Synopsis](api/synopsis.md) -- [Process Object](api/process.md) - -### Modules from NodeGui: - -- [QApplication (Application)](api/QApplication.md) -- [QMainWindow (Window)](api/QMainWindow.md) -- [QWidget (View)](api/QWidget.md) -- [QSpinBox ()](api/QSpinBox.md) -- [QAbstractScrollArea ()](api/QAbstractScrollArea.md) -- [QAbstractSlider ()](api/QAbstractSlider.md) -- [QDial ()](api/QDial.md) -- [QScrollArea ()](api/QScrollArea.md) -- [QPlainTextEdit (TextEdit)](api/QPlainTextEdit.md) -- [QLabel (Text/Image)](api/QLabel.md) -- [QPushButton (Button)](api/QPushButton.md) -- [QRadioButton (RadioButton)](api/QRadioButton.md) -- [QCheckBox (CheckBox)](api/QCheckBox.md) -- [QLineEdit (LineEdit)](api/QLineEdit.md) -- [QProgressBar (ProgressBar)](api/QProgressBar.md) -- [FlexLayout](api/FlexLayout.md) -- [QPixmap](api/QPixmap.md) -- [QIcon](api/QIcon.md) -- [QCursor](api/QCursor.md) -- [QClipboard](api/QClipboard.md) -- [Qt Enums](api/QtEnums.md) - -### Internal Modules - -- [NodeWidget](api/NodeWidget.md) -- [NodeLayout](api/NodeLayout.md) -- [EventWidget](api/EventWidget.md) -- [Component](api/Component.md) -- [YogaWidget](api/YogaWidget.md) - -## Usage - -- [Events usage](todo) -- [Yoga properties using stylesheet usage](todo) - -## Development/Contributor's Guide - -See [development](development/README.md) diff --git a/docs/_coverpage.md b/docs/_coverpage.md deleted file mode 100644 index a7056247d..000000000 --- a/docs/_coverpage.md +++ /dev/null @@ -1,11 +0,0 @@ -
- -

NodeGui / React NodeGUI

-
-

An open source library for building cross-platform native desktop applications with JavaScript and CSS like styling.

-

-NodeGui is based on Qt5 and NOT chromium, hence it is memory and cpu efficient. React NodeGui is a React renderer for NodeGui. -

-demo - -

diff --git a/docs/development/README.md b/docs/development/README.md deleted file mode 100644 index 1f800a76c..000000000 --- a/docs/development/README.md +++ /dev/null @@ -1,48 +0,0 @@ -# Contributor's guide - -This guide is for everyone who want's to contribute to the development of NodeGui. - -Please make sure you have read the [User's guides](/) before reading this guide. - -- [Setting up the NodeGui Contributor's Environment](development/setting-up.md) - - [Setting up macOS](development/setting-up.md#macosx) - - [Setting up Windows](development/setting-up.md#windows) - - [Setting up Linux](development/setting-up.md#linux) -- [Getting started](development/getting-started.md) - - [Code Structure](development/getting-started.md#Code-Structure) - - [Wrapping a widget: TLDR version](development/getting-started.md#Wrapping-a-widget) - - [Learning Materials](development/getting-started.md#Learning-Materials) -- [Styling](development/styling.md) - - [Painting](development/styling.md#painting) - - [Layout](development/styling.md#layout) -- [Signal and Event Handling](development/signal_and_event_handling.md) -- [Debugging](development/debugging.md) -- [Common Errors](development/common_errors.md) -- [Wrapping a Widget: Detailed](development/wrapping_widgets.md) -- [Getting Support](tutorial/support.md) - - -# Where to start or How can you help? - - You can follow the contributors guide above to get a gist. - - It is fairly straightforward to get started. I would start with a project of my own and start adding missing functionalities. - - Or simply put I would recommend you start by adding an unexported method to an existing widget. - - **For example:** - - You could add the corresponding Qt method to QProgressbar - https://doc.qt.io/qt-5/qprogressbar.html#textVisible-prop to get a grip on it. - - This PR can be used as a guide - - https://github.com/nodegui/nodegui/issues/36 - - https://github.com/nodegui/nodegui/pull/39 - - You can also take a look at few bugs or the issue board here to know what you can pick up if you are out of ideas. - - https://github.com/nodegui/nodegui/projects/ - - https://github.com/nodegui/react-nodegui/projects/ diff --git a/docs/development/common_errors.md b/docs/development/common_errors.md deleted file mode 100644 index 2489f57aa..000000000 --- a/docs/development/common_errors.md +++ /dev/null @@ -1,7 +0,0 @@ -# Common errors - -1. **Segmentation fault:** Segmentation fault occurs when you access a Pointer that is pointing to an invalid memory address. One major reason for this can be that JS garbage collector would have garbage collected the addon generated value and you try accessing it after a while. This is mostly the case if you see seg fault happening randomly after some time of startup. - -2. **Widget not visible in Flex layout** Widget might have gotten zero height/width. This can occur if yoga was not able to get the default height/width of the widget. Make sure you have implemented - `YGNodeSetMeasureFunc(this->instance->getFlexNode(), &extrautils::measureQtWidget);` - if its a leaf node widget(doesnt contain any children). diff --git a/docs/development/debugging.md b/docs/development/debugging.md deleted file mode 100644 index aa31e25ad..000000000 --- a/docs/development/debugging.md +++ /dev/null @@ -1,11 +0,0 @@ -# debugging - -## Debugging JS - -// TODO - -## Debugging C++ - -https://medium.com/@atulanand94/debugging-nodejs-c-addons-using-vs-code-27e9940fc3ad - -https://medium.com/cameron-nokes/how-to-debug-native-node-addons-in-mac-osx-66f69f81afcb diff --git a/docs/development/getting-started.md b/docs/development/getting-started.md deleted file mode 100644 index fbe60e723..000000000 --- a/docs/development/getting-started.md +++ /dev/null @@ -1,113 +0,0 @@ -## Getting started - -This library aims to be a nodejs addon which can export Qt Widgets to the Javascript world. By doing so one can develop fully fledged cross platform native GUI applications using only Javascript. - -The library depends on `qode` which is a lightly modified version of NodeJS. The slight modification was needed to make it work with this addon. In essense, we will do `qode your_file.js` instead of `node your_file.js`. - -Qode is inspired by this post by [Cheng Zhao](https://github.com/zcbenz): https://electronjs.org/blog/electron-internals-node-integration - -This library does not modify Qt in any way and only use it as it is. This library also dynamically links to Qt. So it needs Qt libs to be installed in your system to work (This is done to keep in compliance with open source LGPL license of Qt). We can think of exporting the required libs later. - -## Code Structure - -``` -. -├── binding.gyp -├── config -├── demo.ts -├── package.json -├── src -│   ├── cpp <-- C++ source code -│   └── lib <-- Typescript source code -├── tsconfig.json -└── yarn.lock -``` - -The main folder is `src`. It contains - -- `cpp` : This folder contains all the C++ source code. Basically all the wrapper code using NAPI to export Qt Widgets and other helper functions to Javascript. -- `lib` : This folder contains all the Typescript code of the library. This is used to add additonal helper methods and types to exported addon. - -**Detailed version:** - -``` -. -├── binding.gyp -├── config -│   ├── application.gypi -│   ├── common.gypi -│   └── yoga.gypi -├── demo.ts -├── package.json -├── src -│   ├── cpp -│   │   ├── Extras -│   │   ├── QtGui <------ All exported classes found inside Qts Gui dynamic library -│   │   ├── QtWidgets <------ All exported classes found inside Qts Widgets dynamic library -│   │   ├── core -│   │   └── main.cpp -│   └── lib -│   ├── QtGui -│   ├── QtWidgets -│   └── core -├── tsconfig.json -└── yarn.lock - -``` - -First step to seeing how everything works is to take a look at `demo.ts` file. This file is basically like a Kitchen application showcasing all the exported widgets currently with the library. - -Make sure you have read how to write native NodeJS Addons blog first. https://medium.com/@atulanand94/beginners-guide-to-writing-nodejs-addons-using-c-and-n-api-node-addon-api-9b3b718a9a7f - -Once you have done that check out `src/cpp/main.cpp` and `config/application.gypi` to see the list of exported C++ classes. - -Then maybe you can take a look at `src/cpp/QtWidgets/QLabel/qlabel_wrap.h`. This will show you how to wrap a simple Qt Widget. -Check the corresponding JS file for the addon here `src/lib/QtWidgets/QLabel/index.ts`. - -## Wrapping a widget - -Create wrappers for each and every Qt class that you will use with N-API (using node-addon-api since it is c++) and export it onto JS side. - -Taking the example of QLabel, if you look inside the directory `src/cpp/QtWidgets/QLabel`, you should see: - -``` -├── QLabel -│   ├── nlabel.cpp -│   ├── nlabel.h <---- Extended QLabel -│   ├── nlabel_moc.cpp <--- Autogenerated file by qt moc. -│   ├── qlabel_wrap.cpp -│   └── qlabel_wrap.h <--- Wrapper file -``` - -The idea is : - -1. We will first extend QLabel class to form NLabel. NLabel is basically QLabel with some extra methods and variables. More on it below. -2. Then we will use NLabel and wrap it using NAPI and export it to JS side. This is what qlabel_wrap does. - -**NLabel**: Since NLabel has inherited from QLabel we can treat is as QLabel with extra methods and properties. Primary reason to extend QLabel to create NLabel is to add support for Event listeners and CSS styling using Flex. -So if you take a look at NLabel you will see, it inherits from QLabel and NodeWidget. NodeWidget inturn inherits from YogaWidget and EventWidget. Event widget adds event handling support. YogaWidget is a class that contains the magic that enables a regular Qt Widget to have Yoga node. A Yoga node is an instance used by yoga library to calculate a widgets position on the screen. Yoga is a library that will layout the widget on the screen. To do so we will specify the flex properties like alignitems, justify content, margin, paddings etc on the Yoga node of the widget. Apart from adding yoga node, YogaWidget adds support for specifying those yoga properties via Qt's stylesheet. (This is done by using Q_PROPERTY). To make this work we need to use something called as Q_OBJECT inside the class which is a C++ macro. Q_OBJECT will be expanded to relevant code by the compiler. In Qt whenever we add Q_OBJECT to a header file, we need to use a pre compiler called Qt MOC (Meta Object Compiler). The way we use it is - -``` -moc headername.h -o headername_moc.cpp --include // example : ../../core/YogaWidget/yogawidget.h -``` - -So for nlabel I would run it as: - -``` -moc nlabel.h -o nlabel_moc.cpp --include ../../core/YogaWidget/yogawidget.h -``` - -This will run moc on `headername.h` and generate `headername_moc.cpp`. We will include `headername_moc.cpp` in `config/moc.gypi`. If you dont do this. Then it will give a symbol not found error. - -I hope QLabel's example is enough for now. For more examples and inspirations we can take a look at other wrapped widgets. - -## Learning Materials - -1. Beginners guide to NodeJS Addon - https://medium.com/@atulanand94/beginners-guide-to-writing-nodejs-addons-using-c-and-n-api-node-addon-api-9b3b718a9a7f -2. First read this: N-API in nodejs docs -3. https://www.youtube.com/watch?v=-Oniup60Afs&feature=youtu.be -4. See samples at https://github.com/nodejs/abi-stable-node-addon-examples/ - 4.1. You can see the readme of https://github.com/nodejs/node-addon-api.git/ -5. See node-qt implementation. It is implemented in Nan (explained in video). -6. Now try to match the implementation in node-qt and convert to N-API using examples from samples. -7. Implementations not in node-qt need to be done with effort. diff --git a/docs/development/setting-up.md b/docs/development/setting-up.md deleted file mode 100644 index 6b98587ef..000000000 --- a/docs/development/setting-up.md +++ /dev/null @@ -1,55 +0,0 @@ -# Setup project for development - -## Development setup and getting started - -Make sure you follow the setup guide of [Qode][qode_setup] so that you have a build environment ready for Qode. - -### MacOSX: - -**Requirements** - -1. Node version: > 11 -2. CMake 3.1 and up (Installation instructions can be found here: https://cmake.org/install/) -3. Make, GCC v7 -4. Qt (_Optional_): Make sure you followed the setup instructions from [Qode][qode_setup] - -### Windows: - -**Requirements** - -1. Node version: > 11 -2. CMake 3.1 and up (Installation instructions can be found here: https://cmake.org/install/) -3. Visual Studio Community 2017 -4. Powershell -5. Qt (_Optional_): Make sure you followed the setup instructions from [Qode][qode_setup] - -### Linux: - -Supported versions: Ubuntu 17.10 and up - -**Requirements** - -1. Node version: > 11 -2. CMake 3.1 and up (Installation instructions can be found here: https://cmake.org/install/) -3. Make, GCC v7, pkg-config -4. Qt (_Optional_): Make sure you followed the setup instructions from [Qode][qode_setup] - -On Ubuntu: `$ sudo apt-get install pkg-config build-essentials` should install everything except Qt5. - -Note: If you are using your own version of Qt make sure to - -`export PKG_CONFIG_PATH="/5.13.0/gcc_64/lib/pkgconfig"` - -### Common: - -1. Once you have setup the platform specific stuff as mentioned above, follow these: -2. `git clone` this repo. -3. `yarn install` -4. `yarn build:addon` -5. `yarn dev` - -If you want to run with your own version of Qt make sure to pass qt_home_dir variable when building addon. - -`npm run rebuild:addon [--qt_home_dir=/path/to/qt]` - -[qode_setup]: https://github.com/nodegui/qode diff --git a/docs/development/signal_and_event_handling.md b/docs/development/signal_and_event_handling.md deleted file mode 100644 index c72d6b1fa..000000000 --- a/docs/development/signal_and_event_handling.md +++ /dev/null @@ -1,150 +0,0 @@ -# Event handling - -In Qt you can respond to an external event like a key press via event handling. Events always are processed by the event loop. Alongside events Qt also has a concept of Signals/Slots. Signals and slots are used to primarily communicate between widgets (more precisely QObjects). So the most common way of interacting between Qt Widgets is done through signals/slots. (More details here: https://doc.qt.io/qt-5/signalsandslots.html). Hence we would be implementing support for both events and signals. - -**Technicals:** - -> An event is a message encapsulated in a class (QEvent) which is processed in an event loop and dispatched to a recipient that can either accept the message or pass it along to others to process. They are usually created in response to external system events like mouse clicks. -> Signals and Slots are a convenient way for QObjects to communicate with one another and are more similar to callback functions. In most circumstances, when a "signal" is emitted, any slot function connected to it is called directly. The exception is when signals and slots cross thread boundaries. In this case, the signal will essentially be converted into an event. - -# Implementing Signal handling - -In Qt signals and slots are used to communicate between different qt widgets. So they can be used to implement things like -onClick, onHover etc. - -The way Qt Signals work is explained here: - -https://doc.qt.io/qt-5/signalsandslots.html - -The way you use them in Qt for a PushButton is explained here: -https://wiki.qt.io/How_to_Use_QPushButton#Signals - -# Adding signal/event handling support to a NodeWidget - -We will take the example of PushButton - -**Javascript** - -Steps: - -The widget should inherit from `NodeWidget`. NodeWidget inherits from EventWidget internally. EventWidget constructor needs native object while initialising. So arrange your code such that native object gets initialised before calling `super(native)`. - -EventWidget adds `addEventListener` method to the widget which can be called -like this: - -```js -button.addEventListener("clicked", () => { - console.log("clicked"); -}); -``` - -To help the user know what all signals/events are supported, export an enum like `QPushButtonEvents` as shown below. - -So the user can then use it as below: - -```js -button.addEventListener(QPushButtonEvents.clicked, () => { - console.log("clicked"); -}); -``` - -Example: - -```js -import addon from "../../core/addon"; -import { NodeWidget } from "../../QtGui/QWidget"; -import { BaseWidgetEvents } from "../../core/EventWidget"; - -export const QPushButtonEvents = Object.freeze({ - ...BaseWidgetEvents, - clicked: "clicked", - pressed: "pressed", - released: "released", - toggled: "toggled" -}); - -export class QPushButton extends NodeWidget { - native: NativeElement; - constructor(parent?: NodeWidget) { - let native; - if (parent) { - native = new addon.QPushButton(parent.native); - } else { - native = new addon.QPushButton(); - } - super(native); - this.parent = parent; - this.native = native; - // bind member functions - this.setText.bind(this); - } - - setText(text: string | number) { - this.native.setText(`${text}`); - } -} -``` - -**C++** - -Steps: - -1. `NPushButton` - -Inherit from both QPushButton and NodeWidget. Make sure you have added NODEWIDGET_IMPLEMENTATIONS macro. This adds a crucial method for events support. It will override `event(QEvent *)` method of QPushbutton so that nodejs can listen to the events of this widget. This makes sure we convert all the QEvent's of this widget to an event for the nodejs event emitter. - -Also make sure to connect all the signals of the widgets to the event emitter instance from NodeJS. This way we kindof convert the signal to a simple nodejs event. - -```cpp -#pragma once - -#include -#include "src/cpp/core/NodeWidget/nodewidget.h" -#include "napi.h" - -class NPushButton: public QPushButton, public NodeWidget -{ - NODEWIDGET_IMPLEMENTATIONS(QPushButton) -public: - using QPushButton::QPushButton; //inherit all constructors of QPushButton - - // override this method and implement all signals here - void connectWidgetSignalsToEventEmitter() { - // Qt Connects: Implement all signal connects here - QObject::connect(this, &QPushButton::clicked, [=](bool checked) { - Napi::Env env = this->emitOnNode.Env(); - Napi::HandleScope scope(env); - this->emitOnNode.Call({ Napi::String::New(env, "clicked"), Napi::Value::From(env, checked) }); - }); - QObject::connect(this, &QPushButton::released, [=]() { - Napi::Env env = this->emitOnNode.Env(); - Napi::HandleScope scope(env); - this->emitOnNode.Call({ Napi::String::New(env, "released") }); - }); - QObject::connect(this, &QPushButton::pressed, [=]() { - Napi::Env env = this->emitOnNode.Env(); - Napi::HandleScope scope(env); - this->emitOnNode.Call({ Napi::String::New(env, "pressed") }); - }); - QObject::connect(this, &QPushButton::toggled, [=](bool checked) { - Napi::Env env = this->emitOnNode.Env(); - Napi::HandleScope scope(env); - this->emitOnNode.Call({ Napi::String::New(env, "toggled"), Napi::Value::From(env, checked) }); - }); - } -}; - -``` - -**Additional** - -Make sure `npushbutton.h` is added to `config/moc.json`. -And run `npm run automoc` before running `npm run build:addon` - -We need to run Qt's MOC (Meta Object Compiler) on the file whenever we use Q_OBJECT in a class or use QObject::connect. This is so that Qt can expand the macros and add necessary implementations to our class. - -# How does it work ? - -1. On JS side for each widget instance we create an instance of NodeJS's Event Emitter. This is done by the class `EventWidget` from which `NodeWidget` inherits -2. We send this event emiiter's `emit` function to the C++ side by calling `initNodeEventEmitter` method and store a pointer to the event emitter's emit function using `emitOnNode`. initNodeEventEmitter function is added by a macro from EventWidget (c++). You can find the initNodeEventEmitter method with the event widget macros. -3. We setup Qt's connect method for all the signals that we want to listen to and call the emitOnNode (which is actually emit from Event emitter) whenever a signal arrives. This is done manually on every widget by overriding the method `connectWidgetSignalsToEventEmitter`. Check `npushbutton.h` for details. This takes care of all the signals of the widgets. Now to export all qt events of the widget, we had overriden the widgets `event(Event*)` method to listen to events received by the widget and send it to the event emitter. This is done inside the EVENTWIDGET_IMPLEMENTATIONS macro diff --git a/docs/development/styling.md b/docs/development/styling.md deleted file mode 100644 index abb9d1cef..000000000 --- a/docs/development/styling.md +++ /dev/null @@ -1,100 +0,0 @@ -# How styling works? - -There are two parts to styling. - -1. Layout -2. Painting : Colors, text color, etc - -## Painting - -The regular styles such as text color, font-size, font weight etc are achieved using Qt's stylesheet. -We just call Qt's setStyleSheet method on the native widget and pass in the styles as a string. - -This method is implemented as part of `QWIDGET_WRAPPED_METHODS_DECLARATION` in `qwidget_macro.h`. -So all widgets using this macro will get the setStyleSheet method. - -## Layout - -Layouting is basically positioning widgets on the screen. It takes into account everything from margins, paddings, positions etc. Our main focus will be Flex layouting. For flex layout we are using yoga library from facebook. This is the same library used by React Native. Before looking at flaxlayout in this libarary I recommend browsing Yoga's C API doc here: `deps/yoga/doc.md` - -In case `nodegui`. I have implemented a custom Qt layout by extending `QLayout`, hence Qt is able to take over automagically when window is resized or any other layouting event occurs. -You can find the implementation at `src/cpp/core/FlexLayout/flexlayout.h`. - -The c++ api provided by this custom layout looks like this: - -```cpp - // FlexLayout is a custom Layout built for QT. This layout will be used to layout qt widgets using facebook's yoga library. - // Thus giving ability to layout Qt Widgets using Flexbox. - // Usage: - QWidget *container = new QWidget(); - YGNodeRef root = YGNodeNew(); - YGNodeRef child1 = YGNodeNew(); - YGNodeRef child2 = YGNodeNew(); - FlexLayout * flayout = new FlexLayout(container,root); -// or FlexLayout * flayout = new FlexLayout(container); -// or FlexLayout *flayout = new FlexLayout(); - - flayout->addWidget(btn1, child1); - flayout->addWidget(btn2, child2); - -``` - -This layout is exported to Javascript side via `src/cpp/core/FlexLayout/flexlayout_wrap.h` - -The JS Api looks like this: - -```js -const view = new QWidget(rootView); - -const flayout = new FlexLayout(); // Create layout -flayout.setFlexNode(view.getFlexNode()); // Set widget's flex as layout's flex node. - -view.setLayout(flayout); // set layout as view's layout - -const label = new QLabel(view); -label.setText("Hello12321"); - -const label2 = new QLabel(view); -label2.setText("SECOND LABEL"); - -flayout.addWidget(label2, label2.getFlexNode()); // Add child to layout -flayout.addWidget(label, label.getFlexNode()); // Add child to layout -``` - -### Implementation - -1. Every widget that wants to use flex layout should extend from `flexItem` found at `src/cpp/core/FlexLayout/flexitem.h`. - For example, see `nlabel.h` at `src/cpp/QtWidgets/QLabel/nlabel.h` - - NLabel inherits from `NodeWidget` which inherits from `YogaWidget` which inturn inherits from `FlexItem` - - - `FlexItem` adds a YogaNode to every widget. - - `YogaWidget` adds Yoga specific q-properties to the widget, which is useful to assign yoga properties via qstylesheet. More on this below. - - `NodeWidget` adds layout support via `YogaWidget` and event handling support via `EventWidget` - -#### FlexItem - -FlexItem : `src/cpp/core/FlexLayout/flexitem.h` add flexnode to each widget. -FlexItem adds methods like getFlexNode. - -#### YogaWidget - -Qt StyleSheet allows you to specify style properties just like in web. You could specify font-size, margin, padding, etc. Qt StyleSheet also allows custom style properties via Qt's q-property system. - -So in order to enable yoga based properties like alignItems, justifyContent, flex, etc via qt's stylesheet we -declare and define q properties for each of those custom properties we want. -This allows us to use something like: - -```js -view.setStyleSheet(` - background-color:green; - qproperty-flex: 1; - qproperty-alignItems: 'center'; -`); -``` - -Notice `qproperty-` prefix? These are the custom q-properties we defined in `YogaWidget.h`. We do not need to prefix `qproperty-` if a stylehsheet string is passed through `StyleSheet.create()`. StyleSheet.create has an autoprefixer which will do the right thing. - -#### NodeWidget - -Every widget we implement should inherit from NodeWidget. This helps us add all the properties we want in the widgets via a single class. NodeWidget is the class that contains properties and methods shared by all widgets. This class allows us to add features to all widgets easily. diff --git a/docs/development/wrapping_widgets.md b/docs/development/wrapping_widgets.md deleted file mode 100644 index f2af19f27..000000000 --- a/docs/development/wrapping_widgets.md +++ /dev/null @@ -1,3 +0,0 @@ -# Exporting a new method from a widget - -# Exporting a new widget from scratch diff --git a/docs/faq.md b/docs/faq.md deleted file mode 100644 index 49fac6201..000000000 --- a/docs/faq.md +++ /dev/null @@ -1,62 +0,0 @@ -# NodeGui FAQ - -## Why am I having trouble installing Qode? - -When running `npm install @nodegui/qode`, some users occasionally encounter -installation errors. - -In almost all cases, these errors are the result of network problems and not -actual issues with the `@nodegui/qode` npm package. Errors like `ELIFECYCLE`, -`EAI_AGAIN`, `ECONNRESET`, and `ETIMEDOUT` are all indications of such -network problems. The best resolution is to try switching networks, or -wait a bit and try installing again. - -You can also attempt to download Qode directly from -[nodegui/qode/releases](https://github.com/nodegui/qode/releases) -if installing via `npm` is failing. - -## Javascript widgets are missing methods and properties as compared to QT widget? - -As you would have noticed, the list of methods and properties are less compared to what is present in the Qt's corresponding widget class. This is because we havent written wrappers for them yet. You can help add more methods by following the development guide for contributors. Overtime this gap would reduce. - -## When will Qode upgrade to latest Node.js / Qt version? - -When a new version of Node.js/Qt gets released, we usually wait for about a month -before upgrading the one in Qode. So we can avoid getting affected by bugs -introduced in new Node.js/Qt versions, which happens very often. - -## My app's window/widgets/tray disappeared after a few minutes. - -This happens when the variable which is used to store the window/tray gets -garbage collected. - -If you encounter this problem, the following articles may prove helpful: - -- [Memory Management][memory-management] -- [Variable Scope][variable-scope] - -If you want a quick fix, you can make the variables global by changing your -code from this: - -```javascript -const { QWidget } = require("@nodegui/nodegui"); - -const view = new QWidget(); -view.setObjectName("container"); -view.setLayout(new FlexLayout()); -``` - -to this: - -```javascript -const { QWidget } = require("@nodegui/nodegui"); - -const view = new QWidget(); -view.setObjectName("container"); -view.setLayout(new FlexLayout()); - -global.view = view; //prevent GC -``` - -[memory-management]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Memory_Management -[variable-scope]: https://msdn.microsoft.com/library/bzt2dkta(v=vs.94).aspx diff --git a/docs/images/demo.png b/docs/images/demo.png deleted file mode 100644 index 3a69d28cc440aac5e9a6291de7aef392992644be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 132876 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 W#TPF}BNX-ke+WG@c!|!fr~e1 - - - diff --git a/docs/index.html b/docs/index.html deleted file mode 100644 index 332ece88b..000000000 --- a/docs/index.html +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - - NodeGui - A cross platform library to build performant desktop apps with - Javascript. - - - - - - - - - -
Loading documentation...
- - - - - - - - diff --git a/docs/react/README.md b/docs/react/README.md deleted file mode 100644 index 0af42a33d..000000000 --- a/docs/react/README.md +++ /dev/null @@ -1,69 +0,0 @@ -# React NodeGUI - -- [About React NodeGUI](react/about.md) -- [Examples](https://github.com/nodegui/react-nodegui/tree/master/examples) -- [Setting up the Development Environment](tutorial/development-environment.md) -- [Creating your First App](react/first-app.md) - - [Hello World](react/first-app.md#Hello-World) - - [React NodeGUI Development in a Nutshell](react/first-app.md#react-nodegui-development-in-a-nutshell) - - [Running Your App](react/first-app.md#running-your-app) - // TODO from here -- [Application Architecture](react/application-architecture.md) - - [Qode](tutorial/application-architecture.md#qode) - - [Using NodeGui's APIs](tutorial/application-architecture.md#using-NodeGui-apis) - - [Using Node.js APIs](tutorial/application-architecture.md#using-nodejs-apis) - - [Using Native Node.js Modules](tutorial/using-native-node-modules.md) -- [Testing and Debugging](tutorial/debugging-app.md) - - [Debugging Qode/NodeGui Process](tutorial/debugging-qode-process.md) - - [Debugging a NodeGui app with Visual Studio Code](tutorial/debugging-app-vscode.md) -- [Distribution](tutorial/application-distribution.md) - - [Supported Platforms](tutorial/support.md#supported-platforms) - - [Code Signing](tutorial/code-signing.md) - - [Mac App Store](tutorial/mac-app-store-submission-guide.md) - - [Windows Store](tutorial/windows-store-guide.md) - - [Snapcraft](tutorial/snapcraft.md) -- [Getting Support](tutorial/support.md) - -## API References - -- [Synopsis](api/synopsis.md) -- [Process Object](api/process.md) - -### Modules from NodeGui: - -- [QApplication (Application)](api/QApplication.md) -- [QMainWindow (Window)](api/QMainWindow.md) -- [QWidget (View)](api/QWidget.md) -- [QSpinBox ()](api/QSpinBox.md) -- [QAbstractScrollArea ()](api/QAbstractScrollArea.md) -- [QAbstractSlider ()](api/QAbstractSlider.md) -- [QDial ()](api/QDial.md) -- [QScrollArea ()](api/QScrollArea.md) -- [QPlainTextEdit (TextEdit)](api/QPlainTextEdit.md) -- [QLabel (Text/Image)](api/QLabel.md) -- [QPushButton (Button)](api/QPushButton.md) -- [QRadioButton (RadioButton)](api/QRadioButton.md) -- [QCheckBox (CheckBox)](api/QCheckBox.md) -- [QLineEdit (LineEdit)](api/QLineEdit.md) -- [QProgressBar (ProgressBar)](api/QProgressBar.md) -- [FlexLayout](api/FlexLayout.md) -- [QPixmap](api/QPixmap.md) -- [QIcon](api/QIcon.md) -- [Qt Enums](api/QtEnums.md) - -### Internal Modules - -- [NodeWidget](api/NodeWidget.md) -- [NodeLayout](api/NodeLayout.md) -- [EventWidget](api/EventWidget.md) -- [Component](api/Component.md) -- [YogaWidget](api/YogaWidget.md) - -## Usage - -- [Events usage](todo) -- [Yoga properties using stylesheet usage](todo) - -## Development/Contributor's Guide - -See [development](development/README.md) diff --git a/docs/react/about.md b/docs/react/about.md deleted file mode 100644 index bb073d00a..000000000 --- a/docs/react/about.md +++ /dev/null @@ -1,17 +0,0 @@ -# About React NodeGUI - -[React NodeGUI](https://github.com/nodegui/react-nodegui) is an open source library for building cross-platform desktop applications with React and CSS like styling. React NodeGUI is a custom react renderer for [NodeGui](https://github.com/nodegui/nodegui). React NodeGUI combines the power and flexibility of React with ease of NodeJs and maturity of Qt5. With React NodeGUI you can build native desktop applications which are underneath Qt applications. This means you could in theory use all of Qt's Gui APIs in Javascript. - -As React Native was an improvement over Cordova based applications in Mobile app development with web technologies, React NodeGUI aims to achieve the same with respect to Electron and other chromium based cross platform Gui solutions. React NodeGUI wants to incorporate everything that is good about Electron: The ease of development, freedom of styling, Native APIs, great documentation, etc. At the same time it aims to be memory and CPU efficient. - -Also, React NodeGUI (like NodeGui) is built with Typescript which means you get autocomplete and strong typechecking support from the IDE even when used in a Javascript project. - -Get started building with React NodeGUI in the [First React NodeGUI app](react/first-app.md). - -### Updating Dependencies - -As soon as a new version of NodeGui is released a corresponding version of React NodeGUI will be released simultaneously. This makes sure that both NodeGui and React NodeGUI releases go out in sync. NodeGui an React NodeGUI will be released as separate packages in order keep everything easily maintainable. - -## Core Philosophy - -[See core philosophy of NodeGui](tutorial/about?id=core-philosophy) diff --git a/docs/react/first-app.md b/docs/react/first-app.md deleted file mode 100644 index 1d8855d6b..000000000 --- a/docs/react/first-app.md +++ /dev/null @@ -1,116 +0,0 @@ -# Writing Your First React NodeGUI App - -React NodeGUI enables you to create desktop applications with JavaScript (React). React NodeGUI is a react renderer for NodeGui. This makes it extremely memory and CPU efficient as compared to other popular Javascript Desktop GUI solutions. - -## Hello World - -Clone and run the code in this tutorial by using the -[`nodegui/react-nodegui-starter`][quick-start] repository. - -**Note**: Running this requires [Git](https://git-scm.com) and [npm](https://www.npmjs.com/). - -```sh -# Clone the repository -$ git clone https://github.com/nodegui/react-nodegui-starter -# Go into the repository -$ cd react-nodegui-starter -# Install dependencies -$ npm install -# Run the app -$ npm start -``` - -As far as development is concerned, an React NodeGUI application is essentially a -Node.js application. The starting point is a `package.json` that is identical -to that of a Node.js module. A most basic React NodeGUI app would have the following -folder structure: - -```text -your-app/ -├── package.json -├── index.js -``` - -## React NodeGUI Development in a Nutshell - -React NodeGUI apps are developed in JavaScript using the same principles and methods -found in React Native development. React NodeGUI exposes native widgets in the form of React components. Also, since we are now not running inside a browser, there is no DOM. Hence browser based APIs are NOT available. But you do have access to complete NodeJs APIs along with some exported Qt Apis.All APIs related to React NodeGUI are found in `@nodegui/react-nodegui` module. Additionally you can also access APIs and features from NodeGui via -the `@nodegui/nodegui` module. These can be required like any other Node.js module: - -```javascript -require("@nodegui/nodegui"); -require("@nodegui/react-nodegui"); -``` - -A simple `main.js`. - -```javascript -import { Renderer, View, Text, Button, Window } from "@nodegui/react-nodegui"; -import React, { useState } from "react"; - -const App = () => { - const [time, setTime] = useState(new Date()); - return ( - - -