All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Pages
MultiWidgets Namespace Reference

MultiWidgets library is a MultiTouch user interface widget library. More...

Namespaces

namespace  WidgetTools
 This namespace contains various helper functions used in the implementation of Widget-class.
 

Classes

class  AfterIdleAddOperatorsOperator
 Apply a set of new operators after a given timeout. More...
 
class  AfterIdleApplyLambdaOperator
 Operator that applies a given Lambda-function after the widget has been idle for a while. More...
 
class  AfterIdleOperator
 Applies some operation to a widget after it has been idle for a while. More...
 
class  AnimateRotationAboutCenterTowardsOperator
 Animates the Widget::rotation about its center towards a given target value. More...
 
class  AnimateScaleAboutCenterTowardsOperator
 Animates the Widget::scale about its center towards a given target value. More...
 
class  AnimateTowardsOperator
 An operator to animate a value towards a target value at constant speed. More...
 
class  Animation
 This class acts as the controller for multiple AnimationClips. More...
 
class  AnimationClip
 AnimationClip contains one or more curves that animate different attributes. More...
 
class  AnimationCurve
 This class represents an animation curve that stores key frames. More...
 
class  AnimationState
 This class contains the state of an animation clip. More...
 
class  Animator
 Base class for all animators. More...
 
class  AnimatorCenterLocation
 Animates the center location of a widget. More...
 
class  AnimatorFloatCosineModulator
 Animates some floating point parameter of a widget with cosine signal. More...
 
class  AnimatorPointLocation
 Animates the given point of a widget. More...
 
class  AnimatorRotation
 Animates the rotation of a widget. More...
 
class  AnimatorScale
 Animates the scale of a widget around its center point. More...
 
class  AnimatorT
 A utility class for creating animations on Attributes in MultiWidgets::Widget. More...
 
class  Application
 Base class for writing new applications. More...
 
class  BaseMediaWidget
 Abstract base class for widgets that show some kind of media files or resources. More...
 
class  BookWidget
 This class displays a book where the pages can be turned with one finger. More...
 
class  BrowserFrameWidget
 This class implements a simple browser with a URL bar and support for basic navigation, such as back, forward, and home. More...
 
class  BrowserWidget
 This class represents a view to a web page. More...
 
class  Calibration
 A calibration display for applications using MultiWidgets. More...
 
class  CloudWidget
 CloudWidget is a container widget that layouts its items like a cloud. More...
 
class  ContainerT
 Generic container interface for different custom container classes. More...
 
class  ContentLoader
 Utility class to load image and video content from a folder into a container widget. More...
 
class  CubicBezierInterpolation
 Cubic Bzier interpolation of keyframes (uses both tangents) More...
 
class  CubicHermiteInterpolation
 Cubic Hermite interpolation of keyframes (only uses tangentIn) More...
 
class  DocumentWidget
 This class can be used to display complex text layouts loaded from HTML. More...
 
class  DropShadowWidget
 Drop-shadow effect for this widget's parent widget. More...
 
class  FactoryT
 Base class for factory objects. More...
 
class  FadeAnimator
 Animator for implementing fade-ins and fade-outs. More...
 
class  FlippingWidget
 A container that implements a page that can be turned around. More...
 
class  FrameBufferWidget
 This class can be used as a generic render target for draw calls. More...
 
class  FrameInfo
 This class provides information about the elapsed simulation frame. More...
 
class  GfxDriver
 This class provides the interface for graphics different drivers. More...
 
class  GrabManager
 Manage finger and hand focus/grab information. More...
 
class  IAnimationCurve
 Interface for animation curves of different types. More...
 
class  ImageMovieWidget
 This class can be used to display image sequences. More...
 
class  ImageSkinWidget
 Provides a resizeable background image for a widget. More...
 
class  ImageTileWidget
 Widget that can render seriers of images in a horizontal or vertical list. More...
 
class  ImageWidget
 Display an image on a widget. More...
 
class  InputFlagsOperator
 This class sets the input flags of a widget to the specified value for a given time. More...
 
class  InputGrabber
 Interface for objects that can grab hands and fingers. More...
 
