Interactive Manipulation
The single function Manipulate gives immediate access to a huge range of powerful interactive capabilities. For any expression with symbolic parameters, Manipulate automatically creates an interface for manipulating the parameters. Manipulate supports not only mouse and keyboard manipulation, but also gamepads and other devices.
  Manipulate — interactively manipulate any expression, graphic or other object
Animate — animate any graphic or expression
ListAnimate — animate a list of graphics or expressions
Options & Styling »
ControlPlacement - ControlType - SaveDefinitions - Bookmarks - ...
ImageSize - PlotRange - Text - Style - ControlActive - ...

Control Types »
Locator — make one or more 2D variables be controlled by locators inside a graphic
Trigger — set up a "trigger" that starts a variable changing with time
Slider - PopupMenu - SetterBar - Animator - InputField - ...
Alt+drag, Ctrl+Alt+drag — move a slider progressively slower
ControllerManipulate — manipulate only with an external controller (e.g. gamepad)


Control Objects
Mathematica provides a full range of control objects, all specified in convenient symbolic form. Manipulate uses many of these objects automatically; you can also use them directly as part of generalized input, or in building your own dynamic interfaces.
  Control — an interactive control with type automatically chosen
Slider, VerticalSlider Slider2D
Checkbox
RadioButton Opener
ColorSlider
interactively select a color
Setter
set a value when pressed:
Toggler
— toggle through values when clicked
SetterBar, RadioButtonBar, CheckboxBar, TogglerBar — arrays of buttons
PopupMenu — menu of choices
InputField
— field for strings, numbers or any expression
LocatorPane — movable locators on graphics or other backgrounds
Animator - Manipulator - Locator - ProgressIndicator - Trigger - ClickPane
Button — button with any form and action
PasteButton
— button to paste an expression
ActionMenu, ButtonBar — choose from a list of actions
EventHandler — low-level event handler
MousePosition - ControlActive - ControllerState - CurrentValue
FileNameSetter — system file browser
ColorSetter — system color picker
SystemDialogInput — files, fonts, sounds, etc.
Hyperlink — general hyperlink to cells and URLs

Annotations »
Tooltip - Mouseover - StatusArea - PopupWindow - Labeled - ...

Programming with Controls »
Dynamic - DynamicModule - MousePosition - Setting - DynamicSetting - ...

Structuring and Layout »
Grid - Row - Column - Panel - TabView - Pane - Deploy - ...

Controls Options »
ImageSize - Appearance - Deployed - Enabled - AutoAction - ...

Creating Separate Windows »
ChoiceDialog - CreatePalette - CreateDialog - CreateDocument - ...


Dynamic Interactivity Language
Fundamental to Mathematica's dynamic interactivity capabilities is a new form of symbolic dynamic language. With a very small number of highly powerful primitives that mix freely with other language constructs, you can write a program in a direct symbolic style, and Mathematica will automatically track dependencies to make controls and output of any kind update dynamically.
  Dynamic — display as a dynamically updated settable expression of any kind
DynamicModule — localize dynamic constructs
With — insert static content into a dynamic object

Control Objects »
Slider - Checkbox - PopupMenu - Locator - Manipulator - ...
Low-Level Functions
CurrentValue - Refresh - Clock - EmitSound - ControlActive

System Interface
FinishDynamic - $DynamicEvaluation - $ControlActiveSetting - PreemptProtect

Dynamic Updating Enabled


Viewers and Annotation
Mathematica's dynamic interactivity system makes it easy to view and annotate any object in a dynamic way. Building on Mathematica's symbolic programming architecture, constructs can be nested and combined in arbitrary ways, and both their content and control can be fully dynamic and programmatic.
  TabView — make any list of objects be selectable with tabs
SlideView — view any list of objects as a sequence of slides
FlipView — flip between displaying two or more objects
MenuView - OpenerView - PopupView
Labeled — associate any label with any object
Framed — put a frame around an object
Panel — put an object in a panel
Text - Style - Row - Column - Grid
Placeholder — label a place to type
Tooltip — attach any tooltip to any object
Mouseover — specify what to show when the mouse is over an object
StatusArea — put a string in the window status area
PopupWindow — attach a popup window with any content
Annotation — attach a general annotation to an object
MouseAnnotation — find the annotation for the object the mouse is over
Monitor — monitor the progress of a computation
Manipulate — general interactive manipulation
ListAnimate — animate a list of graphics or other objects


Generalized Input
Mathematica's unique structure allows a generalized notion of input, in which not only ordinary text, but also typeset structures, diagrams, graphics, control objects and even complete user interfaces can be entered and immediately return values that have been associated with them.
  Controls as Input
DynamicSetting — display as a control that dynamically gives its setting when evaluated
Ctrl+Shift+Enter — evaluate in place to show the displayed form
Checkbox - PopupMenu - ColorSetter - FileNameSetter - SetterBar - ...
Manipulate — set up a collection of controls
Giving Interpretations
Interpretation — specify any interpretation for a graphic or other expression
Graphics as Input
Graphics, Graphics3D — use any graphic as input
Input Annotation
Placeholder — label a place to type
Defining Custom Notation »
InputAliases - DynamicSetting - InputAutoReplacements - ...


Custom Interface Construction
For many applications, high-level constructs like Manipulate and TabView will immediately give you the dynamic interactivity you need. Mathematica also allows you to create your own sophisticated custom interfaces, using its uniquely straightforward symbolic interface-building technology.
  Manipulate — create an interface to manipulate any expression or graphic
ControllerManipulate — create an interface using external controllers
Dynamic — display as the dynamically updated current value
DynamicModule — interface localization construct
Palettes »
CreatePalette — create a new palette from a symbolic expression
Button - PasteButton - Column - Grid - WindowTitle - ...
Toolbars »
DockedCells — arbitrary cells to be docked at the top of a notebook
Dialog Boxes »
Input, InputString — put up a dialog to get input
MessageDialog — put up a dialog box to display a message
ChoiceDialog — put up a dialog box with buttons to make choices
DialogInput - CreateDialog - DialogReturn - SystemDialogInput
Button - Checkbox - InputField - Panel - TabView - Grid - ...
Inspectors »
CurrentValue — test or set hundreds of interface values
Dynamic - Options - SetOptions - PaletteNotebook - ...
Click-Interactive Panels »
LocatorPane - ClickPane - EventHandler - Mouseover - Deploy - ...
Standalone Interfaces »
FrontEndEventActions - FrontEndExecute - ActionMenu - Deploy - ...
Low-Level Interface Control »
MousePosition - EventHandler - CellEventActions - ControllerState - ...


New in 7.0: Dynamic Interactivity
Mathematica 6 introduced the revolutionary idea of symbolic dynamic interactivity. Mathematica 7 makes use of this idea throughout the system, and adds a number of additional features to the core concept.
  Interactive Manipulation
Manipulate (modified) — new support for arranging controls in grids, etc.

New in Symbolic Controls
Control
— an interactive control with type automatically chosen
ButtonBar — a bar of buttons with labels and actions
ChoiceButtons — a pair of OK and Cancel buttons that close a dialog
Pane (modified) — scrollable pane
TabView (modified) — scrollable tabs
CheckboxBar, RadioButtonBar (modified) — new support for in-bar delimiters
Panel (modified) — display a panel with different appearances
PreemptProtect — protect evaluation from interruption by preemptive evaluations

Interface Building
Placeholder — symbolic representation of place to type into