campo-sirio/include/progind.h
guy 3e793a4cab applicat.cpp Gestione semplificata dei bar_item
array.cpp      Corretti TPointer_array
assoc.cpp      Aggiuntta add()
cfiles.c       Corretto salvataggio pathpref.ini
controls.cpp   Aggiunto attributo di read_only
default.url    Aggiunto menu di edit ed help
mask.cpp       Gestione menu edit
maskfld.cpp    Gestione menu edit
msksheet.cpp   Gestione menu edit
progind.cpp    Aggiunto nuova scavatura 3D
sheet.cpp
viswin.cpp     Aggiornati ID del menu edit
window.cpp     Corretta gestione voci di menu standard
xvtility.cpp   Aggiunto metodo per skippare gli errori di XVT


git-svn-id: svn://10.65.10.50/trunk@5791 c028cbd2-c16b-5b4b-a496-9718f37d4682
1997-12-24 14:26:25 +00:00

171 lines
4.7 KiB
C++
Executable File

#ifndef __PROGIND_H
#define __PROGIND_H
#ifdef __cplusplus
#ifndef __STRINGS_H
#include <strings.h>
#endif
#ifndef __WINDOW_H
#include <window.h>
#endif
#ifndef __CONTROLS_H
class TControl;
class TField_control;
#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
TField_control* _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 = 60);
// @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, const 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, const char*, bool, bool, int, int);
void timerind_cancel();
bool timerind_iscancelled();
bool timerind_isfinished();
void timerind_destroy();
#ifdef __cplusplus
}
#endif
#endif /* __PROGIND_H */