private void InitializeAction(MessageBoxAction action) { switch (action) { case MessageBoxAction.Ok: CancelButton.Visibility = Visibility.Collapsed; OkButton.Visibility = Visibility.Visible; OkButton.Focus(); YesButton.Visibility = Visibility.Collapsed; NoButton.Visibility = Visibility.Collapsed; break; case MessageBoxAction.OkCancel: CancelButton.Visibility = Visibility.Visible; CancelButton.Focus(); OkButton.Visibility = Visibility.Visible; YesButton.Visibility = Visibility.Collapsed; NoButton.Visibility = Visibility.Collapsed; break; case MessageBoxAction.YesNo: CancelButton.Visibility = Visibility.Collapsed; OkButton.Visibility = Visibility.Collapsed; YesButton.Visibility = Visibility.Visible; NoButton.Visibility = Visibility.Visible; NoButton.Focus(); break; } }
public CommunicationResult ShowMessage(string message, string title, MessageBoxAction action, MessageBoxIcon icon, Guid requestId) { try { var response = Send(new MessageBoxRequestMessage(action, icon, message, requestId, title)); var success = IsAcknowledged(response); if (success) { Logger.Debug("Client acknowledged message box request."); } else { Logger.Error($"Client did not acknowledge message box request! Received: {ToString(response)}."); } return(new CommunicationResult(success)); } catch (Exception e) { Logger.Error($"Failed to perform '{nameof(ShowMessage)}'", e); return(new CommunicationResult(false)); } }
//@@hack: workaround for main view code behind /// <summary> /// Determines whether this instance can close. This is meant to be called by the view /// code behind when testing if a document can close (OnDocumentClosing). /// </summary> /// <returns>true if can close</returns> public bool CanClose() { if (!IsDirty()) { return(true); } MessageBoxAction prompt = new MessageBoxAction { Caption = App.APP_NAME, Text = LocalizedStrings.Format(StringResources.DiscardDocumentChangesPrompt, DisplayName), Button = MessageBoxButton.YesNo, Image = MessageBoxImage.Question }; bool bResult = true; prompt.Completed += (sender, e) => { bResult = prompt.Result == MessageBoxResult.Yes; }; prompt.Execute(null); return(bResult); }
/// <summary> /// Called to check whether or not this instance can close. /// </summary> /// <param name="callback">The implementor calls this action with the result /// of the close check.</param> public override void CanClose(Action <bool> callback) { // if forcing (@@hack) or not dirty it's OK to close if ((_bIsForcedClosing) || (!IsDirty())) { callback(true); return; } //eif // else prompt user MessageBoxAction prompt = new MessageBoxAction { Caption = App.APP_NAME, Text = LocalizedStrings.Format(StringResources.DiscardDocumentChangesPrompt, DisplayName), Button = MessageBoxButton.YesNo, Image = MessageBoxImage.Question }; prompt.Completed += (sender, e) => { callback(prompt.Result == MessageBoxResult.Yes); }; prompt.Execute(null); }
public MessageBoxRequestMessage(MessageBoxAction action, MessageBoxIcon icon, string message, Guid requestId, string title) { Action = action; Icon = icon; Message = message; RequestId = requestId; Title = title; }
private MessageBoxButton ToButton(MessageBoxAction action) { switch (action) { case MessageBoxAction.YesNo: return(MessageBoxButton.YesNo); default: return(MessageBoxButton.OK); } }
private MessageBoxResult ResultFor(MessageBoxAction action) { switch (action) { case MessageBoxAction.Confirm: return(DialogResult == true ? MessageBoxResult.Ok : MessageBoxResult.None); case MessageBoxAction.YesNo: return(DialogResult == true ? MessageBoxResult.Yes : MessageBoxResult.No); default: return(MessageBoxResult.None); } }
public MessageBoxResult Show(string message, string title, MessageBoxAction action = MessageBoxAction.Confirm, MessageBoxIcon icon = MessageBoxIcon.Information, IWindow parent = null) { var result = default(MessageBoxResult); if (parent is Window window) { result = window.Dispatcher.Invoke(() => new MessageBoxDialog(text).Show(message, title, action, icon, window)); } else { result = new MessageBoxDialog(text).Show(message, title, action, icon); } return(result); }
public MessageBoxResult Show(string message, string title, MessageBoxAction action = MessageBoxAction.Ok, MessageBoxIcon icon = MessageBoxIcon.Information, IWindow parent = null) { var result = default(System.Windows.MessageBoxResult); if (parent is Window window) { result = window.Dispatcher.Invoke(() => MessageBox.Show(window, message, title, ToButton(action), ToImage(icon))); } else { result = MessageBox.Show(message, title, ToButton(action), ToImage(icon)); } return(ToResult(result)); }
public MessageBoxResult Show(string message, string title, MessageBoxAction action, MessageBoxIcon icon, Window parent = null) { Message.Text = message; Title = title; if (parent is Window) { Owner = parent as Window; } InitializeBounds(); InitializeAction(action); InitializeIcon(icon); ShowDialog(); return(ResultFor(action)); }
private MessageBoxResult ShowMessageBoxViaClient(string message, string title, MessageBoxAction action, MessageBoxIcon icon) { var requestId = Guid.NewGuid(); var result = MessageBoxResult.None; var response = default(MessageBoxReplyEventArgs); var responseEvent = new AutoResetEvent(false); var responseEventHandler = new CommunicationEventHandler <MessageBoxReplyEventArgs>((args) => { if (args.RequestId == requestId) { response = args; responseEvent.Set(); } }); runtimeHost.MessageBoxReplyReceived += responseEventHandler; var communication = sessionContext.ClientProxy.ShowMessage(message, title, (int)action, (int)icon, requestId); if (communication.Success) { responseEvent.WaitOne(); result = (MessageBoxResult)response.Result; } runtimeHost.MessageBoxReplyReceived -= responseEventHandler; return(result); }
public MessageBoxResult Show(TextKey message, TextKey title, MessageBoxAction action = MessageBoxAction.Confirm, MessageBoxIcon icon = MessageBoxIcon.Information, IWindow parent = null) { return(Show(text.Get(message), text.Get(title), action, icon, parent)); }
public override bool Convert(MessageBoxButtons value, MessageBoxEvent parameter) { return(MessageBoxAction.HasEvent(value, parameter)); }
public static ProjectFile ToProjectFile(ProjectModel project) { ProjectFile file = new ProjectFile(); file.Stub.Type = project.Stub.Type; file.Stub.IconPath = ConvertAbsoluteToRelativePath(project.Stub.IconPath.ToNullIfEmpty()); file.Stub.Padding = project.Stub.Padding; file.Startup.Melt = project.Startup.Melt; file.VersionInfo.FileDescription = project.VersionInfo.FileDescription.ToNullIfEmptyOrWhiteSpace(); file.VersionInfo.ProductName = project.VersionInfo.ProductName.ToNullIfEmptyOrWhiteSpace(); file.VersionInfo.FileVersion = project.VersionInfo.FileVersion1 != 0 || project.VersionInfo.FileVersion2 != 0 || project.VersionInfo.FileVersion3 != 0 || project.VersionInfo.FileVersion4 != 0 ? project.VersionInfo.FileVersion1 + "." + project.VersionInfo.FileVersion2 + "." + project.VersionInfo.FileVersion3 + "." + project.VersionInfo.FileVersion4 : null; file.VersionInfo.ProductVersion = project.VersionInfo.ProductVersion.ToNullIfEmptyOrWhiteSpace(); file.VersionInfo.Copyright = project.VersionInfo.Copyright.ToNullIfEmptyOrWhiteSpace(); file.VersionInfo.OriginalFilename = project.VersionInfo.OriginalFilename.ToNullIfEmptyOrWhiteSpace(); if (project.Manifest.UseTemplate) { file.Manifest.Template = project.Manifest.Template; } else if (project.Manifest.UseFile) { file.Manifest.Path = ConvertAbsoluteToRelativePath(project.Manifest.Path.ToNullIfEmpty()); } foreach (ProjectItemModel item in project.Items) { ProjectSource source; if (item is ProjectMessageBoxItemModel) { source = null; } else { switch (item.Source) { case ProjectItemSource.Embedded: file.AddSource(source = new EmbeddedSource { Path = ConvertAbsoluteToRelativePath(item.SourceEmbeddedPath.ToNullIfEmpty()), Compress = item.SourceEmbeddedCompress, EofData = item.SourceEmbeddedEofData }); break; case ProjectItemSource.Download: file.AddSource(source = new DownloadSource { Url = item.SourceDownloadUrl }); break; default: throw new InvalidEnumArgumentException(); } source.Id = item.SourceId; } if (item is ProjectRunPEItemModel) { file.AddAction(new RunPEAction { Source = source }); } else if (item is ProjectInvokeItemModel) { file.AddAction(new InvokeAction { Source = source }); } else if (item is ProjectDropItemModel dropItem) { file.AddAction(new DropAction { Source = source, Location = dropItem.Location, FileName = dropItem.FileName, FileAttributeHidden = dropItem.FileAttributeHidden, FileAttributeSystem = dropItem.FileAttributeSystem, ExecuteVerb = dropItem.ExecuteVerb }); } else if (item is ProjectMessageBoxItemModel messageBoxItem) { file.AddAction(new MessageBoxAction { Title = messageBoxItem.Title, Text = messageBoxItem.Text, Icon = messageBoxItem.Icon, Buttons = messageBoxItem.Buttons, OnOk = MessageBoxAction.HasEvent(messageBoxItem.Buttons, MessageBoxEvent.Ok) ? messageBoxItem.OnOk : ActionEvent.None, OnCancel = MessageBoxAction.HasEvent(messageBoxItem.Buttons, MessageBoxEvent.Cancel) ? messageBoxItem.OnCancel : ActionEvent.None, OnYes = MessageBoxAction.HasEvent(messageBoxItem.Buttons, MessageBoxEvent.Yes) ? messageBoxItem.OnYes : ActionEvent.None, OnNo = MessageBoxAction.HasEvent(messageBoxItem.Buttons, MessageBoxEvent.No) ? messageBoxItem.OnNo : ActionEvent.None, OnAbort = MessageBoxAction.HasEvent(messageBoxItem.Buttons, MessageBoxEvent.Abort) ? messageBoxItem.OnAbort : ActionEvent.None, OnRetry = MessageBoxAction.HasEvent(messageBoxItem.Buttons, MessageBoxEvent.Retry) ? messageBoxItem.OnRetry : ActionEvent.None, OnIgnore = MessageBoxAction.HasEvent(messageBoxItem.Buttons, MessageBoxEvent.Ignore) ? messageBoxItem.OnIgnore : ActionEvent.None }); } else { throw new InvalidOperationException(); } } return(file); string ConvertAbsoluteToRelativePath(string absolutePath) { return(project.ProjectPath == null ? absolutePath : RelativePath.AbsoluteToRelativePath(Path.GetDirectoryName(project.ProjectPath), absolutePath)); } }