Esempio n. 1
0
        private void CreateUI()
        {
            _Frame = new EditorFrame("Frame", this);

            _Frame.Grid.ColumnDefinitions.Add(224, Skill.Framework.UI.GridUnitType.Pixel); // _PnlLeft
            _Frame.Grid.ColumnDefinitions[0].MinWidth = 224;
            _Frame.Grid.ColumnDefinitions.Add(2, Skill.Framework.UI.GridUnitType.Pixel);   // _GridSplitter
            _Frame.Grid.ColumnDefinitions.Add(5, Skill.Framework.UI.GridUnitType.Star);    // _CurveEditor

            _PnlLeft = new Skill.Framework.UI.Grid()
            {
                Row = 0, Column = 0
            };
            _PnlLeft.RowDefinitions.Add(24, Skill.Framework.UI.GridUnitType.Pixel); // _ObjectField
            _PnlLeft.RowDefinitions.Add(1, Skill.Framework.UI.GridUnitType.Star);   // _CurveTreeView
            _PnlLeft.RowDefinitions.Add(26, Skill.Framework.UI.GridUnitType.Pixel); // _PresetPanel

            _ObjectField = new ObjectField <GameObject>()
            {
                Row = 0, Column = 0, VerticalAlignment = Skill.Framework.UI.VerticalAlignment.Center
            };
            _CurveTreeView = new TreeView()
            {
                Row = 1, Column = 0
            };
            _CurveTreeView.DisableFocusable();
            _PresetPanel = new CurvePresetLibrary()
            {
                Row = 2, Column = 0
            };

            _PnlLeft.Controls.Add(_ObjectField);
            _PnlLeft.Controls.Add(_CurveTreeView);
            _PnlLeft.Controls.Add(_PresetPanel);


            _GridSplitter = new Skill.Editor.UI.GridSplitter()
            {
                Row = 0, Column = 1, Orientation = Skill.Framework.UI.Orientation.Vertical
            };
            _CurveEditor = new CurveEditor()
            {
                Row = 0, Column = 2
            };

            _Frame.Controls.Add(_PnlLeft);
            _Frame.Controls.Add(_GridSplitter);
            _Frame.Controls.Add(_CurveEditor);

            _ObjectField.ObjectChanged  += _ObjectField_ObjectChanged;
            _PresetPanel.PresetSelected += _PresetPanel_PresetSelected;
        }
Esempio n. 2
0
        private void CreateUI()
        {
            _RefreshStyles = true;
            _Frame         = new EditorFrame("Frame", this)
            {
                Location = Skill.Framework.UI.FrameLocation.Fill
            };

            Skill.Framework.UI.DockPanel dockPanel = new Skill.Framework.UI.DockPanel()
            {
                LastChildFill = true
            };
            _Frame.Controls.Add(dockPanel);

            CreateMenuBar();
            CreateToolbar();

            dockPanel.Controls.Add(_MenuBar);      // add menu at top of window
            dockPanel.Controls.Add(_ToolbarPanel); // add toolbar at top of window under menu

            // grid for CurveEditor and Timeline
            _MainGrid = new Skill.Framework.UI.Grid();
            _MainGrid.RowDefinitions.Add(new RowDefinition()
            {
                Height = new GridLength(1, GridUnitType.Star), MinHeight = 30
            });                                                     // _TimeLine

            _MainGrid.ColumnDefinitions.Add(1, GridUnitType.Star);  // _CurveTreeView, _TracksGrid
            _MainGrid.ColumnDefinitions.Add(4, GridUnitType.Pixel); // splitter
            _MainGrid.ColumnDefinitions.Add(2, GridUnitType.Star);  // _TimeLine  and _CurveEditor

            _CurveEditor = new Curve.CurveEditor()
            {
                Row = 0, Column = 2
            };
            _CurveEditor.TimeLine.TimeBar.ShowTimePosition = true;
            _CurveEditor.TimeLine.View.ShowTimePosition    = true;
            //_CurveEditor.TimeLine.MinTime = -0.1f;
            _MainGrid.Controls.Add(_CurveEditor);


            _CurveTrackTreeView = new CurveTrackTreeView(_CurveEditor)
            {
                Row = 0, Column = 0, Margin = new Thickness(0, 0, 0, 0)
            };
            _MainGrid.Controls.Add(_CurveTrackTreeView);

            _TimeLine = new TimeLine(new TrackBarView()
            {
                SideView = true
            })
            {
                Row = 0, Column = 2
            };
            _TimeLine.TimePositionChanged += _TimeLine_TimePositionChanged;

            _TracksTreeView = new TrackTreeView(this)
            {
                Row = 0, Column = 0, Margin = new Thickness(0, 0, 0, 0)
            };
            _MainGrid.Controls.Add(_TracksTreeView);

            // add splitter between (_TimeLine and _CurveEditor) and (_CurveTreeView, _TracksTreeView and _PropertyGrid)
            _VSplitter = new Skill.Editor.UI.GridSplitter()
            {
                Orientation = Orientation.Vertical, Row = 0, Column = 1, RowSpan = 3
            };
            _MainGrid.Controls.Add(_VSplitter);

            _MainGrid.Controls.Add(_TimeLine);

            // fill remaining area with mainGrid
            dockPanel.Controls.Add(_MainGrid);

            _CurveEditor.TimeLine.TimePositionChanged += CurveEditorTimeLine_PositionChanged;

            _CurveEditor.TimeLine.TimeBar.SnapTime = 0.001;
            _TimeLine.TimeBar.SnapTime             = 0.001;

            _TimeLine.View.VerticalScrollChanged           += View_VerticalScrollChanged;
            _TracksTreeView.TreeView.ScrollPositionChanged += TreeView_ScrollPositionChanged;

            SetLayout(0);
        }