1994-09-13 16:43:52 +00:00
|
|
|
#ifndef __PROGIND_H
|
|
|
|
#define __PROGIND_H
|
|
|
|
|
1997-12-02 13:21:19 +00:00
|
|
|
#ifdef __cplusplus
|
|
|
|
|
1996-05-08 11:09:13 +00:00
|
|
|
#ifndef __STRINGS_H
|
|
|
|
#include <strings.h>
|
|
|
|
#endif
|
|
|
|
|
1994-09-13 16:43:52 +00:00
|
|
|
#ifndef __WINDOW_H
|
|
|
|
#include <window.h>
|
|
|
|
#endif
|
|
|
|
|
1996-05-08 11:09:13 +00:00
|
|
|
#ifndef __CONTROLS_H
|
|
|
|
class TControl;
|
1997-12-24 14:26:25 +00:00
|
|
|
class TField_control;
|
1994-09-13 16:43:52 +00:00
|
|
|
#endif
|
|
|
|
|
1995-06-27 10:18:49 +00:00
|
|
|
// @doc EXTERNAL
|
1994-09-13 16:43:52 +00:00
|
|
|
|
1995-06-27 10:18:49 +00:00
|
|
|
// @class TIndwin | Classe base per la gestione delle finestre con le barre di attesa
|
|
|
|
//
|
|
|
|
// @base public | TWindow
|
1994-09-13 16:43:52 +00:00
|
|
|
class TIndwin : public TWindow
|
1995-06-27 10:18:49 +00:00
|
|
|
// @author:(INTERNAL) Villa
|
1994-09-13 16:43:52 +00:00
|
|
|
{
|
1996-02-05 19:00:53 +00:00
|
|
|
// @access:(INTERNAL) Private Member
|
1995-06-27 10:18:49 +00:00
|
|
|
|
|
|
|
enum {
|
1996-02-05 19:00:53 +00:00
|
|
|
// @ccost:(INTERNAL) IND_CANCELLED | 0x01 | Controlla se e' stato premuto il tasto "Annulla"
|
1995-06-27 10:18:49 +00:00
|
|
|
IND_CANCELLED = 0x01,
|
1996-02-05 19:00:53 +00:00
|
|
|
// @ccost:(INTERNAL) IND_FINISHED | 0x02 | Controlla se l'operazione e' terminata
|
1995-06-27 10:18:49 +00:00
|
|
|
IND_FINISHED= 0x02 };
|
|
|
|
|
1996-02-05 19:00:53 +00:00
|
|
|
// @cmember:(INTERNAL) Testo da inserire nella finestra
|
1997-12-24 14:26:25 +00:00
|
|
|
TField_control* _text;
|
1996-02-05 19:00:53 +00:00
|
|
|
// @cmember:(INTERNAL) Bottone "Annulla"
|
1996-05-08 11:09:13 +00:00
|
|
|
TControl* _cancel;
|
1996-02-05 19:00:53 +00:00
|
|
|
// @cmember:(INTERNAL) Movimento della barra e percentuale
|
1995-06-27 10:18:49 +00:00
|
|
|
WINDOW _bar;
|
1996-02-05 19:00:53 +00:00
|
|
|
// @cmember:(INTERNAL) Flag che indica quali operazioni sono state effettuate
|
1995-06-27 10:18:49 +00:00
|
|
|
byte _flags;
|
|
|
|
|
|
|
|
// @access Protected Member
|
1994-09-13 16:43:52 +00:00
|
|
|
protected:
|
1996-09-05 09:54:52 +00:00
|
|
|
// @cmember Massimo valore da ricercare
|
1995-06-27 10:18:49 +00:00
|
|
|
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;
|
|
|
|
|
1996-05-08 11:09:13 +00:00
|
|
|
// @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);
|
|
|
|
|
1995-06-27 10:18:49 +00:00
|
|
|
// @cmember Aggiorna la barra di attesa (chiama update_bar)
|
1994-09-13 16:43:52 +00:00
|
|
|
virtual void update();
|
1995-06-27 10:18:49 +00:00
|
|
|
|
|
|
|
// @cmember Aggiorna la barra di attesa
|
1994-09-13 16:43:52 +00:00
|
|
|
void update_bar();
|
1995-06-27 10:18:49 +00:00
|
|
|
// @cmember Controlla se ha terminato la barra di attesa
|
1994-09-13 16:43:52 +00:00
|
|
|
KEY check_stop();
|
|
|
|
|
1995-06-27 10:18:49 +00:00
|
|
|
// @access Public Member
|
1994-09-13 16:43:52 +00:00
|
|
|
public:
|
1995-06-27 10:18:49 +00:00
|
|
|
// @cmember Controlla se e' stato premuto il tasto "Annulla"
|
|
|
|
bool iscancelled() const
|
1998-03-05 13:54:51 +00:00
|
|
|
{ do_events(); return (_flags & IND_CANCELLED) != 0; }
|
1995-06-27 10:18:49 +00:00
|
|
|
// @cmember Controlla se e' finito l'operazione
|
|
|
|
bool isfinished() const
|
1998-03-05 13:54:51 +00:00
|
|
|
{ do_events(); return (_flags & IND_FINISHED) != 0; }
|
1995-06-27 10:18:49 +00:00
|
|
|
// @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(); }
|
1994-09-13 16:43:52 +00:00
|
|
|
|
1995-06-27 10:18:49 +00:00
|
|
|
// @cmember Controlla se l'operazione puo' essere chiusa
|
1994-09-13 16:43:52 +00:00
|
|
|
virtual bool can_be_closed() const;
|
1995-06-27 10:18:49 +00:00
|
|
|
|
|
|
|
// @cmember Setta il testo della finestra
|
1994-09-13 16:43:52 +00:00
|
|
|
void set_text(const char* t);
|
|
|
|
|
1995-06-27 10:18:49 +00:00
|
|
|
// @cmember Costruttore
|
|
|
|
TIndwin(long max, const char* txt, bool cancel = TRUE, bool bar = TRUE, int div = 16);
|
|
|
|
// @cmember Distruttore
|
1994-09-13 16:43:52 +00:00
|
|
|
virtual ~TIndwin();
|
|
|
|
};
|
|
|
|
|
1996-02-05 19:00:53 +00:00
|
|
|
// @doc EXTERNAL
|
|
|
|
|
1995-06-27 10:18:49 +00:00
|
|
|
// @class TProgind | Classe per la gestione della barra di attesa di una applicazione
|
|
|
|
//
|
|
|
|
// @base public | TIndwin
|
1994-09-13 16:43:52 +00:00
|
|
|
class TProgind : public TIndwin
|
1995-06-27 10:18:49 +00:00
|
|
|
// @author:(INTERNAL) Villa
|
1994-09-13 16:43:52 +00:00
|
|
|
{
|
1995-06-27 10:18:49 +00:00
|
|
|
// @access Public Member
|
1994-09-13 16:43:52 +00:00
|
|
|
public:
|
1995-06-27 10:18:49 +00:00
|
|
|
// @cmember Setta il valore massimo della barra d'attesa
|
|
|
|
void setmax(long m)
|
|
|
|
{ _max = m; }
|
|
|
|
// @cmember Setta lo stato della barra d'attesa
|
1996-12-02 11:01:06 +00:00
|
|
|
void setstatus(long l);
|
1995-06-27 10:18:49 +00:00
|
|
|
// @cmember Aggiorna la barra d'attesa aggiungendo l'incremento fatto dell'applicazione
|
|
|
|
void addstatus(long l)
|
|
|
|
{ setstatus(_status+l); }
|
|
|
|
// @cmember Costruttore
|
1997-08-26 13:56:55 +00:00
|
|
|
TProgind(long max, const char* txt = NULL, bool cancel = TRUE, bool bar = TRUE, int div = 60);
|
1995-06-27 10:18:49 +00:00
|
|
|
// @cmember Distruttore
|
|
|
|
virtual ~TProgind()
|
|
|
|
{}
|
1994-09-13 16:43:52 +00:00
|
|
|
};
|
|
|
|
|
1996-02-05 19:00:53 +00:00
|
|
|
// @doc EXTERNAL
|
|
|
|
|
1995-06-27 10:18:49 +00:00
|
|
|
// @class TTimerind | Classe per la definizione di una barra d'attesa gestita
|
|
|
|
// dal tempo e non dallo stato dell'applicazione
|
|
|
|
//
|
|
|
|
// @base public | TIndwin
|
1994-09-13 16:43:52 +00:00
|
|
|
class TTimerind : public TIndwin
|
1995-06-27 10:18:49 +00:00
|
|
|
// @author:(INTERNAL) Villa
|
1994-09-13 16:43:52 +00:00
|
|
|
{
|
1996-02-05 19:00:53 +00:00
|
|
|
// @access:(INTERNAL) Private Member
|
1995-06-27 10:18:49 +00:00
|
|
|
|
1996-02-05 19:00:53 +00:00
|
|
|
// @cmember:(INTERNAL) Intervallo di tempo
|
1994-09-13 16:43:52 +00:00
|
|
|
int _interval;
|
1996-02-05 19:00:53 +00:00
|
|
|
// @cmember:(INTERNAL) Indice di tempo
|
1994-09-13 16:43:52 +00:00
|
|
|
static long _timer_id;
|
|
|
|
|
1995-06-27 10:18:49 +00:00
|
|
|
// @access Protected Member
|
1994-09-13 16:43:52 +00:00
|
|
|
protected:
|
1995-06-27 10:18:49 +00:00
|
|
|
// @cmember Gestisce gli eventi della finestra
|
1994-09-13 16:43:52 +00:00
|
|
|
virtual void handler(WINDOW w, EVENT* e);
|
|
|
|
|
1995-06-27 10:18:49 +00:00
|
|
|
// @access Public Member
|
1994-09-13 16:43:52 +00:00
|
|
|
public:
|
1995-06-27 10:18:49 +00:00
|
|
|
// @cmember Costruttore
|
|
|
|
TTimerind(long msec, const char* txt = NULL, bool cancel = TRUE, bool bar = TRUE, int div = 10, int interval = 1000);
|
|
|
|
// @cmember Distruttore
|
1994-09-13 16:43:52 +00:00
|
|
|
virtual ~TTimerind();
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
1995-06-27 10:18:49 +00:00
|
|
|
// Non commentate perche' destinate a sparire
|
1997-12-02 13:21:19 +00:00
|
|
|
void progind_create(long, const char*, bool, bool, int);
|
1994-09-13 16:43:52 +00:00
|
|
|
void progind_set_status(long);
|
|
|
|
void progind_cancel();
|
|
|
|
bool progind_iscancelled();
|
|
|
|
bool progind_isfinished();
|
|
|
|
void progind_destroy();
|
1997-12-02 13:21:19 +00:00
|
|
|
void timerind_create(long, const char*, bool, bool, int, int);
|
1994-09-13 16:43:52 +00:00
|
|
|
void timerind_cancel();
|
|
|
|
bool timerind_iscancelled();
|
|
|
|
bool timerind_isfinished();
|
|
|
|
void timerind_destroy();
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif /* __PROGIND_H */
|