Aggiunta creazione run-time sugli zoom-field

git-svn-id: svn://10.65.10.50/trunk@2216 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
matteo 1995-11-27 17:41:49 +00:00
parent f6b4136c9b
commit 73a54e0ab1
2 changed files with 76 additions and 23 deletions

View File

@ -1136,7 +1136,17 @@ int TList_sheet::do_input()
else
{
const short id = _fld->atodlg(fld);
if (id > 0) rowsel.add(field().mask().get(id));
if (id > 0)
{
TMask_field& tempf = field().mask().field(id);
if ( tempf.class_id() == CLASS_ZOOM_FIELD )
{
TZoom_field& tempz = ( TZoom_field & ) tempf;
rowsel.add( tempz.get_first_line( ) );
}
else
rowsel.add(field().mask().get(id));
}
else rowsel.add("");
}
}
@ -2168,11 +2178,11 @@ const char* TEdit_field::format(const char* d) const
if (_flags.uppercase)
fpark.upper();
if (!_flags.pipeallowed)
{
for (int p = 0; fpark[p]; p++)
if (fpark[p] == '|') fpark[p] = '/';
}
if (!_flags.pipeallowed)
{
for (int p = 0; fpark[p]; p++)
if (fpark[p] == '|') fpark[p] = '/';
}
}
return fpark;
@ -3691,16 +3701,20 @@ const char* TMemo_field::get_field_data() const
return _data;
}
void TZoom_field::set_window_data( const char* data )
{
TEdit_field::set_window_data( data );
set_first_line( data );
TToken_string getfl( data, '\n' );
TString spark( getfl.get( 0 ) );
TEdit_field::set_window_data( spark );
// set_first_line( spark );
}
const char* TZoom_field::get_window_data( ) const
{
return TEdit_field::get_window_data( );
TToken_string newmemo( _memo );
newmemo.add( TEdit_field::get_window_data( ), 0 );
return newmemo;
}
void TZoom_field::set_field_data( const char* data )
@ -3717,20 +3731,24 @@ bool TZoom_field::on_key( KEY key )
{
if ( key == K_F8 )
{
TMask m( "Zoom", 1, 72, 14 );
m.add_memo( 101, 1, _prompt, 2, 2 );
m.add_button( DLG_OK, 1, "", -12, -1 );
m.add_button( DLG_CANCEL, 1, "", -12, -1 );
set_first_line( get_window_data( ) );
TMask m( "Zoom", 1, 72, 15 );
m.add_memo( 101, 0, prompt(), 2, 2, 68, 10 );
m.add_button( DLG_OK, 0, "", -12, 13, 9, 2 );
m.add_button( DLG_CANCEL, 0, "", -22, 13, 9, 2 );
m.set( 101, _memo );
if ( m.run( ) )
_memo = m.get( 101 );
if ( m.run( ) != K_ESC )
{
_memo = m.get( 101 );
set_window_data( get_first_line( ) );
}
}
return TEdit_field::on_key( key );
}
TZoom_field::TZoom_field( TMask* mask ) : TEdit_field( mask ), _memo( "", '\n' )
{
}
TZoom_field::~TZoom_field( )
@ -3746,6 +3764,31 @@ const char *TZoom_field::get_first_line( )
void TZoom_field::set_first_line( const char * c )
{
_memo.add( c, 0 );
_memo.destroy( 1 );
TToken_string gfl( c, '\n' );
TString spark( gfl.get( 0 ) );
_memo.add( spark, 0 );
// _memo.destroy( 1 );
}
void TZoom_field::create(WINDOW parent)
{
TEdit_field::create( parent );
#if XVTWS == WMWS
int delta = 2;
#else
int delta = 1;
#endif
if (_browse || _sheet) delta *= 2;
_buttonzoom = xvt_create_control(WC_PUSHBUTTON, _x+_width+delta, _y,
2, 1, "Z", parent, default_flags(), PTR_LONG(this), DLG_F8);
}
void TZoom_field::destroy()
{
if (_buttonzoom)
{ xvt_vobj_destroy(_buttonzoom); _buttonwin = NULL_WIN; }
TEdit_field::destroy();
}

View File

@ -205,7 +205,7 @@ public:
bool right_justified() const
{ return _flags.rightjust; }
// @cmember Verifica la alloowance of the pipe
// @cmember Verifica la allowance of the pipe
bool pipe_allowed() const
{ return _flags.pipeallowed; }
@ -1041,13 +1041,18 @@ public:
// @base public | TEdit_field
class TZoom_field : public TEdit_field
{
// @access Private Member
// @access Private Member
TToken_string _memo;
TToken_string _memo;
// @cmember Finestra del bottone per lo zoom del campo
WINDOW _buttonzoom;
// @access Protected Member
protected:
// @cmember Ritorna l'identificatore della classe
virtual word class_id() const
{ return CLASS_ZOOM_FIELD; };
@ -1063,13 +1068,18 @@ protected:
virtual void set_field_data(const char* data);
// @cmember Legge il valore del campo
virtual const char* get_field_data() const;
const char * get_first_line( );
void set_first_line( const char * c );
// @cmember Crea il controllo
virtual void create(WINDOW parent);
// @cmember Distrugge il contrllo
virtual void destroy();
// @access Public Member
public:
// @cmember Gestisce la pressione del tasto (TRUE se la gestione ha avuto successo)
const char * get_first_line( );
virtual bool on_key(KEY key);
// @cmember Costruttore
TZoom_field(TMask* mask);