/* Czesc modulu Interfejs deklarujaca klase guzikow
   autor   :   Anna Doros
                                                             GRUPA 5
*/


#ifndef __GUZIK_H
#define __GUZIK_H


#include <qpushbutton.h>
#include <qlabel.h>
#include <qfont.h>
#include "stale_Interfejs.h"
#include "sciezki.h"

class GuzikGra : public QWidget
{
    Q_OBJECT
protected:
    static int ile_guzikow;           /* do identyfikacji miejsca wstawienia */
    int ilu_komandosow;               /* kolejnych guzikow */
    
    QFont font;
    QLabel * numerek;                 /* cyfra */
    QPushButton * przycisk;
    
public:
    GuzikGra(const char * maska,const char * obrazek,QWidget* parent=0,const char * name=0);
    ~GuzikGra();
    
    void nowyNumerek(int nowy);       /* inicjalizacja zmiennej numerek */
/* ukrycie numerka - nie wszystkie guziki beda go pokazywac */
    void ukryjNumerek() { numerek->hide(); };
    void odejmij();                   /* zmiana wartosci zmiennej numerek */

signals:
    void clicked();
}; /* GuzikGra */


/* ************************************************************************* */



/* Ponizsze klasy opisuja guziki o z gory ustalonym rozmiarze i  pozycji 
   (zaleznej od kolejnosci wstawiania) */
   
   
class Guzik : public QPushButton
{
    Q_OBJECT
public:
    Guzik(const char * maska,const char * obrazek,QWidget* parent=0,const char * name=0);
}; /* Guzik */


/* Klasa opisuje guzik okna poczatkowego: */
class GuzikPocz : public Guzik
{
    Q_OBJECT
protected:
    static int ile_guzikow;
public:
    GuzikPocz(const char * maska,const char * obrazek,QWidget* parent=0,const char * name=0);
    ~GuzikPocz() { ile_guzikow--; };
}; /* GuzikPocz */


/* Klasa opisuje guzik okna miedzyetapowego oraz koncowego: */
class GuzikEtap : public Guzik
{
    Q_OBJECT
protected:
    static int ile_guzikow;
public:
    GuzikEtap(const char * maska,const char * obrazek,QWidget* parent=0,const char * name=0);
    ~GuzikEtap() { ile_guzikow--; };
}; /* GuzikEtap */


#endif