class ui.PropertyGrid

class PropertyGrid
{
    // methods

    void addProperty(
        ui.Property* prop,
        ui.Property* beforeProp = null
        );

    void removeProperty(ui.Property* prop);

    ui.GroupProperty* createGroupProperty(
        ui.Property* parentProp = null,
        ui.Property* beforeProp = null,
        char const* name,
        char const* toolTipText
        );

    ui.GroupProperty* createGroupProperty(
        char const* name,
        char const* toolTipText
        );

    ui.BoolProperty* createBoolProperty(
        ui.Property* parentProp = null,
        ui.Property* beforeProp = null,
        char const* name,
        char const* toolTipText
        );

    ui.BoolProperty* createBoolProperty(
        char const* name,
        char const* toolTipText
        );

    ui.IntProperty* createIntProperty(
        ui.Property* parentProp = null,
        ui.Property* beforeProp = null,
        char const* name,
        char const* toolTipText
        );

    ui.IntProperty* createIntProperty(
        char const* name,
        char const* toolTipText
        );

    ui.StringProperty* createStringProperty(
        ui.Property* parentProp = null,
        ui.Property* beforeProp = null,
        char const* name,
        char const* placeholderText,
        char const* toolTipText
        );

    ui.StringProperty* createStringProperty(
        char const* name,
        char const* placeholderText,
        char const* toolTipText
        );

    ui.EnumProperty* createEnumProperty(
        ui.Property* parentProp = null,
        ui.Property* beforeProp = null,
        char const* name,
        char const* toolTipText,
        ui.EnumPropertyOption const* optionArray,
        size_t count
        );

    ui.EnumProperty* createEnumProperty(
        char const* name,
        char const* toolTipText,
        ui.EnumPropertyOption const* optionArray,
        size_t count
        );

    ui.ComboProperty* createComboProperty(
        ui.Property* parentProp = null,
        ui.Property* beforeProp = null,
        char const* name,
        char const* placeholderText,
        char const* toolTipText,
        ui.EnumPropertyOption const* optionArray = null,
        size_t count = 0
        );

    ui.ComboProperty* createComboProperty(
        char const* name,
        char const* placeholderText,
        char const* toolTipText,
        ui.EnumPropertyOption const* optionArray = null,
        size_t count = 0
        );

    ui.FlagProperty* createFlagProperty(
        ui.Property* parentProp = null,
        ui.Property* beforeProp = null,
        char const* name,
        char const* toolTipText,
        ui.FlagPropertyOption const* optionArray,
        size_t count
        );

    ui.FlagProperty* createFlagProperty(
        char const* name,
        char const* toolTipText,
        ui.FlagPropertyOption const* optionArray,
        size_t count
        );

    ui.ColorProperty* createColorProperty(
        ui.Property* parentProp = null,
        ui.Property* beforeProp = null,
        char const* name,
        char const* toolTipText
        );

    ui.ColorProperty* createColorProperty(
        char const* name,
        char const* toolTipText
        );

    ui.ActionProperty* createActionProperty(
        ui.Property* parentProp = null,
        ui.Property* beforeProp = null,
        char const* name,
        char const* toolTipText
        );

    ui.ActionProperty* createActionProperty(
        char const* name,
        char const* toolTipText
        );

    ui.FileProperty* createFileProperty(
        ui.Property* parentProp = null,
        ui.Property* beforeProp = null,
        char const* name,
        char const* toolTipText
        );

    ui.FileProperty* createFileProperty(
        char const* name,
        char const* toolTipText
        );

    ui.DictionaryProperty* createDictionaryProperty(
        ui.Property* parentProp = null,
        ui.Property* beforeProp = null,
        char const* name,
        char const* toolTipText
        );

    ui.DictionaryProperty* createDictionaryProperty(
        char const* name,
        char const* toolTipText
        );

    void resizeNameColumnToContents();
};