struct InputSettings : SettingsLayout { Label title; HorizontalLayout focusLayout; Label focusLabel; CheckBox focusPause; CheckBox focusAllow; HorizontalLayout selectionLayout; ComboBox systemList; ComboBox portList; ComboBox deviceList; ListView inputList; HorizontalLayout controlLayout; Button assign[3]; Widget spacer; Button resetButton; Button eraseButton; void synchronize(); Emulator::Interface& activeSystem(); Emulator::Interface::Port& activePort(); Emulator::Interface::Device& activeDevice(); void systemChanged(); void portChanged(); void deviceChanged(); void inputChanged(); void resetInput(); void eraseInput(); void assignInput(); void assignMouseInput(unsigned n); void inputEvent(unsigned scancode, int16_t value, bool allowMouseInput = false); InputSettings(); private: AbstractInput *activeInput; }; extern InputSettings *inputSettings;