62 lines
2.7 KiB
C++
62 lines
2.7 KiB
C++
////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// NoesisGUI - http://www.noesisengine.com
|
|
// Copyright (c) Noesis Technologies S.L. All Rights Reserved.
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
#ifndef __GUI_VALUESTORAGEMANAGERIMPL_H__
|
|
#define __GUI_VALUESTORAGEMANAGERIMPL_H__
|
|
|
|
|
|
#include <NsCore/Noesis.h>
|
|
#include <NsGui/ValueStorageManager.h>
|
|
|
|
|
|
namespace Noesis
|
|
{
|
|
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
/// Implements ValueStorageManager for the specified type.
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
template<class T>
|
|
class ValueStorageManagerImpl: public ValueStorageManager
|
|
{
|
|
protected:
|
|
// From ValueStorageManager
|
|
//@{
|
|
ValueStorageManager* Clone() const override final;
|
|
uint32_t Size() const override final;
|
|
bool CheckType(const Type* type) const override final;
|
|
bool CheckType(const Type* type, BaseComponent* value) const override;
|
|
bool Validate(ValidateValueCallback validate, BaseComponent* value) const override;
|
|
void Construct(ValueStorage* storage, const void* value) const override final;
|
|
void Destroy(ValueStorage* storage) const override final;
|
|
void* ToValue(const ValueStorage* storage) const override final;
|
|
void Copy(void* dst, const void* value) const override final;
|
|
void Copy(void* dst, BaseComponent* value) const override;
|
|
Ptr<BaseComponent> Box(const void* value) const override;
|
|
const void* GetValue(const DependencyObject* dob,
|
|
const DependencyProperty* dp) const override final;
|
|
const void* GetBaseValue(const DependencyObject* dob,
|
|
const DependencyProperty* dp) const override final;
|
|
bool IsSame(const void* left, const void* right) const override final;
|
|
bool IsSame(const void* left, BaseComponent* right) const override;
|
|
void SetValue(DependencyObject* dob, const DependencyProperty* dp, const void* value,
|
|
uint8_t priority, Expression* expression, const PropertyMetadata* metadata,
|
|
Value::Destination destination) const override final;
|
|
void SetValue(DependencyObject* dob, const DependencyProperty* dp,
|
|
BaseComponent* value, uint8_t priority, Expression* expression,
|
|
const PropertyMetadata* metadata, Value::Destination destination) const override;
|
|
void ClearAnimation(DependencyObject* dob, const DependencyProperty* dp) const override final;
|
|
void CoerceValue(DependencyObject* dob, const DependencyProperty* dp,
|
|
StoredValue* storedValue, const void* defaultValue,
|
|
const PropertyMetadata* metadata) const override final;
|
|
//@}
|
|
};
|
|
|
|
}
|
|
|
|
#include <NsGui/ValueStorageManagerImpl.inl>
|
|
|
|
#endif
|