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

📄 mmieditor.c

📁 GSM手机设计软件代码
💻 C
📖 第 1 页 / 共 5 页
字号:
                                                {
                                                    win_show(data->edt_win); /* in order to update the Softkeys */
                                                }
                                            else
                                                {
                                                    edtShow(data->edt_edt);
                                                }
                                        }
                                }
                            else
                                {
                                    /* leave editor if buffer already empty */
                                    SEND_EVENT (win, E_EDITOR_DEINIT, INFO_KCD_RIGHT, NULL);
                                }
                            break;

                        case KCD_0: /* '+' key */
                            if (data->editor_data.mode NEQ READ_ONLY_MODE) /* ignore normal keys if in read-only mode */
                                {
                                    if (data->editor_data.hide)
                                        {
                                            /* in hidden mode do not allow entering of '+' */
                                            editor_hideClear(data); /* remove the '0' */
                                        }
                                    else
                                        {
                                            edtChar(data->edt_edt,ecBack); /* remove the '0' */
                                            edtChar(data->edt_edt,'+');    /* insert the '+' */
                                            if (data->editor_data.min_enter > 0)
                                                {
                                                    win_show(data->edt_win); /* in order to update the Softkeys */
                                                }
                                            else
                                                {
                                                    edtShow(data->edt_edt);
                                                }
                                      }
                                }
                            break;

                        default:
            {
              // change the Lowercase to Uppercase and visa-versa
              //only possible in Alpha mode (SH - or format mode)
                            if (data->editor_data.mode EQ ALPHA_MODE || data->editor_data.mode EQ FORMAT_MODE)
                            {
                if (UPPER_CASE EQ FALSE)
                {
                    TRACE_EVENT("UPPER_CASE EQ FALSE");
                  UPPER_CASE = TRUE;
                  upCase = FALSE;
                  displaySoftKeys_edition (TxtLowercase ,TxtNull,TxtNull);
                }
                else
                {
                    TRACE_EVENT("UPPER_CASE EQ TRUE");
                  UPPER_CASE = FALSE;
                  upCase = TRUE;
                  displaySoftKeys_edition (TxtUppercase ,TxtNull,TxtNull);
                }
                if (data->editor_data.mode NEQ FORMAT_MODE) // SH - for format mode, don't erase the character
                  edtChar(data->edt_edt,ecBack);
                            }


                        }
                            return MFW_EVENT_CONSUMED; /* we don't handle other long presses here */


                        }
                }
            else
                {
                    switch (keyboard->code)
                        {
                        case KCD_CALL:
                            SEND_EVENT (win, E_EDITOR_DEINIT, INFO_KCD_CALL, NULL);                        	
                        	break;
                        case KCD_MNURIGHT:
                        case KCD_MNUUP:
                      if (data->editor_data.mode EQ READ_ONLY_MODE)
                              edtChar(data->edt_edt,ecUp);
              else if (!data->editor_data.hide)       // SH - key not available in hide mode
                {

                /* SH - format mode, skip over fixed characters */

                                if (data->editor_data.mode EQ FORMAT_MODE)  // formatted input
                                  {
                                  TRACE_EVENT("MNUUP");
                  editCharFindNext(ecRight);  // Insert character & move cursor forward once
                                    }

                /* end of format mode modification */

                              else
                                {
                                edtChar(data->edt_edt,ecRight);
                                }
                }

				edtShow(data->edt_edt);
				break;
				case KCD_MNULEFT:
				case KCD_MNUDOWN:
				if (data->editor_data.mode EQ READ_ONLY_MODE)
					edtChar(data->edt_edt,ecDown);
				else if (!data->editor_data.hide)       // SH - key not available in hide mode
				{
	                /* SH - format mode, skip over fixed characters */
					if (data->editor_data.mode EQ FORMAT_MODE)  	// formatted input
	                                  editFindPrev();             	// find previous non-fixed character

	                /* end of format mode modification */
	                else
	                {
						edtChar(data->edt_edt,ecLeft);
	                }
				}
                edtShow(data->edt_edt);
				break;

				case KCD_MNUSELECT:
				case KCD_LEFT:
				if (strlen(data->editor_data.editor_attr.text) < data->editor_data.min_enter)
				{
                                    /* entered less than the required number of chars */
                                    if (data->editor_data.AlternateLeftSoftKey NEQ TxtNull)
                                        {
                                            /* an alternate softkey were defined: execute it*/
                                            SEND_EVENT (win, E_EDITOR_DEINIT, INFO_KCD_ALTERNATELEFT, NULL);
                                        }
                                }
                            else if (data->editor_data.LeftSoftKey NEQ TxtNull)
                                {
                                    /* left Softkey is enabled (and entered sufficient number of chars): execute it */
                                    //KGT
                                    /* get the orginal text back into the editor instead of the
                                       hide buffer ( only filled with '*') */
            if (data->editor_data.hide)
          editor_hideTerminate(data);
                                    //end KGT
                                    SEND_EVENT (win, E_EDITOR_DEINIT, INFO_KCD_LEFT, NULL);
                                }
                            else
                                {
            						//GW-SPR#1035-Added SAT changes from 33x build.
            						/*NM, 090702
                                	  in case of long labels (>14chars; when it doesnt fit on the first line)
                                	  so we open a second editor and return by any keypress
                                	 */
                                    if (over_length_label EQ TRUE)
								  	{
										SEND_EVENT (win, E_EDITOR_DEINIT, INFO_KCD_RIGHT, NULL);
									}
                                }
                            break;

                        case KCD_HUP:                        	
                            if (data->editor_data.RightSoftKey NEQ TxtNull)
                                {
                                    /* Right softkey is enabled: execute it */
                                    SEND_EVENT (win, E_EDITOR_DEINIT, INFO_KCD_HUP, NULL);
                                }
                            break;

                        case KCD_RIGHT:                        	
                            if (data->editor_data.mode NEQ READ_ONLY_MODE) /* ignore clear key if in read-only mode */
                                {
                                    if(data->editor_data.editor_attr.text[0] NEQ '\0')
                                        {
                                            /* buffer is not empty, delete the char before the cursor */
                                            //KGT
                                            if ( data->editor_data.hide )
                                                editor_hideClear(data);
                                            else
                                                //end KGT
                                                {

                                              /* SH - format mode, skip over fixed characters */

                                              if (data->editor_data.mode EQ FORMAT_MODE)          // SH - formatted input
                                                {
                                                switch (editFindPrev())                 // Skip over fixed characters
                                                  {
                                                  case 1:
                                                    edtChar(data->edt_edt,' ');           // overwrite with space
                                                    edtChar(data->edt_edt,ecLeft);          // Move cursor left again
                                                    break;
                                                  case 2:
                                                    SEND_EVENT (win, E_EDITOR_DEINIT, INFO_KCD_RIGHT, NULL);  // Exit editor
                                                    break;
                                                  case 3:
                                                    edtChar(data->edt_edt,ecRight); // Last character - shorten string
                                                    edtChar(data->edt_edt,ecBack);
                                                    break;
                                                  }

                                                }

                                              /* end of format mode modification */

                                              else
                                                {
                                                    edtChar(data->edt_edt,ecBack);
                                                }
                                                if (data->editor_data.min_enter > 0)
                                                    {
                                                        win_show(data->edt_win); /* in order to update the Softkeys */
                                                    }
                                                else
                                                    {
                                                        edtShow(data->edt_edt);
                                                    }
                                                }
                                        }
                                    else
                                        {
                                            /* leave editor if buffer already empty */
                                            SEND_EVENT (win, E_EDITOR_DEINIT, INFO_KCD_RIGHT, NULL);
                                        }
                                }
                                else
                                         SEND_EVENT (win, E_EDITOR_DEINIT, INFO_KCD_RIGHT, NULL);

                            break;
#ifdef EASY_TEXT_ENABLED
                            case (KCD_HASH):
                          { if (AllowPredText == TRUE)
                              if (FFS_flashData.PredTextAvailable == TRUE)
                              {
                                FFS_flashData.PredTextSelected = TRUE;
                                win_show(data->edt_win);
                                break;
                              }

                            {
                              editEventKey(event,keyboard);
                                       if (data->editor_data.min_enter > 0)
                                       {
                                          win_show(data->edt_win); /* in order to update the Softkeys */
                                       }
                                       else
                                       {
                                          edtShow(data->edt_edt);
                                       }
                            }
                          }
                            break;
#endif
                        default: /* any key */
                            if (data->editor_data.mode NEQ READ_ONLY_MODE) /* ignore normal keys if in read-only mode */
                                {
                                        {
                                          /* SH - format mode, setup pointers to format string & index */

                                            if (data->editor_data.mode EQ FORMAT_MODE)
                                              {
                                              setFormatPointers (data->editor_data.FormatString, &(data->editor_data.formatIndex),
                                                &(data->editor_data.fieldIndex));
                                              }

                                            /* End of format mode modification */

						  editEventKey(event,keyboard);
                                            
                                            if (data->editor_data.min_enter > 0)
                                                {
                                                    win_show(data->edt_win); /* in order to update the Softkeys */
                                                }
                                            else
                                                {
                                                    edtShow(data->edt_edt);
                                                }
                                    	}
	                              }
                                /*NM, 090702
                                  in case of long labels (>14chars; when it doesnt fit on the first line)
                                  so we open a second editor and return by any keypress
                                 */
								  else
								  {
								  	if (over_length_label EQ TRUE)
								  	{
										SEND_EVENT (win, E_EDITOR_DEINIT, INFO_KCD_RIGHT, NULL);
									}
                            }
                            break;
                        }
                }
         
            break;
		//GW Removed T9 code.

            /*  E_PIN_SECURITY entering
             *
             */

        case E_PIN_SECURITY:

                    switch (keyboard->code)
                        {
                        case KCD_MNUUP:
                            break;

                        case KCD_MNUDOWN:
                            break;

                  case KCD_STAR:

              //only possible when the first digit is a '*'
              if (strlen(data->editor_data.editor_attr.text) EQ 0 && data->editor_data.hide)
              {
                data->ss_string = TRUE;
                //the string should be visible on screen
                data->editor_data.hide = FALSE;

                editEventKey(event,keyboard);
              }


                    break;

                  case KCD_HASH:

              if(data->ss_string)
              {
                  T_MFW_SS_RETURN ssRes;

                  editEventKey(event,keyboard);

                ssRes = ss_check_ss_string((UBYTE*)data->editor_data.editor_attr.text);
                switch (ssRes)
                {
                  case MFW_SS_MMI:
                    get_imei((char*)data->imei);
                    showIMEI(win,(char*)data->imei);
                    editor_hideClearAll(data);

                    //set back to the default
                    data->ss_string = FALSE;

                    // go back in the hide mode
                    data->editor_data.hide = TRUE;

                    return MFW_EVENT_CONSUMED;
                }

              }
                else if (strlen(data->editor_data.editor_attr.text) >= data->editor_data.min_enter)
                            {
                    if (data->editor_data.hide)
                    editor_hideTerminate(data);

⌨️ 快捷键说明

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