示例#1
0
        public CursorController(TimelineController timeline)
        {
            state             = CursorState.Hover;
            this.timeline     = timeline;
            rectangleProvider = timeline.RectangleProvider;
            handler           = new ControllerHandler(this);

            protoCursor = new Rectangle();
            cursors     = new List <Cursor>();
            oldCursors  = new List <Cursor>();
            UpdateCache();
            oldCursors.AddRange(cursors);

            timeline.TimelineZoomChanged   += Timeline_TimelineZoomChanged;
            timeline.TimelineLengthChanged += Timeline_TimelineLengthChanged;
            timeline.LocationChanged       += Timeline_LocationChanged;

            rectangleProvider.MouseDown += RectangleProvider_MouseDown;
            rectangleProvider.MouseMove += RectangleProvider_MouseMove;
            rectangleProvider.MouseUp   += RectangleProvider_MouseUp;

            rectangleProvider.Paint += RectangleProvider_Paint;

            rectangleProvider.MouseEnter += RectangleProvider_MouseEnter;
        }
示例#2
0
        public ItemController CreateItem(int startPosition = 0, int length = 1)
        {
            ItemController item = new ItemController(this, startPosition, length);

            items.Add(item);
            RectangleProvider.InvalidateContentContainerRectangle(item.Rectangle);
            return(item);
        }
示例#3
0
        private void Initialize(TimelineController timeline)
        {
            layers = new List <LayerController>();

            this.timeline    = timeline;
            toggleLock       = false;
            toggleVisibility = true;

            rectangleProvider         = timeline.RectangleProvider;
            rectangleProvider.Paint  += TimelineContent_Paint;
            rectangleProvider.Resize += TimelineContent_Resize;

            timeline.TimelineZoomChanged   += Timeline_TimelineZoomChanged;
            timeline.TimelineLengthChanged += Timeline_TimelineLengthChanged;
            timeline.LocationChanged       += Timeline_LocationChanged;

            BackColor = ColorProvider.GetRandomSliceColor();

            SetId();

            CreateLayer();

            lockButton = new ButtonController(this, new Point(
                                                  5 + dragWidth + ButtonController.margin,
                                                  padding + ButtonController.margin));
            lockButton.ButtonClicked += LockButton_ButtonClicked;
            lockButton.Icon           = Properties.Resources.open_lock;

            visibilityButton = new ButtonController(this, new Point(
                                                        5 + dragWidth + ButtonController.margin * 3 + ButtonController.width,
                                                        padding + ButtonController.margin));
            visibilityButton.ButtonClicked += VisibilityButton_ButtonClicked;
            visibilityButton.Icon           = Properties.Resources.open_eye;

            addSliceButton = new ButtonController(this, new Point(
                                                      5 + dragWidth + ButtonController.margin,
                                                      padding + ButtonController.margin * 3 + ButtonController.height));
            addSliceButton.ButtonClicked += AddSliceButton_ButtonClicked;
            addSliceButton.Icon           = Properties.Resources.plus;

            removeSliceButton = new ButtonController(this, new Point(
                                                         5 + dragWidth + ButtonController.margin * 3 + ButtonController.width,
                                                         padding + ButtonController.margin * 3 + ButtonController.height));
            removeSliceButton.ButtonClicked += RemoveSliceButton_ButtonClicked;
            removeSliceButton.Icon           = Properties.Resources.minus;

            UpdateCache();
            UpdateUI();
        }
