本文整理汇总了C++中BView::FillRoundRect方法的典型用法代码示例。如果您正苦于以下问题:C++ BView::FillRoundRect方法的具体用法?C++ BView::FillRoundRect怎么用?C++ BView::FillRoundRect使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类BView
的用法示例。
在下文中一共展示了BView::FillRoundRect方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: reply
//.........这里部分代码省略.........
rect.InsetBy(-penSize, -penSize);
} else if (code == RP_FILL_RECT)
offscreen->FillRect(rect, pattern);
else {
BGradient *gradient;
if (message.ReadGradient(&gradient) != B_OK)
continue;
offscreen->FillRect(rect, *gradient);
delete gradient;
}
invalidRegion.Include(rect);
break;
}
case RP_STROKE_ROUND_RECT:
case RP_FILL_ROUND_RECT:
case RP_FILL_ROUND_RECT_GRADIENT:
{
BRect rect;
float xRadius, yRadius;
message.Read(rect);
message.Read(xRadius);
if (message.Read(yRadius) != B_OK)
continue;
if (code == RP_STROKE_ROUND_RECT) {
offscreen->StrokeRoundRect(rect, xRadius, yRadius,
pattern);
rect.InsetBy(-penSize, -penSize);
} else if (code == RP_FILL_ROUND_RECT)
offscreen->FillRoundRect(rect, xRadius, yRadius, pattern);
else {
BGradient *gradient;
if (message.ReadGradient(&gradient) != B_OK)
continue;
offscreen->FillRoundRect(rect, xRadius, yRadius,
*gradient);
delete gradient;
}
invalidRegion.Include(rect);
break;
}
case RP_STROKE_SHAPE:
case RP_FILL_SHAPE:
case RP_FILL_SHAPE_GRADIENT:
{
BRect bounds;
int32 opCount, pointCount;
message.Read(bounds);
if (message.Read(opCount) != B_OK)
continue;
BMessage archive;
for (int32 i = 0; i < opCount; i++) {
int32 op;
message.Read(op);
archive.AddInt32("ops", op);
}
示例2: MessageReceived
//.........这里部分代码省略.........
if ( ! messageToSend )
{
if ( this->dirty )
{
this->messageToSend = new BMessage( kColorSelected );
} else {
this->messageToSend = new BMessage( kColorReverted );
}
if ( ! this->messageToSend ) {
/* Panic! */
exit(1);
}
}
// Stuff the message with needed data
messageToSend->AddBool( "Dirty", this->dirty );
messageToSend->AddString ( "Original string", this->originalString );
if ( this->dirty ) {
messageToSend->AddString("New string", currentString );
}
messageToSend->AddInt32( "Original color", RepresentColorAsUint32( this->originalColor ) );
messageToSend->AddInt32( "New color", RepresentColorAsUint32( this->currentColor ) );
// Send the message and close current window
// mesg = new BMessenger( (BHandler* )target, NULL, &errorCode );
mesg = new BMessenger( "application/x-vnd.Hitech.Skeleton", -1, &errorCode );
if ( errorCode == B_OK ) {
mesg->SendMessage( messageToSend, ( BHandler* )NULL );
deb = new DebuggerPrintout( "Message was sent" );
} else {
deb = new DebuggerPrintout( "Message wasn't sent" );
}
this->Quit();
break;
case kColorReverted:
/* Returning to original settings */
if ( colorControl )
{
colorControl->SetValue( originalColor );
colorControl->Invoke();
}
if ( enableEditingLabel && this->labelView )
{
( (BTextControl*)this->labelView )->SetText( this->originalString.String() );
( (BTextControl*)this->labelView )->MakeFocus( false ); // Prevent accidental change of text
}
break;
case kColorChanged:
// We need to reflect the change in color.
// We'll do it using the current view's high color. For this, we need to
// back up current high color in order to restore it later.
background = this->FindView( "Background" );
if ( ! background )
{
deb = new DebuggerPrintout( "Didn't find background!" );
return;
}
previousHighColor = background->HighColor();
background->SetHighColor( 0, 0, 1 ); // almost black
tempRect = BRect( ( revertButton->Frame() ).right + 10,
( revertButton->Frame() ).top,
( okButton->Frame() ).left - 10,
( revertButton->Frame() ).bottom );
// Actual drawing
if ( this->Lock() ) {
background->SetPenSize( 1 );
// Create border
background->StrokeRoundRect( tempRect.InsetBySelf( 1, 1 ), 4, 4 );
// Fill the rectangle
background->SetHighColor( colorControl->ValueAsColor() );
background->FillRoundRect( tempRect.InsetBySelf( 1, 1 ), 4, 4 );
background->Flush();
this->Flush();
this->Unlock();
}
background->SetHighColor( previousHighColor );
break;
default:
BWindow::MessageReceived( in );
};
} // <-- end of function "ColorUpdateWindow::MessageReceived"
示例3: rightRect
void
TouchpadView::DrawSliders()
{
BView* view;
if (fOffScreenView != NULL)
view = fOffScreenView;
else
view = this;
if (!LockLooper())
return;
if (fOffScreenBitmap->Lock()) {
view->SetHighColor(ui_color(B_PANEL_BACKGROUND_COLOR));
view->FillRect(Bounds());
view->SetHighColor(100, 100, 100);
view->FillRoundRect(fPadRect, 4, 4);
int32 dragSize = 3; // half drag size
// scroll areas
view->SetHighColor(145, 100, 100);
BRect rightRect(fPadRect.left + fXScrollRange, fPadRect.top,
fPadRect.right, fPadRect.bottom);
view->FillRoundRect(rightRect, 4, 4);
BRect bottomRect(fPadRect.left, fPadRect.top + fYScrollRange,
fPadRect.right, fPadRect.bottom);
view->FillRoundRect(bottomRect, 4, 4);
// Stroke Rect
view->SetHighColor(100, 100, 100);
view->SetPenSize(2);
view->StrokeRoundRect(fPadRect, 4, 4);
// x scroll range line
view->SetHighColor(200, 0, 0);
view->StrokeLine(BPoint(fPadRect.left + fXScrollRange, fPadRect.top),
BPoint(fPadRect.left + fXScrollRange, fPadRect.bottom));
fXScrollDragZone = BRect(fPadRect.left + fXScrollRange - dragSize,
fPadRect.top - dragSize, fPadRect.left + fXScrollRange + dragSize,
fPadRect.bottom + dragSize);
fXScrollDragZone1 = BRect(fPadRect.left + fXScrollRange - dragSize,
fPadRect.top - dragSize, fPadRect.left + fXScrollRange + dragSize,
fPadRect.top + dragSize);
view->FillRect(fXScrollDragZone1);
fXScrollDragZone2 = BRect(fPadRect.left + fXScrollRange - dragSize,
fPadRect.bottom - dragSize,
fPadRect.left + fXScrollRange + dragSize,
fPadRect.bottom + dragSize);
view->FillRect(fXScrollDragZone2);
// y scroll range line
view->StrokeLine(BPoint(fPadRect.left, fPadRect.top + fYScrollRange),
BPoint(fPadRect.right, fPadRect.top + fYScrollRange));
fYScrollDragZone = BRect(fPadRect.left - dragSize,
fPadRect.top + fYScrollRange - dragSize,
fPadRect.right + dragSize,
fPadRect.top + fYScrollRange + dragSize);
fYScrollDragZone1 = BRect(fPadRect.left - dragSize,
fPadRect.top + fYScrollRange - dragSize, fPadRect.left + dragSize,
fPadRect.top + fYScrollRange + dragSize);
view->FillRect(fYScrollDragZone1);
fYScrollDragZone2 = BRect(fPadRect.right - dragSize,
fPadRect.top + fYScrollRange - dragSize, fPadRect.right + dragSize,
fPadRect.top + fYScrollRange + dragSize);
view->FillRect(fYScrollDragZone2);
fOffScreenView->Sync();
fOffScreenBitmap->Unlock();
DrawBitmap(fOffScreenBitmap, B_ORIGIN);
}
UnlockLooper();
}