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 else
{ {
const short id = _fld->atodlg(fld); 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(""); else rowsel.add("");
} }
} }
@ -2168,11 +2178,11 @@ const char* TEdit_field::format(const char* d) const
if (_flags.uppercase) if (_flags.uppercase)
fpark.upper(); fpark.upper();
if (!_flags.pipeallowed) if (!_flags.pipeallowed)
{ {
for (int p = 0; fpark[p]; p++) for (int p = 0; fpark[p]; p++)
if (fpark[p] == '|') fpark[p] = '/'; if (fpark[p] == '|') fpark[p] = '/';
} }
} }
return fpark; return fpark;
@ -3691,16 +3701,20 @@ const char* TMemo_field::get_field_data() const
return _data; return _data;
} }
void TZoom_field::set_window_data( const char* data ) void TZoom_field::set_window_data( const char* data )
{ {
TToken_string getfl( data, '\n' );
TEdit_field::set_window_data( data ); TString spark( getfl.get( 0 ) );
set_first_line( data ); TEdit_field::set_window_data( spark );
// set_first_line( spark );
} }
const char* TZoom_field::get_window_data( ) const 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 ) void TZoom_field::set_field_data( const char* data )
@ -3717,20 +3731,24 @@ bool TZoom_field::on_key( KEY key )
{ {
if ( key == K_F8 ) if ( key == K_F8 )
{ {
TMask m( "Zoom", 1, 72, 14 ); set_first_line( get_window_data( ) );
m.add_memo( 101, 1, _prompt, 2, 2 ); TMask m( "Zoom", 1, 72, 15 );
m.add_button( DLG_OK, 1, "", -12, -1 ); m.add_memo( 101, 0, prompt(), 2, 2, 68, 10 );
m.add_button( DLG_CANCEL, 1, "", -12, -1 ); m.add_button( DLG_OK, 0, "", -12, 13, 9, 2 );
m.add_button( DLG_CANCEL, 0, "", -22, 13, 9, 2 );
m.set( 101, _memo ); m.set( 101, _memo );
if ( m.run( ) ) if ( m.run( ) != K_ESC )
_memo = m.get( 101 ); {
_memo = m.get( 101 );
set_window_data( get_first_line( ) );
}
} }
return TEdit_field::on_key( key ); return TEdit_field::on_key( key );
} }
TZoom_field::TZoom_field( TMask* mask ) : TEdit_field( mask ), _memo( "", '\n' ) TZoom_field::TZoom_field( TMask* mask ) : TEdit_field( mask ), _memo( "", '\n' )
{ {
} }
TZoom_field::~TZoom_field( ) TZoom_field::~TZoom_field( )
@ -3746,6 +3764,31 @@ const char *TZoom_field::get_first_line( )
void TZoom_field::set_first_line( const char * c ) void TZoom_field::set_first_line( const char * c )
{ {
_memo.add( c, 0 ); TToken_string gfl( c, '\n' );
_memo.destroy( 1 ); 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 bool right_justified() const
{ return _flags.rightjust; } { return _flags.rightjust; }
// @cmember Verifica la alloowance of the pipe // @cmember Verifica la allowance of the pipe
bool pipe_allowed() const bool pipe_allowed() const
{ return _flags.pipeallowed; } { return _flags.pipeallowed; }
@ -1041,13 +1041,18 @@ public:
// @base public | TEdit_field // @base public | TEdit_field
class TZoom_field : 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 // @access Protected Member
protected: protected:
// @cmember Ritorna l'identificatore della classe // @cmember Ritorna l'identificatore della classe
virtual word class_id() const virtual word class_id() const
{ return CLASS_ZOOM_FIELD; }; { return CLASS_ZOOM_FIELD; };
@ -1063,13 +1068,18 @@ protected:
virtual void set_field_data(const char* data); virtual void set_field_data(const char* data);
// @cmember Legge il valore del campo // @cmember Legge il valore del campo
virtual const char* get_field_data() const; virtual const char* get_field_data() const;
const char * get_first_line( );
void set_first_line( const char * c ); 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 // @access Public Member
public: public:
// @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( );
virtual bool on_key(KEY key); virtual bool on_key(KEY key);
// @cmember Costruttore // @cmember Costruttore
TZoom_field(TMask* mask); TZoom_field(TMask* mask);