State of a state machine. More...
Public Types | |
using | Specif = int32_t |
Specificity of Properties. | |
Public Member Functions | |
GState * | clone (bool) const override |
a GState can't be cloned. | |
auto | operator~ () |
Reference that can be added to an Active Expression (see GExpr). More... | |
GString const | name () const |
Returns the name of the state (or "" if no name was specified). | |
GSuperState * | parent () const |
Returns the parent State. More... | |
GStateTransition & | operator>> (GState &state2) |
Adds a transition from this state to state2. More... | |
bool | isEquivalent (const GProp &) const override |
Returns true if these props are equivalent. More... | |
bool | boolValue () const override |
Returns the value as a bool. More... | |
void | set (GProp const &) override |
Changes value. More... | |
virtual void | set (boolconst &value, bool callalways) |
Changes the value. More... | |
void | set (GString const &str) override |
Changes the value from a string. | |
GBool & | operator<<= (GBoolExpr &) |
Binds this model to an Active Expression (see GExpr). More... | |
GVarProp * | toVarProp () override |
Type conversions. | |
bool | isMutable () const override |
Returns true if the prop is mutable. More... | |
void | setImmutable () override |
Makes the prop immutable. More... | |
virtual void | blend (GProp const &value1, GProp const &value2, float mix) |
Changes value by blending the value of two props. More... | |
void | blink (GString const &msg="", GTime duration=500) |
Blinks gadget parents of the prop. More... | |
void | update () |
updates gadget parents of the prop. | |
void | perform (std::function< void(Gadget &)> fun) |
performs this function on gadget parents. | |
GPropList const & | props () const |
Returns callbacks and bound props. | |
virtual void | removeNotifiers (void *object) override |
[Implementation] Notifies this object that it must no longer refer obj. | |
virtual void | removeAll () |
Removes callbacks and notifiers. | |
virtual bool | onAdd (Gadget *) |
Called when the property is added to an object. More... | |
virtual void | onRemove (Gadget *) |
Called when the property is removed from an object. More... | |
virtual void | error (GString const &funname, GString const &message) const |
Prints an error message. More... | |
void | operator delete (void *) |
delete does nothing, see GObject class. | |
void | forgetSmartPointers () |
Forgets all smart pointers pointing this object. More... | |
unsigned int | useCount () const |
Returns the numbers of smart pointers referencing the object. | |
GState (GSuperState &parent, GString const &name="") | |
Creates a state. More... | |
bool | entered () const |
Returns the state value, i.e. More... | |
float | floatValue () const override |
Returns the value of the prop as a float. More... | |
GString | stringValue () const override |
Returns the value of the prop as a string. More... | |
GBoolExpr & | operator+ () |
Returns a trigger testing the state value that can be used in a Conditional Expression. More... | |
boolconst & | value () const |
Returns the value. | |
bool | read (GString const &filename) |
Reads the value of the prop from a file or a stream. | |
void | unbind (GVarProp &sender) |
Unbinds this prop. More... | |
GString | typeName () const override |
Returns the name and role of the prop's type. | |
GProp * | toProp () override |
Class conversions. | |
bool | write (GString const &filename) const |
Writes the value of the prop on a file or a stream. | |
template<class Subclass > | |
Subclass * | to () |
Class conversions. | |
void | ignoreSmartPointers () |
Checks/sets whether this object can be auto-deleted by smart pointers. More... | |
State of a state machine.
Transitions can be added to gadgets as follows:
When adding a callback function without specifying a trigger (as in this example), the default on::action trigger of the Gadget is used (e.g. the button is cliked). A more general form is:
The right-hand part could contain one or several callback(s), conditional prop(s) or conditional expression(s): see GCond.
guit::GState::GState | ( | GSuperState & | parent, |
GString const & | name = "" |
||
) |
Creates a state.
The first version adds the newly created state to a superstate or a state machine. The second version just creates the state, it should be added to a superstate or a state machine using GSuperState::operator<<().
|
inline |
Reference that can be added to an Active Expression (see GExpr).
This reference will hold the future value, which can be (state entered) or false (state exited)
bool guit::GState::entered | ( | ) | const |
Returns the state value, i.e.
true if the state is entered and false if it is exited.
|
inlineoverridevirtual |
Returns the value of the prop as a float.
Returns 0.f if the prop has no value of its value cannot be converted to a float.
Reimplemented from guit::GBool.
|
overridevirtual |
Returns the value of the prop as a string.
Returns "" if the prop has no value of its value cannot be converted to a string.
Reimplemented from guit::GProp.
|
inline |
Returns the parent State.
The parent state is either the StateChart or a hierarchical State (GSuperState).
GStateTransition & guit::GState::operator>> | ( | GState & | state2) |
Adds a transition from this state to state2.
Allows creating a transition (state1 >> state2) in an expression such as:
|
inlineoverridevirtual |
Returns true if these props are equivalent.
Adding a prop to a gadget replaces the equivalent prop it contains (if it contains any). In all other cases, the prop is added to the gadget proplist. NOTE: props with a negative role are never equivalent!
Reimplemented from guit::GProp.
|
inlineoverridevirtualinherited |
Returns the value as a bool.
Returns false if the prop has no value of its value cannot be converted to a bool.
Reimplemented from guit::GProp.
|
overridevirtualinherited |
Changes value.
Does nothing if the type of from is not convertible to the type of this prop.
Implements guit::GVarProp.
|
inlinevirtualinherited |
Changes the value.
Callbacks are fired and parent gadgets updated if:
|
inherited |
Returns a trigger testing the state value that can be used in a Conditional Expression.
Binds this model to an Active Expression (see GExpr).
|
inlineoverridevirtualinherited |
Returns true if the prop is mutable.
Returns true only if the prop derives from GVarProp and setImmutable() was not called. Props with another type than GVarProp are always immutable.
Reimplemented from guit::GProp.
|
inlineoverridevirtualinherited |
Makes the prop immutable.
Affects only GVarProp props (other props are always immutable). A prop cannot be made mutable again after this method has been called.
Reimplemented from guit::GProp.
|
virtualinherited |
Changes value by blending the value of two props.
Does nothing if the type of from1 or from2 is not convertible to the type of this prop.
Reimplemented in guit::GColor, guit::GPos, and guit::GSize.
|
inherited |
Unbinds this prop.
Importantly, these methods unbinds props both ways if the binding was done both ways (e.g. by using sync())
|
inherited |
Blinks gadget parents of the prop.
Shows a warning if msg is not empty.
|
virtualinherited |
Called when the property is added to an object.
note: must call addModes().
Reimplemented in guit::GTextData, guit::GTip, guit::GCond, guit::GDragPos, guit::GDragSize, guit::GPos, guit::GText, guit::GSize, guit::GFlex, guit::GFlow, guit::GItems, and guit::GValue.
|
virtualinherited |
Called when the property is removed from an object.
note: must call removeModes().
Reimplemented in guit::GTextData, guit::GTip, guit::GCond, guit::GDragPos, guit::GDragSize, guit::GPos, guit::GText, guit::GSize, guit::GFlex, and guit::GHotkey.
|
virtualinherited |
Prints an error message.
|
inlineinherited |
Checks/sets whether this object can be auto-deleted by smart pointers.
ignoreSmartPointers() has a permanent effect, contrary to forgetSmartPointers(). Objects not created by calling new are never auto-deleted by smart pointers.
|
inlineinherited |
Forgets all smart pointers pointing this object.
The smart pointers that are currently pointing to the object won't auto-delete it. forgetSmartPointers() has a temporary effect, contrary to ignoreSmartPointers().