private void ContextMenuOnContextMenuOpened(ContextMenuOpenedArgs args) { var systemText = Service <DataManager> .Get().GetExcelSheet <Addon>() !.GetRow(1059) !.Text.RawString; // "System" var configuration = Service <DalamudConfiguration> .Get(); if (args.Title == systemText && configuration.DoButtonsSystemMenu) { var dalamudInterface = Service <DalamudInterface> .Get(); args.Items.Insert(0, new CustomContextMenuItem(this.locDalamudSettings, selectedArgs => { dalamudInterface.ToggleSettingsWindow(); })); args.Items.Insert(0, new CustomContextMenuItem(this.locDalamudPlugins, selectedArgs => { dalamudInterface.TogglePluginInstallerWindow(); })); } }
private void ContextMenuOnContextMenuOpened(ContextMenuOpenedArgs args) { Log.Information("Got context menu with parent addon: {ParentAddonName}, title:{Title}, itemcnt:{ItemCount}", args.ParentAddonName, args.Title, args.Items.Count); if (args.GameObjectContext != null) { Log.Information(" => GameObject:{GameObjectName} world:{World} cid:{Cid} id:{Id}", args.GameObjectContext.Name, args.GameObjectContext.WorldId, args.GameObjectContext.ContentId, args.GameObjectContext.Id); } if (args.InventoryItemContext != null) { Log.Information(" => Inventory:{ItemId} hq:{Hq} count:{Count}", args.InventoryItemContext.Id, args.InventoryItemContext.IsHighQuality, args.InventoryItemContext.Count); } switch (this.currentSubStep) { case SubStep.TestSubMenu: args.AddCustomSubMenu("Aging Submenu", openedArgs => { openedArgs.AddCustomItem("Submenu Item 1", _ => { this.multipleTriggerOne = true; }); openedArgs.AddCustomItem("Submenu Item 2", _ => { this.multipleTriggerTwo = true; }); }); return; case SubStep.TestMultiple: args.AddCustomItem("Aging Item 1", _ => { this.multipleTriggerOne = true; }); args.AddCustomItem("Aging Item 2", _ => { this.multipleTriggerTwo = true; }); return; case SubStep.Finish: return; default: switch (args.ParentAddonName) { case "Inventory": if (this.currentSubStep != SubStep.TestItem) { return; } args.AddCustomItem("Aging Item", _ => { this.clickedItemId = args.InventoryItemContext !.Id; this.clickedItemHq = args.InventoryItemContext !.IsHighQuality; this.clickedItemCount = args.InventoryItemContext !.Count; Log.Warning("Clicked item: {Id} hq:{Hq} count:{Count}", this.clickedItemId, this.clickedItemHq, this.clickedItemCount); }); break;
/// <summary> /// Initializes a new instance of the <see cref="CustomContextMenuItemSelectedArgs"/> class. /// </summary> /// <param name="contextMenuOpenedArgs">The currently opened context menu.</param> /// <param name="selectedItem">The selected item within the currently opened context menu.</param> internal CustomContextMenuItemSelectedArgs(ContextMenuOpenedArgs contextMenuOpenedArgs, CustomContextMenuItem selectedItem) { this.ContextMenuOpenedArgs = contextMenuOpenedArgs; this.SelectedItem = selectedItem; }