All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Pages
MultiWidgets::ItemFlowWidget Class Reference

A media-flow widget. More...

#include <MultiWidgets/ItemFlowWidget.hpp>

Inheritance diagram for MultiWidgets::ItemFlowWidget:
MultiWidgets::Widget MultiWidgets::ContainerT< T > Stylish::CSSBoxModel MultiWidgets::InputGrabListener Stylish::Styleable Valuable::Node Valuable::Attribute Patterns::NotCopyable Valuable::Serializable Extensions::TimeLine::PopupFlow

Classes

class  Item
 An item stored in the ItemFlowWidget container. More...
 
class  RotateItemsTowardsHandsOperator
 Automatic rotation of ItemFlowWidget contents towards the user. More...
 

Public Types

enum  Mode { MODE_FLOW, MODE_WHEEL }
 Operation mode. More...
 
- Public Types inherited from MultiWidgets::Widget
typedef ChildIteratorT
< Children::iterator, Widget
ChildIterator
 Iterator for children. More...
 
typedef
Valuable::AttributeContainer
< std::multimap< float,
ChildItem, std::greater< float > > > 
Children
 Container for child widgets.
 
typedef ChildIteratorT
< Children::reverse_iterator,
Widget
ChildReverseIterator
 Reverse iterator for children. More...
 
typedef ChildIteratorT
< Children::const_iterator,
Widget
ConstChildIterator
 Iterator for children. More...
 
typedef ChildIteratorT
< Children::const_reverse_iterator,
Widget
ConstChildReverseIterator
 Reverse iterator for children. More...
 
enum  DisplayMode { DISPLAY_NONE, DISPLAY_BLOCK, DISPLAY_FLEX }
 Determines how Widget is displayed,. More...
 
typedef TrackedObjectIds FingerIds
 Finger id container.
 
enum  Flags {
  FLAGS_NONE = 0, DEPTH_CHANGED = (1 << 0), RENDER_CULL_CHILDREN = (1 << 2), AUTO_RAISE_TO_TOP = (1 << 3),
  FORCE_RENDERING = (1 << 4), LOCK_DEPTH = (1 << 5), FLAGS_DEFAULT = AUTO_RAISE_TO_TOP
}
 Standard flags for the Widget. More...
 
typedef TrackedObjectIds HandIds
 Hand id container.
 
enum  InputFlags {
  INPUT_NONE = 0, INPUT_TRANSLATE_X = (1 << 1), INPUT_TRANSLATE_Y = (1 << 2), INPUT_TRANSLATE_XY = INPUT_TRANSLATE_X | INPUT_TRANSLATE_Y,
  INPUT_TRANSLATE = INPUT_TRANSLATE_XY, INPUT_ROTATION = (1 << 3), INPUT_SCALE = (1 << 4), INPUT_MOTION = INPUT_TRANSLATE_XY | INPUT_ROTATION | INPUT_SCALE,
  INPUT_SINGLE_TAPS = (1 << 5), INPUT_PASS_TO_CHILDREN = (1 << 6), INPUT_KEEP_GRABS = (1 << 7), INPUT_ROTATE_ABOUT_INTERACTION_CENTER = (1 << 8),
  INPUT_OPERATORS = (1<<9), INPUT_INCLUDE_EVERYTHING_INSIDE = (1 << 10), INPUT_DEFAULT = INPUT_MOTION | INPUT_SINGLE_TAPS | INPUT_PASS_TO_CHILDREN | INPUT_OPERATORS | INPUT_KEEP_GRABS
}
 Flags that control input processing. More...
 
typedef TrackedObjectIds MarkerIds
 Marker id container.
 
typedef
Valuable::AttributeContainer
< std::list< OperatorPtr > > 
Operators
 Container for operators.
 
typedef TrackedObjectIds PenIds
 Pen id container.
 
enum  TouchArea { TOUCH_CONTENT_BOX, TOUCH_PADDING_BOX, TOUCH_BORDER_BOX }
 Different areas in Widget that can be interacted with. More...
 

Valuable Attributes

float alpha-width = 0.F
 Distance from edge (in items) to apply alpha blending to. More...
 
float center-boost = 30.F
 Value to boost (enlarge) the center item in Wheel-mode. More...
 
Nimble::Vector2f centersizerel = Nimble::Vector2f(1.5, 1.5)
 Center item size relative to the height of the flow. More...
 
float content-rotation = 0.F
 Rotates content around their center point in radians. More...
 
bool cyclic = false
 Flag to indicate if the flow is cyclic and items should be repeated. More...
 
float drag-angle = 30.F
 Specifies the drag angle from the y-axis for which to send drag events. More...
 
float drag-distance = 0.F
 Specifies the drag distance (relative to item height) for which to send drag-item events. More...
 
int edge-items = 4
 Maximum number of inactive items shown on each side of the active item. More...
 
float fade = 0.F
 Distance from edge (in items) to apply fade to. Fades the widget color to black. More...
 
int index = 0.F
 Returns the currently shown item's index rounded to the nearest integer. More...
 
float layer-factor = 0.800000011F
 Offset to item edge z-values in Wheel-mode. More...
 
MultiWidgets::ItemFlowWidget::Mode mode = MODE_FLOW
 Mode of the item flow. More...
 
bool one-hand-move = false
 Flag that enables the widget to be moved, rotated and scaled with one hand. More...
 
float perspective = 0.800000011F
 Controls perspective effect for edge items in Flow-mode. More...
 
float radius-drop-factor = 10.F
 Factor for adjusting the radius of the ith item. More...
 
float radius-factor = 25.F
 Adjusts effective radius of the circle in Wheel-mode. More...
 
float scale-factor = 1.F
 Factor for adjusting the scale of the edge items in Flow-mode so items can get progressively smaller/bigger toward the edge Doesn't affect center item or first edge items. More...
 
float scroll-speed = 0.100000001F
 Speed at which items are scrolled. More...
 
float separation = 0.75F
 Spacing between adjacent items in Wheel-mode. More...
 
float spacing = 10.F
 Spacing between items in Flow-mode (in pixels). More...
 
bool stationary = false
 Flag that disables moving, rotating and scaling the widget. More...
 
- Valuable Attributes inherited from MultiWidgets::Widget
float angular-damping = 1.F
 Set the angular damping of the widget, which controls how fast the the angular velocity (omega) will slow down when thrown. More...
 
float damping = 0.995000004F
 The damping of the Widget controls how quickly the Widget will slow down and stop when thrown. More...
 
float depth = 0.F
 Depth of the widget. More...
 
Widget::DisplayMode display = Widget::DISPLAY_BLOCK
 Controls widget visibility. More...
 
float extra-input-capture-radius = 0.F
 Extra radius (in widget coordinates) used when input is processed. More...
 
Radiant::FlagsT< Widget::Flagsflags = Widget::FLAGS_DEFAULT
 Widget flags define common behaviour of widget. More...
 
Radiant::FlagsT
< Widget::InputFlags
input-flags = Widget::INPUT_DEFAULT
 Current input processing parameters which determine how this widget will react to input. More...
 
float maximum-tap-motion = 50.F
 Adjusts the limit for recognizing taps within this Widget. More...
 
float maximum-tap-time = 0.5F
 Adjusts the time limit for recognizing taps. More...
 
float omega = 0.F
 Angular velocity of the widget in radians per second. More...
 
float opacity = 1.F
 Transparency factor that gets recursively applied to any child widgets this widget has. More...
 
Nimble::Vector2 origin = Nimble::Vector2f(0, 0)
 Relative origin of the widget coordinates. More...
 
float rotation = 0.F
 Clockwise rotation of the Widget in radians, relative to the parent. More...
 
float scale = 1.F
 Scale of the Widget. More...
 
float scale-damping = 1.F
 Set the scale damping of the widget. More...
 
Widget::TouchArea touch-area = Widget::TOUCH_BORDER_BOX
 Controls the default touchable area of the widget. More...
 
Nimble::Vector2f velocity = Nimble::Vector2f(0.F, 0.F)
 Return the current velocity of the Widget. More...
 
- Valuable Attributes inherited from Stylish::CSSBoxModel
Nimble::Vector2 location = Nimble::Vector2f(0.F, 0.F)
 The location of this object in pixels in its parent's coordinate system. More...
 
Nimble::Frame4f margin = Nimble::Vector4(0, 0, 0, 0)
 Size of the margin. More...
 
Nimble::Frame4f padding = Nimble::Vector4(0, 0, 0, 0)
 Size of the padding. More...
 
Nimble::SizeF size = Nimble::SizeF(100.F, 100.F)
 Box size in pixels. More...
 
- Valuable Attributes inherited from Stylish::Styleable
QString css-class = ""
 Get the CSS classes of the Styleable as a space separated string. More...
 
QString css-id = ""
 Get the CSS id of the Styleable. More...
 
- Valuable Attributes inherited from Valuable::Node
Node::Uuid id = generateId()
 Returns the unique id. More...
 

Node Events

[OUT] drag-start (Nimble::Vector2f location, int index)
 Sent when an item widget is being dragged away from the flow widget. Location is in ItemFlow widget coordinates and index is the index of the dragged item. This event can be used to attach a callback for example to remove items from the flow by dragging them.
 
