예제 #1
0
        public bool Income(string chr)
        {
            if (kp == null)
            {
                return(false);
            }
            if (chr == "")
            {
                return(false);
            }
            KeyProcessorReturn x = kp.ProcessKey(chr);

            if (x == null)
            {
                if (chr == "delete")
                {
                    Output("{BS}");
                    bf.PopChars(1);
                    return(true);
                }
                else if (chr == "{BEEP}")
                {
                    beep();
                    return(true);
                }
                else
                {
                    Output(chr);
                    bf.Append(chr);
                    return(true);
                }
            }
            else
            {
                if (x.beep)
                {
                    beep();
                }
                // Better Optimized Method Needed
                for (int i = 0; i < x.leftcontext.Length; i++)
                {
                    Output("{BS}");
                }
                bf.PopChars(x.leftcontext.Length);
                bf.Append(x.output);
                Output(x.output);
                return(true);
            }
        }