9 typedef IlwisData<Domain> IDomain;
11 typedef DomainItem* (*CreateItemFunc)(
const QString&);
12 typedef QSharedPointer<DomainItem> SPDomainItem;
29 virtual QVariant impliedValue(
const QVariant& v)
const = 0;
37 virtual quint32 count()
const = 0;
46 virtual SPDomainItem item(quint32 raw)
const = 0;
55 virtual SPDomainItem item(
const QString &nam)
const = 0;
64 virtual SPDomainItem itemByOrder(quint32 index)
const = 0;
74 virtual bool contains(
const QVariant& name,
bool inclusive =
true)
const = 0;
84 virtual bool contains(SPRange rng,
bool inclusive=
true)
const;
94 virtual bool contains(
const ItemRange& itemrng,
bool inclusive=
true)
const;
101 virtual bool isValid()
const = 0;
117 virtual void add(SPDomainItem item) = 0;
125 virtual void remove(
const QString& nm) = 0;
130 QVariant ensure(
const QVariant& v,
bool inclusive =
true)
const;
139 virtual void addRange(
const ItemRange& range);
149 virtual qint32 gotoIndex(qint32 index, qint32 step)
const =0;
154 static DomainItem *create(
const QString& type);
159 static void addCreateItem(
const QString& type, CreateItemFunc func);
168 ItemRange *merge(
const QSharedPointer<Range> &otherRange)
const;
170 virtual void clear() = 0;
179 static ItemRange *merge(
const QSharedPointer<ItemRange>& nr1,
const QSharedPointer<ItemRange>& nr2);
183 virtual bool alignWithParent(
const IDomain& dom) = 0;
184 static QHash<QString, CreateItemFunc> _createItem;
187 typedef QSharedPointer<ItemRange> SPItemRange;
190 #endif // ITEMRANGE_H