[OUT] new-center-item
 Sent when the center widget changes is changed due to interaction or index changes.
 
[IN] next
 Centers the item flow on the item to the right of the current center item.
 
[IN] previous
 Centers the item flow on the item to the left of the current center item.
 
[IN] select (int i)
 Centers the item flow on the item at index i.
 
[OUT] tap-item (Nimble::Vector2f location, int index)
 Sent when one of the flow items is tapped. Location is in widget coordinates and index specifies the items index in the flow.
 
- Node Events inherited from MultiWidgets::Widget
[OUT] child-added (Node::Uuid childId)
 Sent when child was added to the widget. See also addChild.
 
[OUT] child-removed (Node::Uuid childId)
 Sent when child was removed from the widget. See also removeChild.
 
[OUT] deleted (Node::Uuid widgetId)
 The widget has been deleted, emitted during widget destructor processing. The removed widget id is given as a parameter.
 
[IN] deserialize (Qstring filename)
 Deserializes Widget from given XML-file and adds it to the child of Widget. See also Valuable::Serializer::deserializeXML.
 
[OUT] finger-down (int64_t id)
 User has touched the widget with a finger and the finger was given an identifier id.
 
[OUT] finger-up (int64_t id)
 User has released a finger that was previously given an identifier id.
 
[OUT] hand-down (int64_t id)
 User has touched the widget with a hand and the hand was given an identifier id.
 
[OUT] hand-up (int64_t id)
 User has released a hand that was previously given an identifier id.
 
[OUT] has-interaction (bool interaction)
 Sent when interaction with Widget is started/enden. Passed value is true if interaction began and false if ended.
 
[OUT] hidden
 Sent when the display attribute changes to none.
 
[IN] hide
 Hide the widget. Corresponds to function hide.
 
[OUT] interaction-begin
 User has started interacting with the widget. Event is sent just after interactionBegin is called.
 
[OUT] interaction-end
 User has stopped interacting with the widget. Event is sent just after interactionEnd is called.
 
[IN] lower-to-bottom (bool recursive=false)
 Lowers Widget to bottom. Corresponds to function lowerToBottom.
 
[OUT] marker-down (int64_t id)
 User has touched the widget with a marker and the marker was given an identifier id.
 
[OUT] marker-up (int64_t id)
 User has released a marker that was previously given an identifier id.
 
[OUT] orphan-tree-changed (bool isOrphan)
 Widget was orphaned or added back to hierarchy.
 
[OUT] parent-changed
 The widget's parent was changed.
 
[OUT] pen-down (int64_t id)
 User has touched the widget with a pen and the pen was given an identifier id.
 
[OUT] pen-up (int64_t id)
 User has released a pen that was previously given an identifier id.
 
[IN] raise-to-top (bool recursive=false)
 Raises Widget to top. Corresponds to function raiseToTop.
 
[IN] remove-from-parent
 Removes the widget from its parent. Corresponds to function removeFromParent.
 
[IN] serialize (QString filename)
 Serializes this Widget to given XML-file. See also Valuable::Serializer::serializeXML.
 
[IN] show
 Show the widget. Corresponds to function show.
 
[OUT] shown
 Sent when the display attribute changes to block.
 
[OUT] single-tap (Nimble::Vector2f location)
 User has performed a single-tap gesture. Event is sent just after singleTap is called.
 
[IN] touch
 Sets the last interaction time. Corresponds to function touch.
 
[OUT] tracked-object-down (int64_t id)
 User has touched the widget with any tracked object and the object was given an identifier id.
 
[OUT] tracked-object-up (int64_t id)
 User has released a tracked object that was previously given an identifier id.
 
[OUT] visual-focus-change
 Sent after visualFocusChange is called.
 

Public Member Functions

void addItem (WidgetPtr w, int index)
 Add a new item to the Item list. More...
 
virtual void addItem (WidgetPtr w)
 Adds a widget to the end of the queue.
 
float alphaWidth () const
 Distance from edge (in items) to apply alpha blending to. More...
 
virtual Nimble::Rect boundingRect () const
 This function defines the outer bounds of the item as a rectangle in widget coordinates. More...
 
float centerBoost () const
 Value to boost (enlarge) the center item in Wheel-mode. More...
 
Nimble::Vector2f centerSizeRelative () const
 Center item size relative to the height of the flow. More...
 
void clear ()
 Removes all items from the container.
 
float contentRotation () const
 Rotates content around their center point in radians. More...
 
bool cyclic () const
 Flag to indicate if the flow is cyclic and items should be repeated.
 
float drag () const
 Specifies the drag distance (relative to item height) for which to send drag-item events. More...
 
float dragAngle () const
 Specifies the drag angle from the y-axis for which to send drag events. More...
 
int edgeItems () const
 Maximum number of inactive items shown on each side of the active item. More...
 
virtual void eventProcess (const QByteArray &type, Radiant::BinaryData &data)
 Entry point for incoming events Class specific behaviour to events is implemented in this function. More...
 
float fade () const
 Distance from edge (in items) to apply fade to. Fades the widget color to black.
 
int index () const
 Returns the currently shown item's index rounded to the nearest integer.
 
float indexF () const
 The index of the central widget, as a floating point number. More...
 
virtual WidgetPtr item (size_t index) const
 Return the item at given position. More...
 
virtual size_t itemCount () const
 The number of widgets in the ItemFlowWidget.
 
 ItemFlowWidget (WidgetPtr parent=nullptr)
 Constructs a new ItemFlowWidget widget. More...
 
float layerFactor () const
 Offset to item edge z-values in Wheel-mode. More...
 
Mode mode () const
 Mode of the item flow. More...
 
bool oneHandMove () const
 Flag that enables the widget to be moved, rotated and scaled with one hand. More...
 
float perspective () const
 Controls perspective effect for edge items in Flow-mode.
 
float radiusDropFactor () const
 Factor for adjusting the radius of the ith item. More...
 
float radiusFactor () const
 Adjusts effective radius of the circle in Wheel-mode. More...
 
bool removeItem (WidgetPtr w)
 Removes a widget from the flow. More...
 
void reset (int index)
 Displays the given item by index and stops any scrolling.
 
float scaleFactor () const
 Factor for adjusting the scale of the edge items in Flow-mode so items can get progressively smaller/bigger toward the edge Doesn't affect center item or first edge items. More...
 
float scrollSpeed () const
 Speed at which items are scrolled. More...
 
float separation () const
 Spacing between adjacent items in Wheel-mode. More...
 
void setAlphaWidth (float alphaWidth)
 Setter for attribute alpha-width. More...
 
void setCenterBoost (float centerBoost)
 Setter for attribute center-boost. More...
 
void setCenterSizeRelative (Nimble::Vector2f centerSizeRelative)
 Setter for attribute centersizerel. More...
 
void setContentRotation (float contentRotation)
 Setter for attribute content-rotation. More...
 
void setCyclic (bool cyclic)
 Setter for attribute cyclic. More...
 
void setDrag (float drag)
 Setter for attribute drag-distance. More...
 
void setDragAngle (float dragAngle)
 Setter for attribute drag-angle. More...
 
void setEdgeItems (int edgeItems)
 Setter for attribute edge-items. More...
 
void setFade (float fade)
 Setter for attribute fade. More...
 
void setIndex (int index)
 Sets the item flow to show the item at index.
 
void setLayerFactor (float layerFactor)
 Setter for attribute layer-factor. More...
 
void setMode (Mode m)
 Setter for attribute mode. More...
 
void setOneHandMove (bool use)
 Setter for attribute one-hand-move. More...
 
void setPerspective (float perspective)
 Setter for attribute perspective. More...
 
void setRadiusDropFactor (float radiusDropFactor)
 Setter for attribute radius-drop-factor. More...
 
void setRadiusFactor (float radiusFactor)
 Setter for attribute radius-factor. More...
 
void setScaleFactor (float scaleFactor)
 Setter for attribute scale-factor. More...
 
void setScrollSpeed (float scrollSpeed)
 Setter for attribute scroll-speed. More...
 
void setSeparation (float separationRelative)
 Setter for attribute separation. More...
 
void setSpacing (float spacing)
 Setter for attribute spacing. More...
 
void setStationary (bool stationary)
 Setter for attribute stationary. More...
 
float spacing () const
 Spacing between items in Flow-mode (in pixels). More...
 
bool stationary () const
 Flag that disables moving, rotating and scaling the widget.
 
void stopAllVideos ()
 Stops all the of videos that are playing.
 
WidgetPtr topWidget () const
 Gets the currently active widget. More...
 
Nimble::Rectf topWidgetBounds () const
 Returns the bounds of the currently active content item.
 
virtual void update (const MultiWidgets::FrameInfo &frameInfo)
 Updates the layout of the flow.
 
WidgetPtr widget (int index) const
 Get the ith widget in the flow. More...
 
int widgetIndex (WidgetCPtr w) const
 Returns the index of widget, or -1 if widget is not in the item flow.
 
- Public Member Functions inherited from MultiWidgets::Widget
virtual void addChild (const WidgetPtr &w)
 Add a child to this widget. More...
 
