00001 #ifndef __Q_IBUS_ATTRLIST_H_
00002 #define __Q_IBUS_ATTRLIST_H_
00003
00004 #include "qibusattribute.h"
00005 #include <QVector>
00006
00007 namespace IBus {
00008
00009 class AttrList;
00010 typedef Pointer<AttrList> AttrListPointer;
00011
00012 class AttrList : public Serializable {
00013 Q_OBJECT
00014 public :
00015 AttrList (): m_attrs (0) {}
00016 virtual ~AttrList ();
00017
00018 public :
00019 AttributePointer get(int index) const;
00020 void append (const AttributePointer &attr);
00021 void clear (void);
00022 uint size (void) const { return m_attrs.size (); }
00023
00024 AttributePointer operator[] (int index) const { return get (index); }
00025
00026 virtual bool serialize (QDBusArgument &argument);
00027 virtual bool deserialize (const QDBusArgument &argument);
00028
00029 private :
00030 QVector<AttributePointer> m_attrs;
00031
00032 IBUS_SERIALIZABLE
00033 };
00034
00035 }
00036
00037 #endif