class  InputGrabListener
 Interface for objects that want to be notified of grabs. More...
 
class  InputVisualizerWidget
 A simple input visualization widget. More...
 
class  ItemFlowWidget
 A media-flow widget. More...
 
class  JavaScriptOperator
 This class provides a mechanism to extend the Operator class through JavaScript. More...
 
class  JavaScriptWidget
 This class provides a mechanism to extend the Widget class through JavaScript. More...
 
struct  Key
 Helper class for Animator to store key frames. More...
 
class  KeyboardAfterIdleApplyLambdaOperator
 Operator that applies a given Lambda-function after the widget has been idle for a while - specifically for keyboard widget. More...
 
class  KeyboardInterfaceWidget
 This class represents a virtual keyboard. More...
 
class  KeyboardListener
 Keyboard listener interface. More...
 
class  KeyboardWidget
 
class  KeyboardWidget2
 
class  KeyboardWidgetFrame
 
class  KeyFrame
 KeyFrame class represents an animation keyframe. More...
 
class  LayerWidget
 Utility class that implements a layer. More...
 
class  LayoutEngine
 
class  LimitScaleByParentOperator
 Scales the object based on the size of its parent. More...
 
class  LimitScaleOperator
 Limits the size of a widget, based on given pixel-values. More...
 
class  LinearInterpolation
 Linear interpolation of keyframes (ignores tangents) More...
 
class  ListWidget
 A scrollable list of widgets. More...
 
class  MarkerLauncherWidget
 This class provides a way to receive marker events filtered by timestamp and/or marker location. More...
 
class  MessageSendOperator
 This class is a utility class providing an operator to send events with a delay. More...
 
class  Mime
 Loads different files by using registered loaders based on MIME-type Has two kinds of mappings. More...
 
class  Momentum
 Momentum provides limits and dampening to a floating-point attribute. More...
 
class  NullGfxDriver
 This class provides a graphics driver that does nothing. More...
 
class  Operator
 Operator class provides an interface that can be used to extend Widget behaviour by adding behaviours to it. More...
 
class  Plugins
 Class that handles plugin loading and instantation. More...
 
class  RemoveWidgetOperator
 This class implements an operator that removes a widget from its parent after a timeout. More...
 
class  RenderThread
 This class represents a single rendering thread. More...
 
class  ResizeHandleWidget
 Resize handle that can be added as a child to another widget. More...
 
class  RippleOverlayWidget
 This class produces a water ripple effect on top of the application. More...
 
class  RotateTowardsHandsOperator
 This operator implements a behaviour where a widget is rotated to face the user based on the orientation of the palm. More...
 
class  ScreenAutoConfigure
 Automatic configuration of a display setup. More...
 
class  ScrollAreaWidget
 This is a base class for widgets that require scrolling content with scrollbars. More...
 
class  SimpleFlexBoxLayout
 Simple horizontal or vertical layout engine based on CSS flexbox standard. More...
 
class  SizeConstrainOperator
 Implements CSS {min,max}-{width,height} attributes. More...
 
class  SliderWidget
 This class provides a numerical slider. More...
 
class  SnapToAngleOperator
 This operator can be used to snap a widget's rotation. More...
 
class  StayInsideParentOperator
 This operator keeps a widget inside its parent widget. More...
 
class  StepInterpolation
 Constant step interpolation of keyframes (ignores tangents) More...
 
class  TapAndHoldGestureOperator
 This class implements a gesture recognizer for a tap-and-hold gesture. More...
 
class  TextEditWidget
 This class provides a widget that is used to display and edit plain text. More...
 
class  TextInterfaceWidget
 Abstract base class for all text rendering widgets. More...
 
class  TextWidget
 A widget for displaying simple text. More...
 
class  ThreadedGfxDriver
 This class implements the default multi-threaded render driver in Cornerstone. More...
 
class  TimerDialWidget
 Graphic timer that shows elapsed time. More...
 
class  TimerOperator
 Operator that applies the given lambda-function after a timeout. More...
 
class  TrackedObjects
 Container for all tracked object types. More...
 
