protected float DrawEntryLinkWidget(Rect titleRect, UpdateFeatureDef forDef) { if (forDef.linkUrl != null) { Text.Anchor = TextAnchor.MiddleCenter; var linkRect = new Rect(titleRect.width - linkTextWidth, titleRect.y, linkTextWidth, titleRect.height); var prevColor = GUI.color; GUI.color = LinkTextColor; Widgets.Label(linkRect, "HugsLib_features_link".Translate()); GUI.color = prevColor; GenUI.ResetLabelAlign(); if (Widgets.ButtonInvisible(linkRect)) { Application.OpenURL(forDef.linkUrl); } if (Mouse.IsOver(linkRect)) { Widgets.DrawHighlight(linkRect); var descriptionText = "HugsLib_features_linkDesc".Translate(); TooltipHandler.TipRegion(linkRect, descriptionText.Replace("{0}", forDef.linkUrl)); } return(linkTextWidth); } return(0); }
protected override void DrawEntryTitleWidgets(Rect titleRect, UpdateFeatureDef forDef) { var linkWidgetWidth = DrawEntryLinkWidget(titleRect, forDef); if (Prefs.DevMode) { DrawDevToolsMenuWidget(titleRect, linkWidgetWidth, forDef); } }
private void OpenDevToolsDropdownMenu(UpdateFeatureDef forDef) { Find.WindowStack.Add( new FloatMenu( devMenu.GetMenuOptions(forDef) .Select(o => new FloatMenuOption(o.label, o.action) { Disabled = o.disabled }) .ToList() ) ); }
public void NullPackageIdTest() { var noPackageDef = new UpdateFeatureDef(); Assert.IsNull(noPackageDef.modContentPack); Assert.IsNull(noPackageDef.OverridePackageId); Assert.Throws <InvalidOperationException>(() => { var _ = UpdateFeatureManager.FilterFeatureDefsByMatchingAudience( new[] { noPackageDef }, s => false, ex => throw ex ).ToArray(); } ); }
private void DrawDevToolsMenuWidget(Rect titleRect, float widgetOffset, UpdateFeatureDef forDef) { var widgetSize = titleRect.height; var widgetRect = new Rect(titleRect.width - widgetOffset - widgetSize, titleRect.y, widgetSize, widgetSize); if (Mouse.IsOver(widgetRect)) { Widgets.DrawHighlight(widgetRect); } var buttonTexture = HugsLibTextures.HLMenuIcon; var textureRect = new Rect( widgetRect.center.x - buttonTexture.width / 2f, widgetRect.center.y - buttonTexture.height / 2f, buttonTexture.width, buttonTexture.height ); Widgets.DrawTextureFitted(textureRect, buttonTexture, 1f); if (Widgets.ButtonInvisible(widgetRect)) { OpenDevToolsDropdownMenu(forDef); } }
public FeatureEntry(UpdateFeatureDef def, List <DescriptionSegment> segments) { this.def = def; this.segments = segments; }
protected virtual void DrawEntryTitleWidgets(Rect titleRect, UpdateFeatureDef forDef) { DrawEntryLinkWidget(titleRect, forDef); }
public IEnumerable <(string label, Action action, bool disabled)> GetMenuOptions(UpdateFeatureDef forDef) { var modName = forDef.modNameReadable; return(new(string, Action, bool)[] {