campo-sirio/include/progind.h
guy 972e56a4bd isam.cpp Migliorate conversioni dei TRecfield
printapp.cpp  Corretta formattazione dei long double
printer.cpp   Migliorato riconoscimento del fax
progind.cpp   Aggiorna la barro solo se cambia la percentuale
strings.cpp   Aggiunta funzione get_buffer


git-svn-id: svn://10.65.10.50/trunk@3952 c028cbd2-c16b-5b4b-a496-9718f37d4682
1996-12-02 11:01:06 +00:00

170 lines
4.6 KiB
C++
Executable File

#ifdef __cplusplus
#ifndef __PROGIND_H
#define __PROGIND_H
#ifndef __STRINGS_H
#include <strings.h>
#endif
#ifndef __WINDOW_H
#include <window.h>
#endif
#ifndef __CONTROLS_H
class TControl;
#endif
// @doc EXTERNAL
// @class TIndwin | Classe base per la gestione delle finestre con le barre di attesa
//
// @base public | TWindow
class TIndwin : public TWindow
// @author:(INTERNAL) Villa
{
// @access:(INTERNAL) Private Member
enum {
// @ccost:(INTERNAL) IND_CANCELLED | 0x01 | Controlla se e' stato premuto il tasto "Annulla"
IND_CANCELLED = 0x01,
// @ccost:(INTERNAL) IND_FINISHED | 0x02 | Controlla se l'operazione e' terminata
IND_FINISHED= 0x02 };
// @cmember:(INTERNAL) Testo da inserire nella finestra
TControl* _text;
// @cmember:(INTERNAL) Bottone "Annulla"
TControl* _cancel;
// @cmember:(INTERNAL) Movimento della barra e percentuale
WINDOW _bar;
// @cmember:(INTERNAL) Flag che indica quali operazioni sono state effettuate
byte _flags;
// @access Protected Member
protected:
// @cmember Massimo valore da ricercare
long _max;
// @cmember Stato corrente dell'esecuzione (settato dell'utente)
long _status;
// @cmember Ritorna il numero di linee necessarie per scrivere il testo nella finestra
word measure_text(TToken_string& t, word& len) const;
// @cmember Gestisce gli eventi tasto della finestra
virtual bool on_key(KEY k);
// @cmember Gestisce gli eventi bottone della finestra
virtual void on_button(short id);
// @cmember Aggiorna la barra di attesa (chiama update_bar)
virtual void update();
// @cmember Aggiorna la barra di attesa
void update_bar();
// @cmember Controlla se ha terminato la barra di attesa
KEY check_stop();
// @access Public Member
public:
// @cmember Controlla se e' stato premuto il tasto "Annulla"
bool iscancelled() const
{ do_events(); return _flags & IND_CANCELLED; }
// @cmember Controlla se e' finito l'operazione
bool isfinished() const
{ do_events(); return _flags & IND_FINISHED; }
// @cmember Ritorna lo stato dell'operazione (quantita' dell'applicazione gia' fatta)
long status() const
{ do_events(); return _status; }
// @cmember Ferma l'operazione (chiude la finestra)
void cancel()
{ _flags |= IND_CANCELLED; do_events(); check_stop(); }
// @cmember Controlla se l'operazione puo' essere chiusa
virtual bool can_be_closed() const;
// @cmember Setta il testo della finestra
void set_text(const char* t);
// @cmember Costruttore
TIndwin(long max, const char* txt, bool cancel = TRUE, bool bar = TRUE, int div = 16);
// @cmember Distruttore
virtual ~TIndwin();
};
// @doc EXTERNAL
// @class TProgind | Classe per la gestione della barra di attesa di una applicazione
//
// @base public | TIndwin
class TProgind : public TIndwin
// @author:(INTERNAL) Villa
{
// @access Public Member
public:
// @cmember Setta il valore massimo della barra d'attesa
void setmax(long m)
{ _max = m; }
// @cmember Setta lo stato della barra d'attesa
void setstatus(long l);
// @cmember Aggiorna la barra d'attesa aggiungendo l'incremento fatto dell'applicazione
void addstatus(long l)
{ setstatus(_status+l); }
// @cmember Costruttore
TProgind(long max, const char* txt = NULL, bool cancel = TRUE, bool bar = TRUE, int div = 10);
// @cmember Distruttore
virtual ~TProgind()
{}
};
// @doc EXTERNAL
// @class TTimerind | Classe per la definizione di una barra d'attesa gestita
// dal tempo e non dallo stato dell'applicazione
//
// @base public | TIndwin
class TTimerind : public TIndwin
// @author:(INTERNAL) Villa
{
// @access:(INTERNAL) Private Member
// @cmember:(INTERNAL) Intervallo di tempo
int _interval;
// @cmember:(INTERNAL) Indice di tempo
static long _timer_id;
// @access Protected Member
protected:
// @cmember Gestisce gli eventi della finestra
virtual void handler(WINDOW w, EVENT* e);
// @access Public Member
public:
// @cmember Costruttore
TTimerind(long msec, const char* txt = NULL, bool cancel = TRUE, bool bar = TRUE, int div = 10, int interval = 1000);
// @cmember Distruttore
virtual ~TTimerind();
};
#endif
#ifdef __cplusplus
extern "C" {
#endif
// Non commentate perche' destinate a sparire
void progind_create(long, char*, bool, bool, int);
void progind_set_status(long);
void progind_cancel();
bool progind_iscancelled();
bool progind_isfinished();
void progind_destroy();
void timerind_create(long, char*, bool, bool, int, int);
void timerind_cancel();
bool timerind_iscancelled();
bool timerind_isfinished();
void timerind_destroy();
#ifdef __cplusplus
}
#endif
#endif /* __PROGIND_H */