private void FixMarkRange(Point pos)
        {
            // カレントポジションをインデックスに変更
            int index = WritersModel.GetIndexFromPosition(pos);

            if (index == -1)
            {
                return;
            }

            int headIndex = 0;
            int tailIndex = 0;

            GetTailAndHead(out headIndex, out tailIndex, index);

            // Markのレンジを変更
            CurrentSelectingMark.HeadCharIndex = headIndex;
            CurrentSelectingMark.TailCharIndex = tailIndex;

            // カレントを戻す
            CurrentSelectingMark = null;

            // ReDraw
            SetRedrawTimer();
        }
        private void OnHoveringMarkChanged()
        {
            _view.ClearUIElement(typeof(Button));
            if (CurrentHoveringMark == null)
            {
                return;
            }

            int head = WritersModel.GetHeadIndexOfVisibleText();
            int tail = WritersModel.GetTailIndexOfVisibleText();

            if (head == -1 || tail == -1)
            {
                return;
            }

            if (head <= CurrentHoveringMark.HeadCharIndex)
            {
                DrawSelectionButton(CurrentHoveringMark.HeadCharIndex, true);

                var headLineTailPos = WritersModel.GetTailIndexOfLineByIndex(CurrentHoveringMark.HeadCharIndex);
                DrawDeleteButton(Math.Min(headLineTailPos, CurrentHoveringMark.TailCharIndex));
            }
            if (tail >= CurrentHoveringMark.TailCharIndex)
            {
                DrawSelectionButton(CurrentHoveringMark.TailCharIndex, false);
            }
        }
Exemplo n.º 3
0
        public override void ExecuteMouseMoveAsHovering(Point point)
        {
            if (_deleteButton != null && _deleteButton.IsMouseOver)
            {
                return;
            }

            var mark = WritersModel.GetMarkFromPosition(point);

            CurrentHoveringMark = mark;
        }
Exemplo n.º 4
0
 public static int CreateMovieWriter(int MovieID, string[] writers)
 {
     foreach (var writer in writers)
     {
         WritersModel data = new WritersModel
         {
             MovieID = MovieID,
             ID      = Convert.ToInt32(writer)
         };
         string sql = @"INSERT INTO movie_writers (movieID, PeopleID) VALUES (@movieID, @ID)";
         SqlDataAccess.SaveData(sql, data);
     }
     return(1);
 }
 public override void OnCanvasMouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
 {
     if (e.RightButton == System.Windows.Input.MouseButtonState.Pressed)
     {
         ResetStatus();
     }
     else
     {
         if (Mode == MarkLayerMode.None)
         {
             if (WritersModel.AddMarkAt(e.GetPosition(_view.canvas)))
             {
                 RedrawMarks();
             }
         }
         else
         {
             FixMarkRange(e.GetPosition(_view.canvas));
         }
     }
 }
        private void DrawSelectionButton(int index, bool toLeft)
        {
            var rect = WritersModel.GetRectOfCharIndex(index, index);

            Button button = new Button();

            button.Margin  = new Thickness(0);
            button.Padding = new Thickness(0);
            if (toLeft)
            {
                _leftRangeButton        = button;
                _leftRangeButton.Click += RangeDirectionButtonClicked;
            }
            else
            {
                _rightRangeButton        = button;
                _rightRangeButton.Click += RangeDirectionButtonClicked;
            }

            if (toLeft)
            {
                Canvas.SetLeft(button, rect[0].Left - 20);
            }
            else
            {
                Canvas.SetLeft(button, rect[0].Left + rect[0].Width - 10);
            }
            Canvas.SetTop(button, rect[0].Top - 3);

            button.FontSize = 9;
            button.Width    = 23;
            button.Height   = rect[0].Height + 3;

            button.Content = (toLeft) ? "←" : "→";

            _view.canvas.Children.Add(button);
        }
        private void ExecuteMouseMoveAsSelecting(Point point)
        {
            // カレントポジションをインデックスに変更
            int index = WritersModel.GetIndexFromPosition(point);

            if (index == -1)
            {
                return;
            }

            int headIndex = 0;
            int tailIndex = 0;

            GetTailAndHead(out headIndex, out tailIndex, index);

            if (_selectingMarkForDraw.HeadCharIndex != headIndex ||
                _selectingMarkForDraw.TailCharIndex != tailIndex)
            {
                _selectingMarkForDraw.HeadCharIndex = headIndex;
                _selectingMarkForDraw.TailCharIndex = tailIndex;

                SetRedrawTimer();
            }
        }