Example #1
0
        }       //  GetDbPath()

        private void ShowLexemes()
        {
            int iNumLexemes = 0;

            if (m_Dictionary.eCountLexemes(ref iNumLexemes) != EM_ReturnCode.H_NO_ERROR)
            {
                MessageBox.Show(this, "Not in the dictionary.", "Zal Synthesizer");
                return;
            }

            TabPage tabPageLexemes = new TabPage(m_sSearchString);

            tabPageLexemes.AutoScroll = true;

            LexemeDataPanel ldpFocused = null;

            int            iLexeme = 0;
            CLexemeManaged lex     = null;
            EM_ReturnCode  eRet    = (EM_ReturnCode)m_Dictionary.eGetFirstLexeme(ref lex);

            do
            {
                if (CErrorCode.bError(eRet))
                {
                    continue;
                }

                if (eRet != EM_ReturnCode.H_NO_ERROR)
                {
                    MessageBox.Show(this, "Unable to retrieve lexeme data.", "Zal Synthesizer");
                    return;
                }

                if (lex.sSourceForm() == m_sSearchString)
                {
                    LexemeDataPanel ldp = new LexemeDataPanel();
                    m_hashLexemes.Add(ldp, lex);
                    SubscribeToLexemeEvents(ldp);
                    ldp.Location      = new System.Drawing.Point(0, iLexeme * ldp.Size.Height + 4);
                    ldp.sInitialForm  = lex.sSourceForm();
                    ldp.sGraphicStem  = lex.sGraphicStem();
                    ldp.iInflectionId = lex.iInflectionId();
                    ldp.sMainSymbol   = lex.sMainSymbol();
                    ldp.sType         = lex.iType().ToString();
                    ldp.sStressType   = (m_hashAccent[lex.eAccentType1()].ToString());
                    if (lex.eAccentType2() != EM_AccentType.AT_UNDEFINED)
                    {
                        ldp.sStressType += "/" + m_hashAccent[lex.eAccentType2()];
                    }

                    tabPageLexemes.Controls.Add(ldp);
                    ldp.Left += 20;
                    ldp.Top  += 20;
                    if (0 == iLexeme)
                    {
                        ldpFocused = ldp;
                    }

                    ArrayList alTabs = new ArrayList();
                    m_lexemeToTabs.Add(lex, alTabs);

                    ++iLexeme;
                }

                eRet = (EM_ReturnCode)m_Dictionary.eGetNextLexeme(ref lex);
            } while (EM_ReturnCode.H_NO_ERROR == eRet);

            tabControl.Controls.Add(tabPageLexemes);
            tabControl.SelectTab(tabPageLexemes);
            ldpFocused.FocusShowButton();
        }   //  ShowLexemes()