/** * Draws the joints between menu pane and menu pane title into the graphics * context aGc, in the rectangle aRect. */ EXPORT_C void LafMenuPane::DrawTitlePaneJoint(const MLafEnv& aLafEnv, const CCoeControl& aMenuPane, CWindowGc& aGc, const CCoeControl* aMenuPaneTitle, const TRect& aInnerRect) { PrepareGcForDrawingItems(aLafEnv, aMenuPane, aGc); aGc.SetPenStyle(CGraphicsContext::ENullPen); aGc.DrawRect(aInnerRect); if (aMenuPaneTitle) {// pane has title, so make sure they are joined up correctly const TPoint titlePos = aMenuPaneTitle->Position(); const TInt width = aMenuPaneTitle->Size().iWidth; const TPoint position = aMenuPane.Position(); // left straight join aGc.SetPenStyle(CGraphicsContext::ESolidPen); aGc.SetPenColor(aLafEnv.ControlColor(EColorMenuPaneBackground, aMenuPane)); // get rid of the gray bit of border aGc.DrawLine(TPoint(titlePos.iX-position.iX+5,4),TPoint(titlePos.iX-position.iX+width-5,4)); // get rid of the black bit of border aGc.DrawLine(TPoint(titlePos.iX-position.iX+4,0),TPoint(titlePos.iX-position.iX+width-4,0)); aGc.DrawLine(TPoint(titlePos.iX-position.iX+4,1),TPoint(titlePos.iX-position.iX+width-4,1)); aGc.DrawLine(TPoint(titlePos.iX-position.iX+5,4),TPoint(titlePos.iX-position.iX+width-5,4)); aGc.DrawLine(TPoint(titlePos.iX-position.iX+MenuPaneSeparatorMargin() ,0),TPoint(titlePos.iX-position.iX+width-MenuPaneSeparatorMargin(),0)); aGc.DrawLine(TPoint(titlePos.iX-position.iX+MenuPaneSeparatorMargin() ,1),TPoint(titlePos.iX-position.iX+width-MenuPaneSeparatorMargin(),1)); aGc.DrawLine(TPoint(titlePos.iX-position.iX+MenuPaneSeparatorMargin() ,2),TPoint(titlePos.iX-position.iX+width-MenuPaneSeparatorMargin(),2)); aGc.DrawLine(TPoint(titlePos.iX-position.iX+MenuPaneSeparatorMargin() ,3),TPoint(titlePos.iX-position.iX+width-MenuPaneSeparatorMargin(),3)); // draw in black line seperator aGc.SetPenColor(KRgbBlack); aGc.DrawLine(TPoint(titlePos.iX-position.iX +MenuPaneSeparatorMargin(),0),TPoint(titlePos.iX-position.iX+width-3-MenuPaneSeparatorMargin(),0)); TGulBorder::TColors borderColors; GetBorderColors(borderColors, aLafEnv, *aMenuPaneTitle); aGc.SetPenColor(borderColors.iMidlight); aGc.DrawLine(TPoint(titlePos.iX-position.iX+1,0),TPoint(titlePos.iX-position.iX+4,0)); aGc.DrawLine(TPoint(titlePos.iX-position.iX+1,1),TPoint(titlePos.iX-position.iX+4,1)); if (aMenuPaneTitle->Rect().iBr.iX==aMenuPane.Rect().iBr.iX) {// right straight join aGc.SetPenColor(borderColors.iMid); aGc.DrawLine(TPoint(aInnerRect.iBr.iX,0),TPoint(aInnerRect.iBr.iX,5)); aGc.DrawLine(TPoint(aInnerRect.iBr.iX+1,0),TPoint(aInnerRect.iBr.iX+1,4)); aGc.DrawLine(TPoint(aInnerRect.iBr.iX+2,0),TPoint(aInnerRect.iBr.iX+2,3)); } else {// right corner join TInt xPos=titlePos.iX-position.iX+width-4; aGc.SetPenColor(borderColors.iMid); aGc.DrawLine(TPoint(xPos,0),TPoint(xPos,4)); aGc.DrawLine(TPoint(xPos+1,0),TPoint(xPos+1,3)); aGc.DrawLine(TPoint(xPos+2,0),TPoint(xPos+2,2)); } } }
// ----------------------------------------------------------------------------- // CTestSDKTouchPane::TestTPReduceRectL // ReduceRect test method function. // ----------------------------------------------------------------------------- // TInt CTestSDKTouchPane::TestTPReduceRectL( CStifItemParser& /*aItem*/ ) { // Print to UI _LIT( Ktestsdksearchfield, "testsdktouchpane" ); _LIT( KTestSFSetSkinEnabledL, "In TestTPReduceRectL" ); TestModuleIf().Printf( 0, Ktestsdksearchfield, KTestSFSetSkinEnabledL ); // Print to log file iLog->Log( KTestSFSetSkinEnabledL ); CAknTouchPane* touchPane = CAknTouchPane::NewL( R_TOUCHPANE ); CleanupStack::PushL( touchPane ); CCoeControl* container = new( ELeave ) CCoeControl(); CleanupStack::PushL( container ); TRect rect = container->Rect(); touchPane->ReduceRect( rect ); CleanupStack::Pop( container ); CleanupStack::PopAndDestroy( touchPane ); return KErrNone; }