void SetupProductionGroupButton(ProductionTypeButtonWidget button) { if (button == null) return; Action<bool> selectTab = reverse => { if (tabs.QueueGroup == button.ProductionGroup) tabs.SelectNextTab(reverse); else tabs.QueueGroup = button.ProductionGroup; }; button.IsDisabled = () => tabs.Groups[button.ProductionGroup].Tabs.Count == 0; button.OnMouseUp = mi => selectTab(mi.Modifiers.HasModifier(Modifiers.Shift)); button.OnKeyPress = e => selectTab(e.Modifiers.HasModifier(Modifiers.Shift)); button.IsHighlighted = () => tabs.QueueGroup == button.ProductionGroup; var chromeName = button.ProductionGroup.ToLowerInvariant(); var icon = button.Get<ImageWidget>("ICON"); icon.GetImageName = () => button.IsDisabled() ? chromeName + "-disabled" : tabs.Groups[button.ProductionGroup].Alert ? chromeName + "-alert" : chromeName; }