Esempio n. 1
0
        /// <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);
        }
Esempio n. 2
0
        /// <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);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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");
 }