1/* 2 * Copyright (c) 2008 Stephan A��mus <superstippi@gmx.de>. 3 * Copyright (c) 2009 Philippe Saint-Pierre, stpere@gmail.com 4 * All rights reserved. Distributed under the terms of the MIT license. 5 * 6 * Copyright (c) 1999 Mike Steed. You are free to use and distribute this software 7 * as long as it is accompanied by it's documentation and this copyright notice. 8 * The software comes with no warranty, etc. 9 */ 10#include "MainWindow.h" 11 12#include <Application.h> 13#include <Catalog.h> 14#include <Node.h> 15#include <Roster.h> 16#include <Screen.h> 17 18#include <LayoutBuilder.h> 19 20#include "DiskUsage.h" 21#include "ControlsView.h" 22 23#undef B_TRANSLATION_CONTEXT 24#define B_TRANSLATION_CONTEXT "MainWindow" 25 26MainWindow::MainWindow(BRect pieRect) 27 : 28 BWindow(pieRect, B_TRANSLATE_SYSTEM_NAME("DiskUsage"), B_TITLED_WINDOW, 29 B_ASYNCHRONOUS_CONTROLS | B_QUIT_ON_WINDOW_CLOSE 30 | B_AUTO_UPDATE_SIZE_LIMITS) 31{ 32 fControlsView = new ControlsView(); 33 34 SetLayout(new BGroupLayout(B_VERTICAL)); 35 36 AddChild(BLayoutBuilder::Group<>(B_VERTICAL) 37 .Add(fControlsView) 38 .SetInsets(0, B_USE_WINDOW_SPACING, 0, 0) 39 ); 40 float maxHeight = BScreen(this).Frame().Height() - 12; 41 fControlsView->SetExplicitMaxSize(BSize(maxHeight, maxHeight)); 42} 43 44 45MainWindow::~MainWindow() 46{ 47} 48 49 50void 51MainWindow::MessageReceived(BMessage* message) 52{ 53 switch (message->what) { 54 case kBtnCancel: 55 case kBtnRescan: 56 case B_SIMPLE_DATA: 57 case B_REFS_RECEIVED: 58 fControlsView->MessageReceived(message); 59 break; 60 61 default: 62 BWindow::MessageReceived(message); 63 break; 64 } 65} 66 67 68bool 69MainWindow::QuitRequested() 70{ 71 be_app->PostMessage(B_QUIT_REQUESTED); 72 return true; 73} 74 75 76// #pragma mark - 77 78 79void 80MainWindow::EnableRescan() 81{ 82 fControlsView->EnableRescan(); 83} 84 85 86void 87MainWindow::EnableCancel() 88{ 89 fControlsView->EnableCancel(); 90} 91 92 93void 94MainWindow::ShowInfo(const FileInfo* info) 95{ 96 fControlsView->ShowInfo(info); 97} 98 99 100BVolume* 101MainWindow::FindDeviceFor(dev_t device, bool invoke) 102{ 103 return fControlsView->FindDeviceFor(device, invoke); 104} 105