void addOperator (OperatorPtr op)
 Add an operator to the Widget. More...
 
bool allowRotation () const
 Check whether the widget can be rotated. More...
 
float angularDamping () const
 Set the angular damping of the widget, which controls how fast the the angular velocity (omega) will slow down when thrown. More...
 
float angularVelocity () const
 Angular velocity of the widget in radians per second. More...
 
Animationanimation ()
 Get the animation controller for this widget. More...
 
const Animationanimation () const
 Get the animation controller for this widget. More...
 
bool autoRaiseToTop () const
 Returns whether the widget is automatically raised to top. More...
 
bool checkFlags (Radiant::FlagsT< Flags > flags) const
 Checks the given flags from flags -attribute. More...
 
bool checkInputFlags (Radiant::FlagsT< InputFlags > flags) const
 Checks the given input flags from input-flags -attribute. More...
 
WidgetPtr child (size_t i)
 Return the ith child widget. More...
 
ChildIterator childBegin ()
 Returns an iterator to the first child. More...
 
ConstChildIterator childBegin () const
 Returns an iterator to the first child. More...
 
ChildIterator childEnd ()
 Returns an iterator to the end of the children. More...
 
ConstChildIterator childEnd () const
 Returns an iterator to the end of the children. More...
 
Nimble::Rect childrenRect () const
 Returns the bounding box of this widget's children in widget coordinates. More...
 
ChildReverseIterator childReverseBegin ()
 Returns an iterator addressing the first child element in reverse order. More...
 
ConstChildReverseIterator childReverseBegin () const
 Returns an iterator addressing the first child element in reverse order. More...
 
ChildReverseIterator childReverseEnd ()
 Returns an iterator addressing the next item past the last child in a reversed order. More...
 
ConstChildReverseIterator childReverseEnd () const
 Returns an iterator addressing the next item past the last child in a reversed order. More...
 
void clearFlags (Radiant::FlagsT< Flags > flags)
 Sets the given widget flags to zero in flags. More...
 
void clearInputFlags (Radiant::FlagsT< InputFlags > flags)
 Sets the given widget input flags to zero in input-flags. More...
 
WidgetPtr clone () const
 Create a clone of the widget. More...
 
bool contains (const Widget &w) const
 Checks whether the given widget is fully inside the area of this widget. More...
 
float damping () const
 The damping of the Widget controls how quickly the Widget will slow down and stop when thrown. More...
 
float depth () const
 Depth of the widget. More...
 
virtual bool deserialize (const Valuable::ArchiveElement &element)
 Deserializes the widget's attributes and its descendants from given archive element. More...
 
DisplayMode display () const
 Controls widget visibility. More...
 
void dropAllGrabs (GrabManager &input)
 Drops all the grabs that this Widget has. More...
 
virtual void dumpInfo (FILE *f=nullptr, int indent=0)
 Dump information about this widget to the given file. More...
 
float extraInputCaptureRadius () const
 Extra radius (in widget coordinates) used when input is processed. More...
 
template<typename W = Widget>
QList< Radiant::IntrusivePtr< W > > find (const QString &cssSelector)
 Find all descendant widgets that match the given CSS selector and can be casted to given type. More...
 
template<>
QList< WidgetPtrfind (const QString &cssSelector)
 
virtual void fingerDown (MultiTouch::Finger f, MultiWidgets::GrabManager &gm)
 Called when a new finger is grabbed by the widget. More...
 
virtual void fingerUp (MultiTouch::Finger f, MultiWidgets::GrabManager &gm)
 Called when a finger is ungrabbed by the widget When this function is called the finger is already ubgrabbed by the widget and it does not lie anymore in array returned by grabbedFingers This function is meant to be overriden: the default implementation is empty. More...
 
Radiant::FlagsT< Flagsflags () const
 Widget flags define common behaviour of widget. More...
 
bool forceRendering () const
 See whether forced rendering is enabled. More...
 
OperatorPtr getOperator (size_t i)
 Returns the ith operator. More...
 
template<class T >
QList< std::shared_ptr< T > > getOperatorsOfType ()
 Returns all the operator pointers that contain operator of the given type. More...
 
FingerIds grabbedFingers () const
 Returns all grabbed fingers. More...
 
HandIds grabbedHands () const
 Returns a list of hand ids that are grabbed by this widget. More...
 
MarkerIds grabbedMarkers () const
 Returns a list of marker ids that are grabbed by this widget. More...
 
PenIds grabbedPens () const
 Returns a list of pen ids that are grabbed by this widget. More...
 
TrackedObjectIds grabbedTrackedObjects () const
 Shortcut for InputGrabber::grabbedObjects. More...
 
virtual void handDown (MultiTouch::Hand h, MultiWidgets::GrabManager &gm)
 Called when a hand is grabbed by the widget This function is meant to be overriden: the default implementation is empty. More...
 
virtual void handUp (MultiTouch::Hand h, MultiWidgets::GrabManager &gm)
 Called when a hand is ungrabbed by the widget This function is meant to be overriden: the default implementation is empty. More...
 
virtual bool hasActiveOperators (bool recursive)
 Returns true if the Widget currently has active operators. More...
 
bool hasChild (const WidgetPtr &w, bool recursive=false)
 Returns true if the widget has w as a child or descendant. More...
 
virtual bool hasInteraction (Radiant::FlagsT< MultiTouch::TrackedObjectType > types=MultiTouch::TYPE_ALL, bool recursive=false) const
 Check if the widget is currently being interacted with. More...
 
bool hasOperator (OperatorPtr op) const
 Checks if the given operator is attached to the widget. More...
 
template<typename T >
bool hasOperatorType () const
 Checks if the given operator type is present in the operators. More...
 
virtual float heightForWidth (float width) const
 Returns the height of the widget for the given width while maintaining aspect ratio. More...
 
virtual void hide ()
 Hide the widget. More...
 
virtual void input (MultiWidgets::GrabManager &gm, float dt) final
 Send input to a Widget. More...
 
Radiant::FlagsT< InputFlagsinputFlags () const
 Current input processing parameters which determine how this widget will react to input. More...
 
InputGrabberinputGrabber ()
 Get the input grabber for the widget. More...
 
const InputGrabberinputGrabber () const
 Get the input grabber for the widget. More...
 
bool inputMotion () const
 Check if this widget has any input motion flag enabled. More...
 
bool inputTaps () const
 Check if widget listens single-tap events. More...
 
Radiant::TimeStamp interactionBegan () const
 Returns the time when the last interaction started on the widget. More...
 
Nimble::Vector2 interactionCenter () const
 Current or previous interaction center in widget coordinates. More...
 
bool intersects (const Widget &w) const
 Check if this widget intersects referenced widget. More...
 
virtual Nimble::SizeF intrinsicSize () const
 The preferred size of the Widget without scaling. More...
 
bool isDisplayed () const
 Checks whether the value of display is not none. More...
 
bool isFixed () const
 Returns true if the widget has been set to immovable. More...
 
bool isGrabbed (MultiTouch::TrackedObject::Id id) const
 Checks if a given object is grabbed by this widget. More...
 
bool isInOrphanTree () const
 Is this widget a part of a subtree that is not connected to non-orphan widget.
 
virtual bool isInside (Nimble::Vector2f v) const
 Test if the given point is inside the Widget. More...
 
virtual bool isReady (bool recursive) const final
 Recursive version of isReady. More...
 
virtual bool isReady () const
 Is the widget ready to be displayed on screen. More...
 
bool isVisible () const
 Checks whether the value of display is not none. More...
 
virtual Radiant::TimeStamp lastInteractionTime (bool recursive=false) const
 Timestamp of the last interaction on this Widget. More...
 
void lower (int levels, bool force=false)
 Lower the widget below its siblings. More...
 
void lowerToBottom (bool recursive=false)
 Brings this Widget behind its siblings and its parent If the lock-depth flag has been raised, then this widget will not change its depth and only the recursive functionality will take effect. More...
 
Nimble::Vector2f mapFromParent (const Nimble::Vector2f &p) const
 Transform a point from parent coordinates to Widget coordinates. More...
 
Nimble::Vector2f mapFromScene (const Nimble::Vector2f &p) const
 Transform a point from scene coordinates to Widget coordinates. More...
 
Nimble::Vector2f mapToParent (const Nimble::Vector2f &p) const
 Transform a point from Widget coordinates to parent coordinates. More...
 
Nimble::Vector2f mapToParent (Widget &w, const Nimble::Vector2f &p) const
 Transform a point from Widget coordinates to its ancestor coordinates. More...
 
Nimble::Vector2f mapToScene (const Nimble::Vector2f &p) const
 Transform a point from Widget coordinates to scene coordinates. More...
 
virtual void markerDown (MultiTouch::Marker m, MultiWidgets::GrabManager &gm)
 Called when a new marker is grabbed by the widget. More...
 
virtual void markerUp (MultiTouch::Marker m, MultiWidgets::GrabManager &gm)
 Called when a marker is ungrabbed by the widget. More...
 
float maximumTapMotion () const
 Adjusts the limit for recognizing taps within this Widget. More...
 
float maximumTapTime () const
 Adjusts the time limit for recognizing taps. More...
 
size_t numChildren () const
 Returns the number of child Widgets. More...
 
