From 86e414892eac1d7b5064a399e40f9748592b27af Mon Sep 17 00:00:00 2001 From: guy Date: Fri, 19 Sep 2008 15:35:09 +0000 Subject: [PATCH] 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 --- include/automask.cpp | 12 +++++++++--- include/automask.h | 3 ++- include/maskfld.cpp | 30 ++++++++++++++---------------- include/progind.cpp | 11 +++++++---- include/strings.cpp | 15 ++++++--------- include/treectrl.cpp | 7 +++++++ include/window.cpp | 4 ---- 7 files changed, 45 insertions(+), 37 deletions(-) diff --git a/include/automask.cpp b/include/automask.cpp index 82f56c3ca..4d6526773 100755 --- a/include/automask.cpp +++ b/include/automask.cpp @@ -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() diff --git a/include/automask.h b/include/automask.h index 720dcff7c..367adfbc5 100755 --- a/include/automask.h +++ b/include/automask.h @@ -5,7 +5,8 @@ #include #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, diff --git a/include/maskfld.cpp b/include/maskfld.cpp index fbf79e037..193cbe317 100755 --- a/include/maskfld.cpp +++ b/include/maskfld.cpp @@ -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); } diff --git a/include/progind.cpp b/include/progind.cpp index 2fe47036c..e693e5b66 100755 --- a/include/progind.cpp +++ b/include/progind.cpp @@ -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; diff --git a/include/strings.cpp b/include/strings.cpp index f3a23130d..283d47f1b 100755 --- a/include/strings.cpp +++ b/include/strings.cpp @@ -5,8 +5,6 @@ #include #include -#include - // @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(); } diff --git a/include/treectrl.cpp b/include/treectrl.cpp index 5edaa4bc6..49fc32a9d 100755 --- a/include/treectrl.cpp +++ b/include/treectrl.cpp @@ -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; } diff --git a/include/window.cpp b/include/window.cpp index 82bc76f48..a73ff0c41 100755 --- a/include/window.cpp +++ b/include/window.cpp @@ -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);