CPropertyEnumState



Class describing multiple state property having several possible values.

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

class CPropertyEnumState :public virtual IPropertyEnumState, public CPropertyState
{
public:
    using FGetter = String(*)(IClass *parent, const String &state);
    using FSetter = bool(*)(IClass *parent, const String &state, String value);
    using Items = std::vector<String>;
public:
    // IProperty getters 
    String getPreview() override;
    String getPreview(const String &state) override;
    bool isChanged() override;

    // IProperty setters 
    IProperty *setChanged(const bool value) override;

    // IProperty methods 
    bool Copy(IProperty *dest) override;
    void Save(Variant &dest) override;
    void Load(const Variant &src) override;
    void Export(std::wofstream &f, const String &shift, const String &control) override;

    // IPropertyStringState getters 
    String getValue(const String &state) override;
    int getItemCount() const override;
    String getItem(const int index) const override;

    // IPropertyEnumState setters 
    bool setValue(const String &state, const String value) override;

    CPropertyEnumState(
        IPropertyList *list,
        IClass *parent,
        const String &name,
        const bool read_only,
        const States &states,
        const EXPORT_PREFIX_TYPE state_prefix_type,
        const String &state_prefix,
        const Items &items,
        const EXPORT_PREFIX_TYPE prefix_type,
        const String &prefix,
        FSkip skip,
        FGetter getter,
        FSetter setter); // See parent class constructor for more information 
};
Namespace: nitisa
Include: Nitisa/Properties/PropertyEnum.State.h