public void SetupCameraSettings(CameraSettingsViewModel cameraSettingsViewModel) { if (_settingsTable != null) { this.Remove(_settingsTable); } int settingsCount = cameraSettingsViewModel.Settings.Count(); _settingsTable = new Table((uint) settingsCount, 2, false); for (int i = 0; i < settingsCount; i++) { ISettingsViewModel setting = cameraSettingsViewModel.Settings[i]; Label label = new Label(setting.Name); _settingsTable.Attach(label, 0, 1, (uint) i, (uint) (i + 1), AttachOptions.Expand, AttachOptions.Shrink, 6, 6); Widget widget; switch (setting.SettingType) { case SettingType.Single: default: Button button = new Button(setting.Name); button.Clicked += (sender, args) => { }; widget = button; break; case SettingType.Multi: ComboBox comboBox = new ComboBox(setting.AssignableValues) {Active = 0}; comboBox.Changed += (sender, args) => { setting.Value = setting.AssignableValues[comboBox.Active]; }; setting.ValueChanged += (sender, args) => { comboBox.Active = Array.IndexOf(setting.AssignableValues, setting.Value); }; widget = comboBox; break; } _settingsTable.Attach(widget, 1, 2, (uint) i, (uint) (i + 1), AttachOptions.Fill, AttachOptions.Shrink, 6, 6); } this.Add(_settingsTable); this.ShowAll(); }
public CameraViewModel(Logger logger) { _logger = logger; CameraCameraSettings = new CameraSettingsViewModel(logger); }