From b53a2e6af53a5f375e63a50c4a021bb8967cb2d7 Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Wed, 11 Sep 2013 04:53:06 +0200 Subject: [PATCH] package daemon: ProblemWindow: Use a scroll view --- src/servers/package/Jamfile | 2 +- src/servers/package/ProblemWindow.cpp | 22 +++++++++++++++++++--- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/src/servers/package/Jamfile b/src/servers/package/Jamfile index 348dc1b6df..d2859db07c 100644 --- a/src/servers/package/Jamfile +++ b/src/servers/package/Jamfile @@ -1,7 +1,7 @@ SubDir HAIKU_TOP src servers package ; UsePrivateSystemHeaders ; -UsePrivateHeaders app kernel shared ; +UsePrivateHeaders app interface kernel shared ; Server package_daemon : diff --git a/src/servers/package/ProblemWindow.cpp b/src/servers/package/ProblemWindow.cpp index db0493a9f6..8dc68de720 100644 --- a/src/servers/package/ProblemWindow.cpp +++ b/src/servers/package/ProblemWindow.cpp @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include @@ -18,6 +19,7 @@ #include #include +#include using namespace BPackageKit; @@ -70,19 +72,33 @@ ProblemWindow::ProblemWindow() if (fDoneSemaphore < 0) throw std::bad_alloc(); + BStringView* topTextView = NULL; + BViewPort* viewPort = NULL; + BLayoutBuilder::Group<>(this, B_VERTICAL, B_USE_DEFAULT_SPACING) .SetInsets(B_USE_SMALL_INSETS) - .Add(new BStringView(NULL, + .Add(topTextView = new BStringView(NULL, "The following problems have been encountered. Please select a " "solution for each:")) -// TODO: Use a scroll view! - .Add(fContainerView = new BGroupView(B_VERTICAL, 0)) + .Add(new BScrollView(NULL, viewPort = new BViewPort(), 0, false, true)) .AddGroup(B_HORIZONTAL) .Add(fCancelButton = new BButton("Cancel", new BMessage(B_CANCEL))) .AddGlue() .Add(fRetryButton = new BButton("Retry", new BMessage(kRetryMessage))) .End(); + + topTextView->SetExplicitMaxSize(BSize(B_SIZE_UNLIMITED, B_SIZE_UNSET)); + + viewPort->SetChildView(fContainerView = new BGroupView(B_VERTICAL, 0)); + + // set small scroll step (large step will be set by the view port) + BFont font; + topTextView->GetFont(&font); + font_height fontHeight; + font.GetHeight(&fontHeight); + float smallStep = ceilf(fontHeight.ascent + fontHeight.descent); + viewPort->ScrollBar(B_VERTICAL)->SetSteps(smallStep, smallStep); }