DrivesPage::DrivesPage(WizardView* wizardView, const BootMenuList& menus, BMessage* settings, const char* name) : WizardPageView(settings, name), fWizardView(wizardView), fHasInstallableItems(false) { BString text; text << B_TRANSLATE_COMMENT("Drives", "Title") << "\n" << B_TRANSLATE("Please select the drive you want the boot manager to " "be installed to or uninstalled from."); BTextView* description = CreateDescription("description", text); MakeHeading(description); fDrivesView = new BListView("drives", B_SINGLE_SELECTION_LIST, B_WILL_DRAW | B_FRAME_EVENTS | B_NAVIGABLE | B_FULL_UPDATE_ON_RESIZE); fDrivesView->SetSelectionMessage(new BMessage(kMsgSelectionChanged)); BScrollView* scrollView = new BScrollView("scrollView", fDrivesView, 0, false, true); SetLayout(new BGroupLayout(B_VERTICAL)); BLayoutBuilder::Group<>((BGroupLayout*)GetLayout()) .Add(description, 0.5) .Add(scrollView, 1); _UpdateWizardButtons(NULL); _FillDrivesView(menus); }
void PartitionsPage::_BuildUI() { BString text; text << B_TRANSLATE_COMMENT("Partitions", "Title") << "\n" << B_TRANSLATE("The following partitions were detected. Please " "check the box next to the partitions to be included " "in the boot menu. You can also set the names of the " "partitions as you would like them to appear in the " "boot menu."); fDescription = CreateDescription("description", text); MakeHeading(fDescription); fPartitions = new BGridView("partitions", 0, be_control_look->DefaultItemSpacing() / 3); BLayoutBuilder::Grid<>(fPartitions) .SetInsets(B_USE_DEFAULT_SPACING, B_USE_DEFAULT_SPACING, B_USE_DEFAULT_SPACING, B_USE_DEFAULT_SPACING) .SetColumnWeight(0, 0) .SetColumnWeight(1, 1) .SetColumnWeight(2, 0.5) .SetColumnWeight(3, 0.5); _FillPartitionsView(fPartitions); BScrollView* scrollView = new BScrollView("scrollView", fPartitions, 0, false, true); SetLayout(new BGroupLayout(B_VERTICAL)); BLayoutBuilder::Group<>((BGroupLayout*)GetLayout()) .Add(fDescription) .Add(scrollView); }
void FileSelectionPage::_BuildUI(const char* description) { BRect rect(Bounds()); fDescription = CreateDescription(rect, "description", description); MakeHeading(fDescription); AddChild(fDescription); BString file; fSettings->FindString("file", &file); fSelect = new BButton(rect, "select", B_TRANSLATE_COMMENT("Select", "Button"), new BMessage(kMsgOpenFilePanel), B_FOLLOW_RIGHT); fSelect->ResizeToPreferred(); float selectLeft = rect.right - fSelect->Bounds().Width(); rect.right = selectLeft - kFileButtonDistance; fFile = new BTextControl(rect, "file", B_TRANSLATE_COMMENT("File:", "Text control label"), file.String(), new BMessage()); fFile->SetDivider(be_plain_font->StringWidth(fFile->Label()) + 5); AddChild(fFile); fSelect->MoveTo(selectLeft, 0); AddChild(fSelect); _Layout(); }
void DefaultPartitionPage::_BuildUI() { const float kTextDistance = be_control_look->DefaultItemSpacing(); BRect rect(Bounds()); BString text; text << B_TRANSLATE_COMMENT("Default Partition", "Title") << "\n" << B_TRANSLATE("Please specify a default partition and a timeout.\n" "The boot menu will load the default partition after " "the timeout unless you select another partition. You " "can also have the boot menu wait indefinitely for you " "to select a partition.\n" "Keep the 'ALT' key pressed to disable the timeout at boot time."); fDescription = CreateDescription(rect, "description", text); MakeHeading(fDescription); AddChild(fDescription); LayoutDescriptionVertically(fDescription); rect.top = fDescription->Frame().bottom + kTextDistance; BPopUpMenu* popUpMenu = _CreatePopUpMenu(); fDefaultPartition = new BMenuField(rect, "partitions", B_TRANSLATE_COMMENT("Default Partition:", "Menu field label"), popUpMenu); float divider = be_plain_font->StringWidth(fDefaultPartition->Label()) + 3; fDefaultPartition->SetDivider(divider); AddChild(fDefaultPartition); fDefaultPartition->ResizeToPreferred(); // timeout slider rect.top = fDefaultPartition->Frame().bottom + kTextDistance; int32 timeout; fSettings->FindInt32("timeout", &timeout); BString timeoutLabel; _GetTimeoutLabel(timeout, timeoutLabel); int32 sliderValue = get_index_for_timeout(timeout); fTimeoutSlider = new BSlider(rect, "timeout", timeoutLabel.String(), new BMessage(kMsgTimeout), 0, kNumberOfTimeoutOptions-1, B_BLOCK_THUMB, B_FOLLOW_LEFT_RIGHT | B_FOLLOW_TOP); fTimeoutSlider->SetModificationMessage(new BMessage(kMsgTimeout)); fTimeoutSlider->SetValue(sliderValue); fTimeoutSlider->SetLimitLabels(B_TRANSLATE("Immediately"), B_TRANSLATE("Never")); fTimeoutSlider->SetHashMarks(B_HASH_MARKS_BOTTOM); fTimeoutSlider->SetHashMarkCount(kNumberOfTimeoutOptions); fTimeoutSlider->ResizeToPreferred(); AddChild(fTimeoutSlider); _Layout(); }