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: case K_ENTER:
fe = fe_close; fe = fe_close;
break; break;
case K_F8:
fe = fe_magic;
break;
case K_F9: case K_F9:
if (f.is_edit()) if (f.is_edit())
fe = fe_button; fe = fe_button;
break; break;
case K_F11:
fe = fe_info;
break;
default: default:
fe = fe_null; fe = fe_null;
break; break;
@ -90,7 +96,7 @@ bool TAutomask::universal_handler(TMask_field& f, KEY key)
{ {
TOperable_field& of = (TOperable_field&)f; TOperable_field& of = (TOperable_field&)f;
TAutomask& am = (TAutomask&)of.mask(); 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); 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; TOperable_field& of = (TOperable_field&)f;
TField_event fe = am.key2event(of, key); 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(); 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() void TAutomask::set_handlers()

View File

@ -5,7 +5,8 @@
#include <msksheet.h> #include <msksheet.h>
#endif #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_enter, se_leave,
se_query_modify, se_notify_modify, se_query_modify, se_notify_modify,
se_query_add, se_notify_add, 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) void TMask_field::check_type(CheckType)
{ CHECK(0, "Can't set check type to non-edit field"); } { CHECK(0, "Can't set check type to non-edit field"); }
void TMask_field::set_handler(CONTROL_HANDLER) void TMask_field::set_handler(CONTROL_HANDLER)
{ CHECK(0, "Can't set the handler to a TMask_field"); } { CHECK(0, "Can't set the handler to a TMask_field"); }
bool TMask_field::on_hit() bool TMask_field::on_hit()
{ {
CHECK(0, "Can't hit non-operable field"); CHECK(0, "Can't hit non-operable field");
return FALSE; return false;
} }
// Certified 100% // Certified 100%
bool TMask_field::on_key(KEY key) bool TMask_field::on_key(KEY key)
{ {
@ -564,8 +561,7 @@ bool TMask_field::on_key(KEY key)
if (key > (K_CTRL+K_SPACE)) if (key > (K_CTRL+K_SPACE))
return error_box("Tasto ignorato %d", key); return error_box("Tasto ignorato %d", key);
#endif #endif
return true;
return TRUE;
} }
#define build_msg() \ #define build_msg() \
@ -597,14 +593,14 @@ bool TMask_field::error_box(
{ {
mask().post_error_message(_msg, 3); mask().post_error_message(_msg, 3);
} }
return FALSE; return false;
} }
bool TMask_field::message_box(const char* fmt, ...) const bool TMask_field::message_box(const char* fmt, ...) const
{ {
build_msg(); build_msg();
mask().post_error_message(_msg, 1); mask().post_error_message(_msg, 1);
return FALSE; return false;
} }
// @doc EXTERNAL // @doc EXTERNAL
@ -710,7 +706,8 @@ TOperable_field::TOperable_field(TMask* m)
TOperable_field::~TOperable_field() TOperable_field::~TOperable_field()
{ {
if (_message) delete _message; if (_message)
delete _message;
} }
TToken_string* TOperable_field::message(int m, bool crea) 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 if (scanner.key() == "HE") // HELP
{ {
scanner.string(); // Ignored from this version scanner.string(); // Ignored from this version
return TRUE; return true;
} }
if (scanner.key() == "ME") if (scanner.key() == "ME")
{ {
const TString& m = scanner.line().trim(); // Togli spazi const TString& m = scanner.line().trim(); // Togli spazi
message(0, TRUE)->add(m); message(0, TRUE)->add(m);
return TRUE; return true;
} }
return TMask_field::parse_item(scanner); return TMask_field::parse_item(scanner);
@ -766,12 +763,13 @@ bool TOperable_field::on_key(
switch(key) switch(key)
{ {
case K_F11: case K_F11:
if (handler(key))
{ {
TString msg; TString msg;
msg << "Identificatore: " << dlg() << '\n' msg << TR("Identificatore: ") << dlg() << '\n'
<< "Maschera: " << mask().source_file() << '\n'; << TR("Maschera: ") << mask().source_file() << '\n';
if (field() != NULL) if (field() != NULL)
msg << "Campo: " << *field(); msg << TR("Campo: ") << *field();
message_box(msg); message_box(msg);
} }
break; break;
@ -1014,7 +1012,7 @@ void TOperable_field::highlight() const
bool TOperable_field::handler(KEY k) bool TOperable_field::handler(KEY k)
{ {
bool ok = TRUE; bool ok = true;
if (_handler) if (_handler)
ok = _handler(*this, k); ok = _handler(*this, k);
return ok; return ok;
@ -1038,7 +1036,7 @@ bool TLoadable_field::parse_item(TScanner& scanner)
if (scanner.key() == "DE") // DEFAULT if (scanner.key() == "DE") // DEFAULT
{ {
set_default(scanner.line()); set_default(scanner.line());
return TRUE; return true;
} }
return TOperable_field::parse_item(scanner); 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 elapsed_time = (clock() - _start_time)/CLOCKS_PER_SEC;
const unsigned long total_time = (unsigned long)(elapsed_time / prc + 0.5); 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 - elapsed_time, str_res);
sec2str(total_time, str_tot); sec2str(total_time, str_tot);
TString80 n; TString80 n;
n.format("%d%% - %s %s - %s %s", int(prc*100.0+0.5), n.format("%d%% - %s %s - %s %s - %s %s", int(prc*100.0+0.5),
TR("Tempo residuo"), str_res.get_buffer(), TR("Tempo trascorso"), str_ela.get_buffer(),
TR("Tempo totale"), str_tot.get_buffer()); TR("Stimato"), str_tot.get_buffer(),
TR("Residuo"), str_res.get_buffer()
);
RCT b; get_bar_rct(b); RCT b; get_bar_rct(b);
b.top = b.bottom+2; b.bottom = b.top + CHARY; b.top = b.bottom+2; b.bottom = b.top + CHARY;

View File

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

View File

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

View File

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