//----------------------------------------------------------------------------- // Purpose: //----------------------------------------------------------------------------- bool CDispPaintMgr::Paint( SpatialPaintData_t &spatialData, bool bAutoSew ) { // Setup painting. if ( !PrePaint( spatialData ) ) return false; // Handle painting. if ( !DoPaint( spatialData ) ) return false; // Finish painting. if ( !PostPaint( bAutoSew ) ) return false; // Successful paint operation. return true; }
XU32 XDomTable::Paint(DRAWCONTEXT *pDraw) { //XString8 str=FindAttrib(XEAB::ID,""); //if(str=="last") // int a=0; if(m_nWidth<=0) return 0; if(m_nPosX>=pDraw->paint.right|| m_nPosX+m_nWidth<=pDraw->paint.left|| m_nPosY>=pDraw->paint.bottom|| m_nPosY+m_nHeight<=pDraw->paint.top) return 0; XU32 ss=PrePaint(pDraw); XRect rect(m_nPosX,m_nPosY,m_nPosX+m_nWidth,m_nPosY+m_nHeight); int bd=FindAttrib(XEAB::BORDER,0); XU8 nType=FindAttrib(XEAB::FRAME,XEnumFrame::BOX); XU8 bCollapse=pDraw->bCollapse; pDraw->bCollapse=FindAttrib(XEAB::BORDER_COLLAPSE,0); int nr=pDraw->SPACING; pDraw->SPACING=XMAX(FindAttrib(XEAB::CELLSPACING,1),0); XU8 d=pDraw->TABBORDER; pDraw->TABBORDER=bd; XRect ar=XRect(rect.left,rect.top,rect.right,rect.bottom); PaintBack(pDraw,ar,XTRUE); XU32 s=HandleChild(XDO_PAINT_TABLE,(XU32)pDraw,0); pDraw->bCollapse=bCollapse; pDraw->TABBORDER=d; if(nType==XEF::VOID_X) bd=0; if(bd>0) { XGraphics*pg=pDraw->pDraw; //pDraw->Save(); XColor cc(pDraw->DCBACK); XColor dc(cc); dc.Dark(60); cc.Dark(30); int bx=m_nPosX,by=m_nPosY; int ex=m_nPosX+m_nWidth-1,ey=m_nPosY+m_nHeight-1; for(int i=0;i<bd;i++) { pg->SetColor(cc); switch(nType) { case XEF::BOX: case XEF::ABOVE: case XEF::BORDER: case XEF::HSIDES: pg->DrawLine(bx,by,ex,by); break; } switch(nType) { case XEF::BORDER: case XEF::BOX: case XEF::VSIDES: case XEF::LHS: pg->DrawLine(bx,by,bx,ey); break; } pg->SetColor(dc); switch(nType) { case XEF::BORDER: case XEF::BOX: case XEF::VSIDES: case XEF::RHS: pg->DrawLine(ex,by,ex,ey); break; } switch(nType) { case XEF::BORDER: case XEF::BOX: case XEF::HSIDES: case XEF::BELOW: pg->DrawLine(bx,ey,ex,ey); break; } cc.Bright(3); dc.Bright(3); bx++; by++; ex--; ey--; } //cc.Dark(20); /*pDraw->pDraw->DrawFrame( XRect(m_nPosX,m_nPosY,m_nPosX+m_nWidth,m_nPosY+m_nHeight), cc,bd,XTRUE);*/ // pDraw->Restore(); } pDraw->SPACING=nr; PaintBorder(pDraw,ar); EndPaint(pDraw); //if(bSave) // pDraw->Restore(); return s; }