Moved chess stuff in the chess library.
[tagua/yd.git] / src / core / variant.h
bloba8241377ea75d00cdf33883639c10ed14f017518
1 /*
2 Copyright (c) 2007 Paolo Capriotti <p.capriotti@gmail.com>
3 (c) 2007 Maurizio Monge <maurizio.monge@kdemail.net>
5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version.
9 */
11 #ifndef CORE__VARIANT_H
12 #define CORE__VARIANT_H
14 #include <KPluginFactory>
15 #include <KPluginLoader>
17 #include "repository.h"
19 /**
20 * @brief A Variant instance represents a game supported in Tagua.
22 class TAGUA_EXPORT Variant {
23 QString m_name;
24 QString m_proxy;
25 bool m_hidden;
26 Repository m_repo;
27 public:
28 Variant(const QString& name, const QString& proxy = QString(), bool hidden = false);
30 QString name() const;
32 QString proxy() const;
34 bool hidden() const;
36 const Repository* repository() const;
37 Repository* repository();
40 template <typename Interface>
41 Interface* requestComponent(Variant* var, const QString& component) {
42 return requestInterface<Interface>(var->repository()->getComponent(component));
45 #endif // CORE__VARIANT_H