void CmusikTrackCtrl::OnNMCustomdraw(NMHDR *pNMHDR, LRESULT *pResult) { LPNMCUSTOMDRAW lpcd = (LPNMCUSTOMDRAW)pNMHDR; // CDDS_PREPAINT is at the beginning of the paint cycle. // this will fire first, so we tell it we want // all item drawing information... if ( lpcd->dwDrawStage == CDDS_PREPAINT ) { // Request prepaint notifications for each item. *pResult = CDRF_NOTIFYITEMDRAW; return; } // CDDS_ITEMPREPAINT is sent when an item is about // to be drawn.. if ( lpcd->dwDrawStage == CDDS_ITEMPREPAINT ) { CDC *pDC = CDC::FromHandle( lpcd->hdc ); CRect rect( lpcd->rc ); // we don't want to draw any ticks, // so just skip the default action // and return... if ( lpcd->dwItemSpec == TBCD_TICS ) { ReleaseDC( pDC ); *pResult = CDRF_SKIPDEFAULT; return; } // drawing the thumb else if ( lpcd->dwItemSpec == TBCD_THUMB ) { CRect rcThumbDraw; if ( rect.Height() > rect.Width() ) DrawHorizontalThumb( pDC, rect ); else DrawVerticalThumb( pDC, rect ); } // drawing the channel, the space // below the thumb else if ( lpcd->dwItemSpec == TBCD_CHANNEL ) { CRect rcThumb; GetThumbRect(rcThumb); DrawChannel( pDC, rect, ( rcThumb.Height() > rcThumb.Width() ) ); } *pResult = CDRF_SKIPDEFAULT; return; } *pResult = CDRF_SKIPDEFAULT; }
int MainWindowImpl::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QMainWindow::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { switch (_id) { case 0: FinDeCourseValueChanged((*reinterpret_cast< int(*)>(_a[1]))); break; case 1: GrapheMoteurValueChanged((*reinterpret_cast< int(*)>(_a[1]))); break; case 2: GraphePasValueChanged((*reinterpret_cast< int(*)>(_a[1]))); break; case 3: InverseurStateChanged((*reinterpret_cast< int(*)>(_a[1]))); break; case 4: TrimeValueChanged((*reinterpret_cast< int(*)>(_a[1]))); break; case 5: DebatementValueChanged((*reinterpret_cast< int(*)>(_a[1]))); break; case 6: DRValueChanged((*reinterpret_cast< int(*)>(_a[1]))); break; case 7: TypeCurrentIndexChanged((*reinterpret_cast< int(*)>(_a[1]))); break; case 8: ModeCurrentIndexChanged((*reinterpret_cast< int(*)>(_a[1]))); break; case 9: FoncInterupteurA((*reinterpret_cast< int(*)>(_a[1]))); break; case 10: FoncInterupteurB((*reinterpret_cast< int(*)>(_a[1]))); break; case 11: FoncPotA((*reinterpret_cast< int(*)>(_a[1]))); break; case 12: FoncPotB((*reinterpret_cast< int(*)>(_a[1]))); break; case 13: FoncTimeEnvoyer((*reinterpret_cast< const QTime(*)>(_a[1]))); break; case 14: FoncMixSource((*reinterpret_cast< int(*)>(_a[1]))); break; case 15: FoncMixDestination((*reinterpret_cast< int(*)>(_a[1]))); break; case 16: FoncMixPositif((*reinterpret_cast< int(*)>(_a[1]))); break; case 17: FoncMixInterupteur((*reinterpret_cast< int(*)>(_a[1]))); break; case 18: FoncMixNegatif((*reinterpret_cast< int(*)>(_a[1]))); break; case 19: FoncEnvoyer(); break; case 20: FoncCharger(); break; case 21: FoncEnregistr(); break; case 22: FoncEnregistrSous(); break; case 23: FoncImport(); break; case 24: FoncExport(); break; case 25: DrawChannel(); break; case 26: FoncNewCBPort((*reinterpret_cast< const QString(*)>(_a[1]))); break; case 27: FoncA_propos(); break; case 28: StateChangedInverseur3((*reinterpret_cast< int(*)>(_a[1]))); break; default: ; } _id -= 29; } return _id; }
void HandlerPPM (char *file1, char *file2, char *file3){ /* in PPM format, there are tree bits per pixel, each bit corresponding to the levels of RGB in the pixel */ printf("step - .ppm file\n"); FILE *fp1;//image 1 FILE *fp2;//image 2 FILE *fp3;//image 3 FILE *ceri1;//image 1 FILE *ceri2;//image 2 FILE *ceri3;//image 3 FILE *rend;//final HDR rendered file int width; int height; fp1 = fopen(file1, "rb"); fp2 = fopen(file2, "rb"); fp3 = fopen(file3, "rb"); /* Get width and height from first image */ Get_w_h(fp1, &width, &height); /* Skip lines so we are ready to read */ SkipLines(&fp1, 1); SkipLines(&fp2, 4); SkipLines(&fp3, 4); //write to rendered file rend = fopen("rendered.ppm", "w"); fprintf(rend, "%s\n%d\n%d\n%d\n", "P6", width, height, 255); ceri1 = fopen("cert1.ppm", "w"); fprintf(ceri1, "%s\n%d\n%d\n%d\n", "P6", width, height, 255); ceri2 = fopen("cert2.ppm", "w"); fprintf(ceri2, "%s\n%d\n%d\n%d\n", "P6", width, height, 255); ceri3 = fopen("cert3.ppm", "w"); fprintf(ceri3, "%s\n%d\n%d\n%d\n", "P6", width, height, 255); int size; float ku, km, ko; //exposures for the three images unsigned char rendR, rendG, rendB; ku = 1; km = 4; ko = 16; unsigned char bR1, bR2, bR3; unsigned char bG1, bG2, bG3; unsigned char bB1, bB2, bB3; unsigned char c1wR, c2wR, c3wR; unsigned char c1wG, c2wG, c3wG; unsigned char c1wB, c2wB, c3wB; printf("step - writing channels\n"); for(size = width * height; size > 0; size --){ /* Red Channel */ bR1 = fgetc(fp1);//median bR2 = fgetc(fp2);//under bR3 = fgetc(fp3);//over rendR = DrawChannel(bR1, bR2, bR3, km, ku, ko, &c1wR, &c2wR, &c3wR); bG1 = fgetc(fp1); bG2 = fgetc(fp2); bG3 = fgetc(fp3); rendG = DrawChannel(bG1, bG2, bG3, km, ku, ko, &c1wG, &c2wG, &c3wG); bB1 = fgetc(fp1); bB2 = fgetc(fp2); bB3 = fgetc(fp3); rendB = DrawChannel(bB1, bB2, bB3, km, ku, ko, &c1wB, &c2wB, &c3wB); /* write rendered file */ fprintf(rend, "%c", rendR); fprintf(rend, "%c", rendG); fprintf(rend, "%c", rendB); /* write certainty c1 */ fprintf(ceri1, "%c", c1wR); fprintf(ceri1, "%c", c1wG); fprintf(ceri1, "%c", c1wB); /* write certainty c1 */ fprintf(ceri2, "%c", c2wR); fprintf(ceri2, "%c", c2wG); fprintf(ceri2, "%c", c2wB); /* write certainty c1 */ fprintf(ceri3, "%c", c3wR); fprintf(ceri3, "%c", c3wG); fprintf(ceri3, "%c", c3wB); } fclose(fp1); fclose(fp2); fclose(fp3); fclose(rend); fclose(ceri1); fclose(ceri2); fclose(ceri3); printf("step - closed files\n"); }
void CScopeWindow::UpdateChart (void) { UG_AREA Area; UG_WindowGetArea (&m_Window, &Area); Area.xs += MARGIN; Area.xe -= MARGIN; Area.ys += MARGIN+20+10; // consider title height and margin below Area.ye -= MARGIN; UG_FillFrame (Area.xs, Area.ys, Area.xe, Area.ye, C_BLACK); if (m_pTimeLine == 0) { return; } // display headline double fZoomFactor = m_pTimeLine->GetZoomFactor (); CString Zoom; if (fZoomFactor >= 1.0) { Zoom.Format ("%.0f", fZoomFactor); } else { Zoom.Format ("1/%.0f", 1.0 / fZoomFactor); } double fSampleRate = m_pTimeLine->GetSampleRate (); CString SampleRate; if (fSampleRate < 1000000.0) { SampleRate.Format ("%.0fKHz", fSampleRate / 1000.0); } else { SampleRate.Format ("%.3fMHz", fSampleRate / 1000000.0); } CString String; String.Format ("SC: %.0fus OF: %.1fus TO: %.0fus ZO: x%s FQ: %s", m_pTimeLine->GetScaleDivision () * 1000000.0, m_pTimeLine->GetWindowLeft () * 1000000.0, m_pTimeLine->GetRuntime () * 1000000.0, (const char *) Zoom, (const char *) SampleRate); UG_SetBackcolor (C_BLACK); UG_SetForecolor (C_WHITE); UG_FontSelect (&FONT_6X8); UG_PutString (Area.xs+5, Area.ys+1, (char *) (const char *) String); Area.ys += 12; UG_DrawLine (Area.xs, Area.ys, Area.xe, Area.ys, C_WHITE); // draw scale DrawScale (Area); // count active channels unsigned nChannelCount = 0; for (unsigned nChannel = 1; nChannel <= CHANS; nChannel++) { if (m_nChannelEnable & CH (nChannel)) { nChannelCount++; } } if (nChannelCount == 0) { return; } if (nChannelCount == 1) { Area.ys += 100; Area.ye -= 100; } // draw channels UG_S16 sChannelHeight = (Area.ye-Area.ys+1) / nChannelCount; unsigned nChannelsDrawn = 0; for (unsigned nChannel = 1; nChannel <= CHANS; nChannel++) { if (m_nChannelEnable & CH (nChannel)) { UG_AREA ChannelArea; ChannelArea.xs = Area.xs; ChannelArea.xe = Area.xe; ChannelArea.ys = Area.ys + sChannelHeight*nChannelsDrawn; ChannelArea.ye = ChannelArea.ys + sChannelHeight-1; DrawChannel (nChannel, ChannelArea); nChannelsDrawn++; } } }
void CXTPSkinObjectTrackBar::OnDraw(CDC* pDC) { CXTPClientRect rc(this); CXTPBufferDC dcMem(*pDC, rc); NMCUSTOMDRAW nm; ZeroMemory(&nm, sizeof(NMCUSTOMDRAW)); nm.hdc = dcMem.GetSafeHdc(); nm.dwDrawStage = CDDS_PREPAINT; nm.hdr.code = NM_CUSTOMDRAW; nm.hdr.hwndFrom = GetSafeHwnd(); nm.hdr.idFrom = GetDlgCtrlID(); LRESULT lrCdrf = GetParent()->SendMessage(WM_NOTIFY, (WPARAM)GetDlgCtrlID(), (LPARAM)&nm); FillBackground(&dcMem, rc); if (::GetFocus() == m_hWnd && ((SendMessage(WM_QUERYUISTATE) & UISF_HIDEFOCUS) == 0)) { dcMem.SetBkColor(GetColor(COLOR_BTNHIGHLIGHT)); DrawFocusRect(dcMem, &rc); } FillDrawRect(); if (lrCdrf & CDRF_NOTIFYITEMDRAW) { ZeroMemory(&nm, sizeof(NMCUSTOMDRAW)); nm.hdc = dcMem.GetSafeHdc(); nm.dwDrawStage = CDDS_ITEMPREPAINT; nm.dwItemSpec = TBCD_TICS; nm.hdr.code = NM_CUSTOMDRAW; nm.hdr.hwndFrom = GetSafeHwnd(); nm.hdr.idFrom = GetDlgCtrlID(); GetParent()->SendMessage(WM_NOTIFY, (WPARAM)GetDlgCtrlID(), (LPARAM)&nm); } DrawTics(&dcMem); if (lrCdrf & CDRF_NOTIFYITEMDRAW) { ZeroMemory(&nm, sizeof(NMCUSTOMDRAW)); nm.hdc = dcMem.GetSafeHdc(); nm.dwDrawStage = CDDS_ITEMPOSTPAINT; nm.dwItemSpec = TBCD_TICS; nm.hdr.code = NM_CUSTOMDRAW; nm.hdr.hwndFrom = GetSafeHwnd(); nm.hdr.idFrom = GetDlgCtrlID(); GetParent()->SendMessage(WM_NOTIFY, (WPARAM)GetDlgCtrlID(), (LPARAM)&nm); ZeroMemory(&nm, sizeof(NMCUSTOMDRAW)); nm.hdc = dcMem.GetSafeHdc(); nm.dwDrawStage = CDDS_ITEMPREPAINT; nm.dwItemSpec = TBCD_CHANNEL; nm.hdr.code = NM_CUSTOMDRAW; nm.hdr.hwndFrom = GetSafeHwnd(); nm.hdr.idFrom = GetDlgCtrlID(); GetParent()->SendMessage(WM_NOTIFY, (WPARAM)GetDlgCtrlID(), (LPARAM)&nm); } DrawChannel(&dcMem); if (lrCdrf & CDRF_NOTIFYITEMDRAW) { ZeroMemory(&nm, sizeof(NMCUSTOMDRAW)); nm.hdc = dcMem.GetSafeHdc(); nm.dwDrawStage = CDDS_ITEMPOSTPAINT; nm.dwItemSpec = TBCD_CHANNEL; nm.hdr.code = NM_CUSTOMDRAW; nm.hdr.hwndFrom = GetSafeHwnd(); nm.hdr.idFrom = GetDlgCtrlID(); GetParent()->SendMessage(WM_NOTIFY, (WPARAM)GetDlgCtrlID(), (LPARAM)&nm); ZeroMemory(&nm, sizeof(NMCUSTOMDRAW)); nm.hdc = dcMem.GetSafeHdc(); nm.dwDrawStage = CDDS_ITEMPREPAINT; nm.dwItemSpec = TBCD_THUMB; nm.hdr.code = NM_CUSTOMDRAW; nm.hdr.hwndFrom = GetSafeHwnd(); nm.hdr.idFrom = GetDlgCtrlID(); GetParent()->SendMessage(WM_NOTIFY, (WPARAM)GetDlgCtrlID(), (LPARAM)&nm); } DrawThumb(&dcMem); if (lrCdrf & CDRF_NOTIFYITEMDRAW) { ZeroMemory(&nm, sizeof(NMCUSTOMDRAW)); nm.hdc = dcMem.GetSafeHdc(); nm.dwDrawStage = CDDS_ITEMPOSTPAINT; nm.dwItemSpec = TBCD_THUMB; nm.hdr.code = NM_CUSTOMDRAW; nm.hdr.hwndFrom = GetSafeHwnd(); nm.hdr.idFrom = GetDlgCtrlID(); GetParent()->SendMessage(WM_NOTIFY, (WPARAM)GetDlgCtrlID(), (LPARAM)&nm); } if (lrCdrf & CDRF_NOTIFYPOSTPAINT) { ZeroMemory(&nm, sizeof(NMCUSTOMDRAW)); nm.hdc = dcMem.GetSafeHdc(); nm.dwDrawStage = CDDS_POSTPAINT; nm.hdr.code = NM_CUSTOMDRAW; nm.hdr.hwndFrom = GetSafeHwnd(); nm.hdr.idFrom = GetDlgCtrlID(); GetParent()->SendMessage(WM_NOTIFY, (WPARAM)GetDlgCtrlID(), (LPARAM)&nm); } }
void CEarSliderCtrl::OnReflectCustomDraw(NMHDR* pNMHDR, LRESULT* pResult) { NMCUSTOMDRAW nmcd = *(LPNMCUSTOMDRAW)pNMHDR; LPNMCUSTOMDRAW lpcd = (LPNMCUSTOMDRAW)pNMHDR; UINT drawStage = nmcd.dwDrawStage; UINT itemSpec = nmcd.dwItemSpec; CDC *pDC = CDC::FromHandle(nmcd.hdc); switch(drawStage) { case CDDS_PREPAINT: *pResult = CDRF_NOTIFYITEMDRAW | CDRF_NOTIFYPOSTPAINT ; break; case CDDS_PREERASE: case CDDS_POSTERASE: case CDDS_ITEMPREERASE: case CDDS_ITEMPOSTERASE: *pResult = CDRF_DODEFAULT; break; case CDDS_ITEMPREPAINT: /* switch(itemSpec) { case TBCD_CHANNEL: *pResult = CDRF_DODEFAULT| CDRF_NOTIFYPOSTPAINT; break; case TBCD_TICS: case TBCD_THUMB: *pResult = CDRF_DODEFAULT; break; } break;*/ switch(itemSpec) { case TBCD_TICS: *pResult = CDRF_DODEFAULT; break; case TBCD_THUMB: //DrawThumb(pDC, lpcd); if( m_focused ) { CString str; DrawThumb(pDC, lpcd); *pResult = CDRF_SKIPDEFAULT; break; } else { *pResult = CDRF_DODEFAULT ; //CDRF_SKIPDEFAULT;// CDRF_DODEFAULT;//CDRF_SKIPDEFAULT;//CDRF_SKIPDEFAULT; break; } // str.Format(_T("%x"),lpcd->uItemState); CDIS_GRAYED // DrawThumb(pDC, lpcd,str); // *pResult = CDRF_SKIPDEFAULT; // break; case TBCD_CHANNEL: if(this->IsWindowVisible()) { DrawChannel(pDC,&nmcd); *pResult = CDRF_SKIPDEFAULT;//CDRF_SKIPDEFAULT;//CDRF_SKIPDEFAULT;// //CDRF_SKIPDEFAULT; //CDRF_SKIPDEFAULT ;//CDRF_SKIPDEFAULT; //CDRF_SKIPDEFAULT; } else { *pResult = CDRF_DODEFAULT; } break; } break; case CDDS_ITEMPOSTPAINT: switch(itemSpec) { case TBCD_CHANNEL: /* { COLORREF m_color = RGB(128,128,128); COLORREF m_clr = ::GetSysColor(COLOR_BTNFACE); //RGB(200,30,40); HDC hbkdc = this->GetParent()->GetDC()->GetSafeHdc(); COLORREF bkcolor = ::GetBkColor(hbkdc); CDC* pDC = CDC::FromHandle( nmcd.hdc ); CPen pen(PS_SOLID,nmcd.rc.right-nmcd.rc.left, bkcolor); //m_clr); //pDC->SelectObject(&pen); RECT rrc = {nmcd.rc.left, nmcd.rc.top+1, nmcd.rc.right, nmcd.rc.bottom-1}; // pDC->SetBkMode(TRANSPARENT); // pDC->Draw3dRect( &rrc, bkcolor, bkcolor ); pDC->SelectObject(&pen); pDC->MoveTo(nmcd.rc.left,nmcd.rc.top); pDC->LineTo(nmcd.rc.left,nmcd.rc.bottom); pDC->MoveTo(nmcd.rc.right,nmcd.rc.top); pDC->LineTo(nmcd.rc.right,nmcd.rc.bottom); //pDC->DrawEdge(&nmcd.rc,EDGE_BUMP,BF_RECT); pDC->Detach(); } *pResult = CDRF_SKIPDEFAULT; break;*/ case TBCD_TICS: *pResult = CDRF_DODEFAULT; break; case TBCD_THUMB: *pResult = CDRF_DODEFAULT ; // CDRF_DODEFAULT; // CDRF_SKIPDEFAULT; //CDRF_DODEFAULT; //CDRF_DODEFAULT;//CDRF_SKIPDEFAULT; break; } break; case CDDS_POSTPAINT: *pResult = CDRF_DODEFAULT; break; default: ASSERT( FALSE ); } }
void BChannelSlider::_DrawThumbs() { if (fBacking == NULL) { // This is the idea: we build a bitmap by taking the coordinates // of the first and last thumb frames (top/left and bottom/right) BRect first = ThumbFrameFor(0); BRect last = ThumbFrameFor(CountChannels() - 1); BRect rect(first.LeftTop(), last.RightBottom()); if (fIsVertical) rect.top -= ThumbRangeFor(0); else rect.right += ThumbRangeFor(0); rect.OffsetTo(B_ORIGIN); fBacking = new (std::nothrow) BBitmap(rect, B_RGB32, true); if (fBacking) { fBackingView = new (std::nothrow) BView(rect, "", 0, B_WILL_DRAW); if (fBackingView) { if (fBacking->Lock()) { fBacking->AddChild(fBackingView); fBackingView->SetFontSize(10.0); fBackingView->SetLowColor( ui_color(B_PANEL_BACKGROUND_COLOR)); fBackingView->SetViewColor( ui_color(B_PANEL_BACKGROUND_COLOR)); fBacking->Unlock(); } } else { delete fBacking; fBacking = NULL; } } } if (fBacking && fBackingView) { BPoint drawHere; BRect bounds(fBacking->Bounds()); drawHere.x = (Bounds().Width() - bounds.Width()) / 2.0; drawHere.y = (Bounds().Height() - bounds.Height()) - kPadding - fLineFeed; if (fBacking->Lock()) { // Clear the view's background fBackingView->FillRect(fBackingView->Bounds(), B_SOLID_LOW); BRect channelArea; // draw the entire control for (int32 channel = 0; channel < CountChannels(); channel++) { channelArea = ThumbFrameFor(channel); bool pressed = IsTracking() && (channel == fCurrentChannel || fAllChannels); DrawChannel(fBackingView, channel, channelArea, pressed); } // draw some kind of current value tool tip if (fCurrentChannel != -1 && fMinPoint != 0) { char valueString[32]; snprintf(valueString, 32, "%ld", ValueFor(fCurrentChannel)); float stringWidth = fBackingView->StringWidth(valueString); float width = max_c(10.0, stringWidth); BRect valueRect(0.0, 0.0, width, 10.0); BRect thumbFrame(ThumbFrameFor(fCurrentChannel)); float thumbDelta(ThumbDeltaFor(fCurrentChannel)); if (fIsVertical) { valueRect.OffsetTo((thumbFrame.Width() - width) / 2.0 + fCurrentChannel * thumbFrame.Width(), thumbDelta + thumbFrame.Height() + 2.0); if (valueRect.bottom > fBackingView->Frame().bottom) valueRect.OffsetBy(0.0, -(thumbFrame.Height() + 12.0)); } else { valueRect.OffsetTo((thumbDelta - (width + 2.0)), thumbFrame.top); if (valueRect.left < fBackingView->Frame().left) { valueRect.OffsetBy(thumbFrame.Width() + width + 2.0, 0.0); } } rgb_color oldColor = fBackingView->HighColor(); fBackingView->SetHighColor(255, 255, 172); fBackingView->FillRect(valueRect); fBackingView->SetHighColor(0, 0, 0); fBackingView->DrawString(valueString, BPoint(valueRect.left + (valueRect.Width() - stringWidth) / 2.0, valueRect.bottom - 1.0)); fBackingView->StrokeRect(valueRect.InsetByCopy(-0.5, -0.5)); fBackingView->SetHighColor(oldColor); } fBackingView->Sync(); fBacking->Unlock(); } DrawBitmapAsync(fBacking, drawHere); // fClickDelta is used in MouseMoved() fClickDelta = drawHere; } }