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