常见UI组件 3.4.2菜单窗格 菜单窗格的内容可能也需要根据应用程序的 状态更改。 使菜单项可用或不可用的的函数是 CEikMenuPane:SetItemDimmed(O。在UIQ中, 用ETrue调用这个函数,导致该项保留在菜单 中,但是它显示为浅灰色。在Series60中, 为了保存屏幕空间并使菜单导航更快,该菜 单项被移除。再次用EFalse调用该函数取消 浅灰色或导致它重新出现
11 3.4.2 菜单窗格 菜单窗格的内容可能也需要根据应用程序的 状态更改。 使菜单项可用或不可用的的函数是 CEikMenuPane::SetItemDimmed()。在UIQ中, 用ETrue调用这个函数,导致该项保留在菜单 中,但是它显示为浅灰色。在Series 60中, 为了保存屏幕空间并使菜单导航更快,该菜 单项被移除。再次用EFalse调用该函数取消 浅灰色或导致它重新出现。 常见UI组件
常见UI组件 另一方面,CEikMenuPane:DeleteMenuItem() 完全移除菜单项, CEikMenuPane::AddMenuItemL(O添加某一项。 这两个函数都具有允许同时添加或删除多个 菜单项的变量。注意,UIQ淘汰了动态添加和 移除菜单项,因为这可能使用户混淆;相反, 应该设置浅灰色和取消浅灰色。如果用户选 择浅灰色菜单项,可以选择使用解释为什么 该项不可用的提示信息
12 另一方面,CEikMenuPane::DeleteMenuItem() 完全移除菜单项, CEikMenuPane::AddMenuItemL()添加某一项。 这两个函数都具有允许同时添加或删除多个 菜单项的变量。注意,UIQ淘汰了动态添加和 移除菜单项,因为这可能使用户混淆;相反, 应该设置浅灰色和取消浅灰色。如果用户选 择浅灰色菜单项,可以选择使用解释为什么 该项不可用的提示信息。 常见UI组件
常见UI组件 在app UI的DynInitMenuPaneL(O实现中对菜单项进 行添加、删除、设置浅灰色和取消浅灰色。这个 函数正好在菜单窗格显示之前被框架调用。对于 Series60的拥有菜单栏的对话框, DynInitMenuPaneL(O由该对话框而不是由app UI 实现。CAknDialog定义一个为空的 DynInitMenuPaneL()函数,但是CAknForm.重写它, 以设置不需要的项为浅灰色
13 在app UI的DynInitMenuPaneL()实现中对菜单项进 行添加、删除、设置浅灰色和取消浅灰色。这个 函数正好在菜单窗格显示之前被框架调用。对于 Series 60的拥有菜单栏的对话框, DynInitMenuPaneL()由该对话框而不是由app UI 实现。CAknDialog定义一个为空的 DynInitMenuPaneL()函数,但是CAknForm重写它, 以设置不需要的项为浅灰色。 常见UI组件
常见UI组件 菜单窗格中的相关项可以使用分隔符分组。为 此,对于分隔符之前的MENU ITEM,在菜单窗 格的资源定义中使用如下代码: flags=EEikMenuItemSeparatorAfter; Series60和UIQ支持该标志。uikon.hrh中的其 他菜单项标志定义 EEikMenuItemSeparatorAftere 级联菜单窗格是另一个窗格内的窗格,如图 3.4所示
14 菜单窗格中的相关项可以使用分隔符分组。为 此,对于分隔符之前的MENU_ITEM,在菜单窗 格的资源定义中使用如下代码: flags=EEikMenuItemSeparatorAfter; Series 60和UIQ支持该标志。uikon.hrh中的其 他菜单项标志定义 EEikMenuItemSeparatorAfter。 级联菜单窗格是另一个窗格内的窗格,如图 3.4所示。 常见UI组件
常见UI组件 First item Cut Second item Copy Third item Paste Fourth item Fifth item Sixth item Select Cancel 级联菜单窗格由MENU ITEM的cascade字段定义 由于它们增加了复杂性,所以UIQ淘汰了它们 的使用
15 级联菜单窗格由MENU_ITEM的cascade字段定义。 由于它们增加了复杂性,所以UIQ淘汰了它们 的使用。 Cut Copy Paste First item Second item Third item Fourth item Fifth item Sixth item Select Cancel 常见UI组件