private void OnMainWindowDrop(object sender, DragEventArgs e)
        {
            if (!e.Data.GetDataPresent(DataFormats.FileDrop) && !e.Data.GetDataPresent(DataFormats.UnicodeText))
            {
                return;
            }

            Focus();
            var inputFile = e.GetInputFiles().FirstOrDefault(x => x.EndsWith(@".csv", StringComparison.OrdinalIgnoreCase) ||
                                                             x.EndsWith(@".lut", StringComparison.OrdinalIgnoreCase) ||
                                                             string.Equals(Path.GetFileName(x), @"LUTLibrary.dll", StringComparison.OrdinalIgnoreCase));

            if (inputFile != null)
            {
                e.Handled = true;

                if (!string.Equals(Path.GetFileName(inputFile), @"LUTLibrary.dll", StringComparison.OrdinalIgnoreCase))
                {
                    Model.Import(inputFile);
                }
                else
                {
                    LutLibraryWrapper.Install(inputFile);
                }
            }
        }
        public AcSettingsControls_Wheel_ForceFeedback()
        {
            try {
                _wrapper = LutLibraryWrapper.Initialize();
            } catch (Exception) {
                // ignored
            }

            var mainWindow = Application.Current.MainWindow;

            if (mainWindow != null)
            {
                mainWindow.Drop += OnMainWindowDrop;
            }

            DataContext = new ViewModel(_wrapper);
            InitializeComponent();

            if (_wrapper == null)
            {
                ImportCsvButton.Visibility = Visibility.Collapsed;
            }
            else
            {
                LutLibraryMessage.Visibility = Visibility.Collapsed;
            }

            this.OnActualUnload(() => {
                if (mainWindow != null)
                {
                    mainWindow.Drop -= OnMainWindowDrop;
                }
            });

            this.AddWidthCondition(900).Add(v => Grid.Columns = v ? 2 : 1);
        }
Exemplo n.º 3
0
        public AcSettingsControls_Wheel_ForceFeedback()
        {
            try {
                _wrapper = LutLibraryWrapper.Initialize();
            } catch (Exception) {
                // ignored
            }

            var mainWindow = Application.Current.MainWindow;

            if (mainWindow != null)
            {
                mainWindow.Drop += OnMainWindowDrop;
            }

            DataContext = new ViewModel(_wrapper);
            InitializeComponent();

            if (_wrapper == null)
            {
                ImportCsvButton.Visibility = Visibility.Collapsed;
            }
            else
            {
                LutLibraryMessage.Visibility = Visibility.Collapsed;
            }

            this.OnActualUnload(() => {
                Logging.Here();
                DisposeHelper.Dispose(ref _wrapper);
                if (mainWindow != null)
                {
                    mainWindow.Drop -= OnMainWindowDrop;
                }
            });
        }
 internal ViewModel(LutLibraryWrapper wrapper)
 {
     _wrapper = wrapper;
 }