Ejemplo n.º 1
0
        /// <summary>
        /// Allows the user to input notes that should be linked to the selected object.
        /// TODO: Should be linked back to CharacterShared in some way or moved into a more generic helper class.
        /// </summary>
        /// <param name="objNotes"></param>
        /// <param name="treNode"></param>
        private void WriteNotes(IHasNotes objNotes, TreeNode treNode)
        {
            string strOldValue = objNotes.Notes;

            using (frmNotes frmItemNotes = new frmNotes {
                Notes = strOldValue
            })
            {
                frmItemNotes.ShowDialog(this);
                if (frmItemNotes.DialogResult != DialogResult.OK)
                {
                    return;
                }

                objNotes.Notes = frmItemNotes.Notes;
            }

            if (objNotes.Notes == strOldValue)
            {
                return;
            }
            treNode.ForeColor   = objNotes.PreferredColor;
            treNode.ToolTipText = objNotes.Notes.WordWrap();
            MakeDirty?.Invoke(null, null);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Allows the user to input notes that should be linked to the selected object.
        /// TODO: Should be linked back to CharacterShared in some way or moved into a more generic helper class.
        /// </summary>
        /// <param name="objNotes"></param>
        /// <param name="treNode"></param>
        private async ValueTask WriteNotes(IHasNotes objNotes, TreeNode treNode)
        {
            using (ThreadSafeForm <EditNotes> frmItemNotes = await ThreadSafeForm <EditNotes> .GetAsync(() => new EditNotes(objNotes.Notes, objNotes.NotesColor)))
            {
                if (await frmItemNotes.ShowDialogSafeAsync(_objCharacter) != DialogResult.OK)
                {
                    return;
                }

                objNotes.Notes      = frmItemNotes.MyForm.Notes;
                objNotes.NotesColor = frmItemNotes.MyForm.NotesColor;
            }
            TreeView objTreeView = treNode.TreeView;

            if (objTreeView != null)
            {
                await objTreeView.DoThreadSafeAsync(() =>
                {
                    treNode.ForeColor   = objNotes.PreferredColor;
                    treNode.ToolTipText = objNotes.Notes.WordWrap();
                });
            }
            else
            {
                treNode.ForeColor   = objNotes.PreferredColor;
                treNode.ToolTipText = objNotes.Notes.WordWrap();
            }
            MakeDirty?.Invoke(this, EventArgs.Empty);
        }
Ejemplo n.º 3
0
        private void tssLimitModifierNotes_Click(object sender, EventArgs e)
        {
            if (treLimit.SelectedNode == null)
            {
                return;
            }
            if (treLimit.SelectedNode?.Tag is IHasNotes objNotes)
            {
                WriteNotes(objNotes, treLimit.SelectedNode);
            }
            else
            {
                // the limit modifier has a source
                foreach (Improvement objImprovement in _objCharacter.Improvements)
                {
                    if (objImprovement.ImproveType != Improvement.ImprovementType.LimitModifier ||
                        objImprovement.SourceName != treLimit.SelectedNode?.Tag.ToString())
                    {
                        continue;
                    }
                    string strOldValue = objImprovement.Notes;
                    using (frmNotes frmItemNotes = new frmNotes
                    {
                        Notes = strOldValue
                    })
                    {
                        frmItemNotes.ShowDialog(this);

                        if (frmItemNotes.DialogResult != DialogResult.OK)
                        {
                            continue;
                        }
                        objImprovement.Notes = frmItemNotes.Notes;
                    }

                    if (objImprovement.Notes == strOldValue)
                    {
                        continue;
                    }
                    MakeDirty?.Invoke(null, null);

                    treLimit.SelectedNode.ForeColor   = objImprovement.PreferredColor;
                    treLimit.SelectedNode.ToolTipText = objImprovement.Notes.WordWrap(100);
                }
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Allows the user to input notes that should be linked to the selected object.
        /// TODO: Should be linked back to CharacterShared in some way or moved into a more generic helper class.
        /// </summary>
        /// <param name="objNotes"></param>
        /// <param name="treNode"></param>
        private async ValueTask WriteNotes(IHasNotes objNotes, TreeNode treNode)
        {
            using (EditNotes frmItemNotes = new EditNotes(objNotes.Notes, objNotes.NotesColor))
            {
                await frmItemNotes.ShowDialogSafeAsync(this);

                if (frmItemNotes.DialogResult != DialogResult.OK)
                {
                    return;
                }

                objNotes.Notes      = frmItemNotes.Notes;
                objNotes.NotesColor = frmItemNotes.NotesColor;
            }
            treNode.ForeColor   = objNotes.PreferredColor;
            treNode.ToolTipText = objNotes.Notes.WordWrap();
            MakeDirty?.Invoke(this, EventArgs.Empty);
        }
Ejemplo n.º 5
0
        private async void tssLimitModifierNotes_Click(object sender, EventArgs e)
        {
            object objSelectedNodeTag = await treLimit.DoThreadSafeFuncAsync(x => x.SelectedNode?.Tag);

            if (objSelectedNodeTag == null)
            {
                return;
            }
            if (objSelectedNodeTag is IHasNotes objNotes)
            {
                await WriteNotes(objNotes, await treLimit.DoThreadSafeFuncAsync(x => x.SelectedNode));
            }
            else
            {
                // the limit modifier has a source
                foreach (Improvement objImprovement in _objCharacter.Improvements)
                {
                    if (objImprovement.ImproveType != Improvement.ImprovementType.LimitModifier ||
                        objImprovement.SourceName != objSelectedNodeTag.ToString())
                    {
                        continue;
                    }
                    using (ThreadSafeForm <EditNotes> frmItemNotes = await ThreadSafeForm <EditNotes> .GetAsync(() => new EditNotes(objImprovement.Notes, objImprovement.NotesColor)))
                    {
                        if (await frmItemNotes.ShowDialogSafeAsync(_objCharacter) != DialogResult.OK)
                        {
                            continue;
                        }

                        objImprovement.Notes = frmItemNotes.MyForm.Notes;
                    }
                    await treLimit.DoThreadSafeAsync(x =>
                    {
                        x.SelectedNode.ForeColor   = objImprovement.PreferredColor;
                        x.SelectedNode.ToolTipText = objImprovement.Notes.WordWrap();
                    });

                    MakeDirty?.Invoke(this, EventArgs.Empty);
                }
            }
        }
Ejemplo n.º 6
0
        private async void tssLimitModifierNotes_Click(object sender, EventArgs e)
        {
            if (treLimit.SelectedNode == null)
            {
                return;
            }
            if (treLimit.SelectedNode?.Tag is IHasNotes objNotes)
            {
                await WriteNotes(objNotes, treLimit.SelectedNode);
            }
            else
            {
                // the limit modifier has a source
                foreach (Improvement objImprovement in _objCharacter.Improvements)
                {
                    if (objImprovement.ImproveType != Improvement.ImprovementType.LimitModifier ||
                        objImprovement.SourceName != treLimit.SelectedNode?.Tag.ToString())
                    {
                        continue;
                    }
                    using (EditNotes frmItemNotes = new EditNotes(objImprovement.Notes, objImprovement.NotesColor))
                    {
                        await frmItemNotes.ShowDialogSafeAsync(this);

                        if (frmItemNotes.DialogResult != DialogResult.OK)
                        {
                            continue;
                        }

                        objImprovement.Notes = frmItemNotes.Notes;
                    }
                    treLimit.SelectedNode.ForeColor   = objImprovement.PreferredColor;
                    treLimit.SelectedNode.ToolTipText = objImprovement.Notes.WordWrap();
                    MakeDirty?.Invoke(this, EventArgs.Empty);
                }
            }
        }