From 2253368e6aa54138e5cee18af291082da483da46 Mon Sep 17 00:00:00 2001 From: Rene Gollent Date: Sun, 5 May 2013 13:13:07 -0400 Subject: [PATCH] Implement #8671. Smarter Zoom behavior for TeamsWindow - resize such that the team list view's horizontal scrollbar isn't needed. --- .../gui/teams_window/TeamsWindow.cpp | 18 ++++++++++++++++++ .../gui/teams_window/TeamsWindow.h | 1 + 2 files changed, 19 insertions(+) diff --git a/src/apps/debugger/user_interface/gui/teams_window/TeamsWindow.cpp b/src/apps/debugger/user_interface/gui/teams_window/TeamsWindow.cpp index 052d63be12..617a3ef3df 100644 --- a/src/apps/debugger/user_interface/gui/teams_window/TeamsWindow.cpp +++ b/src/apps/debugger/user_interface/gui/teams_window/TeamsWindow.cpp @@ -18,6 +18,7 @@ #include #include #include +#include #include #include "MessageCodes.h" @@ -70,6 +71,23 @@ TeamsWindow::Create(SettingsManager* settingsManager) } +void +TeamsWindow::Zoom(BPoint, float, float) +{ + BSize preferredSize = fTeamsListView->PreferredSize(); + ResizeBy(preferredSize.Width() - Bounds().Width(), + 0.0); + + // if the new size would extend us past the screen border, + // move sufficiently to the left to bring us back within the bounds + // + a bit of extra margin so we're not flush against the edge. + BScreen screen; + float offset = screen.Frame().right - Frame().right; + if (offset < 0) + MoveBy(offset - 5.0, 0.0); +} + + void TeamsWindow::MessageReceived(BMessage* message) { diff --git a/src/apps/debugger/user_interface/gui/teams_window/TeamsWindow.h b/src/apps/debugger/user_interface/gui/teams_window/TeamsWindow.h index d4f4ebbbcf..b83083e6bf 100644 --- a/src/apps/debugger/user_interface/gui/teams_window/TeamsWindow.h +++ b/src/apps/debugger/user_interface/gui/teams_window/TeamsWindow.h @@ -25,6 +25,7 @@ public: static TeamsWindow* Create(SettingsManager* settingsManager); // throws + virtual void Zoom(BPoint origin, float width, float height); virtual void MessageReceived(BMessage* message); virtual bool QuitRequested();