void SeqMeasureControl::DrawOn(BRect updateRect, BView* view) { BRect b = Bounds(); BRect lBounds(b.left, b.top, mLeftIndent - 1, b.bottom); BRect cBounds(b.left + mLeftIndent, b.top, b.right - mRightIndent, b.bottom); BRect rBounds(b.right - mRightIndent + 1, b.top, b.right, b.bottom); AmTime endTime = 0; // READ SONG BLOCK #ifdef AM_TRACE_LOCKS printf("SeqMeasureControl::DrawOn() read lock\n"); fflush(stdout); #endif const AmSong* song = ReadLock(); if (song) endTime = song->CountEndTime(); ReadUnlock(song); // END READ SONG BLOCK if (mLeftIndent > 0) DrawLeftBgOn(lBounds, view, endTime); DrawCenterBgOn(cBounds, view, endTime); if (mRightIndent > 0) DrawRightBgOn(rBounds, view, endTime); DrawCenterOn(b, view); if (mLeftIndent > 0) DrawLeftOn( lBounds, view ); if (mRightIndent > 0) DrawRightOn( rBounds, view ); // Draw some edges view->SetHighColor( tint_color( mViewColor, B_LIGHTEN_2_TINT) ); view->StrokeLine( BPoint(b.left, b.top), BPoint(b.right, b.top) ); view->SetHighColor( 0, 0, 0 ); view->StrokeLine( BPoint(b.left, b.top), BPoint(b.right, b.top) ); view->StrokeLine( BPoint(b.left, b.bottom), BPoint(b.right, b.bottom) ); float fh = view_font_height(this); BRect r(b); r.bottom = fh; mMarker[LEFT_LOOP_MARKER].DrawOn(r, view, this); mMarker[RIGHT_LOOP_MARKER].DrawOn(r, view, this); r.top = r.bottom; r.bottom = b.bottom; mMarker[POSITION_MARKER].DrawOn(r, view, this); }
void HexView::Paint(const Rect &cUpdateRect) { Rect cBounds(GetBounds()); EraseRect(cBounds); DrawFrame(cBounds, FRAME_RECESSED); }