⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mmitextinput.c

📁 是一个手机功能的模拟程序
💻 C
📖 第 1 页 / 共 5 页
字号:
                                {
                                    SEND_EVENT(win, TEXT_INPUT_DESTROY, INFO_KCD_LEFT, NULL);
                                }
                                FirstEnterEditor = 5;
                            }
                            break;
                        case PINYIN_INPUT_SCREEN:
                        case WORD_ASSOCIATION_SCREEN:
                            {
                                if( GetKeyEventConfig(data) )
                                {
                                    /* 2004/04/01 sunsj add */
                                    DisplayOtherArea( data );
                                    return MFW_EVENT_CONSUMED;
                                }
                                IMESelectCandidate(&data->Ime, data->wszElementBuffer);
                                data->HighlightedCandidate[0] = data->wcCandidates[data->Ime.CandidateCursor];
                                ChangeDisplayArea(data->input_edt, data->Ime.InputScreenType, data );
                                edtSymbol( data->input_edt, Temp );
                                winShow(data->input_win);
                            }
                            break;
                        default:
                            break;
                        }
                    }
                    break;
                case STROKE_INPUT_MODE:
                    {
                        switch( data->Ime.InputScreenType )
                        {
                        case TEXT_DISPLAY_SCREEN:
                            {
                                if( strlen(data->editor_data.editor_attr.text) >= data->editor_data.min_enter )
                                {
                                    SEND_EVENT(win, TEXT_INPUT_DESTROY, INFO_KCD_LEFT, NULL);
                                }
                                FirstEnterEditor = 5;
                            }
                            break;
                        case STROKE_INPUT_SCREEN:
                        case WORD_ASSOCIATION_SCREEN:
                            {
                                if( GetKeyEventConfig(data) )
                                {
                                    /* 2004/04/01 sunsj add */
                                    DisplayOtherArea( data );
                                    return MFW_EVENT_CONSUMED;
                                }
                                IMESelectCandidate(&data->Ime, data->wszElementBuffer);
                                data->HighlightedCandidate[0] = data->wcCandidates[data->Ime.CandidateCursor];
                                /* 2003/12/15 sunsj if the candidate is component then we need't add it to text */
                                if( ComponentFlag == TRUE )
                                {
                                }
                                else
                                {
                                    ChangeDisplayArea(data->input_edt, data->Ime.InputScreenType, data );
                                    edtSymbol( data->input_edt, Temp );
                                }
                                winShow(data->input_win);
                            }
                            break;
                        default:
                            break;
                        }
                    }
                    break;
                case UPPERCASE_INPUT_MODE:
                case LOWERCASE_INPUT_MODE:
                case SHUZI_INPUT_MODE:
                    if( strlen(data->editor_data.editor_attr.text) >= data->editor_data.min_enter )
                    {
                        SEND_EVENT(win, TEXT_INPUT_DESTROY, INFO_KCD_LEFT, NULL);
                    }
                    FirstEnterEditor = 5;
                    break;
                default:
                    break;
                }

            }
            break;
        case KCD_RIGHT:
#ifndef _M188_
        case KCD_CLEAR:
