blob: 8161ce885c882d8a00b8b3bc2df239dbc9e9e46b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
|
using MaterialDesignThemes.Wpf;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Media;
namespace Tango.MachineStudio.Common.Notifications
{
/// <summary>
/// Represents the Machine Studio user notification provider responsible for displaying information, alerts and dialogs to the user.
/// </summary>
public interface INotificationProvider
{
/// <summary>
/// Gets the collection of active task items.
/// </summary>
ObservableCollection<TaskItem> TaskItems { get; }
/// <summary>
/// Gets the current displayed task item.
/// </summary>
TaskItem CurrentTaskItem { get; }
/// <summary>
/// Gets a value indicating whether there are any queued task items.
/// </summary>
bool HasTaskItems { get; }
/// <summary>
/// Pushes the specified task item to the queue.
/// </summary>
/// <param name="taskItem">The task item.</param>
void PushTaskItem(TaskItem taskItem);
/// <summary>
/// Create and push a new task item from the specified message.
/// </summary>
/// <param name="message">The message.</param>
/// <returns></returns>
TaskItem PushTaskItem(String message);
/// <summary>
/// Removed the specified task item from the queue.
/// </summary>
/// <param name="taskItem">The task item.</param>
void PopTaskItem(TaskItem taskItem);
/// <summary>
/// Creates a new instance of the specified View type and displays it as a modal dialog.
/// </summary>
/// <typeparam name="View">The type of the view.</typeparam>
/// <typeparam name="VM">The type of the view model.</typeparam>
/// <param name="onAccept">Accept button callback.</param>
/// <param name="onCancel">Cancel button callback.</param>
void ShowModalDialog<View, VM>(Action<VM> onAccept, Action onCancel) where View : FrameworkElement where VM : DialogViewVM;
/// <summary>
/// Creates a new view by a naming convention of the specified view model type.
/// </summary>
/// <typeparam name="VM">The type of the view model.</typeparam>
/// <param name="onAccept">Accept button callback.</param>
/// <param name="onCancel">Cancel button callback.</param>
void ShowModalDialog<VM>(Action<VM> onAccept, Action onCancel) where VM : DialogViewVM;
/// <summary>
/// Creates a new view by a naming convention of the specified view model type.
/// </summary>
/// <typeparam name="VM">The type of the view model.</typeparam>
/// <param name="onAccept">Accept button callback.</param>
void ShowModalDialog<VM>(Action<VM> onAccept) where VM : DialogViewVM;
/// <summary>
/// Display a message box.
/// </summary>
/// <param name="icon">The icon.</param>
/// <param name="iconColor">Color of the icon.</param>
/// <param name="message">The message.</param>
/// <param name="hasCancel">if set to <c>true</c> displays the cancel button.</param>
/// <returns></returns>
bool? ShowMessageBox(PackIconKind icon, Brush iconColor, String message, bool hasCancel);
/// <summary>
/// Shows an information message box.
/// </summary>
/// <param name="message">The message.</param>
void ShowInfo(String message);
/// <summary>
/// Shows warning message box.
/// </summary>
/// <param name="message">The message.</param>
void ShowWarning(String message);
/// <summary>
/// Shows an error message box.
/// </summary>
/// <param name="message">The message.</param>
void ShowError(String message);
/// <summary>
/// Shows a question message box.
/// </summary>
/// <param name="message">The message.</param>
bool ShowQuestion(String message);
/// <summary>
/// Shows a dialog with a text input field and returns the response.
/// </summary>
/// <param name="message">The message.</param>
/// <param name="hint">Text field hint.</param>
/// <param name="defaultResponse">Optional default response.</param>
/// <returns></returns>
String ShowTextInput(String message, String hint, String defaultResponse = null);
}
}
|