/// <inheritdoc /> public override void Execute(object parameter) { #if WIN var mouseEventArgs = (System.Windows.Input.MouseEventArgs)parameter; var dragSource = mouseEventArgs.Source as System.Windows.Controls.ItemsControl; if (dragSource != null) { dragSource.ReleaseMouseCapture(); } #elif MAC ErrorReporting.ReportNotImplementedError("MultiSelectDragStartCommand.Execute"); #endif // WIN base.Execute(parameter); }
/// <summary> /// Shows a dialog to select a support file for the program. /// </summary> /// <param name="program">The program for which a support file is being selected.</param> /// <param name="kind">The kind of support file to browse for.</param> /// <returns>The selected support file.</returns> internal static string BrowseForSupportFile(ProgramViewModel program, ProgramFileKind kind) { string filter = null; string prompt = null; switch (kind) { case ProgramFileKind.ManualText: filter = RomListViewModel.SelectManualFilter; prompt = string.Format(System.Globalization.CultureInfo.CurrentCulture, RomListViewModel.SelectManualPromptFormat, program.ProgramDescription.Name); break; case ProgramFileKind.SaveData: filter = RomListViewModel.SelectJlpSaveDataFilter; prompt = string.Format(System.Globalization.CultureInfo.CurrentCulture, RomListViewModel.SelectJlpSavePromptFormat, program.ProgramDescription.Name); break; default: ErrorReporting.ReportNotImplementedError("ProgramViewModel.BrowseForSupportFile"); break; } string supportFilePath = null; var fileBrowser = FileDialogHelpers.Create(); fileBrowser.IsFolderBrowser = false; fileBrowser.AddFilter(filter, kind.FileExtensions()); fileBrowser.AddFilter(FileDialogHelpers.AllFilesFilter, new string[] { ".*" }); fileBrowser.Title = prompt; fileBrowser.EnsureFileExists = true; fileBrowser.EnsurePathExists = true; fileBrowser.Multiselect = false; var result = fileBrowser.ShowDialog(); if (result == FileBrowserDialogResult.Ok) { supportFilePath = fileBrowser.FileNames.First(); } return(supportFilePath); }
private static bool CanDragStart(object parameter) { var canStartDrag = false; #if WIN var mouseEventArgs = (System.Windows.Input.MouseEventArgs)parameter; var dragSource = mouseEventArgs.Source as System.Windows.Controls.ItemsControl; if ((dragSource != null) && dragSource.IsMouseCaptured) { if (dragSource is System.Windows.Controls.ListView) { var items = ((System.Windows.Controls.ListView)dragSource).SelectedItems; canStartDrag = (items != null) && (items.Count > 0); } else if (dragSource is System.Windows.Controls.TreeView) { } } #elif MAC ErrorReporting.ReportNotImplementedError("MultiSelectDragStartCommand.CanDragStart"); #endif // WIN return(canStartDrag); }
private void DropItems(object dragEventArgs) { #if WIN var dragDropArgs = dragEventArgs as System.Windows.DragEventArgs; var dropData = dragDropArgs.Data; if ((dropData != null) && AcceptDragData(dropData)) { var menuLayout = dropData.GetData(MenuLayoutViewModel.DragMenuLayoutDataFormat) as MenuLayoutViewModel; if (menuLayout == null) { menuLayout = this as MenuLayoutViewModel; } if (menuLayout != null) { menuLayout.StartItemsUpdate(); } var droppedItem = dropData.GetData(MenuLayoutViewModel.DragDataFormat) as IFile; if (droppedItem != null) { if (droppedItem.Parent != null) { var selfAsFileContainer = Model as IFileContainer; if (selfAsFileContainer != null) { if (!droppedItem.Parent.MoveChildToNewParent(droppedItem, selfAsFileContainer)) { throw new System.InvalidOperationException("failed to move"); } //if (!selfAsFileContainer.AddChild(droppedItem)) //{ // // we're moving to the bottom, so remove and re-add // selfAsFileContainer.RemoveChild(droppedItem); // selfAsFileContainer.AddChild(droppedItem); //} } else { // if an item is dropped on a non-file, insert before the drop target item. var insertLocation = Parent.IndexOf(Model); Parent.Insert(insertLocation, droppedItem); } } } else { var items = dropData.GetData(ProgramDescriptionViewModel.DragDataFormat) as IEnumerable <ProgramDescription>; if ((items != null) && items.Any()) { IFileContainer dropTarget = Model as IFileContainer; int insertIndex = -1; if (dropTarget == null) { dropTarget = Parent; insertIndex = dropTarget.IndexOf(Model); } AddItems(menuLayout, dropTarget, items, insertIndex); } } if (menuLayout != null) { menuLayout.FinishItemsUpdate(true); } CommandManager.InvalidateRequerySuggested(); } #elif MAC ErrorReporting.ReportNotImplementedError("FileNodeFileModel.DropItems"); #endif // WIN }
private void MainWindowClosing(object sender, System.EventArgs e) { ErrorReporting.ReportNotImplementedError("ProgressIndicatorViewModel.MainWindowClosing"); }