Here's one of my (PhlIp
's) many unanswered questions on the MicroSoft
news servers: http://groups.google.com/groups?selm=63604d2.0312101102.36dde140%40posting.google.com
I sought a lint
program for MS Resource files, to detect GraphicalUserInterface
style errors. See the third list below.
And here's the answer:
This program reads VC++ Resource files, but only as VC++ writes them. Because this program detects syntax errors by faulting, run your resources thru VC++ first. This program is also case sensitive, and features these other good things:
It's a refactor away from using the VisitorPattern
The style is nearly perfectly portable CeePlusPlus
, but of course with a few Win32-only tweaks, and of course it has only been compiled and (ahem) tested using VC++6.
The program roughly detects these style errors:
- Button missing hotkey
- Duplicated Control hotkey
- Duplicated MenuItem? hotkey
- Missing & in Menu Label
- Missing accelerator prompt in Menu Label (the Ctrl+C thing on the right)
- Missing StringTable? help for MenuItem?
- Prompt at end of control list
- Prompt before control without tabstop
Further work should target the tooltips for toolbars, and the exact lettering of the accelerator prompts.
A new subsystem could detect layout errors, such as prompts not to the upper left of their target fields (locale permitting). But that would require another system to disable these errors when they become hyperactive.
Use this system if you have many dialogs expressed as raw resources (which you should not), or if you use text replacements on the resource files to localize them. In that case, the lint
targets (for 8-bit encodings) the result of replacing those strings. They would need different, unique &hotkeys and accelerator keys.