beautypg.com

Apple Newton Programmer’s Newton 2.0 (for Newton 2.0) User Manual

Page 717

background image

C H A P T E R 1 9

Built-in Applications and System Data

Icons and the Extras Drawer

19-43

InstallScript := func(partFrame, removeFrame)

begin

local mySlip := GetLayout("MySlip.t") ;

// install the slip

DefGlobalVar (kMyConfigSlipSym, BuildContext(mySlip));

local ed := GetRoot().extrasDrawer;

//Figure out which store our package is in. This code

//will work for a form part, as long as the argument

//to ObjectPkgRef is a reference type (i.e., a

// pointer).

local myStore := GetVBOStore(ObjectPkgRef(mySlip));

//check if our icon is already installed

if Length(ed:GetExtraIcons('ScriptEntry, kPackageName,

myStore)) = 0 then

call kAddExtraIconFunc with

('ScriptEntry,

kScriptIconParamFrame,

kPackageName,

myStore);

end;

RemoveScript := func(removeFrame)

// remove the slip

UnDefGlobalVar(kMyConfigSlipSym);

Note that you do not have to remove the script icon, since it is associated with your
package. When the package is removed, the icon is removed as well. But if you
wish to remove it at some other time, you can do so with a call to the Extras
Drawer method

RemoveExtraIcon

.

Using the Soupervisor Mechanism

19

In order to take advantage of the soupervisor mechanism, you need to do
the following:

1. At build time, add an

ownerApp

slot to your part frame. This slot should be set

to your application symbol. You can do this with a call to

SetPartFrameSlot

,

as in the following code:

call SetPartFrameSlot with ('ownerApp, kAppSymbol);