public void HandleCharacter(char character)
        {
            if (char.IsDigit(character) || char.IsLetter(character) || char.IsSymbol(character) || char.IsPunctuation(character) || char.IsWhiteSpace(character))
            {
                var appended = CurrentEditor.InsertCharacter(character);

                if (mode != Mode.Search)
                {
                    terminal.Write(character);

                    if (!appended)
                    {
                        terminal.WriteNoMove(CurrentEditor.ToString(CurrentEditor.Position));
                    }
                }
                else
                {
                    SearchPrompt.Recreate(terminal, -1);

                    history.Reset();
                    var result = history.ReverseSearch(search.Value);
                    terminal.WriteNoMove(result, SearchPrompt.Skip);
                }
            }

            tabTabMode = false;
        }
Beispiel #2
0
        public async Task SubmitEditor()
        {
            await ThreadUI.Invoke(() =>
            {
                IsBusy = true;
            });

            CurrentEditor.PrepareForSubmit(); //Required!!!
            var result = await HttpClientHelper.Post(CurrentEditor.SubmitUrl, CurrentEditor.Data);

#warning "no feedback on submit"
            Debug.WriteLine(result);
            if (result.Length > 0)
            {
                await ThreadUI.Invoke(() =>
                {
                    IsBusy = false;
                    Loc.NavigationService.GoBack();
                    ApplicationView.GetForCurrentView().SuppressSystemOverlays = false;
                });

                await Loc.Topic.RefreshPage();
            }
            else
            {
                await ThreadUI.Invoke(() =>
                {
                    IsBusy = false;
                });
            }
        }
        public async Task SubmitEditor()
        {
            await ThreadUI.Invoke(() =>
            {
                IsBusy = true;
            });

            CurrentEditor.PrepareForSubmit(); //Required!!!
            var result = await HttpClientHelper.Post(CurrentEditor.SubmitUrl, CurrentEditor.Data);

#warning "no feedback on submit"
            Debug.WriteLine(result);
            if (result.Length > 0)
            {
                await ThreadUI.Invoke(() =>
                {
                    Loc.NavigationService.GoBack();
                    _isBusy = false;
                });

                await Loc.Thread.RefreshPage(CurrentEditor.Intent);
            }
            else
            {
                await ThreadUI.Invoke(() =>
                {
                    IsBusy = false;
                });
            }
        }
Beispiel #4
0
        //Mouse button up on PaintBox
        private void Canvas_MouseUp(object sender, MouseEventArgs e)
        {
            btn_down = false;

            switch (mode)
            {
            case eMode.shapeLine:
                CurrentEditor.AddLine(line_beg, new Point(e.X, e.Y));
                break;

            case eMode.shapeCircle:
                CurrentEditor.AddEllipse(line_beg, new Point(e.X, e.Y));
                break;

            case eMode.shapeRect:
                CurrentEditor.AddRect(line_beg, new Point(e.X, e.Y));
                break;

            case eMode.modeSelect:
                //multiselect
                if (!this.ctrl)
                {
                    lvShapes.SelectedIndices.Clear();
                }

                //near shape
                int val = CurrentEditor.GetNearShape(new Point(e.X, e.Y));
                if (val != -1)
                {
                    lvShapes.SelectedIndices.Add(val);
                }
                //then @SelectFigures(int[] indexes) called
                break;
            }
        }
Beispiel #5
0
        //Menu: File -> New
        private void NewFile()
        {
            int newpage = this.NewPage();

            tcSheets.SelectedIndex = newpage;
            CurrentEditor.Refresh();
        }
        public override void Abort()
        {
            if (IsDragging)
            {
                IsDragging = false;
                if (_ghostAdorner != null)
                {
                    RemoveAdorner(_ghostAdorner);
                    _ghostAdorner = null;
                }

                _atomList = null;
            }

            if (EditViewModel.SelectedItems.Any())
            {
                EditViewModel.ClearSelection();
                CurrentStatus = DefaultText;
            }

            if (_lassoAdorner != null)
            {
                DisposeLasso();
            }

            _initialTarget = null;
            _mouseTrack    = null;

            CurrentEditor.ReleaseMouseCapture();
            CurrentStatus = DefaultText;
        }
