Etudes/BTS/C++/RessourcesReveil/cadran.cpp

59 lines
1.6 KiB
C++
Raw Normal View History

2016-10-14 15:52:18 +00:00
/***************************************************************************
Classe Cadran
Auteur : Philippe CRUCHET - Janvier 2015
R<EFBFBD>le : Permet de d<EFBFBD>finir un cadran digital, la taille est d<EFBFBD>finie par
le constructeur.
Projet : horloge
IDE : Code::Blocks sous linux avec utilisation de la librairie ncurses
***************************************************************************/
#include <stdio.h>
#include "cadran.h"// a faire
Cadran::Cadran(const int _posX,const int _posY,const int _hauteur,const int _largeur)
: posX(_posX), posY(_posY), hauteur(_hauteur), largeur (_largeur)
/*
* R<EFBFBD>le : Initialisation du cadran
* Param<EFBFBD>tres : _posX,_posY position du coin gauche du cadran
* _hauteur, _largeur dimensions du cadran
*/
{
initscr();
keypad(stdscr, TRUE);
noecho();// a faire
mvaddch(posY, posX, '+');
mvaddch(posY, posX + largeur, '+');
mvaddch(posY + hauteur, posX, '+');
mvaddch(posY + hauteur, posX + largeur, '+');
mvhline(posY, posX + 1, '-', largeur - 1);
mvhline(posY + hauteur, posX + 1, '-', largeur - 1);
mvvline(posY + 1, posX, '|', hauteur - 1);
mvvline(posY + 1, posX + largeur, '|', hauteur - 1);
}
Cadran::~Cadran()
{
endwin();
}
void Cadran::Afficher(const char *texte, const int position)
{
mvprintw(posY + 1 , posX + 1 + position, texte ) ;
mvprintw(0,0,"") ;
refresh() ;
}
void Cadran::Afficher(const int valeur,const int position)
{
char *texte = new char[largeur+1] ;
if(texte != NULL)
{
sprintf(texte,"%02d",valeur);
Afficher(texte,position) ;
delete texte ;
}
}