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,8 +588,7 @@ void TMask_field::set(const char* s)
TString& TMask_field::get() const TString& TMask_field::get() const
{ {
static TString256 gpark; static TString gpark;
if (mask().is_running()) if (mask().is_running())
gpark = get_window_data(); gpark = get_window_data();
else else
@ -3729,9 +3728,15 @@ void TZoom_field::set_window_data( const char* data )
const char* TZoom_field::get_window_data( ) const const char* TZoom_field::get_window_data( ) const
{ {
TToken_string newmemo( _memo ); TToken_string& m = (TToken_string&)_memo;
newmemo.add( TEdit_field::get_window_data( ), 0 ); const int pos = m.find('\n');
return newmemo; 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 ) void TZoom_field::set_field_data( const char* data )
@ -3756,13 +3761,29 @@ bool TZoom_field::on_key( KEY key )
m.set( 101, _memo ); m.set( 101, _memo );
if ( m.run( ) != K_ESC ) if ( m.run( ) != K_ESC )
{ {
_memo = m.get( 101 ); _memo = m.get(101);
set_window_data( get_first_line( ) ); TString line(get_first_line());
if (line.len() > size()) line.cut(size());
set_window_data( line );
} }
} }
return TEdit_field::on_key( key ); 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' ) 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' ); TToken_string gfl( c, '\n' );
TString spark( gfl.get( 0 ) ); 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 ); // _memo.destroy( 1 );
} }

View File

@ -1080,6 +1080,10 @@ protected:
// @access Public Member // @access Public Member
public: 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) // @cmember Gestisce la pressione del tasto (TRUE se la gestione ha avuto successo)
const char * get_first_line( ); const char * get_first_line( );
virtual bool on_key(KEY key); virtual bool on_key(KEY key);