float opacity () const
 Transparency factor that gets recursively applied to any child widgets this widget has. More...
 
size_t operatorCount () const
 Returns the number of operators applied to this Widget. More...
 
const Operatorsoperators () const
 
Nimble::Vector2 origin () const
 Relative origin of the widget coordinates. More...
 
WidgetPtr parent () const
 Get a pointer to the Widget's parent. More...
 
virtual void parentChanged (WidgetPtr oldParent)
 This is called after the parent has changed. More...
 
virtual void penDown (MultiTouch::Pen p, MultiWidgets::GrabManager &gm)
 Called when a pen is grabbed by the widget. More...
 
virtual void penUp (MultiTouch::Pen p, MultiWidgets::GrabManager &gm)
 Called when a pen is ungrabbed by the widget This function is meant to be overriden: the default implementation is empty. More...
 
virtual void processInput (MultiWidgets::GrabManager &gm, float dt)
 Do extra input processing. More...
 
void raise (int levels, bool force=false)
 Raise the widget above its sibings. More...
 
void raiseFlags (Radiant::FlagsT< Flags > flags)
 Raises the given widget flags. More...
 
void raiseInputFlags (Radiant::FlagsT< InputFlags > flags)
 Raises the given widget input flags. More...
 
void raiseToTop (bool recursive=false)
 Brings this Widget to the front of its siblings and its parent. More...
 
virtual void removeChild (const WidgetPtr &w)
 Removes the child from this widget's child list if present. More...
 
void removeChildren ()
 Remove all child widgets from the widget.
 
virtual void removeFromParent ()
 Removes this widget from its parent (if any).
 
bool removeOperator (OperatorPtr op)
 Removes the given operator from the widget. More...
 
template<class T >
void removeOperatorType ()
 Removes all operators of given type. More...
 
virtual void render (Luminous::RenderContext &r) const final
 Render the Widget and recursively its children This function calls the rest of the rendering functions that can be overridden to specialize parts of the Widget rendering. More...
 
void reparent (WidgetPtr newParent)
 Change the widget parent to a new one while maintaining the position of widget in the scene coordinates. More...
 
float rotation () const
 Clockwise rotation of the Widget in radians, relative to the parent. More...
 
float rotationTo (const Widget &ancestor) const
 Returns the rotation relative to the given ancestor of widget. More...
 
float scale () const
 Scale of the Widget. More...
 
float scaleDamping () const
 Set the scale damping of the widget. More...
 
Nimble::Rectangle sceneGeometry () const
 Return the Widget rectangle in scene coordinates. More...
 
float sceneRotation () const
 Return the rotation of the Widget relative to the scene. More...
 
float sceneScale () const
 Return the scale of the widget relative to the scene. More...
 
Nimble::Matrix3 sceneTransform () const
 Returns the Widget's scene transformation matrix. More...
 
void setAllowRotation (bool allowRotation)
 If allowed, the Widget can be rotated. More...
 
void setAngularDamping (float angularDamping)
 Setter for attribute angular-damping. More...
 
void setAngularVelocity (float angularVelocity)
 Setter for attribute omega. More...
 
void setAutoRaiseToTop (bool v)
 Set automatic raise-to-top behaviour. More...
 
virtual void setCenterLocation (Nimble::Vector2 location)
 Sets the location of the widget center in parent coordinates The same effect is achieved by setting origin to (0.5, 0.5) and then modifying the value of location. More...
 
void setDamping (float damping)
 Setter for attribute damping. More...
 
void setDepth (float z)
 
void setDisplay (DisplayMode mode)
 Setter for attribute display. More...
 
void setExtraInputCaptureRadius (float radius)
 Setter for attribute extra-input-capture-radius. More...
 
void setFixed ()
 If set to fixed, the widget can not be moved but it will still get input. More...
 
void setFlags (Radiant::FlagsT< Flags > flags)
 Setter for attribute flags. More...
 
void setForceRendering (bool v)
 Shortcut for raising or lowering force-rendering-flag in widget's flags. More...
 
void setInOrphanTree (bool value)
 Sets this widget and all its descendants to orphan tree.
 
void setInputFlags (Radiant::FlagsT< InputFlags > flags)
 Setter for attribute input-flags. More...
 
void setInputTransparent ()
 This function makes the widget pass all the input data to its children and operators if input-operators flag has been raised in input-flags. More...
 
void setMaximumTapMotion (float maxMotionPixels)
 Setter for attribute maximum-tap-motion. More...
 
void setMaximumTapTime (float maxTapTimeSeconds)
 Setter for attribute maximum-tap-time. More...
 
void setOpacity (float opacity)
 Setter for attribute opacity. More...
 
void setOrigin (const Nimble::Vector2 &origin)
 Setter for attribute origin. More...
 
void setPointLocation (Nimble::Vector2 location, Nimble::Vector2 pointOnWidget)
 Sets the location of a point on the widget widget center in parent coordinates of location. More...
 
void setRelativePointLocation (Nimble::Vector2 location, Nimble::Vector2 pointOnWidgetRelative)
 Sets the location of a point on the widget widget center in parent coordinates of location. More...
 
void setRotation (float r)
 Setter for attribute rotation. More...
 
void setRotationAboutCenter (float r)
 Set the rotation of the widget about its center. More...
 
void setRotationAboutPivot (float r, Nimble::Vector2 pivot)
 Set the rotation of the widget about a point relative to the widget size Will modify the values of rotation and location. More...
 
void setRotationAboutPivotAbsolute (float r, Nimble::Vector2 pivot)
 Set the rotation of the widget about an arbitrary point in widget coordinates. More...
 
void setRotationAboutScenePoint (float r, Nimble::Vector2 scenePt)
 Set the rotation of the widget about an arbitrary point in scene coordinates. More...
 
virtual void setScale (float s)
 Setter for attribute scale. More...
 
void setScaleAboutCenter (float s)
 Set the scale of the widget about its center. More...
 
void setScaleAboutPivotAbsolute (float s, Nimble::Vector2 pivot)
 Set the scale of the widget about an arbitrary point in widget coordinates. More...
 
void setScaleDamping (float scaleDamping)
 Setter for attribute scale-damping. More...
 
virtual bool setStyle (const Stylish::Style &style)
 Sets given style for the widget. More...
 
void setTouchArea (TouchArea area)
 Setter for attribute touch-area. More...
 
void setVelocity (const Nimble::Vector2f &v)
 Set the velocity of the Widget in pixels per second. More...
 
void setVelocity (float xvel, float yvel)
 Set the velocity of the Widget in pixels per second. More...
 
void setVisible (bool v)
 Hides or shows the widget. More...
 
virtual bool shouldGrab (GrabManager &gm, MultiTouch::TrackedObject obj) const
 Should this widget grab the given object during the input. More...
 
virtual void show ()
 Show the widget. More...
 
void stopMotion ()
 Stops all motion of the widget. More...
 
const
MultiWidgets::TrackedObjectIds
tapIds () const
 Returns a set of ids of fingers possibly tapping the widget. More...
 
bool tapIsPossible () const
 Check if the currently ongoing gesture (if any) is possibly a tap. More...
 
unsigned tapObjectCount () const
 Query the number of possible tap objects. More...
 
WidgetPtr topParent () const
 Return a pointer to the Widget's top-level parent. More...
 
void touch ()
 Set the last interaction time to current time. More...
 
TouchArea touchArea () const
 Controls the default touchable area of the widget. More...
 
virtual void trackedObjectDown (MultiTouch::TrackedObject o, MultiWidgets::GrabManager &gm)
 Called when a new tracked object is grabbed by the widget. More...
 
virtual void trackedObjectUp (MultiTouch::TrackedObject o, MultiWidgets::GrabManager &gm)
 Called when a new tracked object is ungrabbed by the widget This function is meant to be overriden: the default implementation is empty. More...
 
size_t transferGrabs (WidgetPtr target, GrabManager &gm, Radiant::FlagsT< MultiTouch::TrackedObjectType > types, bool recursive=false)
 Transfer grabs from this widget to another. More...
 
const Nimble::Matrix3transform () const
 Return this Widget's transformation matrix relative to its parent. More...
 
const Nimble::Matrix4ftransform3D () const
 Return this Widget's 3D transformation matrix relative to its parent. More...
 
virtual QByteArray type () const
 This returns the plugin name of this Widget. More...
 
const Nimble::Vector2velocity () const
 Return the current velocity of the Widget. More...
 
virtual void visualFocusChange (bool gotFocus)
 Call-back function for informing the Widget of a change in users' visual focus This function is called by the application as deemed fit. More...
 
 Widget (WidgetPtr parent=nullptr)
 Construct a new Widget. More...
 
virtual ~Widget ()
 Destroys this Widget and frees references to all its children. More...
 
- Public Member Functions inherited from Stylish::CSSBoxModel
AttributeBackgroundbackground ()
 
const AttributeBackgroundbackground () const
  More...
 
Nimble::Rectf backgroundBox () const
 Background painting area, depends on background-clip value. More...
 
Radiant::Color backgroundColor () const
 
AttributeBorderborder ()
 
const AttributeBorderborder () const
  More...
 
