Exemple #1
0
        public frmCR2WDocument(CR2WDocumentViewModel documentViewModel)
        {
            vm = documentViewModel;
            vm.ClosingRequest  += (sender, e) => this.Close();
            vm.ActivateRequest += (sender, e) => this.Activate();
            vm.PropertyChanged += ViewModel_PropertyChanged;

            InitializeComponent();
            ApplyCustomTheme();

            chunkList = new frmChunkList(vm)
            {
                DockAreas = DockAreas.Document
            };
            propertyWindow = new frmChunkProperties(vm);

            backgroundWorker1.WorkerReportsProgress      = true;
            backgroundWorker1.WorkerSupportsCancellation = true;
            backgroundWorker1.DoWork             += backgroundWorker1_DoWork;
            backgroundWorker1.ProgressChanged    += backgroundWorker1_ProgressChanged;
            backgroundWorker1.RunWorkerCompleted += backgroundWorker1_RunWorkerCompleted;

            m_deserializeDockContent = new DeserializeDockContent(GetContentFromPersistString);

            docLoggerService = new LoggerService();
            docLoggerService.PropertyChanged += LoggerUpdated;
            docLoggerService.OnStringLogged  += (sender, e) => MainController.LogString(e.Message, e.Logtype);
        }
        public frmCR2WDocument()
        {
            InitializeComponent();

            try
            {
                dockPanel.LoadFromXml(
                    Path.Combine(Path.GetDirectoryName(Configuration.ConfigurationPath), "cr2wdocument_layout.xml"),
                    DeserializeDockContent);
            }
            catch { }
            ApplyCustomTheme();

            chunkList = new frmChunkList
            {
                File      = File,
                DockAreas = DockAreas.Document
            };
            chunkList.Show(dockPanel, DockState.Document);
            chunkList.OnSelectChunk += frmCR2WDocument_OnSelectChunk;
            propertyWindow           = new frmChunkProperties();
            propertyWindow.Show(dockPanel, DockState.DockBottom);
            propertyWindow.OnItemsChanged += PropertyWindow_OnItemsChanged;

            chunkList.Activate();
        }
Exemple #3
0
        private void ViewModel_PropertyChanged(object sender, PropertyChangedEventArgs e)
        {
            switch (e.PropertyName)
            {
            case nameof(vm.File):
                chunkList.UpdateList();
                break;

            case nameof(vm.SelectedChunks):
                if (propertyWindow == null || propertyWindow.IsDisposed)
                {
                    propertyWindow = new frmChunkProperties(vm);
                    propertyWindow.Show(FormPanel, DockState.DockRight);
                }

                if (vm.SelectedChunks.Count > 0)
                {
                    if (vm.SelectedChunks.First().data is CBitmapTexture xbm)
                    {
                        if (ImageViewer == null || ImageViewer.IsDisposed)
                        {
                            ImageViewer = new frmImagePreview();
                            ImageViewer.Show(FormPanel, DockState.Document);
                        }

                        ImageViewer.SetImage(vm.SelectedChunks.First());
                    }
                }

                break;
            }
        }
        public void frmCR2WDocument_OnSelectChunk(object sender, SelectChunkArgs e)
        {
            if (propertyWindow == null || propertyWindow.IsDisposed)
            {
                propertyWindow = new frmChunkProperties();
                propertyWindow.Show(dockPanel, DockState.DockBottom);
            }

            propertyWindow.Chunk = e.Chunk;
        }