64 lines
1.1 KiB
C++
64 lines
1.1 KiB
C++
/*
|
|
* Copyright 2010, Andrea Anzani. All rights reserved.
|
|
* Distributed under the terms of the MIT License.
|
|
*
|
|
* Authors:
|
|
* Andrea Anzani, andrea.anzani@gmail.com
|
|
*/
|
|
|
|
#include "StripeView.h"
|
|
|
|
static const int kIconStripeWidth = 30;
|
|
|
|
StripeView::StripeView(BRect frame)
|
|
: BView(frame, "StripeView", B_FOLLOW_ALL_SIDES, B_WILL_DRAW),
|
|
fIconBitmap(NULL)
|
|
{
|
|
SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR));
|
|
}
|
|
|
|
|
|
StripeView::StripeView(BMessage* archive)
|
|
: BView(archive),
|
|
fIconBitmap(NULL)
|
|
{
|
|
}
|
|
|
|
|
|
StripeView::~StripeView() {}
|
|
|
|
|
|
StripeView*
|
|
StripeView::Instantiate(BMessage* archive)
|
|
{
|
|
if (!validate_instantiation(archive, "StripeView"))
|
|
return NULL;
|
|
|
|
return new StripeView(archive);
|
|
}
|
|
|
|
|
|
status_t
|
|
StripeView::Archive(BMessage* archive, bool deep)
|
|
{
|
|
return BView::Archive(archive, deep);
|
|
}
|
|
|
|
|
|
void
|
|
StripeView::Draw(BRect updateRect)
|
|
{
|
|
// Here's the fun stuff
|
|
if (fIconBitmap) {
|
|
BRect StripeRect = Bounds();
|
|
StripeRect.right = kIconStripeWidth;
|
|
SetHighColor(tint_color(ViewColor(), B_DARKEN_1_TINT));
|
|
FillRect(StripeRect);
|
|
|
|
|
|
SetDrawingMode(B_OP_ALPHA);
|
|
DrawBitmapAsync(fIconBitmap, BPoint(18, 6));
|
|
SetDrawingMode(B_OP_COPY);
|
|
}
|
|
}
|