From 04e916ccb5b36fd2ce229d5f9155cf793943fc32 Mon Sep 17 00:00:00 2001 From: Rene Gollent Date: Mon, 25 Oct 2010 17:33:06 +0000 Subject: [PATCH] Override Update() so we can return an item width that includes our flag. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39145 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/preferences/locale/LanguageListView.cpp | 16 +++++++++++++--- src/preferences/locale/LanguageListView.h | 2 ++ 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/preferences/locale/LanguageListView.cpp b/src/preferences/locale/LanguageListView.cpp index 5e51d50fef..edc8b32440 100644 --- a/src/preferences/locale/LanguageListView.cpp +++ b/src/preferences/locale/LanguageListView.cpp @@ -30,6 +30,8 @@ #define B_TRANSLATE_CONTEXT "LanguageListView" +static const float kFlagWidth = 17.0; + LanguageListItem::LanguageListItem(const char* text, const char* id, const char* code, const char* countryCode) : @@ -104,10 +106,10 @@ LanguageListItem::DrawItem(BView* owner, BRect frame, bool complete) owner->DrawString(text.String()); // Draw the icon - frame.left = frame.right - 17; + frame.left = frame.right - kFlagWidth; BRect iconFrame(frame); - iconFrame.Set(iconFrame.left, iconFrame.top + 1, iconFrame.left + 15, - iconFrame.top + 16); + iconFrame.Set(iconFrame.left, iconFrame.top + 1, iconFrame.left + kFlagWidth - 2, + iconFrame.top + kFlagWidth - 1); if (fIcon != NULL && fIcon->IsValid()) { owner->SetDrawingMode(B_OP_OVER); @@ -118,6 +120,14 @@ LanguageListItem::DrawItem(BView* owner, BRect frame, bool complete) } +void +LanguageListItem::Update(BView* owner, const BFont* font) +{ + BStringItem::Update(owner, font); + SetWidth(Width() + kFlagWidth); +} + + // #pragma mark - diff --git a/src/preferences/locale/LanguageListView.h b/src/preferences/locale/LanguageListView.h index 246242ac03..ae163896ce 100644 --- a/src/preferences/locale/LanguageListView.h +++ b/src/preferences/locale/LanguageListView.h @@ -31,6 +31,8 @@ public: virtual void DrawItem(BView* owner, BRect frame, bool complete = false); + virtual void Update(BView* owner, const BFont* font); + private: BString fID; BString fCode;