/// <summary> /// Update the label and tooltip for the character's Condition Monitors. /// </summary> /// <param name="lblPhysical"></param> /// <param name="lblStun"></param> /// <param name="tipTooltip"></param> /// <param name="_objImprovementManager"></param> protected void UpdateConditionMonitor(Label lblPhysical, Label lblStun, HtmlToolTip tipTooltip, ImprovementManager _objImprovementManager) { // Condition Monitor. int intBOD = _objCharacter.BOD.TotalValue; int intWIL = _objCharacter.WIL.TotalValue; int intCMPhysical = _objCharacter.PhysicalCM; int intCMStun = _objCharacter.StunCM; // Update the Condition Monitor labels. lblPhysical.Text = intCMPhysical.ToString(); lblStun.Text = intCMStun.ToString(); string strCM = $"8 + ({_objCharacter.BOD.DisplayAbbrev}/2)({(intBOD + 1)/2})"; if (_objImprovementManager.ValueOf(Improvement.ImprovementType.PhysicalCM) != 0) { strCM += " + " + LanguageManager.Instance.GetString("Tip_Modifiers") + " (" + _objImprovementManager.ValueOf(Improvement.ImprovementType.PhysicalCM) + ")"; } tipTooltip.SetToolTip(lblPhysical, strCM); strCM = $"8 + ({_objCharacter.WIL.DisplayAbbrev}/2)({(intWIL + 1) / 2})"; if (_objImprovementManager.ValueOf(Improvement.ImprovementType.StunCM) != 0) { strCM += " + " + LanguageManager.Instance.GetString("Tip_Modifiers") + " (" + _objImprovementManager.ValueOf(Improvement.ImprovementType.StunCM) + ")"; } tipTooltip.SetToolTip(lblStun, strCM); }
/// <summary> /// Update the label and tooltip for the character's Armor Rating. /// </summary> /// <param name="lblArmor"></param> /// <param name="tipTooltip"></param> /// <param name="objImprovementManager"></param> /// <param name="lblCMArmor"></param> protected void UpdateArmorRating(Label lblArmor, HtmlToolTip tipTooltip, ImprovementManager objImprovementManager, Label lblCMArmor = null) { // Armor Ratings. lblArmor.Text = _objCharacter.TotalArmorRating.ToString(); string strArmorToolTip = LanguageManager.Instance.GetString("Tip_Armor") + " (" + _objCharacter.ArmorRating + ")"; if (_objCharacter.ArmorRating != _objCharacter.TotalArmorRating) { strArmorToolTip += " + " + LanguageManager.Instance.GetString("Tip_Modifiers") + " (" + (_objCharacter.TotalArmorRating - _objCharacter.ArmorRating) + ")"; } tipTooltip.SetToolTip(lblArmor, strArmorToolTip); if (lblCMArmor != null) { lblCMArmor.Text = _objCharacter.TotalArmorRating.ToString(); tipTooltip.SetToolTip(lblCMArmor, strArmorToolTip); } // Remove any Improvements from Armor Encumbrance. objImprovementManager.RemoveImprovements(Improvement.ImprovementSource.ArmorEncumbrance, "Armor Encumbrance"); // Create the Armor Encumbrance Improvements. if (_objCharacter.ArmorEncumbrance < 0) { objImprovementManager.CreateImprovement("AGI", Improvement.ImprovementSource.ArmorEncumbrance, "Armor Encumbrance", Improvement.ImprovementType.Attribute, "precedence-1", 0, 1, 0, 0, _objCharacter.ArmorEncumbrance); objImprovementManager.CreateImprovement("REA", Improvement.ImprovementSource.ArmorEncumbrance, "Armor Encumbrance", Improvement.ImprovementType.Attribute, "precedence-1", 0, 1, 0, 0, _objCharacter.ArmorEncumbrance); } }
/// <summary> /// Update the labels and tooltips for the character's Attributes. /// </summary> /// <param name="objAttribute"></param> /// <param name="lblATTMetatype"></param> /// <param name="lblATTAug"></param> /// <param name="tipTooltip"></param> /// <param name="nudATT"></param> protected void UpdateCharacterAttribute(CharacterAttrib objAttribute, Label lblATTMetatype, Label lblATTAug, HtmlToolTip tipTooltip, [Optional] NumericUpDown nudATT, [Optional] NumericUpDown nudKATT) { if (nudATT != null) { nudATT.Minimum = objAttribute.TotalMinimum; nudATT.Maximum = objAttribute.TotalMaximum; nudATT.Value = Math.Max(objAttribute.Value - objAttribute.Karma, objAttribute.Base); } if (nudKATT != null) { nudKATT.Minimum = 0; nudKATT.Maximum = objAttribute.TotalMaximum; nudKATT.Value = objAttribute.Karma; } lblATTMetatype.Text = $"{objAttribute.TotalMinimum} / {objAttribute.TotalMaximum} ({objAttribute.TotalAugmentedMaximum})"; if (objAttribute.HasModifiers) { lblATTAug.Text = $"{objAttribute.Value} ({objAttribute.TotalValue})"; tipTooltip.SetToolTip(lblATTAug, objAttribute.ToolTip()); } else { lblATTAug.Text = $"{objAttribute.Value}"; tipTooltip.SetToolTip(lblATTAug, string.Empty); } }
private void InitializeComponent() { this.htmlToolTip1 = new TheArtOfDev.HtmlRenderer.WinForms.HtmlToolTip(); // // htmlToolTip1 // this.htmlToolTip1.AllowLinksHandling = true; this.htmlToolTip1.BaseStylesheet = null; this.htmlToolTip1.MaximumSize = new System.Drawing.Size(0, 0); this.htmlToolTip1.OwnerDraw = true; this.htmlToolTip1.TooltipCssClass = "htmltooltip"; }
internal DiscussionBox( CustomFontForm parent, SingleDiscussionAccessor accessor, IGitCommandService git, User currentUser, ProjectKey projectKey, Discussion discussion, User mergeRequestAuthor, int diffContextDepth, ColorScheme colorScheme, Action <DiscussionBox> preContentChange, Action <DiscussionBox, bool> onContentChanged, Action <Control> onControlGotFocus) { Parent = parent; Discussion = discussion; _accessor = accessor; _editor = accessor.GetDiscussionEditor(); _mergeRequestAuthor = mergeRequestAuthor; _currentUser = currentUser; _imagePath = StringUtils.GetHostWithPrefix(projectKey.HostName) + "/" + projectKey.ProjectName; _diffContextDepth = new ContextDepth(0, diffContextDepth); _tooltipContextDepth = new ContextDepth(5, 5); if (git != null) { _panelContextMaker = new EnhancedContextMaker(git); _tooltipContextMaker = new CombinedContextMaker(git); } _colorScheme = colorScheme; _preContentChange = preContentChange; _onContentChanged = onContentChanged; _onControlGotFocus = onControlGotFocus; _htmlDiffContextToolTip = new HtmlToolTip { AutoPopDelay = 20000, // 20s InitialDelay = 300 }; _htmlDiscussionNoteToolTip = new HtmlToolTip { AutoPopDelay = 20000, // 20s InitialDelay = 300, }; _specialDiscussionNoteMarkdownPipeline = MarkDownUtils.CreatePipeline(Program.ServiceManager.GetJiraServiceUrl()); onCreate(); }
internal DiscussionBox(Discussion discussion, DiscussionEditor editor, User mergeRequestAuthor, User currentUser, int diffContextDepth, IGitRepository gitRepository, ColorScheme colorScheme, Action <DiscussionBox> preContentChange, Action <DiscussionBox> onContentChanged) { Discussion = discussion; _editor = editor; _mergeRequestAuthor = mergeRequestAuthor; _currentUser = currentUser; _diffContextDepth = new ContextDepth(0, diffContextDepth); _tooltipContextDepth = new ContextDepth(5, 5); _formatter = new DiffContextFormatter(); if (gitRepository != null) { _panelContextMaker = new EnhancedContextMaker(gitRepository); _tooltipContextMaker = new CombinedContextMaker(gitRepository); } _colorScheme = colorScheme; _preContentChange = preContentChange; _onContentChanged = onContentChanged; _toolTip = new ToolTip { AutoPopDelay = 5000, InitialDelay = 500, ReshowDelay = 100 }; _toolTipNotifier = new ToolTip(); _htmlToolTip = new HtmlToolTip { AutoPopDelay = 10000, // 10s BaseStylesheet = ".htmltooltip { padding: 1px; }" }; onCreate(); }
public ToolboxCtrl() { InitControl(); _lviHoverIndex = -1; _toolTip = new HtmlToolTip(); /////////////////////////////////////////////////////////////////////////////// _colorTable = new RibbonProfesionalRendererColorTable(); _backBrush = new SolidBrush(MainForm.ColorBackground); _textBrush = new SolidBrush(_colorTable.Text); _disabledTextBrush = new SolidBrush(SystemColors.GrayText); _penHeader = Pens.LightGray; _image = Properties.Resources.help; /////////////////////////////////////////////////////////////////////////////// LoadHelp(GetDefaultHelpFilePath()); }
/// <summary> /// Update the label and tooltip for the character's Armor Rating. /// </summary> /// <param name="lblArmor"></param> /// <param name="tipTooltip"></param> /// <param name="objImprovementManager"></param> /// <param name="lblCMArmor"></param> protected void UpdateArmorRating(Label lblArmor, HtmlToolTip tipTooltip, Label lblCMArmor = null) { // Armor Ratings. int intTotalArmorRating = _objCharacter.TotalArmorRating; int intArmorRating = _objCharacter.ArmorRating; lblArmor.Text = intTotalArmorRating.ToString(); if (tipTooltip != null) { string strArmorToolTip = LanguageManager.GetString("Tip_Armor") + " (" + intArmorRating.ToString() + ")"; if (intArmorRating != intTotalArmorRating) { strArmorToolTip += " + " + LanguageManager.GetString("Tip_Modifiers") + " (" + (intTotalArmorRating - intArmorRating).ToString() + ")"; } tipTooltip.SetToolTip(lblArmor, strArmorToolTip); if (lblCMArmor != null) { lblCMArmor.Text = intTotalArmorRating.ToString(); tipTooltip.SetToolTip(lblCMArmor, strArmorToolTip); } } // Remove any Improvements from Armor Encumbrance. ImprovementManager.RemoveImprovements(_objCharacter, Improvement.ImprovementSource.ArmorEncumbrance, "Armor Encumbrance"); // Create the Armor Encumbrance Improvements. int intEncumbrance = _objCharacter.ArmorEncumbrance; if (intEncumbrance < 0) { ImprovementManager.CreateImprovement(_objCharacter, "AGI", Improvement.ImprovementSource.ArmorEncumbrance, "Armor Encumbrance", Improvement.ImprovementType.Attribute, "precedence-1", 0, 1, 0, 0, intEncumbrance); ImprovementManager.CreateImprovement(_objCharacter, "REA", Improvement.ImprovementSource.ArmorEncumbrance, "Armor Encumbrance", Improvement.ImprovementType.Attribute, "precedence-1", 0, 1, 0, 0, intEncumbrance); } }
/// <summary> /// Constructor, you should the method ShwDlg instead /// </summary> private YamuiInput(string htmlTitle, string htmlMessage, List <string> buttonsList, object dataObject, int formMaxWidth, int formMaxHeight, int formMinWidth, EventHandler <HtmlLinkClickedEventArgs> onLinkClicked) : base(YamuiFormOption.WithShadow) { InitializeComponent(); _tooltip = new HtmlToolTip(); var maxWidthInPanel = formMaxWidth - (Padding.Left + Padding.Right); contentPanel.DisableBackgroundImage = true; // if there was an object data passed on, need to check the max width needed to draw the inputs DataObject = dataObject; if (HasData) { // we make a list MemberInfo for each field in the data passed if (DataObject.GetType().IsSimpleType()) { _items.Add(null); } else { foreach (var mi in DataObject.GetType().GetMembers(BindingFlags.Instance | BindingFlags.Public)) { if (GetAttr(mi) != null && GetAttr(mi).Hidden) { continue; } var fi = mi as FieldInfo; var pi = mi as PropertyInfo; if (fi != null && Utilities.IsSupportedType(fi.FieldType)) { _items.Add(fi); } else if (pi != null && Utilities.IsSupportedType(pi.PropertyType) && pi.GetIndexParameters().Length == 0 && pi.CanWrite) { _items.Add(pi); } } _items.Sort((x, y) => (GetAttr(x) != null ? GetAttr(x).Order : int.MaxValue) - (GetAttr(y) != null ? GetAttr(y).Order : int.MaxValue)); } // redefine the minimum Form Width for each input we will need to display var widthSpace = InputDefaultWidth + InputPadding * 3 + Padding.Left + Padding.Right; for (int i = 0; i < _items.Count; i++) { var item = _items[i]; if (item != null) { _dataLabelWidth = _dataLabelWidth.ClampMin(Utilities.MeasureHtmlPrefWidth((GetAttr(item) != null ? GetAttr(item).Label : item.Name), 0, maxWidthInPanel - widthSpace)); } } formMinWidth = formMinWidth.ClampMin(_dataLabelWidth + widthSpace); } // Set title, it will define a new minimum width for the message box var space = FormButtonWidth * 2 + BorderWidth * 2 + titleLabel.Padding.Left + 5; titleLabel.SetNeededSize(htmlTitle, formMinWidth - space, formMaxWidth - space, true); var newPadding = Padding; newPadding.Top = titleLabel.Height + 10; Padding = newPadding; titleLabel.Location = new Point(5, 5); // Set buttons int cumButtonWidth = 0; for (int i = buttonsList.Count - 1; i >= 0; i--) { Controls.Add(InsertButton(i, buttonsList[i], ref cumButtonWidth)); } // set content label space = Padding.Left + Padding.Right; contentLabel.SetNeededSize(htmlMessage ?? string.Empty, (cumButtonWidth + ButtonPadding + BorderWidth * 2 + 20).ClampMin(formMinWidth - space), maxWidthInPanel); contentLabel.Width = (formMinWidth - space).ClampMin(contentLabel.Width); if (onLinkClicked != null) { contentLabel.LinkClicked += onLinkClicked; } contentLabel.Anchor = contentLabel.Anchor | AnchorStyles.Right; var yPos = contentLabel.Location.Y + contentLabel.Height; // ensure a minimum width if there is no message contentLabel.Width = (formMinWidth - space).ClampMin(contentLabel.Width); // if there was an object data passed on, need to set up inputs for the user to fill in if (HasData) { // Build rows for each item yPos += 10; for (int i = 0; i < _items.Count; i++) { contentPanel.Controls.Add(InsertInputForItem(i, ref yPos)); contentPanel.Controls.Add(InsertLabelForItem(i, ref yPos)); } } // set form size Size = new Size(contentLabel.Width + space, (Padding.Top + Padding.Bottom + yPos).ClampMax(formMaxHeight)); if (contentPanel.VerticalScroll.HasScroll) { _hasScrollMessage = true; Width += 10; } MinimumSize = Size; // quickly correct the tab order.. (we created the button from right to left and i'm too lazy to think atm) var tabOrderManager = new TabOrderManager(this); tabOrderManager.SetTabOrder(TabOrderManager.TabScheme.AcrossFirst); KeyPreview = true; }
/// <summary> /// Update the labels and tooltips for the character's Limits. /// </summary> /// <param name="lblPhysical"></param> /// <param name="lblMental"></param> /// <param name="lblSocial"></param> /// <param name="lblAstral"></param> /// <param name="tipTooltip"></param> protected void RefreshLimits(Label lblPhysical, Label lblMental, Label lblSocial, Label lblAstral, HtmlToolTip tipTooltip) { lblPhysical.Text = _objCharacter.LimitPhysical; lblMental.Text = _objCharacter.LimitMental.ToString(); lblSocial.Text = _objCharacter.LimitSocial.ToString(); string strPhysical = $"({_objCharacter.STR.DisplayAbbrev} [{_objCharacter.STR.TotalValue}] * 2) + {_objCharacter.BOD.DisplayAbbrev} [{_objCharacter.BOD.TotalValue}] + {_objCharacter.REA.DisplayAbbrev} [{_objCharacter.REA.TotalValue}] / 3"; string strMental = $"({_objCharacter.LOG.DisplayAbbrev} [{_objCharacter.LOG.TotalValue}] * 2) + {_objCharacter.INT.DisplayAbbrev} [{_objCharacter.INT.TotalValue}] + {_objCharacter.WIL.DisplayAbbrev} [{_objCharacter.WIL.TotalValue}] / 3"; string strSocial = $"({_objCharacter.CHA.DisplayAbbrev} [{_objCharacter.CHA.TotalValue}] * 2) + {_objCharacter.WIL.DisplayAbbrev} [{_objCharacter.WIL.TotalValue}] + {_objCharacter.ESS.DisplayAbbrev} [{_objCharacter.Essence.ToString(GlobalOptions.CultureInfo)}] / 3"; foreach (Improvement objLoopImprovement in _objCharacter.Improvements.Where( objLoopImprovment => (objLoopImprovment.ImproveType == Improvement.ImprovementType.PhysicalLimit || objLoopImprovment.ImproveType == Improvement.ImprovementType.SocialLimit || objLoopImprovment.ImproveType == Improvement.ImprovementType.MentalLimit) && objLoopImprovment.Enabled)) { switch (objLoopImprovement.ImproveType) { case Improvement.ImprovementType.PhysicalLimit: strPhysical += $" + {_objCharacter.GetObjectName(objLoopImprovement)} ({objLoopImprovement.Value})"; break; case Improvement.ImprovementType.MentalLimit: strMental += $" + {_objCharacter.GetObjectName(objLoopImprovement)} ({objLoopImprovement.Value})"; break; case Improvement.ImprovementType.SocialLimit: strSocial += $" + {_objCharacter.GetObjectName(objLoopImprovement)} ({objLoopImprovement.Value})"; break; } } tipTooltip.SetToolTip(lblPhysical, strPhysical); tipTooltip.SetToolTip(lblMental, strMental); tipTooltip.SetToolTip(lblSocial, strSocial); lblAstral.Text = _objCharacter.LimitAstral.ToString(); }
/// <summary> /// Update the labels and tooltips for the character's Limits. /// </summary> /// <param name="lblPhysical"></param> /// <param name="lblMental"></param> /// <param name="lblSocial"></param> /// <param name="lblAstral"></param> /// <param name="tipTooltip"></param> protected void RefreshLimits(Label lblPhysical, Label lblMental, Label lblSocial, Label lblAstral, HtmlToolTip tipTooltip) { lblPhysical.Text = _objCharacter.LimitPhysical; lblMental.Text = _objCharacter.LimitMental.ToString(); lblSocial.Text = _objCharacter.LimitSocial.ToString(); string strPhysical = string.Format("({0} [{1}] * 2) + {2} [{3}] + {4} [{5}] / 3", LanguageManager.Instance.GetString("String_AttributeSTRShort"), _objCharacter.STR.TotalValue.ToString(), LanguageManager.Instance.GetString("String_AttributeBODShort"), _objCharacter.BOD.TotalValue.ToString(), LanguageManager.Instance.GetString("String_AttributeREAShort"), _objCharacter.REA.TotalValue.ToString()); string strMental = string.Format("({0} [{1}] * 2) + {2} [{3}] + {4} [{5}] / 3", LanguageManager.Instance.GetString("String_AttributeLOGShort"), _objCharacter.LOG.TotalValue.ToString(), LanguageManager.Instance.GetString("String_AttributeINTShort"), _objCharacter.INT.TotalValue.ToString(), LanguageManager.Instance.GetString("String_AttributeWILShort"), _objCharacter.WIL.TotalValue.ToString()); string strSocial = string.Format("({0} [{1}] * 2) + {2} [{3}] + {4} [{5}] / 3", LanguageManager.Instance.GetString("String_AttributeCHAShort"), _objCharacter.CHA.TotalValue.ToString(), LanguageManager.Instance.GetString("String_AttributeWILShort"), _objCharacter.WIL.TotalValue.ToString(), LanguageManager.Instance.GetString("String_AttributeESSShort"), _objCharacter.Essence.ToString(GlobalOptions.CultureInfo)); foreach (Improvement objLoopImprovement in _objCharacter.Improvements) { if (objLoopImprovement.Enabled) { switch (objLoopImprovement.ImproveType) { case Improvement.ImprovementType.PhysicalLimit: strPhysical += " + " + _objCharacter.GetObjectName(objLoopImprovement) + " (" + objLoopImprovement.Value.ToString() + ")"; break; case Improvement.ImprovementType.MentalLimit: strMental += " + " + _objCharacter.GetObjectName(objLoopImprovement) + " (" + objLoopImprovement.Value.ToString() + ")"; break; case Improvement.ImprovementType.SocialLimit: strSocial += " + " + _objCharacter.GetObjectName(objLoopImprovement) + " (" + objLoopImprovement.Value.ToString() + ")"; break; } } } tipTooltip.SetToolTip(lblPhysical, strPhysical); tipTooltip.SetToolTip(lblMental, strMental); tipTooltip.SetToolTip(lblSocial, strSocial); lblAstral.Text = _objCharacter.LimitAstral.ToString(); }