xref: /haiku/src/apps/packageinstaller/BlockingWindow.h (revision 65688206345d2a67d38526281db9a0f50941b508)
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