80 const TParam& aParam, |
80 const TParam& aParam, |
81 const TRgb& aBackground, |
81 const TRgb& aBackground, |
82 TRect& aDrawn ) const |
82 TRect& aDrawn ) const |
83 { |
83 { |
84 FUNC_LOG; |
84 FUNC_LOG; |
|
85 TRect drawRect( aParam.iDrawRect ); |
|
86 |
85 if ( iPrevBrX == 0 ) |
87 if ( iPrevBrX == 0 ) |
86 { |
88 { |
87 const_cast<CNcsEditorCustomDraw*>(this)->iPrevBrX = aParam.iDrawRect.iBr.iX; |
89 const_cast<CNcsEditorCustomDraw*>(this)->iPrevBrX = drawRect.iBr.iX; |
88 } |
90 } |
89 |
91 |
90 // draw background if text selection is ongoing |
92 // draw background if text selection is ongoing |
91 if ( iEditor->SelectionLength() ) |
93 if ( !iEditor->IsPhysicsEmulationOngoing() ) |
92 { |
94 { |
93 iCustomDrawer->DrawBackground( aParam, aBackground, aDrawn ); |
95 iCustomDrawer->DrawBackground( aParam, aBackground, aDrawn ); |
94 } |
96 } |
95 else |
97 else |
96 { |
98 { |
97 aDrawn = aParam.iDrawRect; |
99 aDrawn = aParam.iDrawRect; |
98 } |
100 } |
99 |
101 |
100 if ( aParam.iDrawRect.iTl.iX < iPrevBrX ) |
102 if ( drawRect.iTl.iY == 0 ) |
|
103 { |
|
104 drawRect.iTl.iY = drawRect.Height() - iLineHeigth; |
|
105 } |
|
106 |
|
107 if ( drawRect.iTl.iX < iPrevBrX ) |
101 { |
108 { |
102 aParam.iGc.SetPenColor( iLineColor ); |
109 aParam.iGc.SetPenColor( iLineColor ); |
103 |
110 |
104 TInt margin( 0 ); |
111 TInt margin( 0 ); |
105 if ( aParam.iDrawRect.Height() < iLineHeigth || |
112 if ( drawRect.Height() < iLineHeigth || |
106 aParam.iDrawRect.Height() == iLineOffset ) |
113 drawRect.Height() == iLineOffset ) |
107 { |
114 { |
108 margin = 1; |
115 margin = 1; |
109 } |
116 } |
110 |
117 |
111 TRect currentRect( aParam.iDrawRect.iTl , TPoint( aParam.iDrawRect.iBr.iX, aParam.iDrawRect.iTl.iY + iLineOffset - margin )); |
118 TRect currentRect( drawRect.iTl , TPoint( drawRect.iBr.iX, drawRect.iTl.iY + iLineOffset - margin )); |
112 |
119 |
113 while ( currentRect.iBr.iY <= aParam.iDrawRect.iBr.iY ) |
120 while ( currentRect.iBr.iY <= drawRect.iBr.iY ) |
114 { |
121 { |
115 if ( currentRect.iTl.iY >= aParam.iDrawRect.iTl.iY ) |
122 if ( currentRect.iTl.iY >= drawRect.iTl.iY ) |
116 { |
123 { |
117 aParam.iGc.DrawLine( TPoint( currentRect.iTl.iX, currentRect.iBr.iY), currentRect.iBr ); |
124 aParam.iGc.DrawLine( TPoint( currentRect.iTl.iX, currentRect.iBr.iY), currentRect.iBr ); |
118 } |
125 } |
119 currentRect.Move( 0, iLineHeigth ); |
126 currentRect.Move( 0, iLineHeigth ); |
120 } |
127 } |
121 const_cast<CNcsEditorCustomDraw*>(this)->iPrevBrX = aParam.iDrawRect.iBr.iX; |
128 const_cast<CNcsEditorCustomDraw*>(this)->iPrevBrX = drawRect.iBr.iX; |
122 } |
129 } |
123 } |
130 } |
124 |
131 |
125 // --------------------------------------------------------------------------- |
132 // --------------------------------------------------------------------------- |
126 // CNcsEditorCustomDraw::DrawLineGraphics |
133 // CNcsEditorCustomDraw::DrawLineGraphics |