示例#4
0
        private void Initialize(SliceController slice)
        {
            this.slice       = slice;
            toggleLock       = false;
            toggleVisibility = true;

            rectangleProvider         = slice.RectangleProvider;
            rectangleProvider.Paint  += TimelineContent_Paint;
            rectangleProvider.Resize += TimelineContent_Resize;

            AddSliceEvents();

            BackColor = ColorProvider.GetRandomLayerColor();

            SetId();

            items = new List <ItemController>();

            lockButton = new ButtonController(this, new Point(
                                                  5 + dragWidth + ButtonController.margin,
                                                  ButtonController.margin));
            lockButton.ButtonClicked += LockButton_ButtonClicked;
            lockButton.Icon           = Properties.Resources.open_lock;

            visibilityButton = new ButtonController(this, new Point(
                                                        5 + dragWidth + ButtonController.margin * 3 + ButtonController.width,
                                                        ButtonController.margin));
            visibilityButton.ButtonClicked += VisibilityButton_ButtonClicked;
            visibilityButton.Icon           = Properties.Resources.open_eye;

            addLayerButton = new ButtonController(this, new Point(
                                                      5 + dragWidth + ButtonController.margin,
                                                      ButtonController.margin * 3 + ButtonController.height));
            addLayerButton.ButtonClicked += AddLayerButton_ButtonClicked;
            addLayerButton.Icon           = Properties.Resources.plus;

            removeLayerButton = new ButtonController(this, new Point(
                                                         5 + dragWidth + ButtonController.margin * 3 + ButtonController.width,
                                                         ButtonController.margin * 3 + ButtonController.height));
            removeLayerButton.ButtonClicked += RemoveLayerButton_ButtonClicked;
            removeLayerButton.Icon           = Properties.Resources.minus;

            UpdateUI();
        }
示例#5
0
        public ButtonController(IControlController control, Point relativePosition)
        {
            buttonRectangle        = new Rectangle();
            buttonRectangle.Width  = width;
            buttonRectangle.Height = height;

            this.control      = control;
            rectangleProvider = this.control.RectangleProvider;
            left = relativePosition.X;
            top  = relativePosition.Y;

            control.TimelineZoomChanged   += Timeline_TimelineZoomChanged;
            control.TimelineLengthChanged += Timeline_TimelineLengthChanged;
            control.LocationChanged       += Control_LocationChanged;
            rectangleProvider.Paint       += RectangleProvider_Paint;
            rectangleProvider.MouseDown   += RectangleProvider_MouseDown;
            rectangleProvider.MouseUp     += RectangleProvider_MouseUp;

            UpdateCache();
            UpdateUI();
        }
示例#6
0
        internal void TransferItem(ItemController item, LayerController layer)
        {
            if (layer == this)
            {
                throw new ArgumentException("Layer can't be this layer.");
            }
            if (!items.Exists(x => x == item))
            {
                throw new ArgumentException("This layer doesn't contain given item.");
            }

            RectangleProvider.InvalidateContentContainerRectangle(item.Rectangle);

            items.Remove(item);
            layer.items.Add(item);
            if (Disowning != null)
            {
                Disowning.Invoke(this, new DisownEventArgs(item, layer));
            }

            RectangleProvider.InvalidateContentContainerRectangle(item.Rectangle);
        }
示例#7
0
        internal RulerController(TimelineController timeline)
        {
            this.timeline = timeline;

            rectangleProvider = timeline.RectangleProvider;
            oldRect           = rectangleProvider.RulerContainerRectangle;
            oldScreenRect     = GetScreenRectangle();
            oldScroll         = rectangleProvider.HorizontalScroll;

            rulerRectangle = new Rectangle();
            UpdateCache();

            if (ProjectFramerate == 24)
            {
                markPattern = new int[] { 20, 35, 30, 35, 25, 35, 30, 35 };
            }
            else if (ProjectFramerate == 25)
            {
                markPattern = new int[] { 20, 35, 35, 35, 35, };
            }
            else if (ProjectFramerate == 30)
            {
                markPattern = new int[] { 20, 35, 35, 35, 35, 30, 35, 35, 35, 35 };
            }
            else
            {
                markPattern = new int[] { 25 };
            }

            rectangleProvider.Paint        += TimelineContent_Paint;
            rectangleProvider.Resize       += TimelineContent_Resize;
            timeline.TimelineZoomChanged   += Timeline_TimelineZoomChanged;
            timeline.TimelineLengthChanged += Timeline_TimelineLengthChanged;
            timeline.LocationChanged       += TimelineContent_LocationChanged;

            UpdateUI();
        }
示例#8
0
 public void DeleteItem(ItemController item)
 {
     items.Remove(item);
     RectangleProvider.InvalidateContentContainerRectangle(item.Rectangle);
     item.Delete();
 }