void CTestRedrawHandler::RunL() { TWsRedrawEvent redraw; iWs.GetRedraw(redraw); iWs.RedrawReady(&iStatus); SetActive(); if (redraw.Handle()) { if(redraw.Rect().IsEmpty()) User::Leave(KErrGeneral); CTestWindowTreeNode* node = reinterpret_cast<CTestWindowTreeNode *>(redraw.Handle()); node->RedrawL(redraw); // reinterpret_cast<CTestWindowTreeNode *>(redraw.Handle())->RedrawL(redraw); } }
void CWsRedrawer::RunL() { // find out what needs to be done in response to the event TWsRedrawEvent redrawEvent; iClient->iWs.GetRedraw(redrawEvent); // get event CWindow* window = (CWindow*) (redrawEvent.Handle()); // get window if (window) { TRect rect = redrawEvent.Rect(); // and rectangle that needs redrawing // now do drawing iClient->iGc->Activate(window->Window()); window->Window().BeginRedraw(); window->Draw(rect); window->Window().EndRedraw(); iClient->iGc->Deactivate(); } // maintain outstanding request IssueRequest(); }