public MainForm() { InitializeComponent(); ApplicationSettings.Init(); ApplicationSettings.SkinControl(this); // Editors that are forms ApplicationSettingsEditor = new SBRenderSettingsEditor(); MaterialEditor = new GenericMaterialEditor(); projectTree = new SBProjectTree(); projectTree.Dock = DockStyle.Fill; LeftPane = new SBPopoutPanel(PopoutSide.Left, ">", "<"); LeftPane.Dock = DockStyle.Left; LeftPane.Contents.Add(projectTree); BottomPane = new SBPopoutPanel(PopoutSide.Bottom, "Open Console", "Close Console"); BottomPane.Dock = DockStyle.Bottom; BottomPane.Contents.Add(SBConsole.Console); MenuBar = new SBMenuBar(); { var ts = new SBToolStripMenuItem("File"); { var open = new SBToolStripMenuItem("Open"); { var folder = new SBToolStripMenuItem("Folder"); folder.Click += projectTree.OpenFolder; folder.ShortcutKeys = Keys.O | Keys.Control | Keys.Shift | Keys.Alt; open.DropDownItems.Add(folder); var scene = new SBToolStripMenuItem("Scene"); scene.Click += OpenFile; scene.ShortcutKeys = Keys.O | Keys.Control; open.DropDownItems.Add(scene); } ts.DropDownItems.Add(open); } { var open = new SBToolStripMenuItem("Import"); { var scene = new SBToolStripMenuItem("Model"); scene.Click += ImportToScene; open.DropDownItems.Add(scene); var animimport = new SBToolStripMenuItem("Animation Into Scene"); animimport.Click += ImportAnimationToScene; open.DropDownItems.Add(animimport); var skeletonimport = new SBToolStripMenuItem("Skeleton To Model"); skeletonimport.Click += ImportSkeletonToScene; open.DropDownItems.Add(skeletonimport); } ts.DropDownItems.Add(open); } { var open = new SBToolStripMenuItem("Export"); { var folder = new SBToolStripMenuItem("Scene to File(s)"); folder.Click += SaveScene; open.DropDownItems.Add(folder); var animexport = new SBToolStripMenuItem("Animation to File"); animexport.Click += ExportAnimationToFile; open.DropDownItems.Add(animexport); var skeletonexport = new SBToolStripMenuItem("Skeleton to File"); skeletonexport.Click += ExportSkeletonToFile; open.DropDownItems.Add(skeletonexport); } ts.DropDownItems.Add(open); } { var closeWkspc = new SBToolStripMenuItem("Clear Workspace"); closeWkspc.Click += CloseWorkspace; ts.DropDownItems.Add(closeWkspc); } MenuBar.Items.Add(ts); var view = new SBToolStripMenuItem("View"); { var rsettings = new SBToolStripMenuItem("Application Settings"); rsettings.Click += OpenRenderSettings; view.DropDownItems.Add(rsettings); var meditor = new SBToolStripMenuItem("Material Editor"); meditor.Click += OpenMaterialEditor; view.DropDownItems.Add(meditor); } MenuBar.Items.Add(view); var viewport = new SBToolStripMenuItem("Camera"); { var resetCamera = new SBToolStripMenuItem("Reset Camera Position"); resetCamera.Click += Viewport_ResetCameraPosition; viewport.DropDownItems.Add(resetCamera); var rsettings = new SBToolStripMenuItem("Render Viewport to File"); rsettings.Click += ExportRenderToFile; viewport.DropDownItems.Add(rsettings); } MenuBar.Items.Add(viewport); } MenuBar.Dock = DockStyle.Top; viewportPanel = new SBViewportPanel(); viewportPanel.Dock = DockStyle.Fill; Controls.Add(viewportPanel); Controls.Add(BottomPane); Controls.Add(LeftPane); Controls.Add(MenuBar); FormClosing += MainForm_FormClosing; InitializeImportTypes(); if (ApplicationSettings.LastOpenedPath != "") { projectTree.SetRoot(ApplicationSettings.LastOpenedPath); } OpenTKResources.Init(); }
public MainForm() { InitializeComponent(); IsMdiContainer = true; PluginManager.Init(); OpenTKResources.Init(); _nodePropertyViewer = new PropertyView(); _nodePropertyViewer.Dock = DockStyle.Fill; _nodePropertyViewer.Show(dockPanel); //dockPanel.ShowDocumentIcon = true; dockPanel.ActiveContentChanged += (sender, args) => { if (dockPanel.ActiveContent != null) { LastActiveContent = dockPanel.ActiveContent; } }; Viewport = new CommonViewport(); Viewport.Dock = DockStyle.Fill; Viewport.Show(dockPanel); //_ScriptEditor = new SubactionEditor(); //_ScriptEditor.Dock = DockStyle.Fill; ImageList myImageList = new ImageList(); myImageList.ImageSize = new System.Drawing.Size(24, 24); myImageList.Images.Add("unknown", Properties.Resources.ico_unknown); myImageList.Images.Add("known", Properties.Resources.ico_known); myImageList.Images.Add("folder", Properties.Resources.ico_folder); myImageList.Images.Add("group", Properties.Resources.ico_group); myImageList.Images.Add("table", Properties.Resources.ico_table); myImageList.Images.Add("jobj", Properties.Resources.ico_jobj); myImageList.Images.Add("dobj", Properties.Resources.ico_dobj); myImageList.Images.Add("pobj", Properties.Resources.ico_pobj); myImageList.Images.Add("mobj", Properties.Resources.ico_mobj); myImageList.Images.Add("tobj", Properties.Resources.ico_tobj); myImageList.Images.Add("aobj", Properties.Resources.ico_aobj); myImageList.Images.Add("cobj", Properties.Resources.ico_cobj); myImageList.Images.Add("fobj", Properties.Resources.ico_fobj); myImageList.Images.Add("iobj", Properties.Resources.ico_iobj); myImageList.Images.Add("lobj", Properties.Resources.ico_lobj); myImageList.Images.Add("sobj", Properties.Resources.ico_sobj); myImageList.Images.Add("coll", Properties.Resources.ico_coll); myImageList.Images.Add("anim_texture", Properties.Resources.ico_anim_texture); myImageList.Images.Add("anim_material", Properties.Resources.ico_anim_material); myImageList.Images.Add("anim_joint", Properties.Resources.ico_anim_joint); myImageList.Images.Add("anim_shape", Properties.Resources.ico_anim_shape); myImageList.Images.Add("kabii", Properties.Resources.ico_kabii); myImageList.Images.Add("fuma", Properties.Resources.ico_fuma); treeView1.ImageList = myImageList; bool dc = false; treeView1.MouseDown += (sender, args) => { dc = args.Clicks > 1; }; treeView1.BeforeExpand += (sender, args) => { args.Cancel = dc; if (args.Node is DataNode node && Instance.IsOpened(node) && !dc) { MessageBox.Show("Error: This node is currently open in an editor\nPlease close it first to expand"); args.Cancel = true; } dc = false; }; treeView1.AfterExpand += (sender, args) => { args.Node.Nodes.Clear(); treeView1.BeginUpdate(); if (args.Node is DataNode node) { node.ExpandData(); } treeView1.EndUpdate(); }; treeView1.AfterCollapse += (sender, args) => { treeView1.BeginUpdate(); args.Node.Nodes.Clear(); args.Node.Nodes.Add(new TreeNode()); treeView1.EndUpdate(); }; treeView1.AfterSelect += (sender, args) => { SelectNode <HSDAccessor>(); }; treeView1.NodeMouseClick += (sender, args) => { treeView1.SelectedNode = treeView1.GetNodeAt(args.Location); if (args.Button == MouseButtons.Right && args.Node != null && args.Node is DataNode node) { PluginManager.GetContextMenuFromType(node.Accessor.GetType()).Show(this, args.Location); } try { var kb = OpenTK.Input.Keyboard.GetState(); if (kb.IsKeyDown(OpenTK.Input.Key.ShiftLeft) || kb.IsKeyDown(OpenTK.Input.Key.ShiftRight)) { treeView1.BeginUpdate(); treeView1.SelectedNode.ExpandAll(); treeView1.EndUpdate(); } } catch (Exception) { } }; }