首页 > 其他分享 >全键盘模式,目前按center key 和LSK时候会进入menu 菜单,期望按center键进入编辑

全键盘模式,目前按center key 和LSK时候会进入menu 菜单,期望按center键进入编辑

时间:2023-04-03 19:08:21浏览次数:33  
标签:center keypad menu LSK label KEY softkey jvm keyCode


1.新增如下functrion: 

/***************************************************************************** 

  * FUNCTION 

  * jvm_dummy_key_hdlr 

  * DESCRIPTION 

  *  

  * PARAMETERS 

  * void 

  * RETURNS 

  * void 

  *****************************************************************************/ 

 void jvm_dummy_key_hdlr(void) 

 { 

  /*----------------------------------------------------------------*/ 

  /* Local Variables */ 

  /*----------------------------------------------------------------*/ 

  /*----------------------------------------------------------------*/ 

  /* Code Body */ 

  /*----------------------------------------------------------------*/  

 } 

 2.reg KEY_ENTER dummy func to make KEY_ENTER not to map 

 void jvm_register_keypad(kal_bool is_resume) 

 { 

  /*----------------------------------------------------------------*/ 

  /* Local Variables */ 

  /*----------------------------------------------------------------*/ 

  U16 keyCode = 0; 

  /*----------------------------------------------------------------*/ 

  /* Code Body */ 

  /*----------------------------------------------------------------*/ 

  endKeyPressed = KAL_FALSE; 

  ClearAllKeyHandler(); 

  clear_left_softkey(); 

  clear_right_softkey(); 

  register_default_hide_softkeys(); 

  /* enable 2 or 3 key simultanenous detection */ 

 #ifdef __TWO_KEY_DETECTION_SWITCHABLE__ 

  mmi_kbd_set_concurrent_mode(CONCURRENT_KEY_MODE_2_KEYS); 

 #elif defined(__THREE_KEY_DETECTION_SWITCHABLE__) 

  mmi_kbd_set_concurrent_mode(CONCURRENT_KEY_MODE_3_KEYS); 

 #endif  

 if (is_resume) 

  { 

  jvm_keypad_is_first_resume = KAL_TRUE; 

  jvm_keypad_ring_buffer_reader = 0; 

  jvm_keypad_ring_buffer_writer = 0; 

  jvm_keypad_ring_buffer_size = 0; 

  endKeyPressed = KAL_FALSE; 

  set_left_softkey_label((UI_string_type) jui_softkey_label[0]); 

  set_right_softkey_label((UI_string_type) jui_softkey_label[1]); 

  if (jvm_keypad_event_notifier_cb_ptr) 

  { 

  kal_uint16 keycode; 

  kal_uint16 keytype; 

  while (jvm_keypad_fetch(&keycode, &keytype)) 

  { 

  (*jvm_keypad_event_notifier_cb_ptr)(keycode, keytype); 

  } 

  } 

  } 

  else 

  { 

  int i; 

  jui_softkey_label[0][0] = 0; 

  jui_softkey_label[0][1] = 0; 

  jui_softkey_label[1][0] = 0; 

  jui_softkey_label[1][1] = 0; 

  set_left_softkey_label((UI_string_type) jui_softkey_label[0]); 

  set_right_softkey_label((UI_string_type) jui_softkey_label[1]); 

  jvm_keypad_is_first_enter = KAL_TRUE; 

  last_down_key_num = 0; 

  for (i = 0; i < KEY_DOWN_NUM; i++) 

  { 

  last_down_code[i] = -1; 

  } 

  } 

  jvm_keypad_flush(); 

 #if (defined(__MMI_QWERTY_KEYPAD_SUPPORT__) ) 

  mmi_frm_set_app_translate_key_handler(jvm_qwerty_keypad_handler); 

   

  /* reg KEY_ENTER dummy func to make KEY_ENTER not to map */ 

   SetKeyHandler((FuncPtr) jvm_dummy_key_hdlr, KEY_ENTER, KEY_EVENT_UP); 

  SetKeyHandler((FuncPtr) jvm_dummy_key_hdlr, KEY_ENTER, KEY_EVENT_DOWN);  

   

 #else 

  for (keyCode = 0; keyCode < MAX_KEYS; keyCode++) 

  { 

  SetKeyHandler((FuncPtr) jvm_normal_keypad_handler, keyCode, KEY_EVENT_UP); 

  SetKeyHandler((FuncPtr) jvm_normal_keypad_handler, keyCode, KEY_EVENT_DOWN); 

  SetKeyHandler((FuncPtr) jvm_normal_keypad_handler, keyCode, KEY_EVENT_REPEAT); 

  SetKeyHandler((FuncPtr) jvm_normal_keypad_handler, keyCode, KEY_EVENT_LONG_PRESS); 

  } 

 #endif  

 }