Beispiel #7
0
        //Mouse button down on PaintBox
        private void Canvas_MouseDown(object sender, MouseEventArgs e)
        {
            btn_down = true;

            switch (mode)
            {
            case eMode.shapeCross:
                CurrentEditor.AddCross(e.X, e.Y);
                break;

            case eMode.shapeLine:
                CurrentEditor.PrepareToTempDraw();
                line_beg = new Point(e.X, e.Y);
                break;

            case eMode.shapeCircle:
                CurrentEditor.PrepareToTempDraw();
                line_beg = new Point(e.X, e.Y);
                break;

            case eMode.shapeRect:
                CurrentEditor.PrepareToTempDraw();
                line_beg = new Point(e.X, e.Y);
                break;
            }
        }
        private void StartFoldingUpdateTimer()
        {
            DispatcherTimer foldingUpdateTimer = new DispatcherTimer();

            foldingUpdateTimer.Interval = TimeSpan.FromSeconds(2);
            foldingUpdateTimer.Tick    += delegate { CurrentEditor?.UpdateFoldings(refresh: false); };
            foldingUpdateTimer.Start();
        }
Beispiel #9
0
 public void BeginEditNew()
 {
     if (CurrentEditor != null)
     {
         ((Control)CurrentEditor).Focus();
         CurrentEditor.BeginEditNew();
     }
 }
Beispiel #10
0
 //В списке фигур что-то поменялось
 private void lvShapes_SelectedIndexChanged(object sender, EventArgs e)
 {
     if (CurrentEditor != null)
     {
         int[] a = new int[lvShapes.SelectedIndices.Count];
         lvShapes.SelectedIndices.CopyTo(a, 0);
         CurrentEditor.SelectFigures(a);
     }
 }
Beispiel #11
0
 private void tabControl_SelectedIndexChanged(object sender, EventArgs e)
 {
     currentTab = (EditorTab)tabControl.SelectedTab;
     try
     {
         CurrentEditor.Focus();
     }
     catch { }; //TODO: КОСТЫЛЬ!!!
 }
Beispiel #12
0
        public void DisplayValue(object value)
        {
            if (CurrentEditor == null)
            {
                throw new InvalidOperationException("Unable to display the value, because there is no current editor.");
            }

            CurrentEditor.DisplayValue(value);
        }
Beispiel #13
0
        //Refresh button
        private void btnRefresh_Click(object sender, EventArgs e)
        {
            if (CurrentEditor == null)
            {
                return;
            }

            CurrentEditor.Refresh();
        }
Beispiel #14
0
        public object GetValue()
        {
            if (CurrentEditor == null)
            {
                throw new InvalidOperationException("Unable to get the value, because there is no current editor.");
            }

            return(CurrentEditor.GetValue());
        }
        public void ShowFindReplace()
        {
            bool isShown = CurrentEditor?.ShowSearchPanel() == true;

            if (!isShown)
            {
                WorkAreaEditor.ShowSearchPanel();
            }
        }
Beispiel #16
0
        public void Clear()
        {
            if (CurrentEditor == null)
            {
                throw new InvalidOperationException("Unable to clear the value, because there is no current editor.");
            }

            CurrentEditor.Clear();
        }
Beispiel #17
0
        public override void MouseDown(NSEvent theEvent)
        {
            base.MouseDown(theEvent);
            var h = TextHandler;

            if (h != null && h.AutoSelectMode == AutoSelectMode.Always && CurrentEditor?.SelectedRange.Length == 0)
            {
                CurrentEditor?.SelectAll(this);
            }
        }
Beispiel #18
0
 //"Удалить фигуру"
 private void btnDelete_Click(object sender, EventArgs e)
 {
     if (CurrentEditor != null)
     {
         int[] a = new int[lvShapes.SelectedIndices.Count];
         lvShapes.SelectedIndices.CopyTo(a, 0);
         CurrentEditor.DeleteFigures(a);
         CurrentEditor.Refresh();
     }
 }
Beispiel #19
0
        public override void Abort()
        {
            _preferredPlacements = null;
            CurrentEditor.ReleaseMouseCapture();

            CurrentAdorner = null;
            Target = null;
            MouseIsDown = false;
            IsDrawing = false;
            CurrentStatus = DefaultStatusText;
        }
Beispiel #20
0
 private Geometry GetAtomAdornerGeometry(Atom atom)
 {
     if (atom.SymbolText == "")
     {
         return(new EllipseGeometry(atom.Position, RenderRadius * 1.5, RenderRadius * 1.5));
     }
     else
     {
         return(CurrentEditor.GetAtomVisual(atom).HullGeometry);
     }
 }
        private void MoveCursorToErrorLine(string exceptionMsg)
        {
            Match m = m_ErrorMsgRegex.Match(exceptionMsg);

            if (m.Success)
            {
                string line   = m.Groups[1].ToString();
                string column = m.Groups[2].ToString();
                CurrentEditor?.ScrollCursorTo(int.Parse(line), int.Parse(column));
            }
        }
        private void OnSaveAsWithEncoding()
        {
            var newEncoding = CodePageList[SelectedCodePageIndex];

            ShowCodePageList = false;
            bool isSaved = CurrentEditor?.SaveFile(saveAs: true, newEncoding: newEncoding.GetEncoding()) == true;

            if (isSaved)
            {
                CodePageChangedEvent?.Invoke();
                CurrentEditor.Load(CurrentEditor.CurrentFilePath);  // reload with new encoding
            }
        }
