Modifiche apportate ai TZoom_field.

Aggiunti metodi hide() e show().
Cambiate: get_window_data(), on_key(), set_first_line() per gestire
piu' di 256 caratteri.


git-svn-id: svn://10.65.10.50/trunk@2339 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
angelo 1995-12-22 15:30:08 +00:00
parent 96b5645a23
commit 2aa34190c3
2 changed files with 41 additions and 10 deletions

View File

@ -588,13 +588,12 @@ void TMask_field::set(const char* s)
TString& TMask_field::get() const
{
static TString256 gpark;
static TString gpark;
if (mask().is_running())
gpark = get_window_data();
else
gpark = get_field_data();
if (_flags.trim) gpark.trim();
return gpark;
}
@ -3729,9 +3728,15 @@ void TZoom_field::set_window_data( const char* data )
const char* TZoom_field::get_window_data( ) const
{
TToken_string newmemo( _memo );
newmemo.add( TEdit_field::get_window_data( ), 0 );
return newmemo;
TToken_string& m = (TToken_string&)_memo;
const int pos = m.find('\n');
TString park;
if (pos >= 0)
park=&(m[pos+1]);
m = TEdit_field::get_window_data();
if (pos >= 0 )
m << '\n' << park;
return _memo;
}
void TZoom_field::set_field_data( const char* data )
@ -3756,13 +3761,29 @@ bool TZoom_field::on_key( KEY key )
m.set( 101, _memo );
if ( m.run( ) != K_ESC )
{
_memo = m.get( 101 );
set_window_data( get_first_line( ) );
_memo = m.get(101);
TString line(get_first_line());
if (line.len() > size()) line.cut(size());
set_window_data( line );
}
}
return TEdit_field::on_key( key );
}
void TZoom_field::enable(bool on)
{
TEdit_field::enable(on);
if (_buttonzoom != NULL_WIN)
xvt_vobj_set_visible(_buttonzoom, on && shown());
}
void TZoom_field::show(bool on)
{
TEdit_field::show(on);
if (_buttonzoom != NULL_WIN)
xvt_vobj_set_visible(_buttonzoom, on && enabled());
}
TZoom_field::TZoom_field( TMask* mask ) : TEdit_field( mask ), _memo( "", '\n' )
{
@ -3783,7 +3804,13 @@ void TZoom_field::set_first_line( const char * c )
{
TToken_string gfl( c, '\n' );
TString spark( gfl.get( 0 ) );
_memo.add( spark, 0 );
TString park;
const int pos = _memo.find('\n');
if (pos >= 0)
park=&(_memo[pos+1]);
_memo = spark;
if (pos >= 0 )
_memo << '\n' << park;
// _memo.destroy( 1 );
}

View File

@ -1031,7 +1031,7 @@ protected:
virtual bool on_key(KEY k);
// @access Public Member
public:
public:
// @cmember Costruttore
TMemo_field(TMask* mask);
// @cmember Distruttore
@ -1080,6 +1080,10 @@ protected:
// @access Public Member
public:
// @cmember Permette di rendere visibile/invisibile un campo (vedi <mf TEdit_field::show>)
virtual void show(bool on = TRUE);
// @cmember Abilita/disabilita il campo (lo rende scrivibile) (vedi <mf TEdit_field::enable>)
virtual void enable(bool on = TRUE);
// @cmember Gestisce la pressione del tasto (TRUE se la gestione ha avuto successo)
const char * get_first_line( );
virtual bool on_key(KEY key);