aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Images/graphs.png
blob: 6a211693d55b38b2913cbb44c3004d441f4c57c3 (plain)
ofshex dumpascii
0000 89 50 4e 47 0d 0a 1a 0a 00 00 00 0d 49 48 44 52 00 00 00 40 00 00 00 40 08 06 00 00 00 aa 69 71 .PNG........IHDR...@...@......iq
0020 de 00 00 00 04 73 42 49 54 08 08 08 08 7c 08 64 88 00 00 00 09 70 48 59 73 00 00 01 bb 00 00 01 .....sBIT....|.d.....pHYs.......
0040 bb 01 3a ec e3 e2 00 00 00 19 74 45 58 74 53 6f 66 74 77 61 72 65 00 77 77 77 2e 69 6e 6b 73 63 ..:.......tEXtSoftware.www.inksc
0060 61 70 65 2e 6f 72 67 9b ee 3c 1a 00 00 05 ff 49 44 41 54 78 da ed 5b 7d 4c 1b 65 1c 86 99 21 fb ape.org..<.....IDATx..[}L.e...!.
0080 08 13 1c 31 ba 39 36 b7 c4 18 13 8d 7f 2c 4a 34 26 c6 cd 84 18 a3 26 a2 19 5b 48 dc 16 07 6a 34 ...1.96......,J4&.....&..[H...j4
00a0 fc 01 16 97 68 43 58 04 37 da f2 d1 96 52 3e 0d db f4 e8 31 27 7e 04 b3 65 e1 63 46 12 f6 75 78 ....hCX.7....R>....1'~..e.cF..ux
00c0 fd 58 b9 2b 5d a1 05 da 2b 5f 23 81 0d 78 fd bd d7 16 3b c2 f7 2a dc b5 f7 c7 93 de bd 77 f7 e6 .X.+]...+_#..x....;..*.......w..
00e0 9e a7 bf f7 f7 3e ef c7 45 21 84 a2 c4 02 13 eb ad 33 31 1c 4d d3 83 5b 43 55 67 94 98 04 30 b2 .....>..E!.......31.M..[CUg...0.
0100 5c 87 89 e5 c6 bb d8 81 27 22 52 00 ab 15 3d 6a b1 8c 6e 0f 65 9d a2 12 e0 ff 80 d8 9a c0 41 33 \.......'"R...=j..n.e.........A3
0120 e3 cd 8c 58 01 a0 fd b3 00 64 b5 0e ef 8d 48 01 cc 36 cf bb 66 d6 9b 2d e5 80 48 15 a0 b3 13 6d ...X.....d....H..6..f..-..H....m
0140 64 18 ef b6 48 ce 01 ed 80 51 ab 75 2c 31 52 7b 81 9f 40 00 c6 6a e5 e2 a4 1c 20 09 10 89 dd 20 d...H....Q.u,1R{..@..j..........
0160 98 20 33 eb 51 c3 f1 86 d5 d6 51 d5 4b 25 eb 5d 54 75 65 1f 95 a3 b1 53 f1 22 4b 82 5e 2b 36 42 ..3.Q.....Q.K%.]Tue....S."K.^+6B
0180 e6 9e e1 3d ab 79 1e 13 ae e8 a3 26 f4 4e 0a f9 d0 a5 17 95 00 b4 95 7b 1e 04 78 6b a5 cf c9 e5 ...=.y.....&.N.........{..xk....
01a0 f2 0d 0a 2d f9 7e 69 53 f3 3f ff 91 e7 d1 1b d6 ed bb a4 a4 3e 4e a1 36 64 29 34 06 56 a9 31 20 ...-.~iS.?..........>N.6d)4.V.1.
01c0 a5 8e 44 15 f6 9b b3 02 54 3a a9 22 51 0d 85 69 9b e7 65 9a f1 bc 49 d9 87 e3 17 25 ae bb b0 17 ..D.....T:."Q..i..e...I....%....
01e0 88 17 03 e9 51 9e b8 0f 53 4a 6d 43 43 49 53 f3 07 10 fa f9 40 3e 8d a0 e9 18 c1 13 77 38 1c 9b ....Q...SJmCCIS.....@>......w8..
0200 20 ec 8b 01 f7 70 fb 9f 85 8d bb 3c 37 17 14 a9 c9 37 94 9a 86 8b 40 76 3a 88 f8 10 44 c0 f7 c5 .....p.....<7....7....@v:...D...
0220 3a 62 97 e8 7a 81 4e a7 73 33 90 ed 0a 22 3e 09 18 09 3a 1f bb 66 ec 7d 45 a1 69 f8 18 88 de 0a :b..z.N.s3...">...:..f.}E.i.....
0240 22 8d 61 56 6a 0d 99 a7 4f ff b0 45 b4 dd 20 64 fd d2 00 51 23 eb 49 c7 63 01 28 8f c6 4d 01 ca ".aVj...O..E...d...Q#.I.c.(..M..
0260 4c f8 5a 27 e5 b8 5f 5c de 18 20 3d 03 68 86 28 48 c1 f7 89 da 07 dc ea ef df 02 04 a7 f8 6e 8f L.Z'.._\...=.h.(H.............n.
0280 f1 1e 6e ed cb 7d b5 cd 29 6b 07 30 6d 7d b2 a3 26 db d0 6e 63 b7 7b 02 5f 3f 47 b6 4c 28 d5 64 ..n..}..)k.0m}..&..nc.{._?G.L(.d
02a0 b9 52 dd f8 5c d8 18 21 0b e3 7d 2d f0 ef 63 e3 d3 e6 cc ed 00 f2 c8 8f 89 56 57 6e 22 44 c8 45 .R..\..!..}-..c..........VWn"D.E
02c0 7c 0f 65 71 15 85 9d 13 04 72 ef f8 05 70 20 24 07 01 64 03 41 02 a0 96 3e d9 4b fc 34 39 8e 10 |.eq.....r...p.$..d.A...>.K.49..
02e0 9f 3b 14 88 00 d5 a9 89 a8 f6 d0 49 54 93 56 80 2a d3 92 56 6d 7b ef b8 9f 0a 24 3b 6c 80 5a 5d .;.........IT.V.*..Vm{....$;l.Z]
0300 b2 6c 20 3e 8d c9 b7 3b 65 bf d2 34 8a c1 23 43 5f 13 e1 8e 0a 47 80 da b4 3f 01 88 47 dd 61 2b .l.>...;e..4..#C_....G...?..G.a+
0320 14 45 3f c4 f0 17 af 03 a0 9b 26 67 af b1 c7 fd e4 55 e7 c9 a4 ab 2e d9 7e 9c 0c a1 bc c2 2f d0 .E?.......&g.....U......
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;
using Tango.SharedUI;

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 collection of active bar items.
        /// </summary>
        ObservableCollection<BarItem> BarItems { 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>
        /// Creates and push a new bar item from the specified framework element.
        /// </summary>
        /// <param name="element">The element.</param>
        /// <returns></returns>
        BarItem PushBarItem(FrameworkElement element);

        /// <summary>
        /// Pushes the specified bar item.
        /// </summary>
        /// <param name="barItem">The bar item.</param>
        /// <returns></returns>
        BarItem PushBarItem(BarItem barItem);

        /// <summary>
        /// Removed the specified task item from the queue.
        /// </summary>
        /// <param name="taskItem">The task item.</param>
        void PopTaskItem(TaskItem taskItem);

        /// <summary>
        /// Removed the specified bar item.
        /// </summary>
        /// <param name="barItem">The bar item.</param>
        void PopBarItem(BarItem barItem);

        /// <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>
        ///  Shows the specified view with the specified view model as it's data context.
        /// </summary>
        /// <typeparam name="VM">The type of the mm.</typeparam>
        /// <typeparam name="View">The type of the view.</typeparam>
        /// <param name="vm">The view model.</param>
        /// <param name="onAccept">The accept action.</param>
        /// <param name="onCancel">The cancel action.</param>
        void ShowModalDialog<VM, View>(VM vm, Action<VM> onAccept, Action onCancel) where View : FrameworkElement where VM : DialogViewVM;

        /// <summary>
        ///  Shows the specified view with the specified view model as it's data context.
        /// </summary>
        /// <typeparam name="VM">The type of the mm.</typeparam>
        /// <typeparam name="View">The type of the view.</typeparam>
        /// <param name="vm">The view model.</param>
        /// <param name="view">The view.</param>
        /// <param name="onAccept">The accept action.</param>
        /// <param name="onCancel">The cancel action.</param>
        void ShowModalDialog<VM, View>(VM vm, View view, 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>
        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 question message box with an error icon.
        /// </summary>
        /// <param name="message">The message.</param>
        bool ShowErrorQuestion(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);
    }
}