Exemple #1
0
 private void WritingCanvas_MouseUp(object sender, MouseButtonEventArgs e)
 {
     if (e.ButtonState == MouseButtonState.Released)
     {
         Hwr.EndStroke(inkObj);
         mouseDowned = false;
     }
 }
Exemple #2
0
        private void Clear()
        {
            int childrenCount = VisualTreeHelper.GetChildrenCount(writingCanvas);

            // remove all except guideText
            writingCanvas.Children.RemoveRange(1, childrenCount - 1);
            Hwr.InkClear(inkObj);
        }
Exemple #3
0
 private void WritingCanvas_MouseDown(object sender, MouseButtonEventArgs e)
 {
     if (e.ButtonState == MouseButtonState.Pressed)
     {
         currentPoint = e.GetPosition(writingCanvas);
         Hwr.AddPoint(inkObj, (int)currentPoint.X, (int)currentPoint.Y);
         mouseDowned = true;
     }
 }
        private String GetCandidates(IntPtr result)
        {
            StringBuilder candidates = new StringBuilder();
            bool          exit       = false;
            int           lineSize   = Hwr.GetLineSize(result);

            if (lineSize == 0)
            {
                candidates.Append("result empty");
                return(candidates.ToString());
            }

            for (int i = 0; i < MAX_CANDIDATES; i++)
            {
                for (int j = 0; j < lineSize; j++)
                {
                    IntPtr line      = Hwr.GetLine(result, j);
                    int    blockSize = Hwr.GetBlockSize(line);
                    for (int k = 0; k < blockSize; k++)
                    {
                        IntPtr block = Hwr.GetBlock(line, k);
                        if (Hwr.GetCandidateSize(block) <= i)
                        {
                            exit = true;
                            break;
                        }
                        int length = 0;
                        candidates.Append(String.Format("[{0}] ", i + 1));
                        candidates.Append(Hwr.GetCandidate(block, i, ref length));
                        if (k + 1 < blockSize)
                        {
                            candidates.Append(" ");
                        }
                    }
                    if (exit)
                    {
                        break;
                    }
                    if (j + 1 < lineSize)
                    {
                        candidates.Append("\n");
                    }
                }
                if (exit)
                {
                    break;
                }
                candidates.Append("\n");
            }
            return(candidates.ToString());
        }
Exemple #5
0
        private void SetLanguage(int language)
        {
            Hwr.ClearLanguage(settingObj);

            if (language == Hwr.DLANG_MATH_MIDDLE_EXPANSION)
            {
                Hwr.AddLanguage(settingObj, Hwr.DLANG_MATH_MIDDLE_EXPANSION, Hwr.DTYPE_MATH_EX);
            }
            else if (language == Hwr.DLANG_MATH_CHEMICAL)
            {
                Hwr.AddLanguage(settingObj, Hwr.DLANG_MATH_CHEMICAL, Hwr.DTYPE_MATH_CF);
            }

            Hwr.SetAttribute(settingObj);
        }
        private void RecognizeButton_Click(object sender, RoutedEventArgs e)
        {
            int status = Hwr.Recognize(inkObj, resultObj);

            if (status == Hwr.ERR_SUCCESS)
            {
                SetCandidateText(GetCandidates(resultObj));
            }
            else
            {
                SetCandidateText("No Result");
            }
            ShowCandidateText(true);
            Clear();
        }
Exemple #7
0
        private void WritingCanvas_MouseMove(object sender, MouseEventArgs e)
        {
            if (mouseDowned && e.LeftButton == MouseButtonState.Pressed)
            {
                Line line = new Line();
                line.Stroke          = Brushes.Black;
                line.StrokeThickness = 2;
                line.X1 = currentPoint.X;
                line.Y1 = currentPoint.Y;
                line.X2 = e.GetPosition(writingCanvas).X;
                line.Y2 = e.GetPosition(writingCanvas).Y;

                currentPoint = e.GetPosition(writingCanvas);
                writingCanvas.Children.Add(line);

                Hwr.AddPoint(inkObj, (int)line.X2, (int)line.Y2);
            }
        }
Exemple #8
0
        private void RecognizeButton_Click(object sender, RoutedEventArgs e)
        {
            int status = Hwr.Recognize(inkObj, resultObj);

            if (status == Hwr.ERR_SUCCESS)
            {
                String candidates = GetCandidates(resultObj);
                SetCandidateText(candidates);
                SetFormula(candidates.Substring(0, candidates.IndexOf('\n')));
                ShowFormula(true);
            }
            else
            {
                SetCandidateText("No Result");
            }
            ShowCandidateText(true);
            Clear();
        }
Exemple #9
0
        private int DestroyEngine()
        {
            int status = Hwr.Close();

            if (inkObj != IntPtr.Zero)
            {
                Hwr.DestroyInkObject(inkObj);
            }
            if (settingObj != IntPtr.Zero)
            {
                Hwr.DestroySettingObject(settingObj);
            }
            if (resultObj != IntPtr.Zero)
            {
                Hwr.DestroyResultObject(resultObj);
            }

            return(status);
        }
        private void SetLanguage(int language)
        {
            Hwr.ClearLanguage(settingObj);

            if (language == Hwr.DLANG_KOREAN)
            {
                Hwr.AddLanguage(settingObj, Hwr.DLANG_KOREAN, Hwr.DTYPE_KOREAN | Hwr.DTYPE_UPPERCASE | Hwr.DTYPE_LOWERCASE);
            }
            else if (language == Hwr.DLANG_ENGLISH)
            {
                Hwr.AddLanguage(settingObj, Hwr.DLANG_ENGLISH, Hwr.DTYPE_UPPERCASE | Hwr.DTYPE_LOWERCASE);
            }
            else if (language == Hwr.DLANG_CHINA)
            {
                Hwr.AddLanguage(settingObj, Hwr.DLANG_CHINA, Hwr.DTYPE_SIMP);
            }
            else if (language == Hwr.DLANG_JAPANESE)
            {
                Hwr.AddLanguage(settingObj, Hwr.DLANG_JAPANESE, Hwr.DTYPE_HIRAGANA);
            }

            Hwr.SetAttribute(settingObj);
        }
Exemple #11
0
        private int InitializeEngine()
        {
            int status = Hwr.Create("./license_key/license.key");

            if (inkObj == IntPtr.Zero)
            {
                inkObj = Hwr.CreateInkObject();
            }
            if (settingObj == IntPtr.Zero)
            {
                settingObj = Hwr.CreateSettingObject();
            }
            if (resultObj == IntPtr.Zero)
            {
                resultObj = Hwr.CreateResultObject();
            }
            Hwr.SetExternalResourcePath("./hdb");
            Hwr.SetRecognitionMode(settingObj, Hwr.MULTICHAR);
            Hwr.SetCandidateSize(settingObj, MAX_CANDIDATES);
            SetLanguage(Hwr.DLANG_MATH_MIDDLE_EXPANSION);
            Hwr.SetAttribute(settingObj);

            return(status);
        }
Exemple #12
0
 private void UpdateVersion()
 {
     version.Text += Hwr.GetRevision();
 }