Describes property handler which is a property manager allowing to edit property of some(known to it) type. Property handler is used only to work with one property and its one state. All other should be handled by PropertyEditor. When property changed, property handler should call QueryService()->getListener()->NotifyOnPropertyChange() to notify parent about changes and copy property value to another properties(if required) and repaint Form Builder editors.

You can find more information in comments below. Overrided methods can be found in corresponding base interface.

class IPropertyHandler :public virtual IBuiltInControl
    virtual IPackage *getPackage() = 0; // Return package
    virtual IProperty *getProperty() = 0; // Return assigned property
    virtual String getPropertyState() = 0; // Return state of assigned property
    virtual bool isEditable(IProperty *property) = 0; // Check whether specified property can be edited by this handler(when there are multiple handler with same name, first one accepted property will be used)
    virtual bool setProperty(IProperty *value) = 0; // Assign property before any other actions
    virtual bool setPropertyState(const String &value) = 0; // Set state with which handler should work
    virtual bool setControl(IControl *value) = 0; // Assign PropertyEditor control. Handler is derived from built-in control but it has abstract getControl() method and handler class can't be derived because it's created inside dll, so the parent control should be set
Namespace: nitisa
Include: Nitisa/Package/Interfaces/IPropertyHandler.h