Beispiel #23
0
        private void ClearTemporaries()
        {
            if (_adorner != null)
            {
                RemoveAdorner(ref _adorner);
            }

            _currentAtomVisual = null;
            IsDrawing          = false;
            //clear this to prevent a weird bug in drawing
            CurrentEditor.ActiveChemistry = null;
            CurrentEditor.Focus();
        }
Beispiel #24
0
        //Изменился индекс текущей вкладки
        private void tcSheets_SelectedIndexChanged(object sender, EventArgs e)
        {
            AfterDraw();

            if (CurrentEditor == null)
            {
                lvShapes.Items.Clear();
            }
            else
            {
                CurrentEditor.Refresh();
            }
        }
Beispiel #25
0
 //Menu: File -> Save
 private void Save()
 {
     if (CurrentEditor == null)
     {
         return;
     }
     if (CurrentEditor.cur_fname != "")
     {
         CurrentEditor.SaveToFile(CurrentEditor.cur_fname);
     }
     else
     {
         this.SaveAs(CurrentEditor);
     }
 }
Beispiel #26
0
        private void CurrentEditor_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            var position = e.GetPosition(CurrentEditor);

            _currentAtomVisual = CurrentEditor.GetTargetedVisual(position) as AtomVisual;
            if (_currentAtomVisual == null)
            {
                _angleSnapper = new Snapper(position, EditViewModel);
            }
            else
            {
                Mouse.Capture(CurrentEditor);
                _angleSnapper   = new Snapper(_currentAtomVisual.ParentAtom.Position, EditViewModel);
                _lastAtomVisual = _currentAtomVisual;
            }
            IsDrawing = true;
        }
Beispiel #27
0
        protected override void OnRender(DrawingContext drawingContext)
        {
            base.OnRender(drawingContext);
            double renderRadius = (EditViewModel.Model.XamlBondLength * Globals.FontSizePercentageBond) / 4;

            SolidColorBrush renderBrush = new SolidColorBrush(SystemColors.HighlightColor);

            renderBrush.Opacity = 0.25;
            if (AdornedAtom.SymbolText == "")
            {
                drawingContext.DrawEllipse(renderBrush, null, AdornedAtom.Position, renderRadius, renderRadius);
            }
            else
            {
                drawingContext.DrawGeometry(renderBrush, null, CurrentEditor.GetAtomVisual(AdornedAtom).HullGeometry);
            }
        }
Beispiel #28
0
        //Press "+" in preview area
        private void pbPlus_Click(object sender, EventArgs e)
        {
            if (CurrentPb == null)
            {
                return;
            }
            if (CurrentPb.Width > 2400)
            {
                return;
            }

            CurrentPb.Width  += 400;
            CurrentPb.Height += 400;

            CurrentEditor.RedefineXY(
                CurrentPb.Width,
                CurrentPb.Height);
            CurrentEditor.Refresh();
        }
Beispiel #29
0
        //Press "-" in preview area
        private void pbMinus_Click(object sender, EventArgs e)
        {
            if (CurrentPb == null)
            {
                return;
            }
            if ((CurrentPb.Width <= tcSheets.Width) || (CurrentPb.Height <= tcSheets.Height))
            {
                return;
            }

            CurrentPb.Width  -= 400;
            CurrentPb.Height -= 400;

            CurrentEditor.RedefineXY(
                CurrentPb.Width,
                CurrentPb.Height);
            CurrentEditor.Refresh();
        }
Beispiel #30
0
        private void CurrentEditor_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
        {
            if (MouseIsDown)
            {
                if (_preferredPlacements != null)
                {
                    List<NewAtomPlacement> newAtomPlacements = new List<NewAtomPlacement>();
                    FillExistingAtoms(_preferredPlacements, newAtomPlacements, CurrentEditor);
                    EditViewModel.DrawRing(newAtomPlacements, false);
                }
            }
            CurrentEditor.ReleaseMouseCapture();

            CurrentAdorner = null;
            Target = null;
            MouseIsDown = false;
            IsDrawing = false;
            CurrentStatus = DefaultStatusText;
        }