summaryrefslogtreecommitdiffstats
path: root/sigmod/CoinListItem.h
diff options
context:
space:
mode:
authorBen Boeckel <MathStuf@gmail.com>2008-12-07 01:03:48 -0500
committerBen Boeckel <MathStuf@gmail.com>2008-12-07 01:03:48 -0500
commit7459a5a34a5bcf7011c4164e3c92c7770da09514 (patch)
tree57c53a9fad0dbff587bc8249ec2e0d09308f5f7a /sigmod/CoinListItem.h
parent67aefdbacc16395bda2a8bfb14004190ced25e00 (diff)
downloadsigen-7459a5a34a5bcf7011c4164e3c92c7770da09514.tar.gz
sigen-7459a5a34a5bcf7011c4164e3c92c7770da09514.tar.xz
sigen-7459a5a34a5bcf7011c4164e3c92c7770da09514.zip
Renamed CoinListObject to CoinListItem and added documentation for it
Diffstat (limited to 'sigmod/CoinListItem.h')
-rw-r--r--sigmod/CoinListItem.h155
1 files changed, 155 insertions, 0 deletions
diff --git a/sigmod/CoinListItem.h b/sigmod/CoinListItem.h
new file mode 100644
index 00000000..d71368ec
--- /dev/null
+++ b/sigmod/CoinListItem.h
@@ -0,0 +1,155 @@
+/*
+ * Copyright 2007-2008 Ben Boeckel <MathStuf@gmail.com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ * \file sigmod/CoinListItem.h
+ */
+
+#ifndef SIGMOD_COINLISTITEM
+#define SIGMOD_COINLISTITEM
+
+// Sigmod includes
+#include "Object.h"
+
+namespace Sigmod
+{
+// Forward declarations
+class CoinList;
+
+/**
+ * \class Sigmod::CoinListItem CoinListItem.h sigmod/CoinListItem.h
+ * \brief An object that is sold on a coin list.
+ *
+ *
+ */
+class SIGMOD_EXPORT CoinListItem : public Object
+{
+ Q_OBJECT
+ Q_ENUMS(Type)
+
+ public:
+ /**
+ * \enum Type
+ * \brief The type of object contained in the item.
+ */
+ enum Type
+ {
+ Item = 0,
+ Species = 1
+ };
+ /**
+ * \var TypeStr
+ * String values for the types of an item.
+ */
+ static const QStringList TypeStr;
+
+ /**
+ * Copy constructor.
+ *
+ * \param item The item to copy.
+ */
+ CoinListItem(const CoinListItem& item);
+ /**
+ * Create a new item belonging to \p parent and id \p id.
+ *
+ * \param parent The parent of the item.
+ * \param id The id number for the item.
+ */
+ CoinListItem(const CoinList* parent, const int id);
+ /**
+ * Data copy constructor. Copies the data from \p item as a child of \p parent with id \p id.
+ *
+ * \param coinList The item to copy the data from.
+ * \param parent The parent of the item.
+ * \param id The id number for the item.
+ */
+ CoinListItem(const CoinListItem& item, const CoinList* parent, const int id);
+ /**
+ * XML data constructor.
+ *
+ * \param xml The XML structure to extract the data from.
+ * \param parent The parent of the item.
+ * \param id The id number for the item.
+ */
+ CoinListItem(const QDomElement& xml, const CoinList* parent, const int id = -1);
+
+ /**
+ * Check to make sure the item's values are valid.
+ */
+ void validate();
+
+ /**
+ * Load data from XML.
+ *
+ * \param xml The XML structure to extract data from.
+ */
+ void load(const QDomElement& xml);
+ /**
+ * Get the data for the item in XML format.
+ *
+ * \return The XML structure representing the item.
+ */
+ QDomElement save() const;
+
+ /**
+ * The type of object contained in the item.
+ *
+ * \param type The type of the item.
+ */
+ void setType(const Type type);
+ /**
+ * The \p id of the object in the item.
+ *
+ * \param object The \p id of the object contained in the item.
+ */
+ void setObject(const int object);
+ /**
+ * How many coins the item costs.
+ *
+ * \param cost How many coins the item costs.
+ */
+ void setCost(const int cost);
+
+ /**
+ * \sa setType
+ *
+ * \return The type of object contained in the item.
+ */
+ Type type() const;
+ /**
+ * \sa setObject
+ *
+ * \return The \p id of the object in the item.
+ */
+ int object() const;
+ /**
+ * \sa setCost
+ *
+ * \return How many coins the item costs.
+ */
+ int cost() const;
+
+ CoinListItem& operator=(const CoinListItem& rhs);
+ private:
+ Type m_type;
+ int m_object;
+ int m_cost;
+};
+}
+Q_DECLARE_METATYPE(Sigmod::CoinListItem::Type)
+
+#endif