#endif
            {
                if( (strlen((char *)data->wszTextBuffer) == 0) && (strlen((char *)data->wcCandidates) == 0 ) )
                {
                    SEND_EVENT (win, TEXT_INPUT_DESTROY, INFO_KCD_RIGHT, NULL);
                    FirstEnterEditor = 5;
                    //return MFW_EVENT_CONSUMED;
                }
                switch( data->Ime.EditorMode )
                {
                case PINYIN_INPUT_MODE:
                    switch( data->Ime.InputScreenType )
                    {
                    case TEXT_DISPLAY_SCREEN:
                        edtSymbol( data->input_edt, ecBack );
                        DisplayOtherArea( data );
                        break;
                    case PINYIN_INPUT_SCREEN:
                        Zi_onekey_clear(&data->Ime);
                        data->HighlightedCandidate[0] = data->wcCandidates[data->Ime.CandidateCursor];
                        if( data->Ime.InputScreenType == TEXT_DISPLAY_SCREEN )
                        {
                            ChangeDisplayArea(data->input_edt, data->Ime.InputScreenType, data );
                            edtShow(data->input_edt);
                            if( data->editor_data.edtInPbk != 0 )
                            {
                                winShow(data->input_win);
                            }
                            else
                            {
                                /* Draw the other area */
                                DisplayOtherArea( data );
                            }
                        }
                        else
                        {
                            winShow(data->input_win);
                        }
                        break;
                    case WORD_ASSOCIATION_SCREEN:
                        data->Ime.InputScreenType = TEXT_DISPLAY_SCREEN;
                        memset(&data->wcCandidates, 0, sizeof(data->wcCandidates));
                        /* 2003/12/15 sunsj */
                        data->Ime.candidates = 0;
                        ChangeDisplayArea(data->input_edt, data->Ime.InputScreenType, data );
                        edtShow(data->input_edt);
                        if( data->editor_data.edtInPbk != 0 )
                        {
                            winShow(data->input_win);
                        }
                        else
                        {
                            /* Draw the other area */
                            DisplayOtherArea( data );
                        }
                        break;
                    default:
                        break;
                    }
                    break;
                case STROKE_INPUT_MODE:
                    switch( data->Ime.InputScreenType )
                    {
                    case TEXT_DISPLAY_SCREEN:
                        edtSymbol( data->input_edt, ecBack );
                        /* Draw the other area */
                        DisplayOtherArea( data );
                        break;
                    case STROKE_INPUT_SCREEN:
                        /* 2004/05/31 sunsj modify */
                        memset(&data->wcCandidates, 0x00, sizeof(data->wcCandidates));
                        IMEClear(&data->Ime, data->wszElementBuffer);
                        data->HighlightedCandidate[0] = data->wcCandidates[data->Ime.CandidateCursor];
                        if( data->Ime.InputScreenType == TEXT_DISPLAY_SCREEN )
                        {
                            ChangeDisplayArea(data->input_edt, data->Ime.InputScreenType, data );
                            edtShow(data->input_edt);
                            if( data->editor_data.edtInPbk != 0 )
                            {
                                winShow(data->input_win);
                            }
                            else
                            {
                                /* Draw the other area */
                                DisplayOtherArea( data );
                            }
                        }
                        else
                        {
                            winShow(data->input_win);
                        }
                        break;
                    case WORD_ASSOCIATION_SCREEN:
                        data->Ime.InputScreenType = TEXT_DISPLAY_SCREEN;
                        memset(&data->wcCandidates, 0, sizeof(data->wcCandidates));
                        /* 2003/12/15 sunsj */
                        data->Ime.candidates = 0;
                        ChangeDisplayArea(data->input_edt, data->Ime.InputScreenType, data );
                        edtShow(data->input_edt);
                        if( data->editor_data.edtInPbk != 0 )
                        {
                            winShow(data->input_win);
                        }
                        else
                        {
                            /* Draw the other area */
                            DisplayOtherArea( data );
                        }
                        break;
                    default:
                        break;
                    }
                    break;
                case UPPERCASE_INPUT_MODE:
                case LOWERCASE_INPUT_MODE:
                case SHUZI_INPUT_MODE:
                    /* 2004/07/06 sunsj add */
                    if( input_key_timer_flag == 1 )
                    {
                        return;
                    }
                    edtSymbol( data->input_edt, ecBack );
                    /* Draw the other area */
                    DisplayOtherArea( data );
                    break;
                default:
                    break;
                }
                //winShow(data->input_win);
            }
            break;
        case KCD_HUP:
            {
                switch( data->Ime.InputScreenType )
                {
                case TEXT_DISPLAY_SCREEN:
                    SEND_EVENT (data->input_win, TEXT_INPUT_DESTROY, INFO_KCD_HUP, NULL);
                    break;
                case PINYIN_INPUT_SCREEN:
                case STROKE_INPUT_SCREEN:
                case WORD_ASSOCIATION_SCREEN:
                    memset(&data->wcCandidates, 0x00, sizeof(data->wcCandidates));
                    IMESetDefaultValue(&data->Ime);
                    ChangeDisplayArea(data->input_edt, data->Ime.InputScreenType, data );
                    edtShow(data->input_edt);
                    if( data->editor_data.edtInPbk != 0 )
                    {
                        winShow(data->input_win);
                    }
                    else
                    {
                        /* Draw the other area */
                        DisplayOtherArea( data );
                    }
                    //winShow(data->input_win);
                    break;
                default:
                    break;
                }
            }
            break;
        case KCD_MNUUP:
            {
                switch( data->Ime.EditorMode )
                {
                case PINYIN_INPUT_MODE:
                    {
                        switch( data->Ime.InputScreenType )
                        {
                        case TEXT_DISPLAY_SCREEN:
                            /* if the editor is phone book input, then control will send to phone book */
                            if( data->editor_data.edtInPbk == 1 )
                            {
                                SEND_EVENT (win, E_EDITOR_DEINIT, INFO_TOPREV_EDT, NULL);
                            }
                            else
                            {
                                edtSymbol( data->input_edt, ecUp );
                                /* Draw the other area */
                                DisplayOtherArea( data );
                            }
                            break;
                        case PINYIN_INPUT_SCREEN:
                        case WORD_ASSOCIATION_SCREEN:
                            IMECandidatePageUp(&data->Ime);
                            data->HighlightedCandidate[0] = data->wcCandidates[data->Ime.CandidateCursor];
                            winShow(data->input_win);
                            break;
                        default:
                            break;
                        }
                    }
                    break;
                case STROKE_INPUT_MODE:
                    {
                        switch( data->Ime.InputScreenType )
                        {
                        case TEXT_DISPLAY_SCREEN:
                            /* if the editor is phone book input, then control will send to phone book */
                            if( data->editor_data.edtInPbk == 1 )
                            {
                                SEND_EVENT (win, E_EDITOR_DEINIT, INFO_TOPREV_EDT, NULL);
                            }
                            else
                            {
                                edtSymbol( data->input_edt, ecUp );
                                /* Draw the other area */
                                DisplayOtherArea( data );
                            }
                            break;
                        case STROKE_INPUT_SCREEN:
                        case WORD_ASSOCIATION_SCREEN:
                            IMECandidatePageUp(&data->Ime);
                            data->HighlightedCandidate[0] = data->wcCandidates[data->Ime.CandidateCursor];
                            winShow(data->input_win);
                            break;
                        default:
                            break;
                        }
                    }
                    break;
                case UPPERCASE_INPUT_MODE:
                case LOWERCASE_INPUT_MODE:
                case SHUZI_INPUT_MODE:
                    /* if the editor is phone book input, then control will send to phone book */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -