diff --git a/include/controls.cpp b/include/controls.cpp index 44fa8a24e..69d2e5b77 100755 --- a/include/controls.cpp +++ b/include/controls.cpp @@ -583,6 +583,33 @@ HIDDEN void xi_event_handler(XI_OBJ* itf, XI_EVENT* xiev) } } } + + TWindow* msk = (TWindow*)xi_get_app_data(itf); + if (msk != NULL && msk->is_kind_of(CLASS_MASK)) + { + const TMask& m = (const TMask&)*msk; + WINDOW win = m.win(); + if ((WINDOW)xi_get_window(itf) == win) + { + if (m.number() == 0 && m.source_file().find("custom") > 0) + { + RCT rct; xvt_vobj_get_client_rect(win, &rct); + rct.left += 2; rct.right -= 2; rct.bottom -= 2; + DRAW_CTOOLS dct; + xvt_dwin_get_draw_ctools(win, &dct); + dct.fore_color = FOCUS_COLOR; + dct.back_color = FOCUS_BACK_COLOR; + dct.opaque_text = TRUE; + xvt_dwin_set_draw_ctools(win, &dct); + xvt_dwin_set_font(win, DEF_FONT); + const char* text = "Custom"; + const int tw = xvt_dwin_get_text_width(win, text, -1); + xvt_dwin_draw_text(win, rct.left, rct.bottom, text, -1); + xvt_dwin_draw_text(win, (rct.right-rct.left-tw)/2, rct.bottom, text, -1); + xvt_dwin_draw_text(win, rct.right-tw, rct.bottom, text, -1); + } + } + } } break; case a_select: @@ -1624,19 +1651,17 @@ void TPushbutton_control::update() if (attrib & XI_ATR_VISIBLE) { - RCT rct = (RCT&) _obj->v.btn->rct; + XI_RCT rct = _obj->v.btn->rct; rct.left += 5; rct.top += 5; rct.right -= 5; rct.bottom -= 5; -#ifdef XI_R4 - XinWindow xiwin = xi_get_window(_obj->itf); - xi_set_clip(xiwin, (XinRect *) &rct ); -#endif + + WINDOW win = parent(); + xi_set_clip((XinWindow)win, &rct); // Cancello il testo sottostante - const WINDOW win = parent(); CBRUSH brush = { PAT_SOLID, BTN_BACK_COLOR }; xvt_dwin_set_cbrush(win, &brush); xvt_dwin_set_std_cpen(win, TL_PEN_HOLLOW); - xvt_dwin_draw_rect(win, &rct); + xi_draw_rect((XinWindow)win, &rct); const short bmp = (_bmp_dn > 0 && _obj->v.btn->down) ? _bmp_dn : _bmp_up; if (bmp > 0) @@ -1699,9 +1724,7 @@ void TPushbutton_control::update() } } } -#ifdef XI_R4 - xi_set_clip(xiwin, NULL); -#endif + xi_set_clip((XinWindow)win, NULL); } } diff --git a/include/mask.cpp b/include/mask.cpp index 596655cb6..cc8738a3a 100755 --- a/include/mask.cpp +++ b/include/mask.cpp @@ -66,7 +66,7 @@ void TMask::init_mask() _enabled.set(MAX_PAGES); _enabled.set(); // Abilita tutte le pagine - _should_check = TRUE; + _should_check = true; _focus = _first_focus = 0; // Il primo ha il focus _page = -1; // Nessuna pagina corrente @@ -160,7 +160,7 @@ void TMask::read_mask( if (scanner.key() == "PA") { CHECKD(_pages < MAX_PAGES, "Maschera con troppe pagine: ", _pages); - WINDOW w = read_page(scanner, FALSE); + WINDOW w = read_page(scanner, false); TString80 title; xvt_vobj_get_title(w, title.get_buffer(), title.size()); @@ -173,7 +173,7 @@ void TMask::read_mask( if (scanner.key() == "TO") { CHECK(toolwin() == NULL_WIN, "La maschera puo' avere una sola TOOLBAR"); - _pagewin[MAX_PAGES] = read_page(scanner, TRUE); + _pagewin[MAX_PAGES] = read_page(scanner, true); } } @@ -282,7 +282,7 @@ word TMask::class_id() const bool TMask::is_kind_of(word c) const { if (c == CLASS_MASK) - return TRUE; + return true; return TWindow::is_kind_of(c); } @@ -290,9 +290,9 @@ void TMask::open() { if (!_open || _page != 0) { - _open = TRUE; + _open = true; if (toolwin()) - xvt_vobj_set_visible(toolwin(), TRUE); + xvt_vobj_set_visible(toolwin(), true); } _focus = first_focus(0); set_focus_field(fld(_focus).dlg()); @@ -320,7 +320,7 @@ int TMask::first_focus(short id) if (tempfirstfocus >= 0) { f = tempfirstfocus; - if (fld(f).dirty() == FALSE) + if (fld(f).dirty() == false) fld(f).set_dirty(); tempfirstfocus = -1; } @@ -387,22 +387,22 @@ bool TMask::can_be_closed() const { if (is_running()) { - bool ok = TRUE; + bool ok = true; if ((edit_mode() || insert_mode()) && dirty() && id2pos(DLG_QUIT) < 0) ok = yesno_box(TR("Annullare i dati inseriti?")); if (ok) ((TMask*)this)->stop_run(K_FORCE_CLOSE); - return FALSE; + return false; } - return TRUE; // Should never happen! + return true; // Should never happen! } void TMask::close() { - _open = FALSE; + _open = false; _page = -1; for (int p = 0; p <= MAX_PAGES; p++) - if (_pagewin[p]) xvt_vobj_set_visible(_pagewin[p], FALSE); + if (_pagewin[p]) xvt_vobj_set_visible(_pagewin[p], false); } short TMask::dirty() const @@ -435,8 +435,8 @@ void TMask::enable_page( byte page, // @parm Pagina da abilitare/disabilitare bool on) // @parm Operazione da svolgere: // - // @flag TRUE | Abilita la pagina
(default) - // @flag FALSE | Disabilita la pagina
+ // @flag true | Abilita la pagina
(default) + // @flag false | Disabilita la pagina
{ CHECK(page > 0, "Can't enable/disable first page"); @@ -480,21 +480,21 @@ void TMask::start_run() TMask_field& f = fld(i); if (f.dirty() <= 1) // Attenzione puo' valere anche 3 per i very dirty! { - f.set_dirty(FALSE); + f.set_dirty(false); const bool op = f.is_operable() && !f.is_kind_of(CLASS_BUTTON_FIELD); if (op && (f.active() || f.ghost())) f.on_hit(); // Lancia messaggio di inizializzazione } } } - _should_check = TRUE; + _should_check = true; // Make sure that "nearly" all fields are clean! for (int i = 0; i < max; i++) { TMask_field& f = fld(i); if (f.dirty() == 1) // Attenzione puo' valere anche 3 per i very dirty! - f.set_dirty(FALSE); + f.set_dirty(false); } _init_time = clock()-start; @@ -523,15 +523,15 @@ bool TMask::check_fields() } if (sheet) f.set_dirty(); // Force check in sheet masks - if (f.on_key(K_ENTER) == FALSE) + if (f.on_key(K_ENTER) == false) { if (is_open()) set_focus_field(f.dlg()); - return FALSE; + return false; } } } - return TRUE; + return true; } void TMask::check_field( short fld_id ) @@ -648,13 +648,13 @@ int TMask::find_parent_page(const TMask_field& f) const // // @rdesc Ritorna il risultato dell'operazione: // -// @flag TRUE | E' riuscita a chiudere la maschera -// @flag FALSE | Non e' riuscita a chiudere la maschera +// @flag true | E' riuscita a chiudere la maschera +// @flag false | Non e' riuscita a chiudere la maschera bool TMask::stop_run( KEY key) // @parm Tasto che deve provocare la chiusura // @comm Permette di chiudere la maschera come se l'utente avesse premuto il tasto
. - // Nel caso la maschera non si chiuda (es. un check fallito), ritorna FALSE. + // Nel caso la maschera non si chiuda (es. un check fallito), ritorna false. { if (key != K_AUTO_ENTER && key != K_FORCE_CLOSE) { @@ -672,7 +672,7 @@ bool TMask::stop_run( } } if (i >= last) - return FALSE; + return false; } if (key == K_CTRL_ENTER || key == K_AUTO_ENTER) @@ -694,7 +694,7 @@ bool TMask::stop_run( save_profile(); } else - return FALSE; + return false; } return TWindow::stop_run(key); @@ -781,8 +781,8 @@ void TMask::handler(WINDOW win, EVENT* ep) // // @rdesc Ritrna se e' stto effetuato una azione: // -// @flag TRUE | Era prevista una azione collegata al tasto ed e' stata eseguita -// @flag FALSE | Non era prevista nessuna azione collegata al tasto +// @flag true | Era prevista una azione collegata al tasto ed e' stata eseguita +// @flag false | Non era prevista nessuna azione collegata al tasto bool TMask::on_key( KEY key) // @parm Tasto premuto sulla maschera @@ -792,7 +792,8 @@ bool TMask::on_key( if (_handler) { const bool cont = _handler(*this, key); - if (!cont) return FALSE; + if (!cont) + return false; } switch(key) @@ -855,7 +856,7 @@ bool TMask::on_key( TSheet_field& s = (TSheet_field&)f; const int newrow = s.append() ? -1 : 0; notify_focus_field(s.dlg()); - s.insert(newrow, TRUE, TRUE); + s.insert(newrow, true, true); } } } @@ -889,12 +890,12 @@ bool TMask::on_key( } } - return TRUE; + return true; } bool TMask::on_dirty(TMask_field&) { - return TRUE; + return true; } int TMask::win2page(WINDOW w) const @@ -949,7 +950,7 @@ WINDOW TMask::read_page( bool toolbar) // @parm Indica se e' la toolbar // @comm Il parametro
e' utilizzato per indicare se la pagina deve essere visualizzata - // a tutto schermo (TRUE) oppure no + // a tutto schermo (true) oppure no { static int tooly; static RCT rect; @@ -987,16 +988,16 @@ WINDOW TMask::read_page( if (!orecchie && !toolbar) // Controlla se la maschera ha piu' di una pagina { const streampos pos = scanner.tellg(); // Memorizza posizione dello scanner - while (TRUE) + while (true) { const TString& l = scanner.line(); if (l.empty() || l == "ENDMASK") // Fine maschera break; - if (l.compare("PA", 2, TRUE) == 0) // Ho trovato un'altra pagina! + if (l.compare("PA", 2, true) == 0) // Ho trovato un'altra pagina! { - orecchie = TRUE; // Quindi devo metterci le orecchie + orecchie = true; // Quindi devo metterci le orecchie break; } } @@ -1007,7 +1008,7 @@ WINDOW TMask::read_page( if (toolbar || toolwin()) { if (toolbar) - w = create_interface(NULL_WIN, 0, r.top, 0, 0, title, this, FALSE); + w = create_interface(NULL_WIN, 0, r.top, 0, 0, title, this, false); else w = create_interface(NULL_WIN, 0, r.top, 0, tooly, title, this, orecchie); } @@ -1044,7 +1045,7 @@ WINDOW TMask::read_page( bool TMask::check_current_field() const { - bool ok = TRUE; + bool ok = true; if (_focus >= 0) { TMask_field& ff = fld(_focus); @@ -1132,9 +1133,9 @@ void TMask::next_page( } if (_page != prev) { - xvt_vobj_set_visible(win(), TRUE); + xvt_vobj_set_visible(win(), true); if (prev >= 0) - xvt_vobj_set_visible(_pagewin[prev], FALSE); + xvt_vobj_set_visible(_pagewin[prev], false); } TMask_field& ff = fld(_focus); @@ -1171,7 +1172,7 @@ void TMask::reset(short fld_id) TMask_field& c = fld(f); if (gr == 0 || c.in_group(gr)) { - c._flags.dirty = c._flags.focusdirty = FALSE; + c._flags.dirty = c._flags.focusdirty = false; c.reset(); } } @@ -1253,7 +1254,7 @@ void TMask::set( short fld_id, // @parm Identificatore del campo da settare const char* s, // @parm Stringa da assegnare al campo byte hit) // @parm Indica se occorre rifare i controlli una volta settato il campo - // con il nuovo valore (default FALSE) + // con il nuovo valore (default false) // @parm long | n | Numero da asegnare al campo // @syntax set(short fld_id, const char *s, bool hit); @@ -1275,7 +1276,7 @@ void TMask::set( const char * fld_id, // @parm FIELD del campo da settare const char* str, // @parm Stringa da assegnare al campo byte hit) // @parm Indica se occorre rifare i controlli una volta settato il campo - // con il nuovo valore (default FALSE) + // con il nuovo valore (default false) // @parm long | n | Numero da asegnare al campo // @syntax set(short fld_id, const char *s, bool hit); @@ -1322,8 +1323,8 @@ void TMask::set(short fld_id, const TCurrency& n, byte hit) void TMask::activate( bool on) // @parm Indica l'operazione da svolgere sul campo: // - // @flag TRUE | Attiva la pagina(default) - // @flag FALSE | Disattiva la pagina + // @flag true | Attiva la pagina(default) + // @flag false | Disattiva la pagina { TWindow::activate(on); if (toolwin() != NULL_WIN) @@ -1337,8 +1338,8 @@ void TMask::enable( short fld_id, // @parm Identificatore del campo da abilitare (0 tutti i campi, <0 id gruppo) bool on) // @parm Indica l'operazione da svolgere sul campo: // - // @flag TRUE | Abilita il campo (default) - // @flag FALSE | Disabilita il campo + // @flag true | Abilita il campo (default) + // @flag false | Disabilita il campo { if (fld_id <= 0) { @@ -1394,8 +1395,8 @@ void TMask::enable_key( word key, // @parm Chiave di cui abilitare il campo bool on) // @parm Indica l'operazione da svolgere sul tasto: // - // @flag TRUE | Abilita il campo (default) - // @flag FALSE | Disabilita il campo + // @flag true | Abilita il campo (default) + // @flag false | Disabilita il campo { for (int i = fields()-1; i >= 0; i--) @@ -1424,8 +1425,8 @@ TEditable_field* TMask::get_key_field( word key, // @parm Chiave di cui controllare l'esistenza bool first) const // @parm Indica se la ricerca dev partire dell'inizio. Assume i valori: // - // @flag TRUE | Comincia la ricerca dal primo campo della maschera - // @flag FALSE | Comincia la ricerca dal campo attuale nella maschera + // @flag true | Comincia la ricerca dal primo campo della maschera + // @flag false | Comincia la ricerca dal campo attuale nella maschera { static int last = 0; @@ -1473,8 +1474,8 @@ void TMask::show( short fld_id, // @parm Campo da mostrare/nascondere (default -1) bool on) // @parm Indica l'operazione da svolgere sul campo: // - // @flag TRUE | Mostra il campo(default) - // @flag FALSE | Nasconde il campo + // @flag true | Mostra il campo(default) + // @flag false | Nasconde il campo // @comm Se
e' -1 allora permette di operare su tutti i campi della maschera @@ -1603,7 +1604,7 @@ void TMask::on_idle() if (!f.in_key(0) || !e.has_a_common_key(f)) { - e.test_key_complete(FALSE); + e.test_key_complete(false); _test_fld = -1; } _last_test = f.dlg(); @@ -2022,11 +2023,11 @@ TGroup_field& TMask::add_groupbox ( // // @rdesc Ritorna il risultato dell'operazione: // -// @flag TRUE | Se l'operazione e' avvenuta corretamente -// @flag FALSE | Se non si riesce a creare il file di salvataggio +// @flag true | Se l'operazione e' avvenuta corretamente +// @flag false | Se non si riesce a creare il file di salvataggio bool TMask::save( - bool append) const // @parm Indica se creare il file o appendere (TRUE) le informazioni - // ad uno gia' esistente (FALSE, default). + bool append) const // @parm Indica se creare il file o appendere (true) le informazioni + // ad uno gia' esistente (false, default). { FILE* f = fopen(_workfile, append ? "a" : "w"); @@ -2043,7 +2044,7 @@ bool TMask::save( } fprintf(f, "[EOM]\n"); fclose(f); - return TRUE; + return true; } @@ -2053,18 +2054,18 @@ bool TMask::save( // // @rdesc Ritorna il risultato dell'operazione: // -// @flag TRUE | Se l'operazione e' avvenuta corretamente -// @flag FALSE | Se non si riesce a leggere il file di salvataggio +// @flag true | Se l'operazione e' avvenuta corretamente +// @flag false | Se non si riesce a leggere il file di salvataggio bool TMask::load( bool reset) // @parm Indica la posizione di lettura del file: // - // @flag TRUE | Comincia la lettura dell'inizio - // @flag FALSE | Comincia la lettura dalla posizione corrente dell'offset + // @flag true | Comincia la lettura dell'inizio + // @flag false | Comincia la lettura dalla posizione corrente dell'offset { FILE* f = fopen(_workfile, "r"); - if (f == NULL) return FALSE; + if (f == NULL) return false; if (reset) _lastpos = 0; fseek(f, _lastpos, SEEK_SET); TToken_string t(256); @@ -2080,7 +2081,7 @@ bool TMask::load( } _lastpos = ftell(f); fclose(f); - return TRUE; + return true; } // @doc EXTERNAL @@ -2169,7 +2170,7 @@ int TMask::save_profile(int num, const char* desc) const { TSheet_field& s = (TSheet_field&)f; FOR_EACH_SHEET_ROW(s, r, row) - ini.set(name, *row, NULL, TRUE, r); + ini.set(name, *row, NULL, true, r); } else { diff --git a/include/strings.cpp b/include/strings.cpp index 8df7c1e1d..81359add5 100755 --- a/include/strings.cpp +++ b/include/strings.cpp @@ -199,7 +199,7 @@ TString& TString::operator <<(double n) } // Appends an object to the string -// Certified 50% +// Certified 99% // The object should be completely storable in spark TString& TString::operator <<(const TObject& obj) { @@ -355,7 +355,7 @@ int TString::find( // un messaggio di errore { int pos = -1; - if (from < len()) + if (from == 0 || from < len()) { const char* p = strchr(_str + from, c); if (p) @@ -393,10 +393,10 @@ HIDDEN const char* strstr(const char* string1, const char* string2) int TString::find(const char* s, int from) const { int pos = -1; - if (from < len()) + if (from == 0 || from < len()) { const char* p = strstr(_str + from, s); - if (p) + if (p != NULL) pos = int(p - _str); } return pos;