Stylish::Border borderBottom () const
 Gets the bottom border that contains the width, style and color. More...
 
Nimble::Rectf borderBox () const
 Border box, rectangle that includes content, padding and border. More...
 
Nimble::Frame4f borderFrame () const
 Size of the border. More...
 
Stylish::Border borderLeft () const
 Gets the left border that contains the width, style and color. More...
 
Stylish::Border borderRight () const
 Gets the right border that contains the width, style and color. More...
 
Stylish::Border borderTop () const
 Gets the top border that contains the width, style and color. More...
 
float bottom () const
 Get the y coordinate of the bottom of the box.
 
Nimble::SizeF boxSize () const
 Calculates total amount of screen estate taken by the box by adding size, padding, border and margin together. More...
 
Nimble::Rectf contentBox () const
 Content box, rectangle that includes only the content area. More...
 
float height () const
 Height of this box in pixels.
 
Nimble::Vector2 location () const
 The location of this object in pixels in its parent's coordinate system. More...
 
Nimble::Frame4f margin () const
 Size of the margin. More...
 
Nimble::Rectf marginBox () const
 Margin box, rectangle that includes content, padding, border and margin. More...
 
Nimble::Frame4f padding () const
 Size of the padding. More...
 
Nimble::Rectf paddingBox () const
 Padding box, rectangle that includes content and padding but excludes border area. More...
 
void setBackgroundColor (Radiant::Color color)
 
void setBackgroundColor (float red, float green, float blue, float alpha)
 
virtual void setBorderColor (const Radiant::Color &c)
 Sets the color for all borders.
 
void setBorderColor (float r, float g, float b, float a)
 
virtual void setBorderFrame (const Nimble::Frame4f &border)
 Sets the width for all borders. More...
 
void setBorderStyle (Border::Style style)
 Sets the style for all borders.
 
void setBorderWidth (float width)
 Sets the width for all borders.
 
void setHeight (float height, ValueUnit unit=VU_PXS)
 Set the height of the box.
 
void setLocation (Nimble::Vector2 location)
 Setter for attribute location. More...
 
void setLocation (Nimble::Vector2 location, ValueUnit unit)
 Set the location of this object. More...
 
void setLocation (float x, float y)
 Set the location of this object. More...
 
void setLocation (float x, float y, ValueUnit unit)
 Set the location of this object. More...
 
void setMargin (const Nimble::Frame4f &margin)
 Setter for attribute margin. More...
 
void setMargin (float one_side_margin)
 Set the size of the margin for all sides to be equal.
 
virtual void setPadding (const Nimble::Frame4f &padding)
 Setter for attribute padding. More...
 
void setPadding (float oneSidePadding)
 Set the size of the padding for all sides to be equal. More...
 
void setSize (Nimble::SizeF size)
 Setter for attribute size. More...
 
void setSize (float width, float height, ValueUnit unit=VU_PXS)
 Set box size. More...
 
void setSize (Nimble::SizeF size, ValueUnit widthUnit, ValueUnit heightUnit)
 Set box size. More...
 
void setWidth (float width, ValueUnit unit=VU_PXS)
 Set the width of the box.
 
void setX (float x, ValueUnit unit=VU_PXS)
 Set the x component of the location of this box.
 
void setY (float y, ValueUnit unit=VU_PXS)
 Set the y component of the location of this box.
 
Nimble::SizeF size () const
 Box size in pixels. More...
 
float width () const
 Width of this box in pixels.
 
float x () const
 Get the x component of the location of this box in pixels.
 
float y () const
 Get the y component of the location of this box in pixels.
 
- Public Member Functions inherited from Stylish::Styleable
void addCSSClass (const QString &s)
 Adds the Styleable to CSS class s. More...
 
void addCSSClasses (const QStringList &classes)
 Adds the Styleable to given CSS classes. More...
 
QString attributeSource (const QByteArray &name) const
 Gets CSS declaration source location based on the attribute name For example if this object has "size" attribute that is set from a CSS file, attributeSource("size") would return "filename.css:line". More...
 
const Style & childStyle () const
 Cached style that should be applied to all children of this object.
 
const Radiant::ArraySet
< QByteArray > & 
cssClasses () const
 Get the CSS classes of the Styleable in lowercase.
 
const QString & cssClassStr () const
 Get the CSS classes of the Styleable as a space separated string. More...
 
QString cssId () const
 Get the CSS id of the Styleable. More...
 
const QByteArray & cssType () const
 Get the CSS type of the Styleable.
 
bool hasCSSClass (const QByteArray &s) const
 Does the Styleable belong to given CSS class. More...
 
bool match (const SimpleSelector &ss, int *specificityOut=nullptr) const
 Checks if SimpleSelector matches this object. More...
 
bool pseudoClass (const QByteArray &name) const
 Query if the Styleable has pseudo class called name.
 
void removeCSSClass (const QString &s)
 Remove the Styleable from CSS class s. More...
 
void setCSSClasses (const QString &s)
 Set the CSS classes as a space separated list You almost always want to use addCSSClass instead of this one. More...
 
void setCSSId (const QString &s)
 Set the CSS id of the Styleable. More...
 
void setCSSType (const QByteArray &s)
 Set the CSS type of the Styleable.
 
virtual bool setProperty (Valuable::Attribute &var, const Valuable::StyleValue &value, Layer layer)
 Converts the given Stylish::Value to Valuable::Attribute.
 
void setPseudoClass (const QByteArray &name, bool state)
 Disable or enable pseudo class.
 
virtual bool setStyle (const Style &style)
 Applies a style to the object. More...
 
QString simpleSelector (bool includePseudoClasses=true) const
 Returns a CSS simple selector that matches this Styleable.
 
const Style & style () const
 Returns the style for this object.
 
 Styleable (const QByteArray &name="Styleable")
 Constructor for Styleable. More...
 
- Public Member Functions inherited from Valuable::Node
bool acceptsEvent (const QByteArray &messageId) const
 Returns true if this object accepts event 'id' in eventProcess.
 
bool addAttribute (Attribute *const attribute)
 Adds a new Attribute to the list of attribute objects. More...
 
bool addAttribute (const QByteArray &name, Attribute *const attribute)
 Adds a new Attribute to the list of attribute objects.
 
template<typename Widget >
bool addAttribute (const QByteArray &name, const Radiant::IntrusivePtr< Widget > &attribute)
 Adds a new Attribute to the list of attribute objects. More...
 
long addListener (const QByteArray &attribute, v8::Persistent< v8::Function > func, int role=Attribute::CHANGE_ROLE)
 Add a JavaScript attribute listener to attribute belonging this Node. More...
 
virtual Attributeattribute (const QByteArray &name) const
 Gets an Attribute with the given name. More...
 
template<typename T >
AttributeT< T > * attribute (const QByteArray &name) const
 Gets an Attribute with the given name. More...
 
const containerattributes () const
 
void clearValues (Layer layer)
 Clears all Attribute values of the given layer. More...
 
void debugDump ()
 Prints the contents of this Attribute to the terminal.
 
void eventAddDeprecated (const QByteArray &deprecatedId, const QByteArray &newId)
 Register a deprecated event that is automatically converted to new event id and a warning is issued when it is used. More...
 
void eventAddIn (const QByteArray &messageId)
 Registers a new event that this class handles in eventProcess.
 
template<typename Widget >
long eventAddListener (const QByteArray &eventId, const QByteArray &messageId, Radiant::IntrusivePtr< Widget > &listener, ListenerType listenerType=DIRECT, const Radiant::BinaryData *defaultData=0)
 Add an event listener to this object. More...
 
long eventAddListener (const QByteArray &eventId, const QByteArray &messageId, Valuable::Node *listener, ListenerType listenerType=DIRECT, const Radiant::BinaryData *defaultData=0)
 Add an event listener to this object. More...
 
long eventAddListener (const QByteArray &eventId, ListenerFuncVoid func, ListenerType listenerType=DIRECT)
 Add an event listener to this object. More...
 
long eventAddListener (const QByteArray &eventId, Node *dstNode, ListenerFuncVoid func, ListenerType listenerType=DIRECT)
 
long eventAddListenerBd (const QByteArray &eventId, Node *dstNode, ListenerFuncBd func, ListenerType listenerType=DIRECT)
 
long eventAddListenerBd (const QByteArray &eventId, ListenerFuncBd func, ListenerType listenerType=DIRECT)
 Add an event listener to this object. More...
 
void eventAddOut (const QByteArray &eventId)
 Registers a new event this class can send with eventSend.
 
const QSet< QByteArray > & eventInNames () const
 Returns set of all registered IN events.
 
unsigned eventListenerCount () const
 Returns the number of event listeners.
 
const QSet< QByteArray > & eventOutNames () const
 Returns set of all registered OUT events.
 
void eventPassingEnable (bool enable)
 Control whether events are passed.
 
template<typename Widget >
int eventRemoveListener (Radiant::IntrusivePtr< Widget > &listener)
 Removes all events from this object to given listener. More...
 
template<typename Widget >
int eventRemoveListener (const QByteArray &eventId=QByteArray(), const QByteArray &messageId=QByteArray(), Radiant::IntrusivePtr< Widget > &listener=Radiant::IntrusivePtr< Widget >())
 Removes events from this object that match the parameters. More...
 
