00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #include "var_list.hpp"
00026
00027
00028 const string VarList::m_type = "list";
00029
00030
00031 VarList::VarList( intf_thread_t *pIntf ): Variable( pIntf )
00032 {
00033
00034 m_cPosition = VariablePtr( new VarPercent( pIntf ) );
00035 getPositionVar().set( 1.0 );
00036 }
00037
00038
00039 VarList::~VarList()
00040 {
00041 }
00042
00043
00044 void VarList::add( const UStringPtr &rcString )
00045 {
00046 m_list.push_back( Elem_t( rcString ) );
00047 notify();
00048 }
00049
00050
00051 void VarList::delSelected()
00052 {
00053 Iterator it = begin();
00054 while( it != end() )
00055 {
00056 if( (*it).m_selected )
00057 {
00058 Iterator oldIt = it;
00059 it++;
00060 m_list.erase( oldIt );
00061 }
00062 else
00063 {
00064 it++;
00065 }
00066 }
00067 notify();
00068 }
00069
00070
00071 void VarList::clear()
00072 {
00073 m_list.clear();
00074 }
00075
00076
00077 VarList::Iterator VarList::operator[]( int n )
00078 {
00079 Iterator it = begin();
00080 for( int i = 0; i < n; i++ )
00081 {
00082 if( it != end() )
00083 {
00084 it++;
00085 }
00086 else
00087 {
00088 break;
00089 }
00090 }
00091 return it;
00092 }
00093
00094
00095 VarList::ConstIterator VarList::operator[]( int n ) const
00096 {
00097 ConstIterator it = begin();
00098 for( int i = 0; i < n; i++ )
00099 {
00100 if( it != end() )
00101 {
00102 it++;
00103 }
00104 else
00105 {
00106 break;
00107 }
00108 }
00109 return it;
00110 }
00111