diff options
Diffstat (limited to 'libksirtet/common/factory.h')
-rw-r--r-- | libksirtet/common/factory.h | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/libksirtet/common/factory.h b/libksirtet/common/factory.h new file mode 100644 index 00000000..c0b40d66 --- /dev/null +++ b/libksirtet/common/factory.h @@ -0,0 +1,36 @@ +#ifndef COMMON_FACTORY_H +#define COMMON_FACTORY_H + +#include "base/factory.h" + +#include "lib/libksirtet_export.h" + +struct CommonBoardInfo { + uint baseTime, dropDownTime, beforeGlueTime, afterGlueTime; + uint afterGiftTime, nbBumpStages; + uint nbRemovedToLevel; + uint nbGiftLeds, maxGiftsToSend, giftShowerTimeout, giftPoolTimeout; +}; + +class BaseField; +class AI; + +#define cfactory static_cast<CommonFactory *>(BaseFactory::self()) + +class LIBKSIRTET_EXPORT CommonFactory : public BaseFactory +{ + public: + CommonFactory(const MainData &, const BaseBoardInfo &, + const CommonBoardInfo &); + + const CommonBoardInfo &cbi; + + virtual BaseField *createField(QWidget *parent) = 0; + virtual AI *createAI() = 0; + + QWidget *createAIConfig(); + virtual QWidget *createAppearanceConfig(); + virtual QWidget *createGameConfig(); +}; + +#endif |