View MBM

To see more JOM Software applications, click here.

Installation

Download: view_mbm.py (v1.30)

PyS60 1.9.5: copy script into e:\data\python and run from Python Shell Script

PyS60 1.4.5:  copy script into e:\python and run from Python Shell Script

Introduction

I wanted to reuse system icons for a custom checkbox in custom list. But where are the icons?

In theory developers can use built-in icons from avkon2.mbm and avkon2.mif files. Problem is that this is not too well documented and the contents seems to vary between S60 releases. Good candidate for compatibility issues!

After too many experiments and google searches, I finally had no choice, but to write this helper application. I hope it will save time for others.

Note: it seems that MIF graphics are supported in 3rd and 5th Edition devices, too! Those files contain Scalable Vector Graphics files (SVG-T file format), which look better than MBM.

Sample Code

Some of the things you can find inside:
  • What and where are some of the built-in MBM and MIF files
  • How to find MBM and MIF files dynamically at runtime
  • How to find more MBM files under S60 Windows SDK
  • How to count number of items inside MBM and MIF file, at runtime and at Windows SDK
  • How to get graphics out from MBM and MIF
  • How to create a listbox with icons
  • How to handle icon mask
  • Error codes: [Errno -25] KErrEof is actually same as "AknIcon 5" panic
  • Some issues with MBM and MIF compatibility
  • Versioning between PyS60 1.4.5 and 1.9.5

Version History

Version 1.30, release date 2009-06-01

  • Support MIF files
  • Some variation between PyS60 1.4.5 and 1.9.5
  • Thanx to wizard_hu_ and Marcelo Barros for MIF help !!!
  • Tested with 5800 XM (PyS60 1.4.5 and 1.9.5)
  • Tested with N82 (PyS60 1.4.5 and 1.9.5)
  • Tested with S60 3.1 emulator (PyS60 1.4.5 and 1.9.5)

Version 1.10, release date 2009-05-26

  • Dynamic MBM file scanning in z:\resource\apps directory
  • Dynamic count of graphics items inside MBM file
  • Better error handling
  • Tested with 5800 XM (PyS60 1.9.5 and PyS60 1.4.5)
  • Tested with N82 (PyS60 1.4.5)
  • Tested with S60 3.1 emulator (PyS60 1.4.5)

Version 1.00, release date 2009-03-30

  • Initial release
  • Tested with S60 3.1 emulator (PyS60 1.4.5)
  • Tested with N82 (PyS60 1.4.5)