private void WritingCanvas_MouseUp(object sender, MouseButtonEventArgs e) { if (e.ButtonState == MouseButtonState.Released) { Hwr.EndStroke(inkObj); mouseDowned = false; } }
private void Clear() { int childrenCount = VisualTreeHelper.GetChildrenCount(writingCanvas); // remove all except guideText writingCanvas.Children.RemoveRange(1, childrenCount - 1); Hwr.InkClear(inkObj); }
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()); }
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(); }
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); } }
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(); }
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); }
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); }
private void UpdateVersion() { version.Text += Hwr.GetRevision(); }