int eventRemoveListener (const QByteArray &eventId=QByteArray(), const QByteArray &messageId=QByteArray(), Valuable::Node *listener=0)
 Removes event listeners from this object. More...
 
int eventRemoveListener (Valuable::Node *listener)
 Removes all events from this object to given listener. More...
 
bool eventRemoveListener (long listenerId)
 Removes event listener with given id. More...
 
void eventSend (const QByteArray &eventId, Radiant::BinaryData &bd)
 Sends an event and bd to all listeners on this eventId.
 
void eventSend (const QByteArray &eventId)
 Sends an event to all listeners on this eventId.
 
template<typename P1 >
void eventSend (const QByteArray &eventId, const P1 &p1)
 Sends an event to all listeners on this eventId. More...
 
template<typename P1 , typename P2 >
void eventSend (const QByteArray &eventId, const P1 &p1, const P2 &p2)
 Sends an event to all listeners on this eventId. More...
 
template<typename P1 , typename P2 , typename P3 >
void eventSend (const QByteArray &eventId, const P1 &p1, const P2 &p2, const P3 &p3)
 Sends an event to all listeners on this eventId. More...
 
template<typename P1 , typename P2 , typename P3 , typename P4 >
void eventSend (const QByteArray &eventId, const P1 &p1, const P2 &p2, const P3 &p3, const P4 &p4)
 Sends an event to all listeners on this eventId. More...
 
template<typename P1 , typename P2 , typename P3 , typename P4 , typename P5 >
void eventSend (const QByteArray &eventId, const P1 &p1, const P2 &p2, const P3 &p3, const P4 &p4, const P5 &p5)
 Sends an event to all listeners on this eventId. More...
 
unsigned eventSourceCount () const
 Returns the number of event sources.
 
Uuid id () const
 Returns the unique id.
 
bool isBeingDestroyed () const
 Returns true if we are about to delete this object. More...
 
bool loadFromFileXML (const QString &filename)
 Reads this object (and its children) from an XML file.
 
bool loadFromMemoryXML (const QByteArray &buffer)
 Reads this object (and its children) from a memory buffer.
 
 Node (Node *host, const QByteArray &name="", bool transit=false)
 Constructs a new Node and adds it under the given host. More...
 
 Node (Node &&node)
 Moves a node, including all its attributes, events etc. More...
 
Nodeoperator= (Node &&node)
 Moves a node, replacing this. More...
 
virtual bool readElement (const ArchiveElement &element)
 Handles a serialization element that lacks automatic handlers. More...
 
void removeAttribute (Attribute *const attribute)
 Removes an Attribute from the list of attribute objects.
 
bool saveToFileXML (const QString &filename, unsigned int opts=SerializationOptions::DEFAULTS) const
 Saves this object (and its children) to an XML file.
 
bool saveToMemoryXML (QByteArray &buffer, unsigned int opts=SerializationOptions::DEFAULTS) const
 Saves this object (and its children) to binary data buffer.
 
virtual ArchiveElement serialize (Archive &doc) const
 Serializes this object (and its children) to a DOM node.
 
virtual void setAsDefaults ()
 Sets the current USER attribute value as the default value and clears the USER value. More...
 
void setId (Uuid newId)
 Sets the unique id. More...
 
template<class T >
bool setValue (const QByteArray &name, const T &v)
 Uses a query string to find a Attribute, and sets a new value to that if found. More...
 
bool setValue (const QByteArray &name, v8::Handle< v8::Value > v)
 Set attribute value from JavaScript. More...
 
- Public Member Functions inherited from Valuable::Attribute
long addListener (ListenerFunc func, int role=CHANGE_ROLE)
 Adds a listener that is invoked whenever the value is changed. More...
 
long addListener (Node *listener, ListenerFunc func, int role=CHANGE_ROLE)
 Adds a listener that is invoked whenever the value is changed. More...
 
long addListener (v8::Persistent< v8::Function > func, int role=CHANGE_ROLE)
 Adds a JavaScript listener that is invoked whenever the value is changed. More...
 
virtual float asFloat (bool *const ok=0, Layer layer=LAYER_CURRENT) const
 Converts the value object in a floating point number. More...
 
virtual int asInt (bool *const ok=0, Layer layer=LAYER_CURRENT) const
 Converts the value object in an integer. More...
 
virtual QString asString (bool *const ok=0, Layer layer=LAYER_CURRENT) const
 Converts the value object to a string. More...
 
 Attribute (const Attribute &o)
 Create a copy of the given Attribute WITHOUT the link to host, listeners, or the attribute name. More...
 
 Attribute (Node *host, const QByteArray &name, bool transit=false)
 Constructs a new value object and attaches it to its host. More...
 
virtual void clearValue (Layer layer)
 Unsets the value from a specific layer. More...
 
virtual void emitChange ()
 Invokes the change valueChanged function of all listeners.
 
void eventProcessFloat (const char *id, float v)
 Utility function for sending a float message to the object.
 
void eventProcessInt (const char *id, int v)
 Utility function for sending an int message to the object.
 
void eventProcessString (const char *id, const QString &str)
 Utility function for sending string message to the object.
 
void eventProcessString (const char *id, const char *str)
 Utility function for sending string message to the object.
 
void eventProcessVector2 (const char *id, Nimble::Vector2)
 Utility function for sending a Nimble::Vector2f message to the object.
 
void eventProcessVector3 (const char *id, Nimble::Vector3)
 Utility function for sending a Vector3 message to the object.
 
void eventProcessVector4 (const char *id, Nimble::Vector4)
 Utility function for sending a Vector4 message to the object.
 
virtual bool handleShorthand (const Valuable::StyleValue &value, Radiant::ArrayMap< Valuable::Attribute *, Valuable::StyleValue > &expanded)
 If attribute supports shorthand properties, this should be used to parse those. More...
 
Nodehost () const
 The host object of the value object (is any). More...
 
virtual bool isChanged () const
 
virtual bool isValueDefinedOnLayer (Layer layer) const
 Check if the given layer defines a value. More...
 
bool layerForSerialization (SerializationOptions flags, Layer &layer) const
 
const QByteArray & name () const
 Returns the name of the object.
 
const Attributeoperator= (const Attribute &)
 Create a copy of the given Attribute WITHOUT the link to host, listeners, or the attribute name. More...
 
AttributeownerShorthand () const
 
QByteArray path () const
 Returns the path (separated by '/'s) from the root.
 
void removeHost ()
 Sets the host pointer to zero and removes this object from the host. More...
 
bool removeListener (Node *listener, int role=ALL_ROLES)
 Removes a listener from the listener list. More...
 
bool removeListener (long id)
 Removes a listener from the listener list. More...
 
void removeListeners (int role=ALL_ROLES)
 Removes listeners from the listener list.
 
virtual bool set (float v, Layer layer=USER, ValueUnit unit=VU_UNKNOWN)
 Sets the value of the object.
 
virtual bool set (int v, Layer layer=USER, ValueUnit unit=VU_UNKNOWN)
 Sets the value of the object.
 
virtual bool set (const QString &v, Layer layer=USER, ValueUnit unit=VU_UNKNOWN)
 Sets the value of the object.
 
virtual bool set (const Nimble::Vector2f &v, Layer layer=USER, QList< ValueUnit > units=QList< ValueUnit >())
 Sets the value of the object.
 
virtual bool set (const Nimble::Vector3f &v, Layer layer=USER, QList< ValueUnit > units=QList< ValueUnit >())
 Sets the value of the object.
 
virtual bool set (const Nimble::Vector4f &v, Layer layer=USER, QList< ValueUnit > units=QList< ValueUnit >())
 Sets the value of the object.
 
virtual bool set (const StyleValue &value, Layer layer=USER)
 Sets the value of the object.
 
void setName (const QByteArray &s)
 Sets the name of the object.
 
void setOwnerShorthand (Attribute *owner)
 
- Public Member Functions inherited from Valuable::Serializable
virtual bool deserializeXML (const DOMElement &element)
 Deserializes (reads) this object from an XML element. More...
 
bool isSerializable () const
 
void setSerializable (bool v)
 
- Public Member Functions inherited from MultiWidgets::ContainerT< T >
virtual void addItem (T t)=0
 Add a new item to the container. More...
 
virtual bool removeItem (T t)=0
 Remove an item from the container. More...
 

Protected Types

typedef std::vector< Itemcontainer
 Container type for items.
 
typedef container::iterator iterator
 Iterator type for items.
 

Protected Member Functions

void applyFade (int index)
 Apply fade color to the given widget at the specified index Computes the background color for the given widget based on the distance of the currently viewed index and the given index. More...
 
float calculateAlpha (int index) const
 Calculates alpha factor to the given widget at the specified index Computes the alpha for a widget based on the distance of the currently viewed index and the given index. More...
 
void flowTransform ()
 Transform the contained items using the flow transform.
 
const ItemgetItem (int index) const
 Get the item at the given index. More...
 
ItemgetItem (int index)
 Get the item at the given index. More...
 
Nimble::Vector3 heightWhenCentral (Nimble::SizeF widgetSize)
 Calculates the height for the central active item. More...
 
