Patch level : 10.0

Files correlati     : tutti
Ricompilazione Demo : [ ]
Commento            :
Aggiunta gestione eventi e_magic=F8 ed e_info=F11 nelle TAutomask


git-svn-id: svn://10.65.10.50/trunk@17280 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2008-09-19 15:35:09 +00:00
parent 3f66b6a994
commit 86e414892e
7 changed files with 45 additions and 37 deletions

View File

@ -75,10 +75,16 @@ TField_event TAutomask::key2event(TMask_field& f, KEY key) const
case K_ENTER:
fe = fe_close;
break;
case K_F8:
fe = fe_magic;
break;
case K_F9:
if (f.is_edit())
fe = fe_button;
break;
case K_F11:
fe = fe_info;
break;
default:
fe = fe_null;
break;
@ -90,7 +96,7 @@ bool TAutomask::universal_handler(TMask_field& f, KEY key)
{
TOperable_field& of = (TOperable_field&)f;
TAutomask& am = (TAutomask&)of.mask();
TField_event fe = am.key2event(of, key);
const TField_event fe = am.key2event(of, key);
return fe == fe_null ? true : am.on_field_event(of, fe, 0);
}
@ -102,7 +108,7 @@ bool TAutomask::insheet_universal_handler(TMask_field& f, KEY key)
TOperable_field& of = (TOperable_field&)f;
TField_event fe = am.key2event(of, key);
return fe == fe_null ? TRUE : am.on_field_event(of, fe, m.number());
return fe == fe_null ? true : am.on_field_event(of, fe, m.number());
}
@ -140,7 +146,7 @@ bool TAutomask::universal_notifier(TSheet_field& s, int row, KEY key)
}
TAutomask& wm = (TAutomask&)s.mask();
return fe == fe_null ? TRUE : wm.on_field_event(s, fe, row);
return fe == fe_null ? true : wm.on_field_event(s, fe, row);
}
void TAutomask::set_handlers()

View File

