All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Pages
Valuable::AttributeString Class Reference

String value. More...

#include <Valuable/AttributeString.hpp>

Inheritance diagram for Valuable::AttributeString:
Valuable::AttributeT< QString > Valuable::Attribute Valuable::Serializable

Public Types

typedef QChar char_type
 The character type of this string class.
 

Public Member Functions

virtual float asFloat (bool *const ok=nullptr, Layer layer=LAYER_CURRENT) const
 Returns the value as float.
 
virtual int asInt (bool *const ok=nullptr, Layer layer=LAYER_CURRENT) const
 Returns the value as integer.
 
virtual QString asString (bool *const ok=nullptr, Layer layer=LAYER_CURRENT) const
 Returns the value as string.
 
 AttributeString (Node *host, const QByteArray &name, const QString &v="", bool transit=false)
 Constructs a new value object and attaches it to its host. More...
 
void clear ()
 Makes the string empty.
 
virtual void eventProcess (const QByteArray &id, Radiant::BinaryData &data)
 Process a message. More...
 
bool operator!= (const QString &that) const
 Compares if two strings are not equal.
 
QString operator+ (const AttributeString &i) const
 Concatenates two strings. More...
 
QString operator+ (const QString &i) const
 Concatenates two strings.
 
QString operator+ (const char *utf8) const
 Concatenates strings with UTF-8 encoded string.
 
bool operator== (const QString &that) const
 Compares if two strings are equal.
 
virtual bool set (const QString &v, Layer layer=USER, ValueUnit unit=VU_UNKNOWN)
 
unsigned size () const
 Returns the length of the string.
 
- Public Member Functions inherited from Valuable::AttributeT< QString >
virtual QString asString (bool *const ok, Layer layer) const =0
 Converts the value object to a string. More...
 
 AttributeT (Node *host, const QByteArray &name, const QString &v=QString(), bool transit=false)
 Creates a new AttributeT and stores the default and current value as a separate variables. More...
 
virtual void clearValue (Layer layout=USER)
 Unsets the value from a specific layer. More...
 
Layer currentLayer () const
 
const QString & defaultValue () const
 The default value (the value given in constructor) of the Attribute.
 
virtual bool deserialize (const ArchiveElement &element)
 Deserializes (reads) this object from serializer element. More...
 
virtual bool isChanged () const
 
virtual bool isValueDefinedOnLayer (Layer layer) const final
 
 operator const QString & () const
 Typecast operator for the wrapped value.
 
const QString & operator* () const
 Access the wrapped object with the dereference operator.
 
const QString * operator-> () const
 Use the arrow operator to access fields inside the wrapped object.
 
AttributeT< QString > & operator= (const QString &t)
 Calls setValue with USER layer. More...
 
virtual ArchiveElement serialize (Archive &archive) const
 The object is serialized using its name as a tag name. More...
 
virtual void setAsDefaults ()
 Sets the current USER attribute value as the default value and clears the USER value. More...
 
void setValue (const QString &t, Layer layer=USER)
 Sets a new value for a specific layer. More...
 
const QString & value (Layer layer) const
 
const QString & value () const
 
- 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...
 
 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 Attributeattribute (const QByteArray &name) const
 Gets an Attribute with the given name. 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...
 
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)
 
virtual QByteArray type () const
 Get the type id of the attribute. More...
 
- 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)
 

Additional Inherited Members

- Protected Member Functions inherited from Valuable::Attribute
virtual void emitDelete ()
 Invokes the change valueDeleted function of all listeners.
 
- Protected Attributes inherited from Valuable::AttributeT< QString >
Layer m_current
 
QString m_values [LAYER_COUNT]
 
bool m_valueSet [LAYER_COUNT]
 

Detailed Description

Constructor & Destructor Documentation

Valuable::AttributeString::AttributeString ( Node host,
const QByteArray &  name,
const QString &  v = "",
bool  transit = false 
)

Constructs a new value object and attaches it to its host.

Parameters
hostThe host object. This object is automatically added to the host.
nameThe name (or id) of this attribute. Names are typically human-readable. The names should not contain white-spaces as they may be used in XML files etc.
transitShould value changes be transmitted forward. This is related to future uses, and can be largely ignored at the moment.

Member Function Documentation

virtual void Valuable::AttributeString::eventProcess ( const QByteArray &  id,
Radiant::BinaryData data 
)
virtual

Process a message.

This method is a key element in the event-passing system. It is used to deliver information between objects. The information contains two parts:

  1. Identifier: A character string that gives the address for the adjustment
  2. Data: A binary blob that contains information for the message

This function is overridden in number of classes that need to receive and process events. In a typical case, when overriding this function, you should either process the message, or call the function of the parent class.

void MyClass::eventProcess(const QByteArray & type, Radiant::BinaryData & data)
{
if(type == "jump")
doJump();
else if(type == "crawl") {
bool ok;
int speed = data.readInt32(&ok);
if(ok)
doCrawl(speed);
}
else
Parent::eventProcess(type, data);
}
Parameters
idThe indentifier for the message. Typically this is quite human-readable
dataBinary blob that contains the argument data in easily parseable format.

Reimplemented from Valuable::Attribute.

QString Valuable::AttributeString::operator+ ( const AttributeString i) const

Concatenates two strings.

Parameters
iThe string to be appended to this string
Returns
A new string that contains both this string, and the argument string.