4 #include <boost/bind.hpp>
6 #include <QActionGroup>
9 #include "../tagua_wrapped.h"
10 #include "actioncollection.h"
15 const char* Variant::m_name
= "Chess";
16 const char* Variant::m_theme_proxy
= "Chess";
19 : m_promotion(GameState::Board::Piece::QUEEN
) { }
21 QAction
* createAction(QActionGroup
* group
, const KIcon
& icon
, const QString
& text
) {
22 QAction
* action
= new KAction(icon
, text
, group
);
23 action
->setCheckable(true);
24 group
->addAction(action
);
28 void Variant::setupActions(ActionCollection
* actions
) {
29 QActionGroup
* group
= new QActionGroup(actions
);
31 QAction
* queen
= createAction(group
, KIcon("promoteQueen"), "Promote to queen");
32 queen
->setChecked(true);
33 actions
->add(queen
, boost::bind(std::mem_fun(&Variant::promote_to_queen
), this));
35 QAction
* rook
= createAction(group
, KIcon("promoteRook"), "Promote to rook");
36 actions
->add(rook
, boost::bind(std::mem_fun(&Variant::promote_to_rook
), this));
38 QAction
* bishop
= createAction(group
, KIcon("promoteBishop"), "Promote to bishop");
39 actions
->add(bishop
, boost::bind(std::mem_fun(&Variant::promote_to_bishop
), this));
41 QAction
* knight
= createAction(group
, KIcon("promoteKnight"), "Promote to knight");
42 actions
->add(knight
, boost::bind(std::mem_fun(&Variant::promote_to_knight
), this));
45 void Variant::promote_to_queen() {
46 m_promotion
= GameState::Board::Piece::QUEEN
;
49 void Variant::promote_to_rook() {
50 m_promotion
= GameState::Board::Piece::ROOK
;
53 void Variant::promote_to_bishop() {
54 m_promotion
= GameState::Board::Piece::BISHOP
;
57 void Variant::promote_to_knight() {
58 m_promotion
= GameState::Board::Piece::KNIGHT
;
62 } // namespace HLVariant