Avoid reserved IDs in Symbian resource file enumerations (Known Issue)
hamishwillee
(Talk | contribs) m (Hamishwillee - Add Abstract. Tidy wiki text.) |
|||
| (8 intermediate revisions by 2 users not shown) | |||
| Line 1: | Line 1: | ||
| − | [[Category: | + | [[Category:Symbian C++]][[Category:UI]] |
| − | [[Category: | + | {{Abstract|Symbian C++ apps that set resource file UI menu item command IDs and dialog item ID values of 0 will cause problems which may be hard to identify and debug.}} |
| − | + | {{ArticleMetaData <!-- v1.2 --> | |
| − | [[ | + | |sourcecode= <!-- Link to example source code (e.g. [[Media:The Code Example ZIP.zip]]) --> |
| − | + | |installfile= <!-- Link to installation file (e.g. [[Media:The Installation File.sis]]) --> | |
| − | + | |devices= <!-- Devices tested against - e.g. ''devices=Nokia 6131 NFC, Nokia C7-00'') --> | |
| − | + | |sdk= <!-- SDK(s) built and tested against (e.g. [http://linktosdkdownload/ Nokia Qt SDK 1.1]) --> | |
| − | + | ||
| − | | | + | |
|platform= S60 (all) | |platform= S60 (all) | ||
| − | |devices= | + | |devicecompatability= <!-- Compatible devices (e.g.: All* (must have GPS) ) --> |
| − | | | + | |dependencies= <!-- Any other/external dependencies e.g.: Google Maps Api v1.0 --> |
| − | | | + | |signing= <!-- Empty or one of Self-Signed, DevCert, Manufacturer --> |
| − | |creationdate=April 7, 2005, updated October 14, 2008 | + | |capabilities= <!-- Capabilities required by the article/code example (e.g. Location, NetworkServices. --> |
| − | | | + | |keywords= <!-- APIs, classes and methods (e.g. QSystemScreenSaver, QList, CBase --> |
| + | |language= <!-- Language category code for non-English topics - e.g. Lang-Chinese --> | ||
| + | |translated-by= <!-- [[User:XXXX]] --> | ||
| + | |translated-from-title= <!-- Title only --> | ||
| + | |translated-from-id= <!-- Id of translated revision --> | ||
| + | |review-by= <!-- After re-review: [[User:username]] --> | ||
| + | |review-timestamp= <!-- After re-review: YYYYMMDD --> | ||
| + | |update-by= <!-- After significant update: [[User:username]]--> | ||
| + | |update-timestamp= <!-- After significant update: YYYYMMDD --> | ||
| + | |creationdate= April 7, 2005, updated October 14, 2008 | ||
| + | |author= [[User:Technical writer 1]] | ||
| + | <!-- The following are not in current metadata --> | ||
| + | |id= TSS000199 | ||
}} | }} | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
==Detailed description== | ==Detailed description== | ||
| − | Menu item (RESOURCE MENU_ITEM) command IDs and dialog item (RESOURCE DLG_LINE) will cause problems which may be hard to identify and debug if 0 is used as the ID value. | + | Menu item ({{Icode|RESOURCE MENU_ITEM}}) command IDs and dialog item ({{Icode|RESOURCE DLG_LINE}}) will cause problems which may be hard to identify and debug if 0 is used as the ID value. |
| − | + | ||
==Solution== | ==Solution== | ||
| − | Always use a non-zero value for MENU_ITEM command IDs, because 0 is reserved for the | + | Always use a non-zero value for {{Icode|MENU_ITEM}} command IDs, because 0 is reserved for the {{Icode|EEikCmdCanceled}} command. |
| − | Similarly, a dialog's item (DLG_LINE) IDs must be non-zero. Dialog items with a zero ID will result in "Eikon-Dialog 3" panic, where 3 is listed as | + | Similarly, a dialog's item (DLG_LINE) IDs must be non-zero. Dialog items with a zero ID will result in "Eikon-Dialog 3" panic, where 3 is listed as {{Icode|EEikDialogPanicFocusableLineWithIdZero}}. |
Typically, applications define resource ID values as enumerations and a common mistake is to begin the enumeration from 0 (default), which leads to these hard-to-identify problems. | Typically, applications define resource ID values as enumerations and a common mistake is to begin the enumeration from 0 (default), which leads to these hard-to-identify problems. | ||
| + | |||
| + | <!-- Translation --> [[zh-hans:防止资源文件枚举值中出现保留ID值]] | ||
Latest revision as of 07:41, 12 March 2012
Symbian C++ apps that set resource file UI menu item command IDs and dialog item ID values of 0 will cause problems which may be hard to identify and debug.
Article Metadata
Compatibility
Article
Detailed description
Menu item (RESOURCE MENU_ITEM) command IDs and dialog item (RESOURCE DLG_LINE) will cause problems which may be hard to identify and debug if 0 is used as the ID value.
Solution
Always use a non-zero value for MENU_ITEM command IDs, because 0 is reserved for the EEikCmdCanceled command.
Similarly, a dialog's item (DLG_LINE) IDs must be non-zero. Dialog items with a zero ID will result in "Eikon-Dialog 3" panic, where 3 is listed as EEikDialogPanicFocusableLineWithIdZero.
Typically, applications define resource ID values as enumerations and a common mistake is to begin the enumeration from 0 (default), which leads to these hard-to-identify problems.

