A tip to debug Draw() function of a control class

in
Platforms:

A custom contral generally overrides the CCoeControl::Draw() method to implement its own drawing stuff. However, when stepping into the code with the debugger, the result of each command is not displayed immediatly on screen because of the cache mechanism implemented by the window server.

Happily enough, you can get rid of this behaviour, and have each drawing function being rendered immediatly on screen. Add the following code in your AppUi::ConstructL():

#ifdef _DEBUG
iEikonEnv->WsSession().SetAutoFlush(ETrue);
#endif

This force each Graphic Context draw commands to show up immediately, rather than when the window server client buffer is next flushed.

This means you can step through the draw code and see the effect each line is having. However, you must ensure this line does not make it into released software as it has efficiency implications.


A tip to debug Draw() function of a control class

Note that you can also achieve this by using the ctrl-alt-shift F hotkey in the emulator.

For other available hotkeys, check http://www3.symbian.com/faq.nsf/0/0D849BDCF87A3B8F80256A570051B96E?OpenDocument

A tip to debug Draw() function of a control class

Cool!! I was fustrated because of this

Thanks Ashfaq Ghori