Nimble::Vector3i indices () const
 Gets the index bounds of the currently visible indices. More...
 
virtual void inputItem (MultiWidgets::GrabManager &gm, float dt, WidgetPtr w)
 Feeds input to a single item with the item transformation if it is visible.
 
virtual void newCenterItem (int toTop)
 A call-back that to handle the change of the central item. More...
 
virtual void renderItem (Luminous::RenderContext &r, WidgetCPtr w) const
 Renders a single item with the item transformation if it is visible.
 
ItemtopItem ()
 Returns the currently active item.
 
const ItemtopItem () const
 Returns the currently active item.
 
void updateAllItemTransforms ()
 Transform the contained items using the currently selected transform method.
 
void updateFade ()
 Applies color fade for all items. More...
 
void updateItemDepths ()
 Updates item depths so that items closer to the center are on top Items will always have a depth from 0.0 (at the edges) to 1.0 (at the center)
 
void wheelTransform ()
 Transform the contained items using the wheel transform.
 
- Protected Member Functions inherited from MultiWidgets::Widget
virtual void inputChildrenBack (MultiWidgets::GrabManager &gm, float dt, MultiWidgets::Widget::ChildIterator it)
 Sends the input to children in front-to-back order. More...
 
virtual ChildIterator inputChildrenFront (MultiWidgets::GrabManager &gm, float dt)
 Sends the input to children in front-to-back order. More...
 
virtual void interactionBegin (MultiWidgets::GrabManager &gm)
 This function gets called when the widget gets any interaction on it when it previously didn't have one. More...
 
virtual void interactionEnd (MultiWidgets::GrabManager &gm)
 This function gets called when the widget stops having any interaction on it while it previously had some. More...
 
virtual void postConstruct ()
 Called just after widget is fully created and normal constructors have been called, but before MultiWidgets::create returns. More...
 
virtual void preDestroy ()
 Called just before the widget is deleted and before destructor is called. More...
 
virtual void processFingers (MultiWidgets::GrabManager &gm, const MultiWidgets::FingerArray &fingers, float dt)
 Processes the fingers that the Widget has grabbed. More...
 
virtual void processHands (MultiWidgets::GrabManager &gm, const MultiWidgets::HandArray &hands, float dt)
 Processes the grabbed hands. More...
 
virtual void processMarkers (MultiWidgets::GrabManager &gm, const MultiWidgets::MarkerArray &markers, float dt)
 Processes the grabbed markers. More...
 
virtual void processPens (MultiWidgets::GrabManager &gm, const MultiWidgets::PenArray &pens, float dt)
 Processes the grabbed pens Is meant to be overriden: the default implementation does nothing. More...
 
virtual void processTrackedObjects (MultiWidgets::GrabManager &gm, const MultiWidgets::TrackedObjects &grabbed, float dt)
 Processes all of the grabbed objects (hands, fingers, pens, markers). More...
 
virtual void renderBackground (Luminous::RenderContext &r) const
 Render the Widget background as specified in CSS3 Backgrounds and Border Module. More...
 
virtual void renderBorder (Luminous::RenderContext &r) const
 Render the border of the Widget. More...
 
virtual ConstChildReverseIterator renderChildrenBack (Luminous::RenderContext &r) const
 Render child widgets behind (depth < 0) this widget. More...
 
virtual void renderChildrenFront (Luminous::RenderContext &r, MultiWidgets::Widget::ConstChildReverseIterator start) const
 Render child widgets starting from given child. More...
 
virtual void renderContent (Luminous::RenderContext &r) const
 Render the content of the Widget. More...
 
void setTapIsPossible (bool possible)
 Notifies the widget if a tap gesture is still possible. More...
 
virtual void singleTap (MultiWidgets::GrabManager &gm, const MultiWidgets::TrackedObjectArray &objs)
 This virtual function is called when widget receives a single-tap event. More...
 
virtual void updateMotion (const MultiWidgets::FrameInfo &frameInfo)
 Simulate the attributes that affect widget motion. More...
 
virtual void updateStyle ()
 Updates style to this widget. More...
 

Protected Attributes

Nimble::Rect m_bounds
 
Rectangle that holds all the flow items, possibly excluding the

active center item if it is enlarged. More...

 
int m_draggedItem
 Index for the current item that is being dragged.
 
Nimble::Vector2f m_fingerHistory
 Last location for a dragging finger.
 
container m_items
 Container for all flow items.
 
Radiant::TimeStamp m_lastDragInteraction
 Timestamp for the last drag action.
 
Momentum m_momentum
 Momentum for the flow interaction.
 
int m_top
 Index that for the current top widget. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from MultiWidgets::Widget
static std::vector< WidgetPtrallWidgets ()
 
static void calculateMotion (const FingerArray &fingers, Nimble::Vector2f &translate, float &scale, float &rotate, Nimble::Vector2f &prevCenter)
 Computes the translation, rotation, and scale to apply to widget based on the interacting fingers. More...
 
static void checkOrphanTrees ()
 
static WidgetPtr create (const Valuable::ArchiveElement &element)
 Creates and deserializes a widget from the given archive. More...
 
static WidgetPtr findById (Uuid id)
 Search Widget by its id. More...
 
static void listExistingWidgetsToTerminal ()
 List existing widgets to terminal, for debugging.
 
static std::size_t widgetCount ()
 Returns the number of widget instances in the application. More...
 

Detailed Description

A media-flow widget.

ItemFlowWidget is a container widget that can operate in two different modes: flow mode and wheel mode.

In flow mode, it looks very much like the cover-flow feature on iTunes. ItemFlowWidget has a special feature that it will automatically play any videos that happen to be centralized.

In wheel mode, items are placed are placed on a rotating wheel that can be spinned by around by interaction.

The flow widget takes the parentship of a contained widget when it becomes visible within the flow. Likewise the widget is removed from the widget hierarchy when it is not visible.

When items are added to the ItemFlowWidget, they get "item" CSS class.

Member Enumeration Documentation

Operation mode.

Enumerator
MODE_FLOW 

Operate in mode similar to cover-flow.

MODE_WHEEL 

Operate in wheel mode.

Constructor & Destructor Documentation

MultiWidgets::ItemFlowWidget::ItemFlowWidget ( WidgetPtr  parent = nullptr)
explicit

Constructs a new ItemFlowWidget widget.

Parameters
parentParent widget

Member Function Documentation

void MultiWidgets::ItemFlowWidget::addItem ( WidgetPtr  w,
int  index 
)

Add a new item to the Item list.

When a widget is added to the flow it is assigned a 'flow' CSS pseudo class. You can use this pseudo class to change the style properties for the widget.

Parameters
wThe widget that is added to the list
indexThe location in the list where the widget is stored. If the value is negative (the default case), then the widget becomes the last widget in the queue.
float MultiWidgets::ItemFlowWidget::alphaWidth ( ) const
inline

Distance from edge (in items) to apply alpha blending to.

Returns
Current value of the alpha-width attribute
void MultiWidgets::ItemFlowWidget::applyFade ( int  index)
protected

Apply fade color to the given widget at the specified index Computes the background color for the given widget based on the distance of the currently viewed index and the given index.

Parameters
indexindex of item to apply fade to
virtual Nimble::Rect MultiWidgets::ItemFlowWidget::boundingRect ( ) const
virtual

This function defines the outer bounds of the item as a rectangle in widget coordinates.

The bounds are used to determine which widgets get input and are redrawn.

The bounding box is always rectangular and it is unaffected by the widget's transform().

See Also
CSS::borderBox
Returns
Bound rectangle in widget coordinates.

Reimplemented from MultiWidgets::Widget.

float MultiWidgets::ItemFlowWidget::calculateAlpha ( int  index) const
protected

Calculates alpha factor to the given widget at the specified index Computes the alpha for a widget based on the distance of the currently viewed index and the given index.

Parameters
indexindex of item to calculate alpha for
float MultiWidgets::ItemFlowWidget::centerBoost ( ) const
inline

Value to boost (enlarge) the center item in Wheel-mode.

Returns
Current value of the center-boost attribute
Nimble::Vector2f MultiWidgets::ItemFlowWidget::centerSizeRelative ( ) const
inline

Center item size relative to the height of the flow.

Returns
Current value of the centersizerel attribute
float MultiWidgets::ItemFlowWidget::contentRotation ( ) const
inline

Rotates content around their center point in radians.

This only rotates the content, not the actual widget.

Returns
Current value of the content-rotation attribute
float MultiWidgets::ItemFlowWidget::drag ( ) const
inline

Specifies the drag distance (relative to item height) for which to send drag-item events.

If the value is 0, the dragging is disabled and no events are generated.

Returns
Current value of the drag-distance attribute
float MultiWidgets::ItemFlowWidget::dragAngle ( ) const
inline

Specifies the drag angle from the y-axis for which to send drag events.

Returns
Current value of the drag-angle attribute
int MultiWidgets::ItemFlowWidget::edgeItems ( ) const
inline

Maximum number of inactive items shown on each side of the active item.

Returns
Current value of the edge-items attribute
virtual void MultiWidgets::ItemFlowWidget::eventProcess ( const QByteArray &  id,
Radiant::BinaryData data 
)
virtual

