guit  0.1
 All Classes Functions Variables Typedefs Enumerations Friends
Public Types | Public Member Functions | List of all members
guit::GVarProp Class Referenceabstract

Base class of variable Props. More...

Inheritance diagram for guit::GVarProp:
guit::GProp guit::GObject guit::GVarProp_< T > guit::GVarProp_< bool > guit::GVarProp_< GAlignValue > guit::GVarProp_< GBorderValue > guit::GVarProp_< GFlexValue > guit::GVarProp_< GFlowValue > guit::GVarProp_< GFontValue > guit::GVarProp_< GFormatValue > guit::GVarProp_< GGapValue > guit::GVarProp_< GIconValue > guit::GVarProp_< GMarginValue > guit::GVarProp_< GPosValue > guit::GVarProp_< GRgba > guit::GVarProp_< GSizeValue > guit::GVarProp_< GString >

Public Types

using Specif = int32_t
 Specificity of Properties.
 

Public Member Functions

GVarProptoVarProp () 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 set (GString const &value)=0
 Changes value.
 
virtual void set (GProp const &value)=0
 Changes value. 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 GPropclone (bool copy_value) const
 Clones the prop (when applicable). More...
 
virtual GString stringValue () const
 Returns the value of the prop as a string. More...
 
virtual float floatValue () const
 Returns the value of the prop as a float. More...
 
virtual bool boolValue () const
 Returns the value as a bool. More...
 
virtual bool isEquivalent (GProp const &other) const
 Returns true if these props are equivalent. More...
 
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.
 
void unbind (GVarProp &sender)
 Unbinds this prop. More...
 
GString typeName () const override
 Returns the name and role of the prop's type.
 
GProptoProp () 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...
 
using GType = GPropType
 Returns prop's meta-class. More...
 
bool read (GString const &filename)
 Reads the value of the prop from a file or a stream.
 

Detailed Description

Base class of variable Props.

The value of these props can be changed:

For instance, (3) means that txt must verify the isValid() condition of num. So, if num is constrained by a range (see GFloat::setRange()), txt will always be in this range. Moreover, if txt is added to a TextField or a TextArea, the user will be forced to enter a numerical value lying in this range:

auto& txt = Text();
auto& num = Float();
num.setRange(-100, 100);
txt ^= num;
auto& tf = (TextField << txt);

Finally, one can also just write:

auto& num = Float();
num.setRange(-100, 100);
auto& tf = (TextField << num);

An internal Text prop is then created and synced with num, so that this code is equivalent to the previous except.

See Also
operator<<=() and operator^=().

Member Typedef Documentation

using guit::GProp::GType = GPropType
inherited

Returns prop's meta-class.

Both functions return the prop's type, but Type() is a static method and type() a virtual method.

Member Function Documentation

bool guit::GVarProp::isMutable ( ) const
inlineoverridevirtual

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.

void guit::GVarProp::setImmutable ( )
inlineoverridevirtual

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.

virtual void guit::GVarProp::set ( GProp const &  value)
pure virtual
void guit::GVarProp::blend ( GProp const &  value1,
GProp const &  value2,
float  mix 
)
virtual

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.

void guit::GVarProp::unbind ( GVarProp sender)

Unbinds this prop.

  • the first version unbinds another prop (note that it doesn't unbind Prop fields).
  • the second version unbinds bindings according to its bindtag argument:

    if bindtag is >= 0, unbinds bindings performed with the same bindtag (default by 0, see bind())

if bindtag is < 0, unbinds all bindings with a value >= bindtag

Importantly, these methods unbinds props both ways if the binding was done both ways (e.g. by using sync())

void guit::GVarProp::blink ( GString const &  msg = "",
GTime  duration = 500 
)

Blinks gadget parents of the prop.

Shows a warning if msg is not empty.

virtual GProp* guit::GProp::clone ( bool  copy_value) const
inlinevirtualinherited

Clones the prop (when applicable).

Mutable props (i.e. deriving from GVarProp) can be cloned, otherwise this method returns null. The value is copied if copy_value is used, the default value is used otherwise.

Reimplemented in guit::GTextData, guit::GTip, guit::GBackground, guit::GRelativePos, guit::GCond, guit::GRegText, guit::GDragPos, guit::GDragSize, guit::GExpr, guit::GBorder, guit::GCheck, guit::GColor, guit::GFont, guit::GFlex, guit::GPos, guit::GSize, guit::GFlow, guit::GIcon, guit::GState, guit::GMargin, guit::GShow, guit::GFormat, guit::GCursor, guit::GGap, guit::GAnim, guit::GChoice, guit::GBool, guit::GFloat, guit::GInt, guit::GText, guit::GEnable, and guit::GHotkey.

virtual GString guit::GProp::stringValue ( ) const
inlinevirtualinherited
virtual float guit::GProp::floatValue ( ) const
inlinevirtualinherited

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 in guit::GNumExpr, guit::GTextExpr, guit::GBoolExpr, guit::GExpr, guit::GState, guit::GText, and guit::GBool.

virtual bool guit::GProp::boolValue ( ) const
inlinevirtualinherited

Returns the value as a bool.

Returns false if the prop has no value of its value cannot be converted to a bool.

Reimplemented in guit::GNumExpr, guit::GTextExpr, guit::GBoolExpr, guit::GExpr, and guit::GBool.

bool guit::GProp::isEquivalent ( GProp const &  other) const
virtualinherited

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 in guit::GExpr, guit::GCond, guit::GState, and guit::GAnim.

bool guit::GProp::onAdd ( Gadget g)
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.

void guit::GProp::onRemove ( Gadget g)
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.

void guit::GObject::error ( GString const &  funname,
GString const &  message 
) const
virtualinherited

Prints an error message.

See Also
GApp::onError() to change error management.
void guit::GObject::ignoreSmartPointers ( )
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.

void guit::GObject::forgetSmartPointers ( )
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().


The documentation for this class was generated from the following files: