Patch level : 10.0 250

Files correlati     :
Ricompilazione Demo : [ ]
Commento            :

error_box invece della segnalazione nella status bar sugli sheet in caso di errore


git-svn-id: svn://10.65.10.50/trunk@18353 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 2009-02-25 15:34:07 +00:00
parent 8049a0176b
commit f0e91f172f
3 changed files with 41 additions and 10 deletions

View File

@ -625,15 +625,9 @@ bool TMask_field::error_box(
{ {
build_msg(); build_msg();
if (mask().is_sheetmask() && !mask().is_running()) if (mask().is_sheetmask() && !mask().is_running())
{ mask().get_sheet()->error_box(_msg);
xvt_dm_post_speech(_msg, 0, TRUE);
xvtil_statbar_set(_msg);
beep(2); // Error sound
}
else else
{
mask().post_error_message(_msg, 3); mask().post_error_message(_msg, 3);
}
return false; return false;
} }

View File

@ -377,7 +377,8 @@ public:
void set_notify(SPREADSHEET_NOTIFY n) void set_notify(SPREADSHEET_NOTIFY n)
{ _notify = n; } { _notify = n; }
// @cmember aggiunge una riga // @cmember aggiunge una riga
bool TSpreadsheet::add_row_auto(); bool add_row_auto();
bool error_box(const char * msg);
// @cmember Costruttore // @cmember Costruttore
TSpreadsheet(WINDOW parent, short dlg, short x, short y, short dx, short dy, const char* maskname, int maskno, const char* head, TSheet_field* owner); TSpreadsheet(WINDOW parent, short dlg, short x, short y, short dx, short dy, const char* maskname, int maskno, const char* head, TSheet_field* owner);
@ -2506,6 +2507,18 @@ bool TSpreadsheet::add_row_auto()
return ok; return ok;
} }
bool TSpreadsheet::error_box(const char * msg)
{
_check_enabled = false;
xvt_dm_post_speech(msg, 0, TRUE);
const int r = _cur_row;
const int c = _cur_col;
::error_box(msg);
xvt_scr_set_focus_vobj(parent());
set_focus_cell(r, c);
_check_enabled = true;
return false;
}
/////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////
// TSheet_field // TSheet_field
@ -3035,6 +3048,18 @@ void TSheet_field::set_focus_cell(int riga, int colonna)
s->set_focus_cell(riga, colonna); s->set_focus_cell(riga, colonna);
} }
void TSheet_field::set_focus_cell_id(long rec, short cid)
{
TSpreadsheet* s = (TSpreadsheet*)_ctl;
//qui
const int row = s->rec2row(rec);
const int col = s->cid2col(cid);
s->set_focus_cell(rec, col);
}
bool TSheet_field::on_key(KEY k) bool TSheet_field::on_key(KEY k)
{ {
if (k == K_TAB && items() > 0) if (k == K_TAB && items() > 0)
@ -3467,3 +3492,9 @@ bool TSheet_field::esporta() const
return true; return true;
} }
bool TSheet_field::error_box(const char * msg)
{
TSpreadsheet& s = (TSpreadsheet&)*_ctl;
return s.error_box(msg);
}

View File

@ -100,11 +100,14 @@ protected:
virtual void mask2row(int n, TToken_string & rec); virtual void mask2row(int n, TToken_string & rec);
// @cmember Ricopia i campi del record <p n>-esimo nella maschera // @cmember Ricopia i campi del record <p n>-esimo nella maschera
virtual void row2mask(int n, TToken_string & rec, int mode = 0x3); virtual void row2mask(int n, TToken_string & rec, int mode = 0x3);
// @cmember Permette di mettere il focus su una cella
void set_focus_cell(int riga, int colonna);
// @access Public Member // @access Public Member
public: public:
// @cmember Permette di mettere il focus su una cella
void set_focus_cell(int riga, int colonna); // @cmember Permette di mettere il focus su una cella
void set_focus_cell_id(long rec, short cid);
// @cmember Gestisce la pressione del tasto (true se la gestione ha avuto successo) // @cmember Gestisce la pressione del tasto (true se la gestione ha avuto successo)
virtual bool on_key(KEY k); virtual bool on_key(KEY k);
@ -278,6 +281,9 @@ public:
bool esporta() const; bool esporta() const;
bool error_box(const char * msg);
// @cmember Costruttore // @cmember Costruttore
TSheet_field(TMask* m); TSheet_field(TMask* m);
// @cmember Distruttore // @cmember Distruttore