You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdegames/kpoker/playerbox.h

156 lines
3.7 KiB

/*
* 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 2 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, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
#ifndef PLAYERBOX_H
#define PLAYERBOX_H
#include <tqgroupbox.h>
class TQLabel;
class PokerPlayer;
class CardWidget;
class PlayerBox : public TQGroupBox
{
Q_OBJECT
public:
PlayerBox(bool playerOne, TQWidget* parent = 0, const char* name = 0);
~PlayerBox();
void cardClicked(int no);
/**
* Show the name of the player who owns this box. Use m_player to
* get the name.
**/
void showName();
/**
* Paints the cash
**/
void showCash(); // and some more
/**
* Sets the player which is used e.g. by @ref showCash()
* @param p The guy who owns this box
**/
void setPlayer(PokerPlayer* p) { m_player = p; }
/**
* Hides the card nr (0 = first card)
*
* Used to let the cards blink.
* @param nr The number of the card which will be hidden
**/
void hideCard(int nr);
/**
* @param nr The number of the card (where 0 = first card)
* @return If the card nr shall be held
**/
bool getHeld(int nr) const;
/**
* shows all held labels or hides them all
* @param on Shows all all labels if true and hides them if false
**/
void showHelds(bool on);
/**
* Enables the held labels if on is true or disables them
* (e.g. after exchange phase) if false
* @param e Enables held labels if true, disables if false
**/
void setHeldEnabled(bool on);
// FIXME: Combine these two into paintCard(int nr, bool showFront);
/**
* Paints the card nr
* @param nr The number of the card (where 0 = first card)
**/
void paintCard(int nr);
/**
* Paints the deck
* @param nr The number of the card (where 0 = first card)
**/
void paintDeck(int nr);
/**
* Starts a one player game
* @param newCashPerRound The cash that the player has to pay every round
**/
void singlePlayerGame(int newCashPerRound);
/**
* Activates the held labels for this player (human player)
**/
void activateToggleHeld();
/**
* Begins blinking of the winning cards
**/
void blinkOn();
/**
* Stops blinking of the winning cards
**/
void blinkOff();
void repaintCard();
protected:
virtual void resizeEvent( TQResizeEvent* e );
protected slots:
void cardClicked(CardWidget* );
signals:
void toggleHeld();
private:
// The player that acts on the hand.
PokerPlayer *m_player; // The player object.
// Properties of the game
bool m_singlePlayer; // True if this is the only player in the game.
int m_cashPerRound; // one player game only FIXME: Rename into "ante"?
// The card widgets and "held" widgets
CardWidget **m_cardWidgets;
TQLabel **m_heldLabels;
bool m_enableHeldLabels; // True if held labels are enabled.
// The labels at the right hand side of the box.
TQLabel *m_cashLabel;
TQLabel *m_betLabel;
};
#endif