-#ifndef DATASOURCE_H
-#define DATASOURCE_H
-CLASS(DataSource, Object)
- entity DataSource_true;
- entity DataSource_false;
- INIT_STATIC(DataSource) {
- DataSource_true = NEW(Object);
- DataSource_false = NULL;
- }
- /**
- * get entry `i` passing `name` and `icon` through `returns` if it is not null
- * returns `DataSource_false` if out of bounds
- * otherwise returns an entity or `DataSource_true`
- */
- METHOD(DataSource, getEntry, entity(entity this, int i, void(string name, string icon) returns)) { return DataSource_false; }
- /** return the index of the first match for `find`. optional */
- METHOD(DataSource, indexOf, int(entity this, string find)) { return -1; }
- /** reload all entries matching `filter` returning how many matches were found */
- METHOD(DataSource, reload, int(entity this, string filter)) { return 0; }
- /** cleanup on shutdown. optional */
- METHOD(DataSource, destroy, void(entity this)) { }
-ENDCLASS(DataSource)
-
+#include "datasource.qh"
-CLASS(StringSource, DataSource)
- ATTRIB(StringSource, StringSource_str, string, string_null)
- ATTRIB(StringSource, StringSource_sep, string, string_null)
CONSTRUCTOR(StringSource, string str, string sep)
{
CONSTRUCT(StringSource);
{
return tokenizebyseparator(this.StringSource_str, this.StringSource_sep);
}
-ENDCLASS(StringSource)
-CLASS(CvarStringSource, StringSource)
- ATTRIB(CvarStringSource, CvarStringSource_cvar, string, string_null)
CONSTRUCTOR(CvarStringSource, string cv, string sep)
{
CONSTRUCT(CvarStringSource);
{
string s = this.CvarStringSource_cvar;
this.StringSource_str = s ? cvar_string(s) : string_null;
- return super.getEntry(this, i, returns);
+ return SUPER(CvarStringSource).getEntry(this, i, returns);
}
METHOD(CvarStringSource, reload, int(entity this, string filter))
{
string s = this.CvarStringSource_cvar;
this.StringSource_str = s ? cvar_string(s) : string_null;
- return super.reload(this, filter);
+ return SUPER(CvarStringSource).reload(this, filter);
}
-ENDCLASS(CvarStringSource)
-#endif