class ui.SerialSettingUi

class SerialSettingUi
{
    // enums

    enum Defaults;
    bitflag enum SettingId;

    // fields

    ui.ComboBox* m_baudRateCombo;
    ui.ComboBox* m_dataBitsCombo;
    ui.ComboBox* m_stopBitsCombo;
    ui.ComboBox* m_parityCombo;
    ui.ComboBox* m_flowControlCombo;
    ui.ComboProperty* m_baudRateProp;
    ui.EnumProperty* m_dataBitsProp;
    ui.EnumProperty* m_stopBitsProp;
    ui.EnumProperty* m_parityProp;
    ui.EnumProperty* m_flowControlProp;

    // properties

    uint_t property m_baudRate;
    uint_t property m_dataBits;
    io.SerialStopBits property m_stopBits;
    io.SerialParity property m_parity;
    io.SerialFlowControl property m_flowControl;

    // methods

    void create(
        ui.ToolBar* toolBar,
        ui.PropertyGrid* propertyGrid,
        ui.GroupProperty* groupProp = null,
        ui.SerialSettingUi.SettingId comboMask = SettingId.All,
        ui.SerialSettingUi.SettingId propertyMask = SettingId.All
        );

    void load(doc.Storage* storage);
    void save(doc.Storage* storage);
    void updateProperties();
    void applyProperties();
    void restoreDefaultProperties();
};