2005-04-18 15:31:21 +00:00
|
|
|
|
#ifndef __CILIB_H
|
|
|
|
|
#define __CILIB_H
|
|
|
|
|
|
|
|
|
|
#ifndef __AUTOMASK_H
|
|
|
|
|
#include <automask.h>
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifndef __DBLIB_H
|
|
|
|
|
#include "../db/dblib.h"
|
|
|
|
|
#endif
|
|
|
|
|
|
2005-05-02 20:41:34 +00:00
|
|
|
|
///////////////////////////////////////////////////////////
|
|
|
|
|
// TImage_window
|
|
|
|
|
///////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
|
// @doc EXTERNAL
|
|
|
|
|
|
|
|
|
|
// @class TAlmanac_window | Finestra associata ad un TAlmanac_field
|
|
|
|
|
//
|
|
|
|
|
// @base public | TField_window
|
|
|
|
|
class TImage_window : public TField_window
|
|
|
|
|
{
|
|
|
|
|
// @author:(INTERNAL) Brugno
|
|
|
|
|
int _curr_month;
|
|
|
|
|
|
|
|
|
|
// @access Protected Member
|
|
|
|
|
protected:
|
|
|
|
|
// override da TField_window
|
|
|
|
|
virtual void update();
|
|
|
|
|
|
|
|
|
|
// @access Public Member
|
|
|
|
|
public:
|
|
|
|
|
// @cmember Costruttore
|
|
|
|
|
TImage_window(int x, int y, int dx, int dy, WINDOW parent, TWindowed_field *owner);
|
|
|
|
|
// @cmember Distruttore
|
|
|
|
|
virtual ~TImage_window() {}
|
|
|
|
|
};
|
|
|
|
|
|
2005-04-21 12:47:17 +00:00
|
|
|
|
///////////////////////////////////////////////////////////
|
2005-04-18 15:31:21 +00:00
|
|
|
|
// TAlmanac_field
|
2005-04-21 12:47:17 +00:00
|
|
|
|
///////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
|
// @doc EXTERNAL
|
2005-04-18 15:31:21 +00:00
|
|
|
|
|
2005-04-21 12:47:17 +00:00
|
|
|
|
// @class TAlmanac_field | Windowed Field per la gestione di un calendario
|
|
|
|
|
//
|
|
|
|
|
// @base public | TWindowed_field
|
2005-04-18 15:31:21 +00:00
|
|
|
|
class TAlmanac_field : public TWindowed_field
|
|
|
|
|
{
|
2005-04-21 12:47:17 +00:00
|
|
|
|
// @author:(INTERNAL) Brugno
|
2005-04-18 15:31:21 +00:00
|
|
|
|
|
2005-04-21 12:47:17 +00:00
|
|
|
|
// @access Protected Member
|
|
|
|
|
// @cmember:(INTERNAL) Parametro di visualizzazione: Separazione tra le celle del calenbdario
|
2005-04-18 15:31:21 +00:00
|
|
|
|
int _padding;
|
2005-04-21 12:47:17 +00:00
|
|
|
|
// @cmember:(INTERNAL) Parametro di visualizzazione: flag di visulizzazione del nome del mese
|
2005-04-18 15:31:21 +00:00
|
|
|
|
bool _showmonthname;
|
|
|
|
|
|
2005-04-21 12:47:17 +00:00
|
|
|
|
// @access Protected Member
|
|
|
|
|
// @cmember:(INTERNAL) Variabile interna: Data correntemente selezionato nel calendario
|
|
|
|
|
TDate _selecteddate;
|
2005-04-26 18:43:47 +00:00
|
|
|
|
TDate _dateinsert;
|
2005-05-02 20:41:34 +00:00
|
|
|
|
TImage_window * _image;
|
2005-04-21 12:47:17 +00:00
|
|
|
|
|
|
|
|
|
// @access Protected Member
|
|
|
|
|
protected:
|
|
|
|
|
// override da TWindowed_field
|
2005-04-18 15:31:21 +00:00
|
|
|
|
virtual TField_window* create_window(int x, int y, int dx, int dy, WINDOW parent);
|
|
|
|
|
|
2005-04-21 12:47:17 +00:00
|
|
|
|
// @access Public Member
|
2005-04-18 15:31:21 +00:00
|
|
|
|
public:
|
2005-04-21 12:47:17 +00:00
|
|
|
|
// @cmember Gestione del giorno correntemente selezionato: restituisce la data selezionata
|
|
|
|
|
const TDate& selected_date() const { return _selecteddate; }
|
|
|
|
|
// @cmember Gestione del giorno correntemente selezionato: restituisce il giorno selezionato
|
|
|
|
|
int selected_day() { return _selecteddate.day(); }
|
|
|
|
|
// @cmember Gestione del giorno correntemente selezionato: restituisce il giorno selezionato
|
|
|
|
|
int selected_month() { return _selecteddate.month(); }
|
|
|
|
|
// @cmember Gestione del giorno correntemente selezionato: restituisce true se il giorno selezionato <20> uguale al parametro
|
|
|
|
|
bool is_selected(int tday) { return (tday==selected_day()); }
|
|
|
|
|
// @cmember Gestione del giorno correntemente selezionato: setta il giorno selezionato al valore specificato
|
2005-04-18 15:31:21 +00:00
|
|
|
|
void set_selected_day(int nday);
|
2005-04-21 12:47:17 +00:00
|
|
|
|
// @cmember Gestione del giorno correntemente selezionato: avanza il giorno selezionato del valore relativo specificato
|
2005-04-18 15:31:21 +00:00
|
|
|
|
void move_selected_day(int ddays);
|
2005-04-21 12:47:17 +00:00
|
|
|
|
// @cmember Gestione del giorno correntemente selezionato: setta il mese selezionato al valore specificato
|
|
|
|
|
void set_selected_month(int nmonth);
|
|
|
|
|
// @cmember Gestione del giorno correntemente selezionato: avanza il mese selezionato del valore relativo specificato
|
|
|
|
|
void move_selected_month(int dmonths);
|
|
|
|
|
// @cmember Gestione del giorno correntemente selezionato: restituisce l'anno selezionato
|
|
|
|
|
int selected_year() { return _selecteddate.year(); }
|
|
|
|
|
// @cmember Gestione del giorno correntemente selezionato: setta l'anno selezionato al valore specificato
|
|
|
|
|
void set_selected_year(int nyear);
|
|
|
|
|
// @cmember Gestione del giorno correntemente selezionato: setta il giorno selezionato
|
2005-04-22 05:54:42 +00:00
|
|
|
|
void set_selected_date(TDate& sdate) { _selecteddate = sdate; }
|
2005-05-08 11:47:35 +00:00
|
|
|
|
void force_update(bool update_image = false);
|
2005-04-21 12:47:17 +00:00
|
|
|
|
|
|
|
|
|
// @access Public Member
|
2005-04-18 15:31:21 +00:00
|
|
|
|
public:
|
2005-04-21 12:47:17 +00:00
|
|
|
|
// @cmember Gestione dei parametri di visulizzazione: setta il flag di visulizzazione dei mesi
|
|
|
|
|
void set_show_month_name(bool on = TRUE) { _showmonthname = on; }
|
|
|
|
|
// @cmember Gestione dei parametri di visulizzazione: setta lo spazio fra le celle del calendario
|
2005-04-18 15:31:21 +00:00
|
|
|
|
void set_padding(int p) { _padding = p; }
|
|
|
|
|
|
2005-04-21 12:47:17 +00:00
|
|
|
|
// @cmember Gestione dei parametri di visulizzazione: ritorna il flag di visulizzazione dei mesi
|
2005-04-18 15:31:21 +00:00
|
|
|
|
bool show_month_name() const { return _showmonthname; }
|
2005-04-21 12:47:17 +00:00
|
|
|
|
// @cmember Gestione dei parametri di visulizzazione: ritorna lo spazio fra le celle del calendario
|
2005-04-18 15:31:21 +00:00
|
|
|
|
int padding() const { return _padding; }
|
|
|
|
|
|
2005-04-21 12:47:17 +00:00
|
|
|
|
// @access Public Member
|
2005-04-18 15:31:21 +00:00
|
|
|
|
public:
|
2005-04-22 15:37:43 +00:00
|
|
|
|
bool is_date_void(int currpage, TDate& cdate);
|
2005-04-26 18:43:47 +00:00
|
|
|
|
// @cmember Gestione selezione: Setta la prima data dell'anno con l'inserimento attivo
|
|
|
|
|
void set_insert_date(TDate & d) { _dateinsert = d; }
|
|
|
|
|
bool can_insert(TDate &d) const { return d >= _dateinsert; }
|
2005-04-18 15:31:21 +00:00
|
|
|
|
|
2005-04-21 12:47:17 +00:00
|
|
|
|
// @access Public Member
|
2005-04-18 15:31:21 +00:00
|
|
|
|
public:
|
2005-04-21 12:47:17 +00:00
|
|
|
|
// @cmember Costruttore
|
2005-05-02 20:41:34 +00:00
|
|
|
|
TAlmanac_field(TMask* m) : TWindowed_field(m),_showmonthname(true), _selecteddate(TODAY), _dateinsert(botime), _padding(2), _image(NULL) {}
|
2005-04-21 12:47:17 +00:00
|
|
|
|
// @cmember Distruttore
|
2005-04-18 15:31:21 +00:00
|
|
|
|
virtual ~TAlmanac_field() { }
|
|
|
|
|
};
|
|
|
|
|
|
2005-04-21 12:47:17 +00:00
|
|
|
|
///////////////////////////////////////////////////////////
|
2005-04-18 15:31:21 +00:00
|
|
|
|
// TAlmanac_window
|
2005-04-21 12:47:17 +00:00
|
|
|
|
///////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
|
// @doc EXTERNAL
|
2005-04-18 15:31:21 +00:00
|
|
|
|
|
2005-04-21 12:47:17 +00:00
|
|
|
|
// @class TAlmanac_window | Finestra associata ad un TAlmanac_field
|
|
|
|
|
//
|
|
|
|
|
// @base public | TField_window
|
2005-04-18 15:31:21 +00:00
|
|
|
|
class TAlmanac_window : public TField_window
|
|
|
|
|
{
|
2005-04-21 12:47:17 +00:00
|
|
|
|
// @author:(INTERNAL) Brugno
|
|
|
|
|
|
|
|
|
|
// @access Protected Member
|
2005-04-18 15:31:21 +00:00
|
|
|
|
protected:
|
2005-04-21 12:47:17 +00:00
|
|
|
|
// override da TField_window
|
2005-04-18 15:31:21 +00:00
|
|
|
|
virtual void update();
|
2005-04-21 12:47:17 +00:00
|
|
|
|
// override da TField_window
|
2005-04-18 15:31:21 +00:00
|
|
|
|
virtual void handler(WINDOW win, EVENT* ep);
|
|
|
|
|
|
2005-04-21 12:47:17 +00:00
|
|
|
|
// @access Public Member
|
2005-04-18 15:31:21 +00:00
|
|
|
|
public:
|
2005-04-21 12:47:17 +00:00
|
|
|
|
// override da TField_window
|
2005-04-18 15:31:21 +00:00
|
|
|
|
virtual bool on_key(KEY k);
|
|
|
|
|
|
2005-04-21 12:47:17 +00:00
|
|
|
|
// @access Public Member
|
|
|
|
|
public:
|
|
|
|
|
// @cmember Costruttore
|
2005-04-18 15:31:21 +00:00
|
|
|
|
TAlmanac_window(int x, int y, int dx, int dy, WINDOW parent, TWindowed_field *owner);
|
2005-04-21 12:47:17 +00:00
|
|
|
|
// @cmember Distruttore
|
2005-05-02 20:41:34 +00:00
|
|
|
|
virtual ~TAlmanac_window() {}
|
2005-04-18 15:31:21 +00:00
|
|
|
|
};
|
|
|
|
|
|
2005-04-21 12:47:17 +00:00
|
|
|
|
///////////////////////////////////////////////////////////
|
|
|
|
|
// TAlmanac_mask
|
|
|
|
|
///////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
|
// @doc EXTERNAL
|
|
|
|
|
|
|
|
|
|
// @class TAlmanac_mask | Maschera generica per la gestione di un calendario
|
|
|
|
|
//
|
|
|
|
|
// @base public | TAutomask
|
|
|
|
|
class TAlmanac_mask : public TAutomask
|
|
|
|
|
{
|
|
|
|
|
// @author:(INTERNAL) Brugno
|
|
|
|
|
// @cmember:(INTERNAL) Puntatori ai campi calendario
|
2005-04-21 23:10:06 +00:00
|
|
|
|
short _almanacs[MAX_PAGES];
|
2005-04-21 12:47:17 +00:00
|
|
|
|
// @cmember:(INTERNAL) Numero di pagine attive
|
2005-04-26 18:43:47 +00:00
|
|
|
|
byte _lastpage;
|
2005-04-22 15:37:43 +00:00
|
|
|
|
|
2005-04-21 12:47:17 +00:00
|
|
|
|
|
|
|
|
|
// @access Protected Member
|
|
|
|
|
protected:
|
|
|
|
|
// override da TAutomask
|
|
|
|
|
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
2005-05-02 20:41:34 +00:00
|
|
|
|
|
2005-04-21 12:47:17 +00:00
|
|
|
|
// @access Public Member
|
|
|
|
|
public:
|
2005-04-22 20:46:53 +00:00
|
|
|
|
// shortcut per l'accesso all'almanacco della pagina corrente
|
2005-04-26 18:43:47 +00:00
|
|
|
|
TAlmanac_field & almanac(byte page = -1) const ;
|
2005-04-22 20:46:53 +00:00
|
|
|
|
// shortcut per l'accesso all'almanacco della pagina corrente
|
2005-04-26 18:43:47 +00:00
|
|
|
|
TAlmanac_field & curr_almanac() const { return almanac();}
|
2005-04-21 16:37:52 +00:00
|
|
|
|
// override da TAutomask
|
|
|
|
|
virtual TMask_field* parse_field(TScanner& scanner);
|
2005-04-21 12:47:17 +00:00
|
|
|
|
// @cmember Gestione calendari: Attiva l'almanacco sulla pagina specificata per la data specificata
|
2005-04-21 23:10:06 +00:00
|
|
|
|
void activate_almanac(short id, int page, TDate& sdate);
|
2005-04-22 05:54:42 +00:00
|
|
|
|
// @cmember Gestione calendari: disanilta le pagine non attive
|
2005-04-26 18:43:47 +00:00
|
|
|
|
void disable_pages() { disable_page(_lastpage + 1); }
|
2005-04-21 12:47:17 +00:00
|
|
|
|
// @cmember Gestione calendari: Cambia l'anno su tutti i calendari
|
|
|
|
|
void set_year(int newyear);
|
|
|
|
|
// @cmember Gestione calendari: Ritorna il giorno selezionato nella pagina corrente
|
2005-04-21 23:10:06 +00:00
|
|
|
|
const TDate& selected_day() const { return curr_almanac().selected_date(); }
|
2005-04-21 12:47:17 +00:00
|
|
|
|
// @cmember Gestione eventi calendario: Controlla la presenza di documenti nella data attiva
|
2005-04-22 15:37:43 +00:00
|
|
|
|
virtual bool is_date_void(int currpage, TDate& cdate);
|
2005-04-21 12:47:17 +00:00
|
|
|
|
// @cmember Gestione eventi calendario: Controlla la presenza di documenti nella data attiva
|
2005-04-21 15:13:51 +00:00
|
|
|
|
virtual void change_year(int newyear);
|
2005-04-26 18:43:47 +00:00
|
|
|
|
// @cmember Chiama la maschera o lo sheet legato al gioro selezionato
|
|
|
|
|
virtual void open_day_mask(TDate date = botime) { }
|
2005-04-21 12:47:17 +00:00
|
|
|
|
|
|
|
|
|
// @cmember Costruttore
|
2005-04-21 16:37:52 +00:00
|
|
|
|
TAlmanac_mask(const char * name);
|
2005-04-21 12:47:17 +00:00
|
|
|
|
// @cmember Distruttore
|
2005-04-22 15:37:43 +00:00
|
|
|
|
~TAlmanac_mask() { }
|
2005-04-21 12:47:17 +00:00
|
|
|
|
};
|
2005-04-21 23:10:06 +00:00
|
|
|
|
|
2005-04-18 15:31:21 +00:00
|
|
|
|
#endif
|