public void InstallMenu(IBasicMenu parentMenu) { AHWorkFolder = $"{CurrentProfile.PluginsDirectory}\\AdicHelper"; AHPath = $"{AHWorkFolder}\\AdicHelper.exe"; if (!File.Exists(AHPath)) { Log.Error($"Can't run {AH}: file \"{AHPath}\" not found."); return; } Storage = ImportStorage.GetPluginStorage(typeof(AdicHelper)); parentMenu.AppendMenuItem(AH, isEnabled: false); EnableParser = parentMenu.AppendMenuItem("Enable cJASS", true, Storage.GetValue(nameof(EnableParser), true), true); EnableParser.Click += (s, e) => Storage.SetValue(nameof(EnableParser), EnableParser.IsChecked); EnableOptimizer = parentMenu.AppendMenuItem("Enable optimizer", true, Storage.GetValue(nameof(EnableOptimizer), true), true); EnableOptimizer.Click += (s, e) => Storage.SetValue(nameof(EnableOptimizer), EnableOptimizer.IsChecked); DebugMode = parentMenu.AppendMenuItem("Enable debug", true, Storage.GetValue(nameof(DebugMode), false), true); DebugMode.Click += (s, e) => Storage.SetValue(nameof(DebugMode), DebugMode.IsChecked); LocalsFlush = parentMenu.AppendMenuItem("Locals auto flush", true, Storage.GetValue(nameof(LocalsFlush), true), true); LocalsFlush.Click += (s, e) => Storage.SetValue(nameof(LocalsFlush), LocalsFlush.IsChecked); DefaultCjBj = parentMenu.AppendMenuItem("Compile for default cj and bj", true, Storage.GetValue(nameof(DefaultCjBj), true), true); DefaultCjBj.Click += (s, e) => Storage.SetValue(nameof(DefaultCjBj), DefaultCjBj.IsChecked); CompatMode = parentMenu.AppendMenuItem("Modules compatibility mode", true, Storage.GetValue(nameof(CompatMode), true), true); CompatMode.Click += (s, e) => Storage.SetValue(nameof(CompatMode), CompatMode.IsChecked); NullBoolexpr = parentMenu.AppendMenuItem("Use 'null' as default boolexpr", true, Storage.GetValue(nameof(NullBoolexpr), true), true); NullBoolexpr.Click += (s, e) => Storage.SetValue(nameof(NullBoolexpr), NullBoolexpr.IsChecked); parentMenu.AppendMenuItem("About AdicHelper...", false, false, true).Click += (s, e) => Process.Start(AHPath); Hooks.MapSaved += Hooks_MapSaved; Inited = true; }
private int GetOptionSelectionFromMenu(IBasicMenu c, string zerothOption) { var options = c.MyItems(); var offSet = 0; SelectFromBelow(); for (var i = 1; i <= options.Length; i++) { offSet = i - 1; String.Format("{0}.) {1}", i, options[offSet]).P(); } zerothOption.P(); offSet = Ju.GetInt32InRange(0, options.Length); return offSet; }