标签:center,keypad,menu,LSK,label,KEY,softkey,jvm,keyCode
From: https://blog.51cto.com/u_15170706/6167065

相关文章

  • Menu callback函数
    对于一般的函数来说,函数的编写和调用都是我们自己。但callback函数不是这样的,它是由我们编写但是不由我们调用,由我们将函数指针传给其他模块,再由其他模块通过我们传递的函数指针来调用我们编写的函数。 在menu5.2中,向其他模块传递callback函数的函数如下,传递的callback函数就......
  • Menu5.2运行机制分析总结
    同步机制分析示例代码对于任务管理采用了单向链表的管理方式,包含了创建、删除、添加、删除、搜索节点以及获取链表头和下一个节点的功能(在Menu5.2中,仅支持默认的)。这些操作涉及多线程并发操作,所以采用了互斥量(mutex)进行同步。当一个线程需要对链接表进行修改操作时,需要先对互斥量......
  • 【WPF】ContextMenu 控件
    ContextMenu无论定义在.cs或.xaml文件中,都不继承父级的DataContext,所以如果要绑定父级的DataContext,直接DataContext=“{Binding}”是行不通的不能绑父级,但是能绑资源 第一步:定义一个中间类用来做资源对象publicclassBindingProxy:Freezable{#regionOver......
  • Teamcenter_SOA开发:使用查询构建器查询数据
    Teamcenter中的查询构建器可以查询对象信息,今天使用ItemName这个查询来查询Teamcenter中的对象,并打印出对象的信息。搭建环境参见Teamcenter_SOA开发:使用SOA登录Teamcenter-huangym1-博客园(cnblogs.com)1//tcnx_projectexe.h2#pragmaonce3//MandatoryUFIn......
  • Teamcenter_SOA开发:使用SOA登录Teamcenter
    本文TeamcenterSOA使用C++参考SOA的例子进行编写,以下代码为登录Teamcenter,代码工程在Teamcenter四层环境下运行。SOA的库文件、样例文件、帮助文件在Teamcenter的安装包中可以找到。  运行以下bat文件打开vs后再打开工程,不然调试运行会报错:1cd/d%~dp02setUGII_......
  • iOS 音频播放后触发锁屏音乐样式和触发灵动岛音乐播放默认样式需要设置MPNowPlaying
    importMediaPlayerfuncsetNowPlayingInfo(){//.开启远程交互,只有开启这个才能进行远程操控UIApplication.shared.beginReceivingRemoteContr......
  • Vcenter6.7相关知识点
    什么操作是只有vcenter才能做的: 1:VM模板   2:RBAC基于角色的访问控制  3:更细的颗粒度的限制  4:Vmotion    5:动态资源分配   6:HA   7:FT ......
  • 上传jcenter的坑
     第一个坑要注册个人账号!非公司账号第二个坑:-bash:./gradlew:Permissiondenied</div>执行命令的权限不够,先执行如下命令赋予权限:chmod+xgradlew 回车执行后,再执行......
  • Mac开发_NSMenu
    1、创建1.1创建配置@property(nonatomic,strong)NSMenu*cus_menu;//创建_cus_menu=[[NSMenualloc]init];//设置标题_cus_menu.title=@"23456";NS......
  • Teamcenter_NX集成开发:UF_UGMGR_invoke_pdm_server函数的使用
    之前了解到通过UFUN函数UF_UGMGR_invoke_pdm_server可以调用TeamcenterITK函数,从而可以获取及编辑Teamcenter对象。UFUN中有样例代码,但是就是不知道怎么使用,今天下午看了......