Newt Plugin Info

Starting with version 3.0, Newt was re-architected so that it can be extended with plug-in modules/extensions ("autoparts") -- other optional (small) packages that you can install. Newt links to plug-ins automatically when it starts; plug-ins generally do not appear in Extras, but may appear in Newt's overview menu. (You can also see them in the "Remove Software" list, or on NOS 2.x in the Extensions folder). These consume very little heap.

The basic Newt package can be used by itself for doing most application development. Once you have built an application, you need NewtPack in order to save your app as a package. To use platform functions, you will need PlatFnc1 (or PlatFnc2); to define a communication endpoint, CommCns1 (or CommCns2). These should be adequate for all of the examples I distribute (see examples.txt). So, depending on how much free (package) memory you have available, you can customize and extend your Newt environment via additional plug-ins. These are categorized as:

To check which versions of plugins you have installed, use Newt's Version button (under Prefs).

For many of these there are two versions:

  1. primarily 1.x, though should also work on NOS 2.x, especially if you want to create a completely 1.x compatible package
  2. NOS 2.x only (may include more constants; generally more compact plugin)

Constants

PlatFnc1
1.x platform functions (not built-in to the Newton) [??K]
PlatFnc2 (2.x)
2.x platform functions [??K]
ProtErr1
standard 1.x protos and common error messages (built-in to Newt 3.4, 3.4-2); may be useful as constants without Newt. generally should not be installed. [??K]
ProtNOS2 (2.x)
another ~140 protos (for NOS 2.x) (built-in to Newt 3.4-2). generally should not be installed (though it could be used with 1.x Newt 3.4) [8K]
CommCns1
protoEndPoint and comm constants [??K]
CommCns2 (2.x)
1.x plus more comm constants [??K]
MiscCns1
viewJustify, transfer, viewFormat, viewFlags, textFlags, viewEffect, copyProtection, ButtonBounds, flagConvert, kbd, font,char, date&time, GetDataStrSpec, sound, bitmap, other protos/ROM, notify, unit, event, dictionary [??K]
MiscCns2 (2.x)
1.x plus more comm constants [??K]
ErrCns1
(fairly) complete, unabbreviated list of error messages [??K]
ErrCns2 (2.x)
1.x, 2.x, NIE messages

Libraries

These are accessible via Select Library command, copy source via Copy Source, Copy All; you can create your own source-code packages from a Newton Notes folder (using buildFolderLib), or on the desktop from a Sloup-format file using Paperback.

MyApp
applic0.pkg is source for applic0.nwt example (FolderLib format) [??K]
MyApp2
applic2.pkg is source for applic2.nwt example (Paperback format) [??K]

Tools

Titles for these tools will appear in Newt's overview menu: first (top) group

NewtDrw1 (1.x)
"Newt Controls", "Newt Drawing" (turtle graphics) [??K]
NewtDrw2 (2.x)
same, but more compact
ExprKbd
former "Code Templates" (syntax-smart expressions for editor); example source is still available (exprkbdt.nwt, exprkbdv.nwt), though superceded by MetaDot.

Protos

These are like tools but only accessible indirectly, e.g., NewtPack via Save, MetaDot via tapping in source, DontAsk via 1.x keyboard.

Pack34
save Newt apps as packages [??K]
Pack34N
faster version with some Native code [??K]
Pack34-2 (2.x)
smaller version [??K]. NOS 2.x-only packages can be more compact. Also, these are faster (since NOS 2.x NewtonScript is more efficient), so Native code is less necessary. But packages saved using NOS 2.x-only versions can run only on NOS 2.x systems.
MetaDot1
The version (included with public release) contains menus of 1.x function, methods (and parameters); and 1.x protos (and slot/method definitions). [??K] While constant plugins (such as protNOS2) support evaluation/compilation, MetaDot supports source code editing. See Smart Edit preference/description.
MetaDot2 (2.x) The 2.x version contains both 1.x and 2.x-specific definitions [??K]
DontAsk (1.x-only)
this patches the system keyboard to get rid of the annoying "Do you want to add" prompt. It's not really a Newt-only plug-in. it appears as toggle button at lower left in keyboard. [3K]

Views

These are external applications in Extras; titles will appear in Newt's overview menu: second group.

Sloup21
for transferring source text, inspector [??K]
Sloup21N
some Native code, other connection speeds [??K]
Sloup21-2
other connection speeds, 2.x only (smaller) [??K]

Other

In case it's not obvious, you can create your own plug-ins via Newt itself -- you could modify the exprkbdt.nwt example to create a your own menu of expressions for editing; you could use buildFolderLib to create a library package from Notepad sources, e.g., like applic0.lib (MyApp) for applic0.nwt.

Given heap limitations on most Newtons, one strategy for building very large applications is to save mostly finished parts (protos, methods) of your app as a "constant library" (see constant.nwt example), then in your main app, inherit from this plug-in during development (somewhat similar to the new NOS 2.x units mechanism). So, Newt is a very open and extensible environment.

To remove plug-ins, just use the "Remove Software" button (or scrub on NOS 2.x Extensions) or your favorite package archiving utility. If you have Apple's "Package Mover" installed, the "Prefs:Memory:Remove Software" list scrolls. Close Newt before removing plug-ins to avoid possible invalid memory references.

To make it easier for me to update/distribute these (and provide a little incentive to register), only some (1.x) plug-ins are distributed with the basic release (NewtPack, NewtDraw, ExprKbd, MyApp, DontAsk, MetaDot). Sloup is available as a separate release. The others are available via http(web) or ftp when you register.