void RectArea::Draw(nsIFrame* aFrame, nsRenderingContext& aRC) { if (mHasFocus) { if (mNumCoords >= 4) { nscoord x1 = nsPresContext::CSSPixelsToAppUnits(mCoords[0]); nscoord y1 = nsPresContext::CSSPixelsToAppUnits(mCoords[1]); nscoord x2 = nsPresContext::CSSPixelsToAppUnits(mCoords[2]); nscoord y2 = nsPresContext::CSSPixelsToAppUnits(mCoords[3]); NS_ASSERTION(x1 <= x2 && y1 <= y2, "Someone screwed up RectArea::ParseCoords"); aRC.DrawLine(x1, y1, x1, y2); aRC.DrawLine(x1, y2, x2, y2); aRC.DrawLine(x1, y1, x2, y1); aRC.DrawLine(x2, y1, x2, y2); } } }
void DefaultArea::Draw(nsIFrame* aFrame, nsRenderingContext& aRC) { if (mHasFocus) { nsRect r = aFrame->GetRect(); r.MoveTo(0, 0); nscoord x1 = r.x; nscoord y1 = r.y; const nscoord kOnePixel = nsPresContext::CSSPixelsToAppUnits(1); nscoord x2 = r.XMost() - kOnePixel; nscoord y2 = r.YMost() - kOnePixel; // XXX aRC.DrawRect(r) result is ugly, that's why we use DrawLine. aRC.DrawLine(x1, y1, x1, y2); aRC.DrawLine(x1, y2, x2, y2); aRC.DrawLine(x1, y1, x2, y1); aRC.DrawLine(x2, y1, x2, y2); } }
void PolyArea::Draw(nsIFrame* aFrame, nsRenderingContext& aRC) { if (mHasFocus) { if (mNumCoords >= 6) { nscoord x0 = nsPresContext::CSSPixelsToAppUnits(mCoords[0]); nscoord y0 = nsPresContext::CSSPixelsToAppUnits(mCoords[1]); nscoord x1, y1; for (PRInt32 i = 2; i < mNumCoords; i += 2) { x1 = nsPresContext::CSSPixelsToAppUnits(mCoords[i]); y1 = nsPresContext::CSSPixelsToAppUnits(mCoords[i+1]); aRC.DrawLine(x0, y0, x1, y1); x0 = x1; y0 = y1; } x1 = nsPresContext::CSSPixelsToAppUnits(mCoords[0]); y1 = nsPresContext::CSSPixelsToAppUnits(mCoords[1]); aRC.DrawLine(x0, y0, x1, y1); } } }
void nsTableCellFrame::DecorateForSelection(nsRenderingContext& aRenderingContext, nsPoint aPt) { NS_ASSERTION(GetStateBits() & NS_FRAME_SELECTED_CONTENT, "Should only be called for selected cells"); PRInt16 displaySelection; nsPresContext* presContext = PresContext(); displaySelection = DisplaySelection(presContext); if (displaySelection) { nsRefPtr<nsFrameSelection> frameSelection = presContext->PresShell()->FrameSelection(); if (frameSelection->GetTableCellSelection()) { nscolor bordercolor; if (displaySelection == nsISelectionController::SELECTION_DISABLED) { bordercolor = NS_RGB(176,176,176);// disabled color } else { bordercolor = LookAndFeel::GetColor(LookAndFeel::eColorID_TextSelectBackground); } nscoord threePx = nsPresContext::CSSPixelsToAppUnits(3); if ((mRect.width > threePx) && (mRect.height > threePx)) { //compare bordercolor to ((nsStyleColor *)myColor)->mBackgroundColor) bordercolor = EnsureDifferentColors(bordercolor, GetStyleBackground()->mBackgroundColor); nsRenderingContext::AutoPushTranslation translate(&aRenderingContext, aPt); nscoord onePixel = nsPresContext::CSSPixelsToAppUnits(1); aRenderingContext.SetColor(bordercolor); aRenderingContext.DrawLine(onePixel, 0, mRect.width, 0); aRenderingContext.DrawLine(0, onePixel, 0, mRect.height); aRenderingContext.DrawLine(onePixel, mRect.height, mRect.width, mRect.height); aRenderingContext.DrawLine(mRect.width, onePixel, mRect.width, mRect.height); //middle aRenderingContext.DrawRect(onePixel, onePixel, mRect.width-onePixel, mRect.height-onePixel); //shading aRenderingContext.DrawLine(2*onePixel, mRect.height-2*onePixel, mRect.width-onePixel, mRect.height- (2*onePixel)); aRenderingContext.DrawLine(mRect.width - (2*onePixel), 2*onePixel, mRect.width - (2*onePixel), mRect.height-onePixel); } } } }