コード例 #1
0
ファイル: Control.cpp プロジェクト: dreamsxin/Inspect-1
bool Control::WriteAllStringData(const std::vector< std::string >& strs, bool preview)
{
	StringDataBinding* dataBinding = CastDataBinding<StringDataBinding, DataBindingTypes::String>( m_DataBinding );
	if (dataBinding)
	{
		std::vector< std::string > currentValues;
		dataBinding->GetAll( currentValues );

		if ( strs == currentValues )
		{
			return true;
		}

		AutoPtr< Reflect::Translator > translator( Reflect::AllocateTranslator< std::vector< std::string > >() );
		if ( !PreWrite( Reflect::Data( Reflect::Pointer( &currentValues ), translator.Ptr() ), preview ) )
		{
			Read();
			return false;
		}

		m_IsWriting = true;

		bool result = dataBinding->SetAll( strs );
		m_IsWriting = false;

		if (result)
		{
			PostWrite();
			return true;
		}
	}

	HELIUM_BREAK(); // you should not call this, your control is using custom data
	return false;
}
コード例 #2
0
ファイル: Control.cpp プロジェクト: foolhuang/Helium
bool Control::ReadAllStringData(std::vector< tstring >& strs) const
{
    StringDataBinding* data = CastDataBinding<StringDataBinding, DataBindingTypes::String>( m_DataBinding );
    if ( data )
    {
        strs.clear();
        data->GetAll( strs );
        return true;
    }

    HELIUM_BREAK(); // you should not call this, your control is using custom data
    return false;
}
コード例 #3
0
ファイル: Control.cpp プロジェクト: foolhuang/Helium
bool Control::IsDefault() const
{
    if (a_Default.Get().empty() || m_DataBinding == NULL)
    {
        return false;
    }

    StringDataBinding* data = CastDataBinding<StringDataBinding, DataBindingTypes::String>( m_DataBinding );
    if ( data )
    {
        tstring val;
        data->Get(val);
        return a_Default.Get() == val;
    }

    HELIUM_BREAK(); // you need to HELIUM_OVERRIDE this, your control is using custom data
    return false;
}
コード例 #4
0
ファイル: Control.cpp プロジェクト: foolhuang/Helium
bool Control::WriteAllStringData(const std::vector< tstring >& strs, bool preview)
{
    StringDataBinding* dataBinding = CastDataBinding<StringDataBinding, DataBindingTypes::String>( m_DataBinding );
    if (dataBinding)
    {
        std::vector< tstring > currentValues;
        dataBinding->GetAll( currentValues );

        if ( strs == currentValues )
        {
            return true;
        }

        Reflect::DataPtr data = Reflect::AssertCast< Reflect::Data >( Reflect::Data::Create< std::vector< tstring > >() );
        data->ConnectData( const_cast< std::vector< tstring >* >( &strs ) );
        if ( !PreWrite( data, preview ) )
        {
            Read();
            return false;
        }

        m_IsWriting = true;

        bool result = dataBinding->SetAll( strs );
        m_IsWriting = false;

        if (result)
        {
            PostWrite();
            return true;
        }
    }

    HELIUM_BREAK(); // you should not call this, your control is using custom data
    return false;
}