Concepts

joseph edited this page Sep 23, 2011 · 3 revisions

There are few different classes you need to know. Here's a conceptual hierarchy.

Monocle.Reader
  has a Monocle.Book
    has many Monocle.Components (parts of the total book content)
    has many Monocle.Places (which can point to arbitrary pages)
  has a Flipper (from the Monocle.Flippers namespace, for turning animations)
    has one or more DOM page elements, as iframes
      each has a Dimension (controlling and calculating the length of the component)
    has a Panel (from the Monocle.Panels namespace, for user interactions)
  has many Controls (standard controls only are in Monocle.Controls)

Elsewhere:

Monocle.Env inspects the environment.
Monocle.Browser holds this client-specific data.
Monocle.Events is a generalised model for handling 
  single-finger touch events or mouse movement, as 
  well as providing a consistent layer over other events.

Monocle.Factory is a simple API for quickly creating 
  or finding DOM elements.

Some basic style constants are defined in Monocle.Styles — these are required for basic Monocle pagination and display. Optional styles are provided in the styles/ directory (or in monocore.css/monoctrl.css if working from the packaged version) — feel free to modify these as you like.

That's most of it. The main extension points are custom controls, custom flippers and custom panels.