Content


NTL
Core
CProperty

CProperty



Base class for single state properties.

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

class CProperty :public virtual IProperty
{
public:
    using FSkip = bool(*)(IClass *parent);
protected:
    String Prefix(const ExportPrefixType prefix_type, const String &prefix = L""); // Generate prefix depending on prefix type specified
public:
    bool isSkip() override;
    int getHeaderFileCount() override;
    String getHeaderFile(const int index) override;
    int getForwardDeclarationCount() override;
    ForwardDeclaration getForwardDeclaration(const int index) override;

    void setParent(IClass *parent) override;
    IProperty *setAffectItems(const bool value) override;

    void Release() override;

    /**
    Constructor
    @param list List of properties to which this property belongs
    @param parent Parent object which property this one describes
    @param name Property name
    @param handler Property handler name
    @param skip Function checking if the property could be skipped when saving in Form Builder. Could be nullptr
    @param read_only Whether the property is read only
    */
    CProperty(IPropertyList *list, IClass *parent, const String &name, const String &handler, FSkip skip, const bool read_only);
    virtual ~CProperty() = default;

    bool isReadOnly() const; // Return whether the property is read only

    CProperty *AddHeaderFile(const String &value); // Add new header file to the list(use path relative to the Packages directory)
    CProperty *AddForwardDeclaration(const String &value, const String &header_file, const String &ns);
};
Namespace: nitisa
Include: Nitisa/Package/Core/Property.h