Entry point for incoming events Class specific behaviour to events is implemented in this function.

See Event System -section in Developer Guide for in-depth discussion about events in Cornerstone.

Overriding: Inherited classes can override this function for implementing custom behaviour for events. When overriding this function one needs to remember to call base-class implementation for discarded events. Otherwise large portion of the inherited behaviour gets incomplete.

See example about overriding below:

class MyWidget : public BaseClassWidget {
typedef BaseClassWidget Parent;
...
};
virtual void MyWidget::eventProcess(const QByteArray & id, Radiant::BinaryData & data)
{
if(id == "play") play();
else if(id == "stop") stop();
else Parent::eventProcess(id, data); // <- This is important!
}
Parameters
idName of the incoming event.
dataData associated to the incoming event.

Reimplemented from MultiWidgets::Widget.

const Item& MultiWidgets::ItemFlowWidget::getItem ( int  index) const
protected

Get the item at the given index.

Parameters
indexindex to get
Returns
widget at given index
Item& MultiWidgets::ItemFlowWidget::getItem ( int  index)
protected

Get the item at the given index.

Parameters
indexindex to get
Returns
widget at given index
Nimble::Vector3 MultiWidgets::ItemFlowWidget::heightWhenCentral ( Nimble::SizeF  widgetSize)
protected

Calculates the height for the central active item.

See Also
m_centerSizeRelative.
Returns
Vector3 containing elements:
  • 0 - y-coordinate for the upper limit
  • 1 - y-coordinate for the lower limit
  • 2 - height
float MultiWidgets::ItemFlowWidget::indexF ( ) const
inline

The index of the central widget, as a floating point number.

As items flow across the central area, this value indicates also if there is a transition going on.

Returns
Index of central widget as float.
Nimble::Vector3i MultiWidgets::ItemFlowWidget::indices ( ) const
protected

Gets the index bounds of the currently visible indices.

  • x-component contains the leftmost index.
  • y-component contains the center (active) index.
  • z-component contains the rightmost index.
Returns
3d vector containing the mentioned indices.
virtual WidgetPtr MultiWidgets::ItemFlowWidget::item ( size_t  index) const
virtual

Return the item at given position.

Returns
item at index

Implements MultiWidgets::ContainerT< T >.

float MultiWidgets::ItemFlowWidget::layerFactor ( ) const
inline

Offset to item edge z-values in Wheel-mode.

Zero will cause the item to have uniform z-value (and thus appear flat) while higher values makes the items tilt towards the tangent of the circle.

Returns
Current value of the layer-factor attribute
Mode MultiWidgets::ItemFlowWidget::mode ( ) const
inline

Mode of the item flow.

See Also
Mode
virtual void MultiWidgets::ItemFlowWidget::newCenterItem ( int  toTop)
protectedvirtual

A call-back that to handle the change of the central item.

The default implementation has some special behavior for VideoWidgets: The new central VideoWidget starts to automatically play the video, while an old central VideoWidget will stop playing its video.

In general it is a good idea to call the default implementation from derived classes. The default implementation will also set m_top to toTop

Parameters
toTopThe index of the item to be set as the new center item.
bool MultiWidgets::ItemFlowWidget::oneHandMove ( ) const
inline

Flag that enables the widget to be moved, rotated and scaled with one hand.

Returns
Current value of the one-hand-move attribute
float MultiWidgets::ItemFlowWidget::radiusDropFactor ( ) const
inline

Factor for adjusting the radius of the ith item.

For example, if the center item is using radius r, then the third item from the center is on radius r - radius_drop_factor * 3.

Returns
Current value of the radius-drop-factor attribute
float MultiWidgets::ItemFlowWidget::radiusFactor ( ) const
inline

Adjusts effective radius of the circle in Wheel-mode.

Returns
Current value of the radius-factor attribute
bool MultiWidgets::ItemFlowWidget::removeItem ( WidgetPtr  w)

Removes a widget from the flow.

Parameters
wwidget to remove
Returns
true if widget w was found and removed, false otherwise.
float MultiWidgets::ItemFlowWidget::scaleFactor ( ) const
inline

Factor for adjusting the scale of the edge items in Flow-mode so items can get progressively smaller/bigger toward the edge Doesn't affect center item or first edge items.

Returns
Current value of the scale-factor attribute
float MultiWidgets::ItemFlowWidget::scrollSpeed ( ) const
inline

Speed at which items are scrolled.

Returns
Current value of the scroll-speed attribute
float MultiWidgets::ItemFlowWidget::separation ( ) const
inline

Spacing between adjacent items in Wheel-mode.

A value less than 1.0 causes items to overlap and a larger value causes items to have a gap. Also works as a gap between the active item and inactive items in Flow-mode.

void MultiWidgets::ItemFlowWidget::setAlphaWidth ( float  alphaWidth)
inline

Setter for attribute alpha-width.

Parameters
alphaWidthnew attribute value
void MultiWidgets::ItemFlowWidget::setCenterBoost ( float  centerBoost)
inline

Setter for attribute center-boost.

Parameters
centerBoostnew attribute value
void MultiWidgets::ItemFlowWidget::setCenterSizeRelative ( Nimble::Vector2f  centerSizeRelative)
inline

Setter for attribute centersizerel.

Parameters
centerSizeRelativenew attribute value
void MultiWidgets::ItemFlowWidget::setContentRotation ( float  contentRotation)
inline

Setter for attribute content-rotation.

Parameters
contentRotationnew attribute value
void MultiWidgets::ItemFlowWidget::setCyclic ( bool  cyclic)
inline

Setter for attribute cyclic.

Parameters
cyclicnew attribute value
void MultiWidgets::ItemFlowWidget::setDrag ( float  drag)
inline

Setter for attribute drag-distance.

Parameters
dragnew attribute value
void MultiWidgets::ItemFlowWidget::setDragAngle ( float  dragAngle)
inline

Setter for attribute drag-angle.

Parameters
dragAnglenew attribute value
void MultiWidgets::ItemFlowWidget::setEdgeItems ( int  edgeItems)
inline

Setter for attribute edge-items.

Parameters
edgeItemsnew attribute value
void MultiWidgets::ItemFlowWidget::setFade ( float  fade)
inline

Setter for attribute fade.

Parameters
fadenew attribute value
void MultiWidgets::ItemFlowWidget::setLayerFactor ( float  layerFactor)
inline

Setter for attribute layer-factor.

Parameters
layerFactornew attribute value
void MultiWidgets::ItemFlowWidget::setMode ( Mode  m)
inline

Setter for attribute mode.

Parameters
mnew attribute value
void MultiWidgets::ItemFlowWidget::setOneHandMove ( bool  use)
inline

Setter for attribute one-hand-move.

Parameters
usenew attribute value
void MultiWidgets::ItemFlowWidget::setPerspective ( float  perspective)
inline

Setter for attribute perspective.

Parameters
perspectivenew attribute value
void MultiWidgets::ItemFlowWidget::setRadiusDropFactor ( float  radiusDropFactor)
inline

Setter for attribute radius-drop-factor.

Parameters
radiusDropFactornew attribute value
void MultiWidgets::ItemFlowWidget::setRadiusFactor ( float  radiusFactor)
inline

Setter for attribute radius-factor.

Parameters
radiusFactornew attribute value
void MultiWidgets::ItemFlowWidget::setScaleFactor ( float  scaleFactor)
inline

Setter for attribute scale-factor.

Parameters
scaleFactornew attribute value
void MultiWidgets::ItemFlowWidget::setScrollSpeed ( float  scrollSpeed)
inline

Setter for attribute scroll-speed.

Parameters
scrollSpeednew attribute value
void MultiWidgets::ItemFlowWidget::setSeparation ( float  separationRelative)
inline

Setter for attribute separation.

Parameters
separationRelativenew attribute value
void MultiWidgets::ItemFlowWidget::setSpacing ( float  spacing)
inline

Setter for attribute spacing.

Parameters
spacingnew attribute value
void MultiWidgets::ItemFlowWidget::setStationary ( bool  stationary)
inline

Setter for attribute stationary.

Parameters
stationarynew attribute value
float MultiWidgets::ItemFlowWidget::spacing ( ) const
inline

Spacing between items in Flow-mode (in pixels).

See Also
radiusFactor().
WidgetPtr MultiWidgets::ItemFlowWidget::topWidget ( ) const

Gets the currently active widget.

Returns
Pointer to widget or 0 if flow is empty
void MultiWidgets::ItemFlowWidget::updateFade ( )
protected

Applies color fade for all items.

Effectively calls applyFade() for all visible items.

See Also
applyFade()
WidgetPtr MultiWidgets::ItemFlowWidget::widget ( int  index) const

Get the ith widget in the flow.

Parameters
indexindex of the widget to get
Returns
widget at given index

Member Data Documentation

Nimble::Rect MultiWidgets::ItemFlowWidget::m_bounds
protected

Rectangle that holds all the flow items, possibly excluding the

active center item if it is enlarged.

int MultiWidgets::ItemFlowWidget::m_top
protected

Index that for the current top widget.

This can be larger than m_items.size() or negative if the flow is cyclic.