コード例 #1
0
ファイル: IHasNotes.cs プロジェクト: JoschiGrey/chummer5a
        /// <summary>
        /// Writes notes to an IHasNotes object, returns True if notes were changed and False otherwise.
        /// </summary>
        /// <param name="objNotes"></param>
        /// <param name="treNode"></param>
        public static async ValueTask <bool> WriteNotes(this IHasNotes objNotes, TreeNode treNode)
        {
            if (objNotes == null || treNode == null)
            {
                return(false);
            }
            Form frmToUse = treNode.TreeView.FindForm() ?? Program.MainForm;

            DialogResult eResult = await frmToUse.DoThreadSafeFunc(async x =>
            {
                using (EditNotes frmItemNotes = new EditNotes(objNotes.Notes, objNotes.NotesColor))
                {
                    await frmItemNotes.ShowDialogSafeAsync(x);
                    if (frmItemNotes.DialogResult != DialogResult.OK)
                    {
                        return(frmItemNotes.DialogResult);
                    }

                    objNotes.Notes      = frmItemNotes.Notes;
                    objNotes.NotesColor = frmItemNotes.NotesColor;
                }

                treNode.ForeColor   = objNotes.PreferredColor;
                treNode.ToolTipText = objNotes.Notes.WordWrap();

                return(DialogResult.OK);
            });

            return(eResult == DialogResult.OK);
        }
コード例 #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 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);
        }
コード例 #3
0
ファイル: IHasNotes.cs プロジェクト: timstearns2/chummer5a
        /// <summary>
        /// Writes notes to an IHasNotes object, returns True if notes were changed and False otherwise.
        /// </summary>
        /// <param name="objNotes"></param>
        /// <param name="treNode"></param>
        public static bool WriteNotes(this IHasNotes objNotes, TreeNode treNode)
        {
            if (objNotes == null || treNode == null)
            {
                return(false);
            }
            string strOldValue = objNotes.Notes;

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

                objNotes.Notes = frmItemNotes.Notes;
            }
            if (objNotes.Notes != strOldValue)
            {
                treNode.ForeColor   = objNotes.PreferredColor;
                treNode.ToolTipText = objNotes.Notes.WordWrap(100);

                return(true);
            }
            return(false);
        }
コード例 #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 (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);
        }
コード例 #5
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);
        }
コード例 #6
0
        /// <summary>
        /// Writes notes to an IHasNotes object, returns True if notes were changed and False otherwise.
        /// </summary>
        /// <param name="objNotes"></param>
        /// <param name="treNode"></param>
        public static async ValueTask <bool> WriteNotes(this IHasNotes objNotes, TreeNode treNode)
        {
            if (objNotes == null || treNode == null)
            {
                return(false);
            }
            TreeView objTreeView = treNode.TreeView;
            Form     frmToUse    = objTreeView != null
                ? await objTreeView.DoThreadSafeFuncAsync(x => x.FindForm()) ?? Program.MainForm
                : Program.MainForm;

            using (ThreadSafeForm <EditNotes> frmItemNotes = await ThreadSafeForm <EditNotes> .GetAsync(() => new EditNotes(objNotes.Notes, objNotes.NotesColor)))
            {
                if (await frmItemNotes.ShowDialogSafeAsync(frmToUse) != DialogResult.OK)
                {
                    return(false);
                }

                objNotes.Notes      = frmItemNotes.MyForm.Notes;
                objNotes.NotesColor = frmItemNotes.MyForm.NotesColor;
            }

            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();
            }

            return(true);
        }
コード例 #7
0
        /// <summary>
        /// Writes notes to an IHasNotes object, returns True if notes were changed and False otherwise.
        /// </summary>
        /// <param name="objNotes"></param>
        public static bool WriteNotes(this IHasNotes objNotes, TreeNode treNode)
        {
            string   strOldValue  = objNotes.Notes;
            frmNotes frmItemNotes = new frmNotes
            {
                Notes = strOldValue
            };

            frmItemNotes.ShowDialog();

            if (frmItemNotes.DialogResult == DialogResult.OK)
            {
                objNotes.Notes = frmItemNotes.Notes;
                if (objNotes.Notes != strOldValue)
                {
                    treNode.ForeColor   = objNotes.PreferredColor;
                    treNode.ToolTipText = objNotes.Notes.WordWrap(100);

                    return(true);
                }
            }

            return(false);
        }