Smarter Zoom behavior for TeamsWindow - resize such that the
team list view's horizontal scrollbar isn't needed.
This commit is contained in:
Rene Gollent
2013-05-05 13:14:24 -04:00
parent ddd6037113
commit 2253368e6a
2 changed files with 19 additions and 0 deletions
@@ -18,6 +18,7 @@
#include <LayoutBuilder.h> #include <LayoutBuilder.h>
#include <ListView.h> #include <ListView.h>
#include <Path.h> #include <Path.h>
#include <Screen.h>
#include <ScrollView.h> #include <ScrollView.h>
#include "MessageCodes.h" #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 void
TeamsWindow::MessageReceived(BMessage* message) TeamsWindow::MessageReceived(BMessage* message)
{ {
@@ -25,6 +25,7 @@ public:
static TeamsWindow* Create(SettingsManager* settingsManager); static TeamsWindow* Create(SettingsManager* settingsManager);
// throws // throws
virtual void Zoom(BPoint origin, float width, float height);
virtual void MessageReceived(BMessage* message); virtual void MessageReceived(BMessage* message);
virtual bool QuitRequested(); virtual bool QuitRequested();