class  TransformWidgetOperator
 This operator can be used to animate the transform of a widget (location, rotation, and scale) to the specified values. More...
 
class  TypeInfo
 Wrapper class for std::type_info This is the best way to actually store std::type_info to any container. More...
 
class  VideoControlWidget
 A widget that provides simple playback controls for a VideoWidget. More...
 
class  VideoStreamAudioCaptureOperator
 This operator can be only added to a VideoWidget. More...
 
class  VideoWidget
 This class can be used to display video files, video streams, and animations. More...
 
class  ViewWidget
 ViewWidget acts as a viewport to a given target Widget (the scene). More...
 
class  VirtualFinger
 VirtualFinger represents single tracked finger. More...
 
class  VirtualHand
 VirtualHand consists of group of fingers (1-5) and a palm location. More...
 
class  VirtualInput
 Helper class to ease the managing of virtual input and injecting it to the touchscreen samples. More...
 
class  VirtualMarker
 VirtualMarker represents single tracked marker. More...
 
class  VirtualObject
 VirtualObject acts as a base class for each type of virtual object that can be injected to the input processing (hand with fingers, pen and marker). More...
 
class  VirtualPen
 VirtualPen represents single tracked pen. More...
 
class  WheelWidget
 This class implements a circular, list-like container where items can be added. More...
 
class  Widget
 This class is the base class for all user interface elements in Cornerstone. More...
 
class  WidgetInspector
 WidgetInspector is a development and debugging tool for displaying and modifying Widget hierarchy and widget attributes in a separate window. More...
 
class  WidgetRenderer
 

Typedefs

typedef AnimationCurve< bool > AnimationCurveBool
 Boolean animation curve.
 
typedef AnimationCurve< float > AnimationCurveFloat
 Floating-point animation curve.
 
typedef AnimationCurve< int > AnimationCurveInt
 Integer animation curve.
 
typedef AnimationCurve
< Nimble::Vector2f
AnimationCurveVector2f
 Vector2f animation curve.
 
typedef AnimationCurve
< Nimble::Vector3f
AnimationCurveVector3f
 Vector3f animation curve.
 
typedef AnimationCurve
< Nimble::Vector4f
AnimationCurveVector4f
 Vector4f animation curve.
 
typedef AnimatorT< float > AnimatorFloat
 Animator for floating-point attributes.
 
typedef AnimatorT
< Nimble::Vector2f
AnimatorVector2f
 Animator for 2d vector attributes.
 
typedef AnimatorT
< Nimble::Vector3f
AnimatorVector3f
 Animator for 3d vector attributes.
 
typedef AnimatorT
< Nimble::Vector4f
AnimatorVector4f
 Animator for 4d vector attributes.
 
typedef std::vector
< MultiTouch::Finger
FingerArray
 An array of fingers.
 
typedef std::vector
< MultiTouch::Hand
HandArray
 An array of hands.
 
typedef Radiant::IntrusivePtr
< const KeyboardWidget
KeyboardCPtr
 Intrusive pointer to a const KeyboardWidget.
 
typedef Radiant::IntrusivePtr
< KeyboardWidget
KeyboardWidgetPtr
 Intrusive pointer to a KeyboardWidget.
 
typedef std::vector
< MultiTouch::Marker
MarkerArray
 An array of markers.
 
typedef FactoryT
< MultiWidgets::Operator,
std::shared_ptr > 
OperatorFactory
 Factory for creating operators.
 
typedef std::shared_ptr< OperatorOperatorPtr
 Shared pointer to an Operator.
 
typedef std::vector
< MultiTouch::Pen
PenArray
 An array of fingers.
 
typedef std::shared_ptr
< SimpleFlexBoxLayout
SimpleFlexBoxLayoutPtr
 
typedef std::vector
< MultiTouch::TrackedObject
TrackedObjectArray
 An array of tracked objects.
 
typedef std::set
< MultiTouch::TrackedObject::Id
TrackedObjectIds
 Set of tracked object ids.
 
typedef std::map< TypeInfo,
QByteArray > 
TypeidMap
 
typedef Radiant::IntrusivePtr
< VideoControlWidget
VideoControlWidgetPtr
 Intrusive pointer to VideoControlWidget.
 
