Files
MagicSetEditor2/src/data/statistics.hpp
T
twanvl a2e709d86b It is 2007 by now
git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@275 0fc631ac-6414-0410-93d0-97cfa31319b6
2007-04-21 17:06:29 +00:00

68 lines
2.5 KiB
C++

//+----------------------------------------------------------------------------+
//| Description: Magic Set Editor - Program to make Magic (tm) cards |
//| Copyright: (C) 2001 - 2007 Twan van Laarhoven |
//| License: GNU General Public License 2 or later (see file COPYING) |
//+----------------------------------------------------------------------------+
#ifndef HEADER_DATA_STATISTICS
#define HEADER_DATA_STATISTICS
// ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <util/reflect.hpp>
#include <script/scriptable.hpp>
class Field;
DECLARE_POINTER_TYPE(StatsDimension);
DECLARE_POINTER_TYPE(StatsCategory);
// ----------------------------------------------------------------------------- : Statistics dimension
/// A dimension that can be plotted as an axis in a graph
/** Dimensions can be generated automatically based on card fields */
class StatsDimension {
public:
StatsDimension();
StatsDimension(const Field&);
bool automatic; ///< Based on a card field?
String name; ///< Name of this dimension
String description; ///< Description, used in status bar
String icon_filename; ///< Icon for lists
OptionalScript script; ///< Script that determines the value(s)
bool numeric; ///< Are the values numeric? If so, they require special sorting
DECLARE_REFLECTION();
};
// ----------------------------------------------------------------------------- : Statistics category
/// Types of graphs
enum GraphType
{ GRAPH_TYPE_BAR
, GRAPH_TYPE_PIE
, GRAPH_TYPE_SCATTER
};
/// A category for statistics
/** Can be generated automatically based on a dimension */
class StatsCategory {
public:
StatsCategory();
StatsCategory(const StatsDimensionP&);
bool automatic; ///< Automatically generated?
String name; ///< Name/label
String description; ///< Description, used in status bar
String icon_filename; ///< Icon for lists
Bitmap icon; ///< The loaded icon (optional of course)
vector<StatsDimensionP> dimensions; ///< The dimensions to use, higher dimensions may be null
GraphType type; ///< Type of graph to use
DECLARE_REFLECTION();
};
// ----------------------------------------------------------------------------- : EOF
#endif