.. rst3: filename: html/slides/scripting-leo/slide-003.html

Official ivars
==============

The c, g and p objects give Leo scripts access to all parts of Leo and Leo outlines. There are many official ivars (instance variables) that scripts may use. Here are a few:

**c.frame** is an object representing the actual parts of Leo screen.

For any frame, frame.c is the frame’s commander, so c.frame.c is always c.

**g.app** is the object representing the entire Leo application.

The ivars of g.app represent Leo’s global variables.

**p.v** is the **vnode** at position p.

A vnode represents an outline node. Vnodes hold most of the data in Leo outlines. For any vnode v, v.h is the node’s headline, and v.b is the node’s body text.

**p.h** and **p.b** are synonyms for p.v.h and p.v.b.

Because of clones, a *vnode may appear in several positions in a traversal*.