typedef std::shared_ptr
< VirtualHand
VirtualHandPtr
 Shared pointer type for virtual hand.
 
typedef std::weak_ptr
< VirtualHand
VirtualHandWeakPtr
 Weak pointer type for virtual hand.
 
typedef std::shared_ptr
< VirtualMarker
VirtualMarkerPtr
 Shared pointer type for virtual marker.
 
typedef std::weak_ptr
< VirtualMarker
VirtualMarkerWeakPtr
 Weak pointer type for virtual marker.
 
typedef std::shared_ptr
< VirtualObject
VirtualObjectPtr
 Shared pointer type for virtual object.
 
typedef std::weak_ptr
< VirtualObject
VirtualObjectWeakPtr
 Weak pointer type for virtual object.
 
typedef std::shared_ptr
< VirtualPen
VirtualPenPtr
 Shared pointer type for virtual pen.
 
typedef std::weak_ptr< VirtualPenVirtualPenWeakPtr
 Weak pointer type for virtual pen.
 
typedef ContainerT< WidgetPtrWidgetContainer
 Container for Widgets.
 
typedef Radiant::IntrusivePtr
< const Widget
WidgetCPtr
 Intrusive pointer to const Widget.
 
typedef FactoryT
< MultiWidgets::Widget,
Radiant::IntrusivePtr
WidgetFactory
 Factory for creating widgets.
 
typedef QList< Widget * > WidgetPath
 Path of widgets in the widget hierarchy.
 
typedef Radiant::IntrusivePtr
< Widget
WidgetPtr
 Intrusive pointer to Widget.
 

Enumerations

enum  AnimationStyle { ANIMATION_BOUNCY, ANIMATION_SMOOTH_BEGIN, ANIMATION_SMOOTH_END, ANIMATION_SMOOTH_BEGIN_AND_END }
 Standard animation styles. More...
 
enum  InterpolationType { STEP, LINEAR, CUBIC, USE_PREV_KEYFRAME_TYPE }
 Interpolation type used between keyframes. More...
 
enum  Pattern {
  PAT_LINES_CIRCLES, PAT_LINES_DIAG, PAT_COORDINATES, PAT_GRID_LINES,
  PAT_ORIENTED_LINES, PAT_CHECKER, PAT_GREY_STRIPES, PAT_RED_BLUE_GRADIENT,
  PAT_BLUE_GREEN_GRADIENT, PAT_GREEN_RED_GRADIENT, PAT_BLACK_CYAN_GRADIENT, PAT_BLACK_MAGENTA_GRADIENT,
  PAT_BLACK_YELLOW_GRADIENT, PAT_COLOR_STRIPES_HIGH_SATURATION, PAT_COLOR_STRIPES_LOW_SATURATION, PAT_HSV_CHART,
  PAT_CHARACTER, PAT_ALPHABET, PAT_SOLID_COLOR, PAT_MESSAGE,
  PAT_COUNT
}
 Test pattern.
 
enum  VirtualInputType { VIRTUAL_INPUT_HAND, VIRTUAL_INPUT_PEN, VIRTUAL_INPUT_MARKER, VIRTUAL_INPUT_FINGER }
 Type of the virtual input. More...
 

Functions

template<class AnimType , class ElemType >
std::shared_ptr< AnimatorT
< AnimType > > 
createAnimator (const QString &attribute, const ElemType &from, const ElemType &to, float time, Animator::Flags flags=Animator::NONE)
 Creates a linear animation between two key-frames. More...
 
OperatorPtr createOperator (const QString &id)
 Create an instance of an operator based on the unique identifier. More...
 
WidgetPtr createPlugin (const QString &id)
 Creates a plugin widget based on the unique identifier. More...
 
template<class AnimType , class ElemType >
std::shared_ptr< AnimType > createSmoothAnimator (Widget *w, const ElemType &from, const ElemType &to, float time, AnimationStyle style=ANIMATION_SMOOTH_BEGIN_AND_END, Animator::Flags flags=Animator::NONE)
 Create a smooth animation between two keypoints. More...
 