@ -5,7 +5,8 @@
#include <msksheet.h>
#endif
enum TField_event { fe_null, fe_init, fe_modify, fe_button, fe_close,
enum TField_event { fe_null, fe_init, fe_modify, fe_button, fe_close,
fe_magic, fe_info,
se_enter, se_leave,
se_query_modify, se_notify_modify,
se_query_add, se_notify_add,

View File

@ -545,18 +545,15 @@ void TMask_field::send_key(KEY k, short to)
void TMask_field::check_type(CheckType)
{ CHECK(0, "Can't set check type to non-edit field"); }
void TMask_field::set_handler(CONTROL_HANDLER)
{ CHECK(0, "Can't set the handler to a TMask_field"); }
bool TMask_field::on_hit()
{
CHECK(0, "Can't hit non-operable field");
return FALSE;
return false;
}
// Certified 100%
bool TMask_field::on_key(KEY key)
{
@ -564,8 +561,7 @@ bool TMask_field::on_key(KEY key)
if (key > (K_CTRL+K_SPACE))
return error_box("Tasto ignorato %d", key);
#endif
return TRUE;
return true;
}
#define build_msg() \
@ -597,14 +593,14 @@ bool TMask_field::error_box(
{
mask().post_error_message(_msg, 3);
}
return FALSE;
return false;
}
bool TMask_field::message_box(const char* fmt, ...) const
{
build_msg();
mask().post_error_message(_msg, 1);
return FALSE;
return false;
}
// @doc EXTERNAL
@ -710,7 +706,8 @@ TOperable_field::TOperable_field(TMask* m)
TOperable_field::~TOperable_field()
{
if (_message) delete _message;
if (_message)
delete _message;
}
TToken_string* TOperable_field::message(int m, bool crea)
@ -732,14 +729,14 @@ bool TOperable_field::parse_item(TScanner& scanner)
if (scanner.key() == "HE") // HELP
{
scanner.string(); // Ignored from this version
return TRUE;
return true;
}
if (scanner.key() == "ME")
{
const TString& m = scanner.line().trim(); // Togli spazi
message(0, TRUE)->add(m);
return TRUE;
return true;
}
return TMask_field::parse_item(scanner);
@ -766,12 +763,13 @@ bool TOperable_field::on_key(
switch(key)
{
case K_F11:
if (handler(key))
{
TString msg;
msg << "Identificatore: " << dlg() << '\n'
<< "Maschera: " << mask().source_file() << '\n';
msg << TR("Identificatore: ") << dlg() << '\n'
<< TR("Maschera: ") << mask().source_file() << '\n';
if (field() != NULL)
msg << "Campo: " << *field();
msg << TR("Campo: ") << *field();
message_box(msg);
}
break;
@ -1014,7 +1012,7 @@ void TOperable_field::highlight() const
bool TOperable_field::handler(KEY k)
{
bool ok = TRUE;
bool ok = true;
if (_handler)
ok = _handler(*this, k);
return ok;
@ -1038,7 +1036,7 @@ bool TLoadable_field::parse_item(TScanner& scanner)
if (scanner.key() == "DE") // DEFAULT
{
set_default(scanner.line());
return TRUE;
return true;
}
return TOperable_field::parse_item(scanner);
}

View File

@ -155,14 +155,17 @@ void TIndwin::update_bar()
{
const unsigned long elapsed_time = (clock() - _start_time)/CLOCKS_PER_SEC;
const unsigned long total_time = (unsigned long)(elapsed_time / prc + 0.5);
TString16 str_res, str_tot;
TString16 str_ela, str_res, str_tot;
sec2str(elapsed_time, str_ela);
sec2str(total_time - elapsed_time, str_res);
sec2str(total_time, str_tot);
TString80 n;
n.format("%d%% - %s %s - %s %s", int(prc*100.0+0.5),
TR("Tempo residuo"), str_res.get_buffer(),
TR("Tempo totale"), str_tot.get_buffer());
n.format("%d%% - %s %s - %s %s - %s %s", int(prc*100.0+0.5),
TR("Tempo trascorso"), str_ela.get_buffer(),
TR("Stimato"), str_tot.get_buffer(),
TR("Residuo"), str_res.get_buffer()
);
RCT b; get_bar_rct(b);
b.top = b.bottom+2; b.bottom = b.top + CHARY;

View File

@ -5,8 +5,6 @@
#include <real.h>
#include <utility.h>
#include <stdarg.h>
// @doc EXTERNAL
// @func Ritorna il nome dell'utente attuale
@ -1226,9 +1224,10 @@ const TFilename& TFilename::tempdir()
if (create)
{
_tempdir = getenv("TEMP");
_tempdir.cut(0);
xvt_sys_get_env("TEMP", _tempdir.get_buffer(), _tempdir.size());
if (_tempdir.empty())
_tempdir = getenv("TMP");
xvt_sys_get_env("TMP", _tempdir.get_buffer(), _tempdir.size());
#ifdef WIN32
if (_tempdir.empty())
{
@ -1273,9 +1272,7 @@ const TFilename& TFilename::tempdir()
if (!ok)
fatal_box("Impossibile creare la directory '%s' per i file temporanei", (const char*)_tempdir);
TString tmp = _tempdir;
tmp.insert("TMP=", 0);
putenv(tmp);
xvt_sys_set_env("TMP", _tempdir);
}
set(_tempdir);
@ -1391,9 +1388,9 @@ bool TFilename::fremove() const
bool TFilename::search_in_path(TFilename& path) const
{
xvt_sys_searchenv(_str, "PATH", path.get_buffer());
xvt_sys_search_env(_str, "PATH", path.get_buffer());
if (path.empty())
xvt_sys_searchenv(_str, "path", path.get_buffer());
xvt_sys_search_env(_str, "path", path.get_buffer());
return path.not_empty();
}

View File

@ -31,6 +31,13 @@ void TField_window::handler(WINDOW win, EVENT* ep)
xi_set_focus(itf);
}
break;
case E_MOUSE_DOWN:
if (ep->v.mouse.button == 1 && _owner != NULL)
{
_owner->on_key(K_F11);
return;
}
break;
default:
break;
}

View File

@ -765,11 +765,7 @@ void TWindow::frame(
if (flag & 4)
{
set_mode(M_XOR);
#ifdef XVAGA
set_brush(COLOR_WHITE);
#else
set_brush(COLOR_BLACK); // Needed for Windows
#endif
}
const PNT f = log2dev(left,top);