MainView::MainView( BRect frame ) : BView (frame, "mainView", B_FOLLOW_ALL_SIDES, B_WILL_DRAW) { SetViewColor(216, 216, 216); // nutzbare Größe frame.OffsetTo( 0.0, 0.0 ); frame.InsetBy( 5.0, 5.0 ); // Erstellen der beiden inneren Frames TopView* topView = new TopView( BRect( frame.left, frame.top, frame.right, frame.bottom - 72.0 - be_plain_font->Size() - be_bold_font->Size() ) ); AddChild( topView ); BottomView* bottomView = new BottomView( BRect( frame.left, frame.bottom - 67.0 - be_plain_font->Size() - be_bold_font->Size(), frame.right, frame.bottom - 43.0 ) ); AddChild( bottomView ); // StatusBar BStatusBar* statusBar = new BStatusBar( BRect(frame.left + 5.0, frame.bottom - be_plain_font->Size() - 23.0, frame.left + 400.0, frame.bottom), "statusBar", STATUS_STATUS, NULL); statusBar->SetText(STATUS_SELECT_FILES); statusBar->SetResizingMode(B_FOLLOW_BOTTOM); rgb_color color = { 70, 100, 180, 255}; statusBar->SetBarColor(color); statusBar->SetBarHeight(14.0); AddChild(statusBar); // Do it! - Button BButton* DoItButton = new BButton( BRect ( frame.right - be_plain_font->StringWidth(STR_DO_IT) - 25.0, frame.bottom - 30.0, frame.right - 5.0 , frame.bottom - 5.0 ), "DoIt", STR_DO_IT, new BMessage(MSG_DO_IT), B_FOLLOW_RIGHT | B_FOLLOW_BOTTOM ); DoItButton->SetEnabled(false); AddChild(DoItButton); };
static void haikuProgressLayoutUpdateMethod(Ihandle *ih) { iupdrvBaseLayoutUpdateMethod(ih); BStatusBar* bar = (BStatusBar*)ih->handle; bar->SetBarHeight(ih->currentheight - 1); }
NotificationView::NotificationView(NotificationWindow* win, BNotification* notification, bigtime_t timeout) : BView("NotificationView", B_WILL_DRAW), fParent(win), fNotification(notification), fTimeout(timeout), fRunner(NULL), fBitmap(NULL), fCloseClicked(false) { if (fNotification->Icon() != NULL) fBitmap = new BBitmap(fNotification->Icon()); if (fTimeout <= 0) fTimeout = fParent->Timeout() * 1000000; BGroupLayout* layout = new BGroupLayout(B_VERTICAL); SetLayout(layout); SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR)); SetLowColor(ui_color(B_PANEL_BACKGROUND_COLOR)); switch (fNotification->Type()) { case B_IMPORTANT_NOTIFICATION: fStripeColor = ui_color(B_CONTROL_HIGHLIGHT_COLOR); break; case B_ERROR_NOTIFICATION: fStripeColor = ui_color(B_FAILURE_COLOR); break; case B_PROGRESS_NOTIFICATION: { BStatusBar* progress = new BStatusBar("progress"); progress->SetBarHeight(12.0f); progress->SetMaxValue(1.0f); progress->Update(fNotification->Progress()); BString label = ""; label << (int)(fNotification->Progress() * 100) << " %"; progress->SetTrailingText(label); layout->AddView(progress); } // fall through. case B_INFORMATION_NOTIFICATION: fStripeColor = tint_color(ui_color(B_PANEL_BACKGROUND_COLOR), B_DARKEN_1_TINT); break; } }
void add_status_bars(BGridLayout* layout, int32& row) { BBox* box = new BBox(B_FANCY_BORDER, NULL); box->SetLabel("Info"); BGroupLayout* boxLayout = new BGroupLayout(B_VERTICAL, kInset); boxLayout->SetInsets(kInset, kInset + box->TopBorderOffset(), kInset, kInset); box->SetLayout(boxLayout); BStatusBar* statusBar = new BStatusBar("status bar", "Status", "Completed"); statusBar->SetMaxValue(100); statusBar->SetTo(0); statusBar->SetBarHeight(12); boxLayout->AddView(statusBar); statusBar = new BStatusBar("status bar", "Progress", "Completed"); statusBar->SetMaxValue(100); statusBar->SetTo(40); statusBar->SetBarHeight(12); boxLayout->AddView(statusBar); statusBar = new BStatusBar("status bar", "Lifespan of capitalism", "Completed"); statusBar->SetMaxValue(100); statusBar->SetTo(100); statusBar->SetBarHeight(12); boxLayout->AddView(statusBar); layout->AddView(box, 0, row, 4); row++; }
status_t PProgressBar::SetProperty(const char *name, PValue *value, const int32 &index) { if (!name || !value) return B_ERROR; BString str(name); PProperty *prop = FindProperty(name,index); if (!prop) return B_NAME_NOT_FOUND; if (FlagsForProperty(prop) & PROPERTY_READ_ONLY) return B_READ_ONLY; BStatusBar *backend = (BStatusBar*)fView; BoolValue boolval; ColorValue colorval; FloatValue floatval; IntValue intval; PointValue pointval; RectValue rectval; StringValue stringval; status_t status = prop->SetValue(value); if (status != B_OK) return status; if (backend->Window()) backend->Window()->Lock(); if (str.ICompare("BarColor") == 0) { prop->GetValue(&colorval); backend->SetBarColor(*colorval.value); } else if (str.ICompare("BarHeight") == 0) { prop->GetValue(&floatval); backend->SetBarHeight(*floatval.value); } else if (str.ICompare("CurrentValue") == 0) { prop->GetValue(&floatval); float current = backend->CurrentValue(); backend->Update((*floatval.value) - current); } else if (str.ICompare("MaxValue") == 0) { prop->GetValue(&floatval); backend->SetMaxValue(*floatval.value); } else if (str.ICompare("Text") == 0) { prop->GetValue(&stringval); backend->SetText(*stringval.value); } else if (str.ICompare("TrailingText") == 0) { prop->GetValue(&stringval); backend->SetTrailingText(*stringval.value); } else { if (backend->Window()) backend->Window()->Unlock(); return PView::SetProperty(name, value, index); } if (backend->Window()) backend->Window()->Unlock(); return prop->GetValue(value); }