// Draw the contents of the widget. void ScintillaQt::paintEvent(QPaintEvent *e) { Surface *sw = Surface::Allocate(); if (!sw) return; paintState = painting; const QRect &qr = e->rect(); rcPaint.left = qr.left(); rcPaint.top = qr.top(); rcPaint.right = qr.right() + 1; rcPaint.bottom = qr.bottom() + 1; PRectangle rcText = GetTextRectangle(); paintingAllText = rcPaint.Contains(rcText); QPainter painter(qsb->viewport()); sw->Init(&painter); sw->SetUnicodeMode(CodePage() == SC_CP_UTF8); Paint(sw, rcPaint); delete sw; // If the painting area was insufficient to cover the new style or brace // highlight positions then repaint the whole thing. if (paintState == paintAbandoned) qsb->viewport()->update(); paintState = notPainting; }
void QAttribute::mousePressEvent(QGraphicsSceneMouseEvent *event) { QPointF point = this->mapToScene(event->lastScreenPos()); if (event->button()==Qt::RightButton){ ref->GetParentList()->SetReservedValue(0); menu->popup(point.toPoint()); } else { if (!selct) ref->DeselectAll(); setSelected(!selct); if ((!grabRefer->isEnableGrabber()) &&(GetTextRectangle()->contains(point))); } QGraphicsItem::mousePressEvent(event); }
void isiTapResults::adjustTableColumnWidth() { QRect rc; QHeader *header; QString qText; int nColumn, nRow, nWidth, nWtd; int nRows = IDC_CHAN->numRows(); for(nColumn=0; nColumn<5; ++nColumn) { header = IDC_CHAN->horizontalHeader(); qText = IDC_CHAN->text(0, nColumn); GetTextRectangle(IDC_CHAN,qText, rc); nWidth = header->sectionSize(nColumn); for(nRow=1; nRow<nRows; ++nRow) { qText = IDC_CHAN->text(0, nColumn); GetTextRectangle(IDC_CHAN,qText, rc); nWtd = rc.width()+4; if(nWidth < nWtd) nWidth = nWtd; } header->resizeSection(nColumn, nWidth); } }
// Set the extent of the vertical and horizontal scrollbars and return true if // the view needs re-drawing. bool QsciScintillaQt::ModifyScrollBars(int nMax,int nPage) { bool modified = false; QScrollBar *sb; int vNewPage = nPage; int vNewMax = nMax - vNewPage + 1; if (vMax != vNewMax || vPage != vNewPage) { vMax = vNewMax; vPage = vNewPage; modified = true; sb = qsb->verticalScrollBar(); sb->setMaximum(vMax); sb->setPageStep(vPage); } int hNewPage = GetTextRectangle().Width(); int hNewMax = (scrollWidth > hNewPage) ? scrollWidth - hNewPage : 0; int charWidth = vs.styles[STYLE_DEFAULT].aveCharWidth; sb = qsb->horizontalScrollBar(); if (hMax != hNewMax || hPage != hNewPage || sb->singleStep() != charWidth) { hMax = hNewMax; hPage = hNewPage; modified = true; sb->setMaximum(hMax); sb->setPageStep(hPage); sb->setSingleStep(charWidth); } return modified; }
void CDBPickView::DrawWindow(int nWindow, CDC *pDC) { CBrush WhiteBrush(RGB(255,255,255)); CBrush GrayBrush(RGB(192,192,192)); CBrush BlueBrush(RGB(0,0,128)); CPen WhitePen(PS_SOLID,1,RGB(255,255,255)); CPen DarkPen(PS_SOLID,1,RGB(0,0,0)); CPen BluePen(PS_SOLID,1,RGB(0,0,255)); CPen YellowPen(PS_SOLID,1,RGB(255,255,0)); int xw1=WaveformInfo[nWindow]->xw1; int xw2=WaveformInfo[nWindow]->xw2; int yw1=WaveformInfo[nWindow]->yw1; int yw2=WaveformInfo[nWindow]->yw2; int x1=WaveformInfo[nWindow]->x1; int x2=WaveformInfo[nWindow]->x2; int y1=WaveformInfo[nWindow]->y1; int y2=WaveformInfo[nWindow]->y2; long amin=WaveformInfo[nWindow]->amin; long amax=WaveformInfo[nWindow]->amax; CPen *oldPen=pDC->GetCurrentPen(); CFont *oldFont=pDC->GetCurrentFont(); CBrush *oldBrush=pDC->GetCurrentBrush(); CRect rc(xw1, MaxY-yw2, xw2, MaxY-yw1); pDC->FillRect(&rc, &BlueBrush); pDC->SelectObject(&DarkPen); //*********************************************************** pDC->SelectObject(&WhitePen); pDC->MoveTo(xw1,MaxY-yw2); pDC->LineTo(xw2,MaxY-yw2); pDC->MoveTo(xw1,MaxY-yw2); pDC->LineTo(xw1,MaxY-yw1); pDC->MoveTo(xw1+1,MaxY-yw2); pDC->LineTo(xw1+1,MaxY-yw1); pDC->SelectObject(&DarkPen); pDC->MoveTo(xw2,MaxY-yw1); pDC->LineTo(xw2,MaxY-yw2); pDC->MoveTo(xw2,MaxY-yw1); pDC->LineTo(xw1,MaxY-yw1); pDC->SelectObject(&DarkPen); pDC->MoveTo(xw1+WindowInfoXsize,MaxY-yw1); pDC->LineTo(xw1+WindowInfoXsize,MaxY-yw2); pDC->SelectObject(&WhitePen); pDC->MoveTo(xw1+WindowInfoXsize+1,MaxY-yw1); pDC->LineTo(xw1+WindowInfoXsize+1,MaxY-yw2); pDC->MoveTo(xw1+WindowInfoXsize+2,MaxY-yw1); pDC->LineTo(xw1+WindowInfoXsize+2,MaxY-yw2); //************************************************************* // Draw Ampl (Y) Axis // CRect rc1(xw1, MaxY-yw2, xw1+WindowInfoXsize-1, MaxY-yw1); pDC->FillRect(&rc1, &GrayBrush); pDC->SelectObject(&DarkPen); pDC->SetTextColor(RGB(0,0,0)); pDC->MoveTo(xw1+WindowInfoXsize-8,MaxY-(yw1+8)); pDC->LineTo(xw1+WindowInfoXsize-8,MaxY-(yw2-8)); pDC->MoveTo(xw1+WindowInfoXsize-8,MaxY-(yw1+8)); pDC->LineTo(xw1+WindowInfoXsize-8+4,MaxY-(yw1+8)); pDC->MoveTo(xw1+WindowInfoXsize-8,MaxY-(yw2-8)); pDC->LineTo(xw1+WindowInfoXsize-8+4,MaxY-(yw2-8)); pDC->SelectObject(&WhitePen); { RECT rcText; char cText[64]; sprintf(cText,"%d",amax); CRect rcc1(xw1,MaxY-(yw2-8),xw1+WindowInfoXsize-8-2, MaxY-(yw2-8-13)); pDC->DrawText(cText,rcc1,DT_RIGHT); sprintf(cText,"%d",amin); GetTextRectangle(cText, rcText); CRect rcc2(xw1,MaxY-(yw1+8+13),xw1+WindowInfoXsize-8-2, MaxY-(yw1-8)); pDC->DrawText(cText,rcc2,DT_RIGHT); CRect rcc3(xw1+5,(MaxY-yw2),xw1+WindowInfoXsize-8-2, (MaxY-yw1)); sprintf(cText,"%s::%s",WaveformInfo[nWindow]->StaName, WaveformInfo[nWindow]->ChanName); pDC->DrawText(cText,rcc3, DT_VCENTER|DT_SINGLELINE ); } //************************************************************** int nXferBlocks=this->pRTDisplay->WaveformInfo[nWindow]->xferData.GetSize(); double ttt=-1.; double dSpS=WaveformInfo[nWindow]->dSpS; pDC->SelectObject(&YellowPen); for(int j=0; j<nXferBlocks; ++j) { CDataBlock *xfd=this->pRTDisplay->WaveformInfo[nWindow]->xferData[j]; double t1packet=this->pRTDisplay->WaveformInfo[nWindow]->xferData[j]->beg; double t2packet=this->pRTDisplay->WaveformInfo[nWindow]->xferData[j]->end; int nsamp=this->pRTDisplay->WaveformInfo[nWindow]->xferData[j]->nsamp; for(int k=0; k<nsamp; ++k) { long a=this->pRTDisplay->WaveformInfo[nWindow]->xferData[j]->data[k]; double tt=t1packet+(1./dSpS)*k; int x,y; if(tt<t1) continue; if(tt>t2) break; x=(int)((tt-t1)*(x2-x1)/(t2-t1)+x1); if(a>amax) a=amax; if(a<amin) a=amin; y=(a-amin)*(y2-y1)/(amax-amin)+y1; y=MaxY-y; if(tt-ttt>1.1/dSpS) { pDC->MoveTo(x,y); } else { pDC->LineTo(x,y); } ttt=tt; } } DrawGaps(nWindow,pDC); pDC->SelectObject(oldPen); pDC->SelectObject(oldBrush); pDC->SelectObject(oldFont); }
void CDBPickView::DrawTimePanel(CDC *pDC) { char cBuff[64]; CPen WhitePen(PS_SOLID,1,RGB(255,255,255)); CPen DarkPen(PS_SOLID,1,RGB(0,0,0)); CPen RedPen(PS_SOLID,1,RGB(255,0,0)); int xw1=WindowInfoXsize+3; int xw2=MaxX-1; int yw1=1; int yw2=TimeBarYsize-1; int x, x_old; CPen *oldPen=pDC->GetCurrentPen(); pDC->SelectObject(&WhitePen); pDC->MoveTo(xw1,MaxY-yw2); pDC->LineTo(xw2,MaxY-yw2); pDC->MoveTo(xw1,MaxY-yw2); pDC->LineTo(xw1,MaxY-yw1); pDC->SelectObject(&DarkPen); pDC->MoveTo(xw2,MaxY-yw1); pDC->LineTo(xw2,MaxY-yw2); pDC->MoveTo(xw2,MaxY-yw1); pDC->LineTo(xw1,MaxY-yw1); x_old=-1; int imode; x=(int)((xw2-xw1)/(t2-t1)); if(x<3) { x=(int)(60*(xw2-xw1)/(t2-t1)); if(x==0) { imode=2; } else { imode=1; } } else { imode=0; } nLastMarkRightPos=-100; for(long tt=(long)t1; tt<t2; ++tt) { x=(int)((tt-t1)*(xw2-xw1)/(t2-t1)+xw1); if(tt%3600==0) { pDC->SelectObject(&WhitePen); pDC->MoveTo(x,MaxY-yw2); pDC->LineTo(x,MaxY-(yw2-12)); pDC->SelectObject(&DarkPen); pDC->MoveTo(x+1,MaxY-yw2); pDC->LineTo(x+1,MaxY-(yw2-12)); x_old=x; lstrcpy(cBuff, dttostr(tt, 1)); RECT rcc; GetTextRectangle(cBuff,rcc); int nWtd=(rcc.right-rcc.left)/2+1; rcc.left=x-nWtd; rcc.right=x+nWtd; rcc.bottom=(MaxY-yw1); rcc.top=(MaxY-yw2); if(nLastMarkRightPos<rcc.left) { pDC->DrawText(cBuff,&rcc,DT_LEFT|DT_SINGLELINE|DT_BOTTOM); nLastMarkRightPos=rcc.right; } continue; } if(imode<2) if(tt%60==0) { pDC->SelectObject(&WhitePen); pDC->MoveTo(x,MaxY-yw2); pDC->LineTo(x,MaxY-(yw2-8)); pDC->SelectObject(&DarkPen); pDC->MoveTo(x+1,MaxY-yw2); pDC->LineTo(x+1,MaxY-(yw2-8)); x_old=x; pDC->SetTextColor(RGB(255,255,255)); lstrcpy(cBuff, dttostr(tt, 1)); RECT rcc; GetTextRectangle(cBuff,rcc); int nWtd=(rcc.right-rcc.left)/2+1; rcc.left=x-nWtd; rcc.right=x+nWtd; rcc.bottom=(MaxY-yw1); rcc.top=(MaxY-yw2); if(nLastMarkRightPos<rcc.left) { pDC->DrawText(cBuff,&rcc,DT_LEFT|DT_SINGLELINE|DT_BOTTOM); nLastMarkRightPos=rcc.right; } continue; } if(imode==0) { pDC->SelectObject(&WhitePen); pDC->MoveTo(x,MaxY-yw2); pDC->LineTo(x,MaxY-(yw2-4)); pDC->SelectObject(&DarkPen); pDC->MoveTo(x+1,MaxY-yw2); pDC->LineTo(x+1,MaxY-(yw2-4)); x_old=x; } } /* pDC->SetTextColor(RGB(255,255,255)); lstrcpy(cBuff, dttostr(t1, 1)); CRect *rcc=new CRect(xw1,(MaxY-yw2),xw2, (MaxY-yw1)); pDC->DrawText(cBuff,rcc,DT_LEFT|DT_SINGLELINE|DT_BOTTOM); delete rcc; lstrcpy(cBuff, dttostr(t2, 1)); rcc=new CRect(xw1,(MaxY-yw2),xw2, (MaxY-yw1)); pDC->DrawText(cBuff,rcc,DT_RIGHT|DT_SINGLELINE|DT_BOTTOM); delete rcc;*/ pDC->SelectObject(oldPen); }