1994-09-22 07:48:15 +00:00
|
|
|
|
#ifndef __VISWIN_H
|
|
|
|
|
#define __VISWIN_H
|
|
|
|
|
|
1996-05-08 11:09:13 +00:00
|
|
|
|
#ifndef __CONTROLS_H
|
|
|
|
|
class TPushbutton_control;
|
1994-09-22 07:48:15 +00:00
|
|
|
|
#endif
|
|
|
|
|
|
1998-02-13 13:59:33 +00:00
|
|
|
|
#ifndef __MASK_H
|
|
|
|
|
#include <mask.h>
|
1994-09-22 07:48:15 +00:00
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifndef __TEXTFILE_H
|
|
|
|
|
#include <text.h>
|
|
|
|
|
#endif
|
|
|
|
|
|
1994-12-01 14:49:44 +00:00
|
|
|
|
class TBrowsefile_field;
|
|
|
|
|
|
1996-02-05 19:00:53 +00:00
|
|
|
|
// @doc INTERNAL
|
1995-10-20 18:27:01 +00:00
|
|
|
|
|
|
|
|
|
// @class TViswin | Classe per la gestione della finestra video di anteprima di stampa
|
|
|
|
|
//
|
|
|
|
|
// @base public | TScroll_window
|
1998-02-13 13:59:33 +00:00
|
|
|
|
class TViswin : public TField_window
|
1994-12-01 14:49:44 +00:00
|
|
|
|
|
1995-12-29 12:09:48 +00:00
|
|
|
|
// @author:(INTERNAL) Villa
|
1995-10-20 18:27:01 +00:00
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
// @cfriend TBrowsefile_field
|
|
|
|
|
friend class TBrowsefile_field;
|
1996-02-05 19:00:53 +00:00
|
|
|
|
|
|
|
|
|
// @access:(INTERNAL) Private Member
|
1995-10-20 18:27:01 +00:00
|
|
|
|
|
1996-05-08 11:09:13 +00:00
|
|
|
|
|
|
|
|
|
enum {
|
1996-02-05 19:00:53 +00:00
|
|
|
|
// @ccost:(INTERNAL) MAXLEN | 256 | Lunghezza massima del modulo di stampa
|
1995-10-20 18:27:01 +00:00
|
|
|
|
MAXLEN = 256,
|
1996-02-05 19:00:53 +00:00
|
|
|
|
// @ccost:(INTERNAL) BUFFERSIZE | 256 | Dimensione del buffer di stampa
|
1995-10-20 18:27:01 +00:00
|
|
|
|
BUFFERSIZE = 256,
|
1996-02-05 19:00:53 +00:00
|
|
|
|
// @ccost:(INTERNAL) MAXPIC | 4 | Numero massimo di immagini gestibili nell'anteprima
|
1995-10-20 18:27:01 +00:00
|
|
|
|
MAXPIC=4};
|
|
|
|
|
|
1994-09-22 07:48:15 +00:00
|
|
|
|
enum scroll { none, up, down, left, right };
|
|
|
|
|
|
1996-02-05 19:00:53 +00:00
|
|
|
|
// @cmember:(INTERNAL) Nome del file di visualizzazione
|
1995-10-20 18:27:01 +00:00
|
|
|
|
TFilename _filename;
|
1996-02-05 19:00:53 +00:00
|
|
|
|
// @cmember:(INTERNAL) Indica la presenza del bottone Collega
|
1995-10-20 18:27:01 +00:00
|
|
|
|
bool _islink;
|
1996-02-05 19:00:53 +00:00
|
|
|
|
// @cmember:(INTERNAL) Indica la presenza del bottone Edit
|
1995-10-20 18:27:01 +00:00
|
|
|
|
bool _isedit;
|
1996-02-05 19:00:53 +00:00
|
|
|
|
// @cmember:(INTERNAL) Indica la presenza del bottone Stampa
|
1995-10-20 18:27:01 +00:00
|
|
|
|
bool _isprint;
|
1996-02-05 19:00:53 +00:00
|
|
|
|
// @cmember:(INTERNAL) Indica se effettuare il disegno della crossbar
|
1995-10-20 18:27:01 +00:00
|
|
|
|
bool _iscross;
|
1996-02-05 19:00:53 +00:00
|
|
|
|
// @cmember:(INTERNAL) Indica se e' in corso la selezione
|
1995-10-20 18:27:01 +00:00
|
|
|
|
bool _selecting;
|
1996-02-05 19:00:53 +00:00
|
|
|
|
// @cmember:(INTERNAL) Indica se la selezione e' attiva
|
1995-10-20 18:27:01 +00:00
|
|
|
|
bool _isselection;
|
1996-02-05 19:00:53 +00:00
|
|
|
|
// @cmember:(INTERNAL) Indica se disegnare la X-bar al posto del cursore a punto
|
1995-10-20 18:27:01 +00:00
|
|
|
|
bool _isbar;
|
1996-02-05 19:00:53 +00:00
|
|
|
|
// @cmember:(INTERNAL) Indica se in corso lo scrolling
|
1995-10-20 18:27:01 +00:00
|
|
|
|
bool _scrolling;
|
1996-02-05 19:00:53 +00:00
|
|
|
|
// @cmember:(INTERNAL) Indica se possono arrivare nuove linee
|
1995-10-20 18:27:01 +00:00
|
|
|
|
bool _isopen;
|
1996-02-05 19:00:53 +00:00
|
|
|
|
// @cmember:(INTERNAL) Indica se sono stati selezionati flag
|
1995-10-20 18:27:01 +00:00
|
|
|
|
bool _selflag;
|
1996-02-05 19:00:53 +00:00
|
|
|
|
// @cmember:(INTERNAL) Indica se e' evidenziata la selezione
|
1995-10-20 18:27:01 +00:00
|
|
|
|
bool _sel_displayed;
|
1996-02-05 19:00:53 +00:00
|
|
|
|
// @cmember:(INTERNAL) Indica se e' visualizzato il link
|
1995-10-20 18:27:01 +00:00
|
|
|
|
bool _link_displayed;
|
1996-02-05 19:00:53 +00:00
|
|
|
|
// @cmember:(INTERNAL) Indica se' e' visualizzata l'incrocio della crossbar
|
1995-10-20 18:27:01 +00:00
|
|
|
|
bool _cross_displayed;
|
1996-02-05 19:00:53 +00:00
|
|
|
|
// @cmember:(INTERNAL) Indica se e' visualizzato il cursore a carattere
|
1995-10-20 18:27:01 +00:00
|
|
|
|
bool _point_displayed;
|
1996-02-05 19:00:53 +00:00
|
|
|
|
// @cmember:(INTERNAL) Timer per evitare autorepeat di tasti
|
1995-10-20 18:27:01 +00:00
|
|
|
|
long _timer;
|
1996-02-05 19:00:53 +00:00
|
|
|
|
// <20>cmember:(INTERNAL) Timer di attesa prima della chiusura del file
|
1995-10-20 18:27:01 +00:00
|
|
|
|
long _wtimer;
|
1996-02-05 19:00:53 +00:00
|
|
|
|
// @cmember:(INTERNAL) Indica il tipo di scroll richiesto (vedi <t scroll>)
|
1995-10-20 18:27:01 +00:00
|
|
|
|
scroll _need_scroll;
|
1996-02-05 19:00:53 +00:00
|
|
|
|
// @cmember:(INTERNAL) Flag per il disegno intelligente
|
2007-06-01 09:44:03 +00:00
|
|
|
|
bool _in_update;
|
1996-02-05 19:00:53 +00:00
|
|
|
|
// @cmember:(INTERNAL) Array di bottoni attivi nella finestra
|
1996-05-08 11:09:13 +00:00
|
|
|
|
TArray _button;
|
1995-10-20 18:27:01 +00:00
|
|
|
|
|
1996-02-05 19:00:53 +00:00
|
|
|
|
// @cmember:(INTERNAL) Numero di righe di testo
|
1995-10-20 18:27:01 +00:00
|
|
|
|
long _textrows;
|
1996-02-05 19:00:53 +00:00
|
|
|
|
// @cmember:(INTERNAL) Numero di colonne di testo
|
1995-10-20 18:27:01 +00:00
|
|
|
|
long _textcolumns;
|
|
|
|
|
|
1996-02-05 19:00:53 +00:00
|
|
|
|
// @cmember:(INTERNAL) Testo che deve essere visualizzato
|
1995-10-20 18:27:01 +00:00
|
|
|
|
TTextfile _txt;
|
1996-02-05 19:00:53 +00:00
|
|
|
|
// @cmember:(INTERNAL) Prima linea di testo che deve essere visualizzata
|
1995-10-20 18:27:01 +00:00
|
|
|
|
long _firstline;
|
1996-02-05 19:00:53 +00:00
|
|
|
|
// @cmember:(INTERNAL) Ultima linea di testo che deve essere visualizzata
|
1995-10-20 18:27:01 +00:00
|
|
|
|
long _lastline;
|
1994-12-23 11:57:45 +00:00
|
|
|
|
|
1996-02-05 19:00:53 +00:00
|
|
|
|
// @cmember:(INTERNAL) Stringa di testo da cercare
|
1995-10-20 18:27:01 +00:00
|
|
|
|
TString _txt_to_find;
|
1996-02-05 19:00:53 +00:00
|
|
|
|
// @cmember:(INTERNAL) Posizione dell'ultima ricerca
|
1995-10-20 18:27:01 +00:00
|
|
|
|
TPoint _last_found;
|
1996-02-05 19:00:53 +00:00
|
|
|
|
// @cmember:(INTERNAL) Direzione della ricerca (TRUE verso il basso FALSE verso l'alto)
|
1995-10-20 18:27:01 +00:00
|
|
|
|
bool _down_dir;
|
1996-02-05 19:00:53 +00:00
|
|
|
|
// @cmember:(INTERNAL) Indica se si deve fare una ricerca case sensitive
|
1995-10-20 18:27:01 +00:00
|
|
|
|
bool _case_sensitive;
|
1996-06-11 08:08:02 +00:00
|
|
|
|
// @cmember:(INTERNAL) Memorizza lo stato del flag "espressione regolare" nella fin. di search
|
|
|
|
|
bool _regexp;
|
|
|
|
|
|
1996-02-05 19:00:53 +00:00
|
|
|
|
// @cmember:(INTERNAL) Lunghezza della pagina
|
1995-10-20 18:27:01 +00:00
|
|
|
|
int _formlen;
|
1994-09-22 07:48:15 +00:00
|
|
|
|
|
1996-02-05 19:00:53 +00:00
|
|
|
|
// @cmember:(INTERNAL) Posizione corrente del punto
|
1995-10-20 18:27:01 +00:00
|
|
|
|
TPoint _point;
|
1996-02-05 19:00:53 +00:00
|
|
|
|
// @cmember:(INTERNAL) Posizione corrente dell'incrocio della crossbar
|
1995-10-20 18:27:01 +00:00
|
|
|
|
PNT _cross;
|
1996-02-05 19:00:53 +00:00
|
|
|
|
// @cmember:(INTERNAL) Inizio della selezione (colonna, line del FILE)
|
1995-10-20 18:27:01 +00:00
|
|
|
|
TPoint _sel_start;
|
1996-02-05 19:00:53 +00:00
|
|
|
|
// @cmember:(INTERNAL) Fine della selezione (colonna, line del FILE)
|
1995-10-20 18:27:01 +00:00
|
|
|
|
TPoint _sel_end;
|
|
|
|
|
|
1996-02-05 19:00:53 +00:00
|
|
|
|
// @cmember:(INTERNAL) Array di link ammessi
|
1995-10-20 18:27:01 +00:00
|
|
|
|
TArray* _links;
|
1996-02-05 19:00:53 +00:00
|
|
|
|
// @cmember:(INTERNAL) Array di segnalibri
|
1995-10-20 18:27:01 +00:00
|
|
|
|
TArray* _bookmarks;
|
2007-02-16 13:48:27 +00:00
|
|
|
|
TString _descr, _pdescr;
|
1995-12-19 12:02:36 +00:00
|
|
|
|
|
1996-02-05 19:00:53 +00:00
|
|
|
|
// @cmember:(INTERNAL) Indica se occorre ridisegnare la selezione
|
1994-09-22 07:48:15 +00:00
|
|
|
|
bool need_paint_sel(bool smart = TRUE);
|
1995-03-22 09:07:04 +00:00
|
|
|
|
|
1996-02-05 19:00:53 +00:00
|
|
|
|
// @cmember:(INTERNAL) Array di icone del modulo scorrevole durante la stampa
|
1995-10-20 18:27:01 +00:00
|
|
|
|
TArray _modules;
|
1996-02-05 19:00:53 +00:00
|
|
|
|
// @cmember:(INTERNAL) Array di immagini propriamente ridimensionate
|
1995-10-20 18:27:01 +00:00
|
|
|
|
TArray _images;
|
|
|
|
|
|
1996-02-05 19:00:53 +00:00
|
|
|
|
// @cmember:(INTERNAL) Indica se e' attivato il link multiplo se si' vengono passati all'handler tutti i
|
1995-10-20 18:27:01 +00:00
|
|
|
|
// link presenti sulla stessa riga anziche' solo il selezionato
|
|
|
|
|
bool _multiple;
|
1996-02-05 19:00:53 +00:00
|
|
|
|
// @cmember:(INTERNAL) Testo del link
|
1996-05-08 11:09:13 +00:00
|
|
|
|
TString _linktxt;
|
1996-02-05 19:00:53 +00:00
|
|
|
|
// @cmember:(INTERNAL) Identificatore del link
|
1995-10-20 18:27:01 +00:00
|
|
|
|
int _linkID;
|
1996-02-05 19:00:53 +00:00
|
|
|
|
// @cmember:(INTERNAL) Indica tutti i link della riga nel caso di link multiplo
|
1995-10-20 18:27:01 +00:00
|
|
|
|
TToken_string _multiple_link;
|
1995-10-13 09:23:08 +00:00
|
|
|
|
|
1996-02-05 19:00:53 +00:00
|
|
|
|
// @cmember:(INTERNAL) Array di colori di background
|
1997-09-19 08:47:46 +00:00
|
|
|
|
TString_array* _bg;
|
1996-02-05 19:00:53 +00:00
|
|
|
|
// @cmember:(INTERNAL) Indica se la stampa e' stata interrotta
|
1995-10-20 18:27:01 +00:00
|
|
|
|
bool _frozen;
|
1996-02-05 19:00:53 +00:00
|
|
|
|
// @cmember:(INTERNAL) Finestra in primo piano (se FALSE e un campo di una maschera)
|
1995-10-20 18:27:01 +00:00
|
|
|
|
bool _toplevel;
|
1996-02-05 19:00:53 +00:00
|
|
|
|
// @cmember:(INTERNAL) Indica se mostrare il righello
|
1998-03-05 13:54:51 +00:00
|
|
|
|
byte _rulers;
|
1996-02-05 19:00:53 +00:00
|
|
|
|
// @cmember:(INTERNAL) Indica se visualizzare i bottoni
|
1995-10-20 18:27:01 +00:00
|
|
|
|
bool _showbuts;
|
1996-02-05 19:00:53 +00:00
|
|
|
|
// @cmember:(INTERNAL) Indica se si sta attivando un link
|
1995-10-20 18:27:01 +00:00
|
|
|
|
bool _inside_linkexec;
|
1996-02-05 19:00:53 +00:00
|
|
|
|
// <20>cmember:(INTERNAL) Indica se e' presente il menu' specifico della calsse
|
1995-10-20 18:27:01 +00:00
|
|
|
|
bool _menu_present;
|
1996-02-05 19:00:53 +00:00
|
|
|
|
// @cmember:(INTERNAL) Viene istanziato soltanto se e' usata come controllo
|
1996-05-08 11:09:13 +00:00
|
|
|
|
TBrowsefile_field* _brwfld;
|
1995-10-20 18:27:01 +00:00
|
|
|
|
|
|
|
|
|
// @access Protected Member
|
1994-09-22 07:48:15 +00:00
|
|
|
|
protected:
|
1996-02-05 19:00:53 +00:00
|
|
|
|
// @cmember Gestisce la pressione del tasto
|
1995-10-20 18:27:01 +00:00
|
|
|
|
virtual bool on_key (KEY);
|
1996-02-05 19:00:53 +00:00
|
|
|
|
// @cmember Apre la finestra di visualizzazione???
|
1994-09-22 07:48:15 +00:00
|
|
|
|
virtual void open();
|
1998-04-17 10:09:11 +00:00
|
|
|
|
// @cmember Autorizza la chiusura della finestra di stampa
|
|
|
|
|
virtual bool can_be_closed() const;
|
1994-09-22 07:48:15 +00:00
|
|
|
|
|
1995-10-20 18:27:01 +00:00
|
|
|
|
// @cmember Converte i caratteri in x in pixel
|
|
|
|
|
int tabx(int x) const;
|
|
|
|
|
// @cmember Converte i caratteri in y in pixel
|
|
|
|
|
int taby(int y) const;
|
|
|
|
|
|
1996-05-08 11:09:13 +00:00
|
|
|
|
// @cmember Cancella l'area di testo col colore <p c>
|
|
|
|
|
void txt_clear(COLOR c);
|
|
|
|
|
|
1995-10-20 18:27:01 +00:00
|
|
|
|
// @cmember Sposta lo schermo nella direzione <p dir> di 1
|
|
|
|
|
void shift_screen(scroll dir);
|
|
|
|
|
// @cmember Disegna lo schermo sulla porzione corrente di testo
|
|
|
|
|
void paint_screen();
|
|
|
|
|
// @cmember Disegna il cursore a crossbar in XOR
|
|
|
|
|
void draw_crossbars();
|
|
|
|
|
|
1996-05-28 09:24:12 +00:00
|
|
|
|
virtual void on_button(short dlg);
|
|
|
|
|
|
2003-03-14 08:50:29 +00:00
|
|
|
|
void get_clip_rect(RCT& clip) const;
|
|
|
|
|
|
1995-10-20 18:27:01 +00:00
|
|
|
|
// @cmember Disegna l'header del video (righello)
|
|
|
|
|
void paint_header();
|
|
|
|
|
// @cmember Disegna il cursore in xor nello stile del momento
|
|
|
|
|
void paint_point(bool erase = FALSE);
|
|
|
|
|
// @cmember Disegna la riga <p r>-esima (in coordinate testo)
|
1998-01-28 09:28:26 +00:00
|
|
|
|
virtual void paint_row(long r);
|
1995-10-20 18:27:01 +00:00
|
|
|
|
// @cmember Disegna una colonna
|
1998-01-28 09:28:26 +00:00
|
|
|
|
virtual void paint_column(long c, bool end);
|
1999-05-24 13:34:11 +00:00
|
|
|
|
// @cmember Disegna un'immagine
|
|
|
|
|
void paint_image(int row, const char* cp);
|
1995-10-20 18:27:01 +00:00
|
|
|
|
// @cmember Disegna in xor la selezione corrente a meno che non sia gia' disegnata
|
|
|
|
|
void paint_selection();
|
1998-02-24 10:37:28 +00:00
|
|
|
|
// @cmember Disegna una pagina che scorre.
|
|
|
|
|
void paint_waitbar();
|
1995-10-20 18:27:01 +00:00
|
|
|
|
// @cmember Permette di stampare il bakcground di riga <p row> e colonna <p col>
|
|
|
|
|
void paint_background(long, int);
|
|
|
|
|
// @cmember Chiama l'editor selezionato nel file PRASSI.INI. Ritorna il risultato della
|
|
|
|
|
// chiamata (TRUE se e' riuscito a chiamarlo)
|
|
|
|
|
bool call_editor();
|
1996-05-08 11:09:13 +00:00
|
|
|
|
// @cmember copia l'eventuale selezione nella clipboard
|
|
|
|
|
void sel_to_clipboard();
|
1995-10-20 18:27:01 +00:00
|
|
|
|
// @cmember Ritorna se in punto <p p> e' nel testo mostrato
|
|
|
|
|
bool in_text(const TPoint& p) const;
|
|
|
|
|
|
|
|
|
|
// @cmember Aggiunge un bottone alla finestra
|
1996-05-08 11:09:13 +00:00
|
|
|
|
TPushbutton_control* add_button(short id, const char* caption, short bup = 0, short bdn = 0);
|
1995-10-20 18:27:01 +00:00
|
|
|
|
// @cmember Riposiziona i bottoni centrandoli a seconda di quanti sono presenti
|
|
|
|
|
void repos_buttons();
|
|
|
|
|
// @cmember Assicura che la selezione rimanga nei limiti fisici del testo
|
|
|
|
|
void adjust_selection(TPoint& p1, TPoint& p2);
|
|
|
|
|
// @cmember Interfaccia per paint_selection: mostra se non c'e'
|
|
|
|
|
void display_selection();
|
|
|
|
|
// @cmember Interfaccia per paint_selection: cancella se c'e'
|
|
|
|
|
void erase_selection();
|
|
|
|
|
// @cmember Interfaccia per paint_point (se cross): mostra se non c'e'
|
|
|
|
|
void display_crossbar();
|
|
|
|
|
// @cmember Interfaccia per paint_point (se cross): cancella se c'e'
|
|
|
|
|
void erase_crossbar();
|
|
|
|
|
// @cmember Interfaccia per paint_point (se point): mostra se non c'e'
|
|
|
|
|
void display_point();
|
|
|
|
|
// @cmember Interfaccia per paint_point (se point): cancella se c'e'
|
|
|
|
|
void erase_point();
|
1998-01-28 09:28:26 +00:00
|
|
|
|
// @cmember Ritorna la posizione attuale del cursore
|
|
|
|
|
const TPoint& get_point() const { return _point; }
|
1995-10-20 18:27:01 +00:00
|
|
|
|
|
|
|
|
|
// @cmember Controlla se la posizione cursore <p where> cade su un
|
|
|
|
|
// link ipertestuale e si comporta di conseguenza
|
|
|
|
|
bool check_link(TPoint* where = NULL);
|
|
|
|
|
// @cmember Modifica le dimensione di un box
|
|
|
|
|
bool adjust_box(long& x1, long& x2, long y);
|
|
|
|
|
|
|
|
|
|
// @cmember Mostra il link ipertestuale se non c'e'
|
|
|
|
|
void paint_link(long y, long x1, long x2);
|
|
|
|
|
// @cmember Cancella il link ipertestuale se c'e'
|
|
|
|
|
void erase_link(long y, long x1, long x2);
|
|
|
|
|
// @cmember Mostra in xor il link ipertestuale (utilizzata da <mf TViswin::paint_link> e da
|
|
|
|
|
// <mf TViswin::erase_link>
|
|
|
|
|
void display_link(long y, long x1, long x2, const char* d);
|
|
|
|
|
|
|
|
|
|
// @cmember Usata internamente per bloccare l'aggiunta di nuove righe
|
|
|
|
|
void freeze()
|
|
|
|
|
{ _frozen = TRUE; }
|
|
|
|
|
|
|
|
|
|
// @cmember Chiama l'handler del link se si preme collega o si batte spazio su un link
|
|
|
|
|
void exec_link();
|
|
|
|
|
// @cmember Controlla la generazione menu indice se ci sono segnalibri
|
|
|
|
|
void build_index_menu();
|
|
|
|
|
|
|
|
|
|
// @cmember Viene chiamata quando si tenta di fare uno scroll impossibile da <p x> o <p y>:
|
|
|
|
|
// emette un suono e non effettuata lo scroll
|
|
|
|
|
void scroll_error(long x, long y);
|
1994-09-22 07:48:15 +00:00
|
|
|
|
|
1996-02-05 19:00:53 +00:00
|
|
|
|
// @cmember Aggiorna la finestra di stampa
|
1995-10-13 09:23:08 +00:00
|
|
|
|
virtual void update();
|
1996-02-05 19:00:53 +00:00
|
|
|
|
// @cmember Gestisce l'handler della finestra (vedi <mf TWindow::handler>
|
1995-10-20 18:27:01 +00:00
|
|
|
|
virtual void handler(WINDOW win, EVENT* ep);
|
|
|
|
|
|
1996-02-05 19:00:53 +00:00
|
|
|
|
// @cmember Controlla se e' stato selezionato la voce <p item> (parametro <p on>???)
|
1995-01-03 16:44:27 +00:00
|
|
|
|
void check_menu_item(MENU_TAG item, bool on = TRUE);
|
1996-02-05 19:00:53 +00:00
|
|
|
|
// @cmember Abilita/Disabilita una voce di menu'
|
1995-01-03 16:44:27 +00:00
|
|
|
|
void enable_menu_item(MENU_TAG item, bool on = TRUE);
|
2006-12-13 16:22:33 +00:00
|
|
|
|
bool enable_button(short id, bool on = true); // Accendi/spegni bottoni
|
|
|
|
|
bool disable_button(short id) { return enable_button(id, false); }
|
1995-01-03 16:44:27 +00:00
|
|
|
|
|
1998-01-28 09:28:26 +00:00
|
|
|
|
TBrowsefile_field* browsefile_field() const { return _brwfld; }
|
|
|
|
|
|
1995-10-20 18:27:01 +00:00
|
|
|
|
// @access Public Member
|
1994-09-22 07:48:15 +00:00
|
|
|
|
public:
|
1995-10-20 18:27:01 +00:00
|
|
|
|
// @cmember Permette di gestire i collegamenti ipertestuali. Occorre passare il testo completo
|
|
|
|
|
// <p txt>, il punto di inizio selezione <p start> e quello di fine selezione <p end>;
|
|
|
|
|
// se non c'e' selezione non viene chiamata affatto (il bottone non fa nulla)
|
|
|
|
|
// Se serve, si faccia <mf TWindow::stop_run> qui dentro.
|
|
|
|
|
virtual void process_link(TTextfile& txt, TPoint start, TPoint end)
|
|
|
|
|
{ }
|
|
|
|
|
// @cmember Termina la stampa su video e crea il menu indice se c'e'
|
|
|
|
|
void close_print();
|
|
|
|
|
// @cmember Interrompe la stampa
|
|
|
|
|
bool frozen()
|
|
|
|
|
{ return _frozen; }
|
|
|
|
|
// @cmember Interrompe la stampa su video (ESC durante la stampa)
|
1994-09-22 07:48:15 +00:00
|
|
|
|
void abort_print();
|
1995-07-12 15:59:19 +00:00
|
|
|
|
|
1995-10-20 18:27:01 +00:00
|
|
|
|
// @cmember Ritorna il numero di righe del testo da stampare
|
|
|
|
|
long lines()
|
|
|
|
|
{ return _txt.lines(); }
|
|
|
|
|
// @cmember Ritorna il testo da stampare
|
|
|
|
|
TTextfile& text()
|
|
|
|
|
{ return _txt; }
|
1994-09-22 07:48:15 +00:00
|
|
|
|
|
1995-10-20 18:27:01 +00:00
|
|
|
|
// @cmember Sposta la visualizzazione di stampa alle chiavi (chiama <mf TViswin::goto_pos>)
|
1994-12-16 10:24:34 +00:00
|
|
|
|
void goto_end();
|
1995-10-20 18:27:01 +00:00
|
|
|
|
// @cmember Sposta la visualizzazione di stampa alle azioni del menu' (chiama
|
|
|
|
|
// <mf TViswin::goto_pos>)
|
1994-12-16 10:24:34 +00:00
|
|
|
|
void goto_top();
|
1995-10-20 18:27:01 +00:00
|
|
|
|
// @cmember Sposta la visualizzazione di stampa alla posizione indicata
|
1994-12-30 10:11:18 +00:00
|
|
|
|
void goto_pos(long r, long c, bool moveorigin = TRUE);
|
1995-10-20 18:27:01 +00:00
|
|
|
|
|
1998-08-10 10:28:11 +00:00
|
|
|
|
// @cmember Opera un ridisegno della pagina di anteprima a video
|
1994-12-16 10:24:34 +00:00
|
|
|
|
void refresh();
|
1995-10-20 18:27:01 +00:00
|
|
|
|
|
|
|
|
|
// @cmember Indica se mostrare o no il righello
|
1995-01-03 16:44:27 +00:00
|
|
|
|
void show_rulers (bool on = TRUE);
|
1995-10-20 18:27:01 +00:00
|
|
|
|
// @cmember Indica se mostrare o no i bottoni della finestra di anteprima
|
1995-01-03 16:44:27 +00:00
|
|
|
|
void show_buttons(bool on = TRUE);
|
|
|
|
|
|
1998-01-28 09:28:26 +00:00
|
|
|
|
// @cmember Aggiunge la riga di testo <p l> in fondo al file
|
1994-12-16 10:24:34 +00:00
|
|
|
|
void add_line(const char* l);
|
1998-01-28 09:28:26 +00:00
|
|
|
|
// @cmember Elimina tutte le righe di testo
|
|
|
|
|
void destroy_lines();
|
1994-12-16 10:24:34 +00:00
|
|
|
|
|
1995-10-20 18:27:01 +00:00
|
|
|
|
// @cmember Funzione di ricerca non interattiva
|
1996-07-27 09:19:01 +00:00
|
|
|
|
long search (const char* txt, int& pos, long from = 0, bool down = TRUE, bool casesens = FALSE, bool regx = FALSE);
|
1995-10-20 18:27:01 +00:00
|
|
|
|
// @cmember Funzione di sostituzione di un testo all'interno di una riga non interattiva
|
|
|
|
|
int replace(long line, const char* txt, int pos = 0, int len = -1);
|
1994-12-23 11:57:45 +00:00
|
|
|
|
|
1995-10-20 18:27:01 +00:00
|
|
|
|
// @cmember Funzione di ricerca interattiva
|
1994-12-23 11:57:45 +00:00
|
|
|
|
void find();
|
1995-10-20 18:27:01 +00:00
|
|
|
|
// @cmember Funzione di ricerca prossimo elemento interattiva
|
|
|
|
|
void find_next();
|
|
|
|
|
|
|
|
|
|
// @cmember void | TViswin | const char* fname=NULL, const char* title=NULL,
|
1996-08-30 14:30:08 +00:00
|
|
|
|
// bool editbutton=TRUE, int width=0, bool rulers=3,
|
1996-05-15 07:17:33 +00:00
|
|
|
|
// WINDOW parent=NULL_WIN, TBrowsefile_field*=NULL | Costruttore
|
1995-10-20 18:27:01 +00:00
|
|
|
|
TViswin(const char* fname=NULL, const char* title=NULL, bool editbutton=TRUE,
|
1999-01-19 09:15:17 +00:00
|
|
|
|
bool printbutton=TRUE, bool linkbutton=TRUE, int x=1, int y=1, int height=0,
|
1998-03-05 13:54:51 +00:00
|
|
|
|
int width=0, byte rulers=3, WINDOW parent=NULL_WIN, TBrowsefile_field* =NULL);
|
1995-10-20 18:27:01 +00:00
|
|
|
|
// @cmember Distruttore
|
1994-09-22 07:48:15 +00:00
|
|
|
|
virtual ~TViswin ();
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
#endif
|
1995-10-20 18:27:01 +00:00
|
|
|
|
|
1996-02-05 19:00:53 +00:00
|
|
|
|
// @doc INTERNAL
|
|
|
|
|
|
1995-10-20 18:27:01 +00:00
|
|
|
|
// @enum scroll | Direzioni da utilizzare nello scroll
|
|
|
|
|
//
|
|
|
|
|
// @emem none | Nessuno scroll
|
|
|
|
|
// @emem up | Scroll verso l'alto
|
|
|
|
|
// @emem down | Scroll verso il basso
|
|
|
|
|
// @emem left | Scroll verso sinistra
|
|
|
|
|
// @emem right | Scroll verso destra
|
|
|
|
|
//
|
|
|
|
|
// @comm Questa struttura viene usata esclusivamente all'interno della classe <c TViswin>
|