1*65688206SStephan Aßmus /* 2*65688206SStephan Aßmus * Copyright (c) 2014, Stephan Aßmus <superstippi@gmx.de> 3*65688206SStephan Aßmus * All rights reserved. Distributed under the terms of the MIT license. 4*65688206SStephan Aßmus */ 5*65688206SStephan Aßmus #ifndef BLOCKING_WINDOW_H 6*65688206SStephan Aßmus #define BLOCKING_WINDOW_H 7*65688206SStephan Aßmus 8*65688206SStephan Aßmus 9*65688206SStephan Aßmus #include <Window.h> 10*65688206SStephan Aßmus 11*65688206SStephan Aßmus 12*65688206SStephan Aßmus class BlockingWindow : public BWindow { 13*65688206SStephan Aßmus public: 14*65688206SStephan Aßmus BlockingWindow(BRect frame, 15*65688206SStephan Aßmus const char* title, uint32 flags = 0); 16*65688206SStephan Aßmus virtual ~BlockingWindow(); 17*65688206SStephan Aßmus 18*65688206SStephan Aßmus virtual bool QuitRequested(); 19*65688206SStephan Aßmus 20*65688206SStephan Aßmus virtual int32 Go(); 21*65688206SStephan Aßmus 22*65688206SStephan Aßmus protected: 23*65688206SStephan Aßmus void ReleaseSem(int32 returnValue); 24*65688206SStephan Aßmus 25*65688206SStephan Aßmus private: 26*65688206SStephan Aßmus sem_id fSemaphore; 27*65688206SStephan Aßmus int32 fReturnValue; 28*65688206SStephan Aßmus }; 29*65688206SStephan Aßmus 30*65688206SStephan Aßmus 31*65688206SStephan Aßmus #endif // BLOCKING_WINDOW_H 32*65688206SStephan Aßmus 33