/// <summary> /// Called when the Otter.Editor main sceneView loads. Sets up /// the docking views, loads previous data, etc. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void OtterEditorMainForm_Load(object sender, EventArgs e) { mOnlineHelpToolStripMenuItem.ToolTipText = Otter.Editor.Properties.Settings.Default.HelpURL; SetupPlugins(); Otter.Interface.Graphics.Instance = new Otter.Interface.Graphics(this.Handle.ToInt32()); Otter.Interface.Graphics.Instance.OnTextureLoaded += new Otter.Interface.Graphics.TextureEventHandler(Graphics_OnTextureLoaded); Otter.Interface.Graphics.Instance.OnTextureUnloaded += new Otter.Interface.Graphics.TextureEventHandler(Graphics_OnTextureUnloaded); bool bLoaded = false; try { if (!File.Exists(mLayoutPath)) { string name = "Otter.Editor.res.default_layout.xml"; Stream stream = null; try { Assembly assembly = Assembly.GetExecutingAssembly(); stream = assembly.GetManifestResourceStream(name); mDockPanel.LoadFromXml(stream, mDeserializeDockContent); bLoaded = true; } catch(Exception ex) { System.Console.WriteLine("Failed to load resource " + name + ". Reason: " + ex.Message); } finally { if (stream != null) stream.Close(); } } else if (File.Exists(mLayoutPath)) { mDockPanel.LoadFromXml(mLayoutPath, mDeserializeDockContent); bLoaded = true; } } catch(Exception) { Globals.ControlsView.Hide(); Globals.HistoryView.Hide(); Globals.ProjectView.Hide(); Globals.SceneHierarchyView.Hide(); Globals.PropertiesView.Hide(); Globals.TimelineView.Hide(); } if(!bLoaded) { // Add the different forms to the panel. Globals.ControlsView.Show(mDockPanel, DockState.DockRightAutoHide); Globals.HistoryView.Show(mDockPanel, DockState.DockRightAutoHide); Globals.ProjectView.Show(mDockPanel, DockState.DockLeft); Globals.SceneHierarchyView.Show(Globals.ProjectView.Pane, DockAlignment.Bottom, 0.5f); Globals.PropertiesView.Show(mDockPanel, DockState.DockRight); Globals.TimelineView.Show(mDockPanel, DockState.DockBottom); Globals.SceneHierarchyView.Show(); } Globals.PropertiesView.DockStateChanged += new EventHandler(DockContent_DockStateChanged); Globals.ProjectView.DockStateChanged += new EventHandler(DockContent_DockStateChanged); Globals.TimelineView.DockStateChanged += new EventHandler(DockContent_DockStateChanged); Globals.ControlsView.DockStateChanged += new EventHandler(DockContent_DockStateChanged); Globals.SceneHierarchyView.DockStateChanged += new EventHandler(DockContent_DockStateChanged); Globals.HistoryView.DockStateChanged += new EventHandler(DockContent_DockStateChanged); // Set up the dock states. UpdateViewMenu(); // Now add the checked-event handler projectViewToolStripMenuItem.CheckedChanged += new System.EventHandler(this.viewToolStripMenuItem_CheckedChanged); propertiesViewToolStripMenuItem.CheckedChanged += new System.EventHandler(this.viewToolStripMenuItem_CheckedChanged); timelineViewToolStripMenuItem.CheckedChanged += new System.EventHandler(this.viewToolStripMenuItem_CheckedChanged); controlsViewToolStripMenuItem.CheckedChanged += new System.EventHandler(this.viewToolStripMenuItem_CheckedChanged); sceneHierarchyViewToolStripMenuItem.CheckedChanged += new EventHandler(this.viewToolStripMenuItem_CheckedChanged); historyViewToolStripMenuItem.CheckedChanged += new EventHandler(this.viewToolStripMenuItem_CheckedChanged); // ControlsView events Globals.ControlsView.OnControlSelectionChanged += new ControlsView.ControlsViewDelegate(ControlsView_OnControlSelectionChanged); // PropertiesView Events Globals.PropertiesView.PropertyValueChanged += new PropertyValueChangedEventHandler(PropertiesView_PropertyValueChanged); // Project View Events Globals.ProjectView.OnCreateEntry += new ProjectView.EntryEventHandler(ProjectView_OnCreateEntry); Globals.ProjectView.OnDeleteEntry += new ProjectView.EntryEventHandler(ProjectView_OnDeleteEntry); Globals.ProjectView.OnRenameEntry += new ProjectView.EntryEventHandler(ProjectView_OnRenameEntry); Globals.ProjectView.OnOpenEntry += new ProjectView.EntryEventHandler(ProjectView_OnOpenEntry); Globals.ProjectView.OnClosingEntry += new ProjectView.EntryActionEventHandler(ProjectView_OnClosingEntry); Globals.ProjectView.OnCloseEntry += new ProjectView.EntryEventHandler(ProjectView_OnCloseEntry); Globals.ProjectView.OnExportEntry += new ProjectView.EntryEventHandler(ProjectView_OnExportEntry); // Scene Hierarchy View Events Globals.SceneHierarchyView.SelectionChanged += new SceneHierarchyView.HierarchyEventHandler(SceneHierarchyView_SelectionChanged); Globals.SceneHierarchyView.ViewChanged += new SceneHierarchyView.ViewEventHandler(SceneHierarchyView_ViewChanged); Globals.SceneHierarchyView.SelectedViewRenamed += new SceneHierarchyView.ViewEventHandler(SceneHierarchyView_SelectedViewRenamed); Globals.SceneHierarchyView.SelectedControlRenamed += new SceneHierarchyView.ControlEventHandler(SceneHierarchyView_SelectedControlRenamed); // Timeline View Events Globals.TimelineView.AnimationUpdated += new TimelineView.TimelineViewEventHandler(TimelineView_AnimationUpdated); Globals.TimelineView.SelectedControlChanged += new TimelineView.TimelineViewEventHandler(TimelineView_SelectedControlChanged); Globals.TimelineView.FrameSelectionChanged += new TimelineView.TimelineViewEventHandler(TimelineView_FrameSelectionChanged); mDockPanel.ActiveDocumentChanged += new EventHandler(mDockPanel_ActiveDocumentChanged); mDockPanel.ContentRemoved += new EventHandler<DockContentEventArgs>(mDockPanel_ContentRemoved); PopulateRecentItemsMenu(); if (mDefaultProject != "") { if (OpenProject(mDefaultProject)) return; } if (Otter.Editor.Properties.Settings.Default.ShowWelcome) { mWelcomeForm = new WelcomeForm(); mWelcomeForm.OnLoadProject += new WelcomeForm.WelcomeActionDelegate(welcomeForm_OnLoadProject); mWelcomeForm.OnLoadRecentProject += new WelcomeForm.LoadRecentProjectDelegate(welcomeForm_OnLoadRecentProject); mWelcomeForm.OnNewProject += new WelcomeForm.WelcomeActionDelegate(welcomeForm_OnNewProject); mWelcomeForm.Show(this); } }
/// <summary> /// Closes the welcome form if opened. /// </summary> private void CloseWelcomeForm() { if (mWelcomeForm != null) { mWelcomeForm.Close(); mWelcomeForm = null; } }