Пример #1
0
        /// <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);
        }
Пример #2
0
        /// <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);
            }
        }
Пример #3
0
 /// <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);
     }
 }
Пример #4
0
 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";
 }
Пример #5
0
        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();
        }
Пример #6
0
        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();
        }
Пример #7
0
        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());
        }
Пример #8
0
        /// <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);
            }
        }
Пример #9
0
        /// <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;
        }
Пример #10
0
        /// <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();
        }
Пример #11
0
        /// <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();
        }