From a2bea84d349f6942b2d97287040cb647a35043b0 Mon Sep 17 00:00:00 2001 From: John Scipione Date: Sun, 15 Apr 2012 16:06:29 -0400 Subject: [PATCH] Override the LayoutAlignment method in BStringView. Left align StringViews using layout API by default falling back to the alignment settings set by SetAlignment() only if SetExplicitAlignment() is not used. This way StringViews are left-aligned by default, can be changed using the Layout API, and the pre-Layout API legacy method is used as a fallback. See this thread for details: http://www.freelists.org/post/haiku-development/Can-we-make-BStringViews-MaxSize-BSizeB-SIZE-UNLIMITED-B-SIZE-UNSET-by-default --- headers/os/interface/StringView.h | 1 + src/kits/interface/StringView.cpp | 16 ++++++++++++---- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/headers/os/interface/StringView.h b/headers/os/interface/StringView.h index 212a215059..283bc8a2a5 100644 --- a/headers/os/interface/StringView.h +++ b/headers/os/interface/StringView.h @@ -42,6 +42,7 @@ public: virtual BSize MaxSize(); virtual BSize PreferredSize(); virtual void ResizeToPreferred(); + virtual BAlignment LayoutAlignment(); virtual void FrameMoved(BPoint newPosition); virtual void FrameResized(float newWidth, float newHeight); diff --git a/src/kits/interface/StringView.cpp b/src/kits/interface/StringView.cpp index 5035923014..8c6981ebc4 100644 --- a/src/kits/interface/StringView.cpp +++ b/src/kits/interface/StringView.cpp @@ -13,15 +13,15 @@ #include +#include +#include +#include + #include #include #include #include -#include -#include -#include - #include @@ -199,6 +199,14 @@ BStringView::ResizeToPreferred() } +BAlignment +BStringView::LayoutAlignment() +{ + return BLayoutUtils::ComposeAlignment(ExplicitAlignment(), + BAlignment(fAlign, B_ALIGN_MIDDLE)); +} + + void BStringView::FrameMoved(BPoint newPosition) {