internal Panel BuildHotkeysPanel(WindowBase wndw) { var hkPanel = new Panel(); var backButton = new BackButton(wndw) { Text = "Settings", NavTitle = "Hotkeys", Parent = hkPanel, Location = new Point(20, 20), }; int nameWidth = 183; var thotkey1 = new Hotkey("Test Hotkey 1", "This hotkey is used for example purposes only.", "Debug", new[] { Keys.LeftShift, Keys.LeftAlt, Keys.L }); var thotkey2 = new Hotkey("Test Hotkey 2", "This hotkey is used for example purposes only.", "Debug", new[] { Keys.LeftShift, Keys.LeftAlt, Keys.V }); var thk1 = new HotkeyAssigner(thotkey1) { NameWidth = nameWidth, Location = new Point(10, backButton.Bottom + 25), Width = wndw.ContentRegion.Width / 2, Parent = hkPanel, }; var thk2 = new HotkeyAssigner(thotkey2) { NameWidth = nameWidth, Left = thk1.Left, Top = thk1.Bottom + 2, Width = wndw.ContentRegion.Width / 2, Parent = hkPanel, }; return(hkPanel); }
private void LoadRenderers() { SettingTypeRenderers.Clear(); // bool setting renderer SettingTypeRenderers.Add(typeof(bool), (setting, panel) => { var strongSetting = (SettingEntry <bool>)setting; var settingCtrl = new Checkbox() { Text = strongSetting.DisplayName, BasicTooltipText = strongSetting.Description, Checked = strongSetting.Value, Parent = panel }; Adhesive.Binding.CreateTwoWayBinding(() => settingCtrl.Checked, () => strongSetting.Value); }); // enum setting renderer SettingTypeRenderers.Add(typeof(Enum), (setting, panel) => { //var strongSetting = (SettingEntry<>) setting; var enumType = setting.SettingType; var settingDisplayName = new Label() { Size = new Point(panel.Width - 128, panel.Height), Text = $"{setting.DisplayName}:", BasicTooltipText = setting.Description, Parent = panel }; var settingDropDown = new Dropdown() { Size = new Point(128, 25), Location = new Point(panel.Width - 128, 0), BasicTooltipText = setting.Description, Parent = panel, }; string[] values = Enum.GetNames(enumType); foreach (string enumOption in values) { settingDropDown.Items.Add(enumOption.ToString()); } }); // hotkey setting renderer SettingTypeRenderers.Add(typeof(Hotkey), (setting, panel) => { var strongSetting = (SettingEntry <Hotkey>)setting; var hotkeyAssigner = new HotkeyAssigner(strongSetting.Value) { Size = panel.Size, Parent = panel }; }); }