Creating and adding an icon to an S60 3rd Edition application
July 18, 2008 at 6:44 pm | In Uncategorized | Leave a CommentTags: Sample codes, Symbian c++
Overview
This code example describes how to create and add an icon to an S60 3rd Edition application.
In order to create SVG icons, you must have a suitable graphics editor, for example, Inkscape.
This snippet can be self-signed.
Steps
1. Create an SVG icon on a 48-x-48-pixel canvas. You can test the icon by building the HelloWorldBasic application (in S60Ex directory under the SDK) with your own icon.
2. Save the icon in the gfx folder of your application according to the standard Symbian directory structure guidelines.
3. Create group\icons_scalable_dc.mk to automatically convert the icon to a Symbian .mif file whenever the application is compiled:
ifeq (WINS,$(findstring WINS, $(PLATFORM))) ZDIR=$(EPOCROOT)epoc32\release\$(PLATFORM)\$(CFG)\Z else ZDIR=$(EPOCROOT)epoc32\data\z endif TARGETDIR=$(ZDIR)\resource\apps ICONTARGETFILENAME=$(TARGETDIR)\Application_aif.mif ICONDIR=..\gfx do_nothing : @rem do_nothing MAKMAKE : do_nothing BLD : do_nothing CLEAN : do_nothing LIB : do_nothing CLEANLIB : do_nothing RESOURCE : mifconv $(ICONTARGETFILENAME) \ /c32 $(ICONDIR)\icon.svg FREEZE : do_nothing SAVESPACE : do_nothing RELEASABLES : @echo $(ICONTARGETFILENAME) FINAL : do_nothing
Note: When editing the makefile, make sure that you use tabulators instead of spaces. (Otherwise you get the error: “ICONS_SCALABLE_DC.MK:25: *** missing separator. Stop.”)
4. Edit group\bld.inf to contain the makefile created above:
#ifdef EKA2 //3rd Edition gnumakefile icons_scalable_dc.mk Application_S60_3rd_ed.mmp #else //1st and 2nd Edition Application_S60_2nd_ed.mmp #endif
Note: Remember to run “bldmake bldfiles” after editing the bld.inf file.
5. Edit the resource file of your application (data\[app].rss) to contain the icon:
#include <appinfo.rh> #include "Application.rls" // ---------------------------------------------------------------------------- // // r_application_localisable_app_info // // ---------------------------------------------------------------------------- RESOURCE LOCALISABLE_APP_INFO r_application_localisable_app_info { short_caption = STRING_r_app_caption_string; caption_and_icon = CAPTION_AND_ICON_INFO { caption = STRING_r_app_caption_string; number_of_icons = 1; icon_file = "\\resource\\apps\\Application_aif.mif"; }; }
Note: The localizable application information presented above is often located in data\[app]_loc.rss file. Experience has shown that an icon may not always show on the device if it is declared in the loc.rss file. If you decide to use .rss instead of loc.rss, make sure that you remove all references to loc.rss (especially the localisable_resource_file declaration in APP_REGISTRATION_INFO resource in data\[app]_reg.rss and RESOURCE section in group\[app].mmp).
Note: Ensure that App_reg.rss file contains a reference to the localizable application information:
localisable_resource_id = R_APPLICATION_LOCALISABLE_APP_INFO;
6. Edit the pkg file (sis\[app].pkg):
;Language - standard language definitions &EN,FI { "\Symbian\9.2\S60_3rd_FP1\Epoc32\Data\z\resource\apps\Application.rsc" "\Symbian\9.2\S60_3rd_FP1\Epoc32\Data\z\resource\apps\Application.R09" } -"!:\resource\apps\Application.rsc" ;Icon resources "\Symbian\9.2\S60_3rd_FP1\Epoc32\Data\z\resource\apps\Application_aif.mif" -"!:\resource\apps\Application_aif.mif"
No Comments Yet »
RSS feed for comments on this post. TrackBack URI
Leave a comment
Blog at WordPress.com. | Theme: Pool by Borja Fernandez.
Entries and comments feeds.