21 #ifndef __KGAMEPROPERTY_H_
22 #define __KGAMEPROPERTY_H_
24 #include <tqdatastream.h>
28 #include <kdemacros.h>
45 enum PropertyDataIds {
180 bool isDirty()
const {
return mFlags.bits.dirty; }
187 bool isLocked()
const {
return mFlags.bits.locked; }
213 bool unlock(
bool force=
false);
220 virtual void load(TQDataStream& s) = 0;
225 virtual void save(TQDataStream& s) = 0;
233 virtual void command(TQDataStream &stream,
int msgid,
bool isSender=
false);
238 int id()
const {
return mId; }
244 virtual const type_info*
typeinfo() {
return &
typeid(
this); }
276 int registerData(
int id,
KGame* owner, TQString name=0);
282 int registerData(
int id,
KPlayer* owner, TQString name=0);
290 int registerData(
KGamePropertyHandler* owner,PropertyPolicy p=PolicyUndefined, TQString name=0);
292 void unregisterData();
306 void setLock(
bool l);
344 bool sendProperty(
const TQByteArray& b);
365 unsigned char emitsignal : 1;
367 unsigned char optimize : 1;
368 unsigned char dirty: 1;
369 unsigned char policy : 2;
370 unsigned char locked: 1;
615 void setValue(type v)
628 kdError(11001) <<
"Undefined Policy in property " << id() << endl;
672 if (isOptimized() && mData == v) {
679 TQDataStream stream(b, IO_WriteOnly);
681 if (!sendProperty(b)) {
715 bool setLocal(type v)
717 if (isOptimized() && mData == v) {
725 if (isEmittingSignal()) {
744 void changeValue(type v)
754 virtual void save(TQDataStream &stream)
764 const type& value()
const
780 virtual void load(TQDataStream& s)
784 if (isEmittingSignal()) {
807 const type& operator=(
const type& t)
820 setValue(property.
value());
831 operator type()
const {
return value(); }
833 virtual const type_info*
typeinfo() {
return &
typeid(type); }