class ui.WebSocketUi

class WebSocketUi
{
    // enums

    enum Defaults;
    bitflag enum SettingId;

    // fields

    ui.ComboBox* m_transmitModeCombo;
    ui.EnumProperty* m_transmitModeProp;
    ui.EnumProperty* m_closeModeProp;
    ui.IntProperty* m_closeTimeoutProp;
    ui.DictionaryProperty* m_extraHeadersProp;

    // methods

    void createCombos(
        ui.ToolBar* toolBar,
        ui.WebSocketUi.SettingId settingMask = SettingId.TransmitMode
        );

    void createProperties(
        ui.PropertyGrid* propertyGrid,
        ui.Property* parentProp = null,
        ui.Property* beforeProp = null,
        ui.WebSocketUi.SettingId settingMask = SettingId.All
        );

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