51 lines
1.6 KiB
C++
51 lines
1.6 KiB
C++
////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// NoesisGUI - http://www.noesisengine.com
|
|
// Copyright (c) 2013 Noesis Technologies S.L. All Rights Reserved.
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
#ifndef __GUI_INOTIFYPROPERTYCHANGED_H__
|
|
#define __GUI_INOTIFYPROPERTYCHANGED_H__
|
|
|
|
|
|
#include <NsCore/Noesis.h>
|
|
#include <NsCore/Interface.h>
|
|
#include <NsGui/CoreApi.h>
|
|
#include <NsGui/Events.h>
|
|
|
|
|
|
namespace Noesis
|
|
{
|
|
|
|
class BaseComponent;
|
|
template<class T> class Delegate;
|
|
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
/// Contains state information for the PropertyChanged event.
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
struct PropertyChangedEventArgs: public EventArgs
|
|
{
|
|
Symbol propertyName;
|
|
|
|
PropertyChangedEventArgs(Symbol name): propertyName(name) { }
|
|
};
|
|
|
|
typedef Delegate<void (BaseComponent*, const PropertyChangedEventArgs&)>
|
|
PropertyChangedEventHandler;
|
|
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
/// Notifies clients that a property value has changed.
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
NS_INTERFACE INotifyPropertyChanged: public Interface
|
|
{
|
|
/// Occurs when a property value changes
|
|
virtual PropertyChangedEventHandler& PropertyChanged() = 0;
|
|
|
|
NS_IMPLEMENT_INLINE_REFLECTION_(INotifyPropertyChanged, Interface)
|
|
};
|
|
|
|
}
|
|
|
|
|
|
#endif
|