示例#1
0
            private void EditBoxCurrentMarkerTrans_TextChanged(object sender, EventArgs e)
            {
                if (_editMutex)
                {
                    return;
                }

                _editMutex = true;

                if (EditBoxCurrentMarkerTrans.Text.Length >= 2)
                {
                    if ((EditBoxCurrentMarkerTrans.SelectionLength == 0) &&
                        (EditBoxCurrentMarkerTrans.SelectionStart >= 2))
                    {
                        string followingText = EditBoxCurrentMarkerTrans.Text.Substring(EditBoxCurrentMarkerTrans.SelectionStart);

                        string s           = EditBoxCurrentMarkerTrans.Text.Substring(0, EditBoxCurrentMarkerTrans.SelectionStart);
                        char[] lastCharStr = s.ToCharArray(s.Length - 2, 2);
                        char   srcChar     = lastCharStr[0];
                        char   augChar     = lastCharStr[1];

                        Devanagari.AugmentType augType = Devanagari.AugmentType.None;
                        if (augChar == '_')
                        {
                            augType |= Devanagari.AugmentType.Macron;
                        }
                        else if (augChar == '\'')
                        {
                            augType |= Devanagari.AugmentType.Acute;
                        }
                        else if (augChar == '<')
                        {
                            augType |= Devanagari.AugmentType.Lodot;
                        }
                        else if (augChar == '>')
                        {
                            augType |= Devanagari.AugmentType.Updot;
                        }
                        else if (augChar == '~')
                        {
                            augType |= Devanagari.AugmentType.Tilde;
                        }

                        char desiredChar = Devanagari.AugmentChar(srcChar, augType);

                        if (desiredChar != srcChar)
                        {
                            s  = s.Substring(0, s.Length - 2);
                            s += desiredChar;
                            EditBoxCurrentMarkerTrans.Text           = s + followingText;
                            EditBoxCurrentMarkerTrans.SelectionStart = s.Length;
                            EditBoxCurrentMarkerTrans.ScrollToCaret();
                        }
                    }
                }

                _editMutex = false;
            }
示例#2
0
            public void AugmentTest()
            {
                string OmNamahShivaya       = "oṃ namaḥ śivāya";
                string OmNamahShivayaManual = "o"
                                              + Devanagari.AugmentChar('m', Devanagari.AugmentType.Lodot)
                                              + " nama"
                                              + Devanagari.AugmentChar('h', Devanagari.AugmentType.Lodot)
                                              + " "
                                              + Devanagari.AugmentChar('s', Devanagari.AugmentType.Acute)
                                              + "iv"
                                              + Devanagari.AugmentChar('a', Devanagari.AugmentType.Macron)
                                              + "ya";

                Assert.AreEqual(OmNamahShivaya, OmNamahShivayaManual);
            }