Line 1: | Line 1: | ||
Windows 96 includes a flexible API for developing your own applications. All applications are ran under WRT, which is a partial sandbox and runtime provided by Windows 96 for applications. | Windows 96 includes a flexible API for developing your own applications. All applications are ran under WRT, which is a partial sandbox and runtime provided by Windows 96 for applications. | ||
Applications may be referred to as "bins", "WRT bins", or "sysbins" depending on the context. | Applications may be referred to as "bins", "WRT bins", "application bin", or "sysbins" depending on the context. | ||
== Structure of an application == | == Structure of an application == | ||
Windows 96 applications are simply JavaScript files without the .JS extension that include a WRT shebang (<code>//!wrt</code>). The shebang denotes that this regular file is a WRT bin, and must be the very first line in any WRT application. It may sometimes include a binary specification (BSPEC) suffix to describe some metadata about the application. | Windows 96 applications are simply JavaScript files without the .JS extension that include a WRT shebang (<code>//!wrt</code>). The shebang denotes that this regular file is a WRT bin, and must be the very first line in any WRT application. It may sometimes include a binary specification (BSPEC) suffix to describe some metadata about the application. | ||
=== The binary specification (BSPEC) === | |||
As mentioned before, the binary specification (BSPEC) is a way to describe metadata for a WRT bin. It always follows the shebang on the same line, where the cumulative line size must not exceed 256 characters. | |||
The BSPEC is a simple JSON object prefixed with <code>$BSPEC:</code> and contains the following fields: | |||
* <code>icn</code> - The name of the icon to use. | |||
* <code>cpr</code> - The copyright holder of the application. | |||
* <code>dsc</code> - A basic description of the application. | |||
* <code>frn</code> - The display name of the application. | |||
* <code>aut</code> - The application author. | |||
* <code>ssy</code> - The subsystem to use for this application. | |||
* <code>ver</code> - The version of the application. | |||
Below is an example of a binary specification declaration for the File Explorer application.<syntaxhighlight lang="javascript"> | |||
//!wrt $BSPEC:{"icn":"apps/explorer","cpr":"Copyright (C) Windows 96 Team 2021.","dsc":"System File Explorer","frn":"Explorer","ver":1} | |||
</syntaxhighlight> | |||
=== An example program === | |||
Here is an example of a very basic Windows 96 GUI program:<syntaxhighlight lang="javascript" line="1"> | Here is an example of a very basic Windows 96 GUI program:<syntaxhighlight lang="javascript" line="1"> | ||
Line 42: | Line 62: | ||
return await WApplication.execAsync(new MyApplication(), this.boxedEnv.args); | return await WApplication.execAsync(new MyApplication(), this.boxedEnv.args); | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Running an application == | |||
To run an application, you can either: | |||
* Run it from the Run box or terminal with its executable name, if the binary is present in any directory denoted by the PATH environment variable. | |||
* Double click it in an explorer window to execute it in the current directory. | |||
* Enter the absolute path of the application bin in a Run box or terminal window. |
Revision as of 18:30, 23 January 2022
Windows 96 includes a flexible API for developing your own applications. All applications are ran under WRT, which is a partial sandbox and runtime provided by Windows 96 for applications.
Applications may be referred to as "bins", "WRT bins", "application bin", or "sysbins" depending on the context.
Structure of an application
Windows 96 applications are simply JavaScript files without the .JS extension that include a WRT shebang (//!wrt
). The shebang denotes that this regular file is a WRT bin, and must be the very first line in any WRT application. It may sometimes include a binary specification (BSPEC) suffix to describe some metadata about the application.
The binary specification (BSPEC)
As mentioned before, the binary specification (BSPEC) is a way to describe metadata for a WRT bin. It always follows the shebang on the same line, where the cumulative line size must not exceed 256 characters.
The BSPEC is a simple JSON object prefixed with $BSPEC:
and contains the following fields:
icn
- The name of the icon to use.cpr
- The copyright holder of the application.dsc
- A basic description of the application.frn
- The display name of the application.aut
- The application author.ssy
- The subsystem to use for this application.ver
- The version of the application.
Below is an example of a binary specification declaration for the File Explorer application.
//!wrt $BSPEC:{"icn":"apps/explorer","cpr":"Copyright (C) Windows 96 Team 2021.","dsc":"System File Explorer","frn":"Explorer","ver":1}
An example program
Here is an example of a very basic Windows 96 GUI program:
//!wrt
const { Theme } = w96.ui;
class MyApplication extends WApplication {
/**
* Application constructor.
* */
constructor() {
super();
}
/**
* Main entry point.
* @param {String[]} argv The program arguments.
* */
async main(argv) {
// Create the window
const mainwnd = this.createWindow({
title: "Sample Application",
body: "Sample text",
bodyClass: "sample-app",
taskbar: true,
resizable: true,
initialHeight: 480,
initialWidth: 640,
icon: await Theme.getIconUrl("mime/executable", '16x16')
}, true);
// Show the window
mainwnd.show();
}
}
return await WApplication.execAsync(new MyApplication(), this.boxedEnv.args);
Running an application
To run an application, you can either:
- Run it from the Run box or terminal with its executable name, if the binary is present in any directory denoted by the PATH environment variable.
- Double click it in an explorer window to execute it in the current directory.
- Enter the absolute path of the application bin in a Run box or terminal window.