added TaskDialogPresenter.cs
This commit is contained in:
parent
2ef4ea0fba
commit
f3920e100d
54
PdfScribeCore/TaskDialogPresenter.cs
Normal file
54
PdfScribeCore/TaskDialogPresenter.cs
Normal file
@ -0,0 +1,54 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Windows;
|
||||
|
||||
using APICodePack = Microsoft.WindowsAPICodePack.Dialogs;
|
||||
|
||||
namespace PdfScribeCore
|
||||
{
|
||||
abstract class TaskDialogPresenter
|
||||
{
|
||||
|
||||
protected abstract APICodePack.TaskDialogStandardIcon DefaultTaskIcon { get; } // Override this to set the dialog icon you want
|
||||
|
||||
/// <summary>
|
||||
/// Pops up a simple TaskDialog box
|
||||
/// with just a Close button and
|
||||
/// the default standard dialog icon
|
||||
/// </summary>
|
||||
/// <param name="captionText">Text that goes in the window's caption</param>
|
||||
/// <param name="instructionText">Instructional text (Appears next to the error icon)</param>
|
||||
/// <param name="messageText">Smaller message detail text at bottom</param>
|
||||
public virtual void ShowSimple(String captionText,
|
||||
String instructionText,
|
||||
String messageText)
|
||||
{
|
||||
using (APICodePack.TaskDialog simpleTaskDialog = new APICodePack.TaskDialog())
|
||||
{
|
||||
simpleTaskDialog.Caption = captionText;
|
||||
simpleTaskDialog.InstructionText = instructionText;
|
||||
simpleTaskDialog.Text = messageText;
|
||||
simpleTaskDialog.Icon = this.DefaultTaskIcon;
|
||||
simpleTaskDialog.StandardButtons = APICodePack.TaskDialogStandardButtons.Close;
|
||||
simpleTaskDialog.Opened += new EventHandler(simpleTaskDialog_Opened);
|
||||
simpleTaskDialog.Show();
|
||||
}
|
||||
}
|
||||
|
||||
private void simpleTaskDialog_Opened(object sender, EventArgs e)
|
||||
{
|
||||
// Really fucking annoying -
|
||||
// There's a bug somewhere in the API Code Pack that
|
||||
// causes the icon not to show
|
||||
// unless you set it on the Opened event
|
||||
// See: http://stackoverflow.com/questions/15645592/taskdialogstandardicon-not-working-on-task-dialog
|
||||
// One of these days I'll try to find and fix it (honestly I hope
|
||||
// someone else fixes first - also why isn't the API Code pack on codeplex
|
||||
// or github so people can push patches), but until then...
|
||||
((APICodePack.TaskDialog)sender).Icon = this.DefaultTaskIcon;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user