From 6612ea4f299d72da5712bb24db9ecb574ae5130b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Tue, 8 Sep 2015 17:53:48 +0200 Subject: [PATCH] HaikuDepot: use better min/max widths for columns. * Use a scale factor depending on the font size. * Be more generous when it comes to the max width. * Use StringWidth() for the default size of the size and status columns. --- src/apps/haikudepot/ui/PackageListView.cpp | 24 ++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/src/apps/haikudepot/ui/PackageListView.cpp b/src/apps/haikudepot/ui/PackageListView.cpp index 734982d415..3ef7c39b10 100644 --- a/src/apps/haikudepot/ui/PackageListView.cpp +++ b/src/apps/haikudepot/ui/PackageListView.cpp @@ -1,4 +1,5 @@ /* + * Copyright 2015, Axel Dörfler, . * Copyright 2013-2014, Stephan Aßmus . * Copyright 2013, Rene Gollent, . * All rights reserved. Distributed under the terms of the MIT License. @@ -11,6 +12,7 @@ #include #include +#include #include #include #include @@ -708,18 +710,24 @@ PackageListView::PackageListView(BLocker* modelLock) fModelLock(modelLock), fPackageListener(new(std::nothrow) PackageListener(this)) { - AddColumn(new PackageColumn(B_TRANSLATE("Name"), 150, 50, 300, - B_TRUNCATE_MIDDLE), kTitleColumn); - AddColumn(new PackageColumn(B_TRANSLATE("Rating"), 80, 50, 100, - B_TRUNCATE_MIDDLE), kRatingColumn); - AddColumn(new PackageColumn(B_TRANSLATE("Description"), 300, 80, 1000, + float scale = be_plain_font->Size() / 12.f; + float spacing = be_control_look->DefaultItemSpacing() * 2; + + AddColumn(new PackageColumn(B_TRANSLATE("Name"), 150 * scale, 50 * scale, + 300 * scale, B_TRUNCATE_MIDDLE), kTitleColumn); + AddColumn(new PackageColumn(B_TRANSLATE("Rating"), 80 * scale, 50 * scale, + 100 * scale, B_TRUNCATE_MIDDLE), kRatingColumn); + AddColumn(new PackageColumn(B_TRANSLATE("Description"), 300 * scale, + 80 * scale, 1000 * scale, B_TRUNCATE_MIDDLE), kDescriptionColumn); PackageColumn* sizeColumn = new PackageColumn(B_TRANSLATE("Size"), - 60, 50, 100, B_TRUNCATE_END); + spacing + StringWidth(B_TRANSLATE("9999.99 KiB")), 50 * scale, + 140 * scale, B_TRUNCATE_END); sizeColumn->SetAlignment(B_ALIGN_RIGHT); AddColumn(sizeColumn, kSizeColumn); - AddColumn(new PackageColumn(B_TRANSLATE("Status"), 60, 60, 100, - B_TRUNCATE_END), kStatusColumn); + AddColumn(new PackageColumn(B_TRANSLATE("Status"), + spacing + StringWidth(B_TRANSLATE("Available")), 60 * scale, + 140 * scale, B_TRUNCATE_END), kStatusColumn); fItemCountView = new ItemCountView(); AddStatusView(fItemCountView);