1/* 2 * Copyright (C) 2008 Stephan A��mus <superstippi@gmx.de> 3 * All rights reserved. Distributed under the terms of the MIT license. 4 */ 5#include "TestWindow.h" 6 7#include "Test.h" 8 9 10TestView::TestView(BRect frame, Test* test, drawing_mode mode, 11 bool useClipping, const BMessenger& target) 12 : 13 BView(frame, "test view", B_FOLLOW_ALL, B_WILL_DRAW), 14 fTest(test), 15 fTarget(target), 16 fUseClipping(useClipping) 17{ 18 SetDrawingMode(mode); 19} 20 21 22void 23TestView::AttachedToWindow() 24{ 25 fTest->Prepare(this); 26 if (fUseClipping) 27 fTest->SetupClipping(this); 28} 29 30 31void 32TestView::Draw(BRect updateRect) 33{ 34 if (fTest->RunIteration(this)) { 35 Invalidate(); 36 return; 37 } 38 39 fTarget.SendMessage(MSG_TEST_FINISHED); 40} 41 42 43TestWindow::TestWindow(BRect frame, Test* test, drawing_mode mode, 44 bool useClipping, const BMessenger& target) 45 : BWindow(frame, "Test Window", B_TITLED_WINDOW_LOOK, 46 B_FLOATING_ALL_WINDOW_FEEL, B_NOT_ZOOMABLE | B_NOT_RESIZABLE), 47 fTarget(target), 48 fAllowedToQuit(false) 49{ 50 fTestView = new TestView(Bounds(), test, mode, useClipping, target); 51 AddChild(fTestView); 52 Show(); 53} 54 55 56bool 57TestWindow::QuitRequested() 58{ 59 if (fAllowedToQuit) 60 return true; 61 62 fTarget.SendMessage(MSG_TEST_CANCELED); 63 return false; 64} 65 66 67void 68TestWindow::SetAllowedToQuit(bool allowed) 69{ 70 fAllowedToQuit = allowed; 71} 72 73