long eventAddListener (Valuable::Node *node, const QByteArray &eventId, v8::Persistent< v8::Function > func, Valuable::Node::ListenerType listenerType=Valuable::Node::DIRECT)
 
 INTRUSIVE_PTR_TYPEDEF (KeyboardWidget2)
 
 INTRUSIVE_PTR_TYPEDEF (ImageTileWidget)
 
 INTRUSIVE_PTR_TYPEDEF (BrowserFrameWidget)
 
 INTRUSIVE_PTR_TYPEDEF (BaseMediaWidget)
 
 INTRUSIVE_PTR_TYPEDEF (BrowserWidget)
 

Detailed Description

MultiWidgets library is a MultiTouch user interface widget library.

MultiWidgets provides a simple way to create multi-touch applications, without requiring expensive knowledge of of how to create the dynamics required by most multi-touch applications.

At the core of the library are widgets that are used to create interactive elements on the screen. By default widgets are rectangular, and they can be filled with any content. A developer can override a series of virtual functions to create completely custom widgets with any type of behavior. Widgets are set to a hierarchy, so that child Widgets are on top of the parent. The children do not need to be contained inside the parent, but can move freely about.

Enumeration Type Documentation

Standard animation styles.

These correspond to the smoothAnimation and similar functions in the Animator class.

Enumerator
ANIMATION_BOUNCY 

Bouncy animation.

ANIMATION_SMOOTH_BEGIN 

Animation with smooth beginning.

ANIMATION_SMOOTH_END 

Animation with smooth ending.

ANIMATION_SMOOTH_BEGIN_AND_END 

Animation with both smooth beginning and ending.

Interpolation type used between keyframes.

Enumerator
STEP 

Step function interpolation.

LINEAR 

Linear interpolation (ignores tangents)

CUBIC 

Cubic Bzier interpolation.

USE_PREV_KEYFRAME_TYPE 

Use the same interpolation as the previous keyframe.

Type of the virtual input.

Enumerator
VIRTUAL_INPUT_HAND 

Virtual hand.

VIRTUAL_INPUT_PEN 

Virtual pen.

VIRTUAL_INPUT_MARKER 

Virtual marker.

VIRTUAL_INPUT_FINGER 

Virtual finger.

Function Documentation

template<class AnimType , class ElemType >
std::shared_ptr<AnimatorT<AnimType> > MultiWidgets::createAnimator ( const QString &  attribute,
const ElemType &  from,
const ElemType &  to,
float  time,
Animator::Flags  flags = Animator::NONE 
)
inline

Creates a linear animation between two key-frames.

Parameters
attributeThe attribute that is to be animated
fromThe starting point for the animation
toThe end point for the animation
timeThe duration of the animation, in seconds
flagsThe flags for the animator
Returns
The created animation object
OperatorPtr MultiWidgets::createOperator ( const QString &  id)

Create an instance of an operator based on the unique identifier.

Parameters
idid of the operator to instanciate
Returns
instance of the operator
WidgetPtr MultiWidgets::createPlugin ( const QString &  id)

Creates a plugin widget based on the unique identifier.

Parameters
idid of the plugin to create
Returns
instance of the plugin or 0 if no plugin was found
Examples:
PluginExample.cpp, and VirtualInputExample.cpp.
template<class AnimType , class ElemType >
std::shared_ptr<AnimType> MultiWidgets::createSmoothAnimator ( Widget w,
const ElemType &  from,
const ElemType &  to,
float  time,
AnimationStyle  style = ANIMATION_SMOOTH_BEGIN_AND_END,
Animator::Flags  flags = Animator::NONE 
)
inline

Create a smooth animation between two keypoints.

This utility function provides a single function that can create animations of various types.

createSmoothAnimator<AnimatorScale, float>(mywidget, 0.0, 1.5, 0.5, ANIMATION_SMOOTH_END);
Parameters
wWidget that is going to be animated. The new animator is automatically added to the widgets operator list.
fromThe starting point for the animation
toThe end point for the animation
timeThe duration of the animation, in seconds
styleThe style of the animation
flagsThe flags for the animator
Returns
The created animation object. The object has already been added to the argument widget.