xref: /haiku/src/tests/servers/app/resize_limits/ResizeLimits.cpp (revision d4e2c64c2ae435b7a159740a5e1b9e539fd2cb8b)
1 #include <Application.h>
2 #include <Window.h>
3 #include <Box.h>
4 
5 
6 class View : public BView {
7 	public:
8 		View(BRect frame);
9 
10 		virtual void FrameMoved(BPoint location);
11 };
12 
13 
View(BRect frame)14 View::View(BRect frame)
15 	: BView(frame, NULL, B_FOLLOW_NONE, B_FRAME_EVENTS)
16 {
17 	MoveBy(5, 5);
18 }
19 
20 
21 void
FrameMoved(BPoint point)22 View::FrameMoved(BPoint point)
23 {
24 	point.PrintToStream();
25 }
26 
27 
28 //	#pragma mark -
29 
30 
31 class Window : public BWindow {
32 	public:
33 		Window();
34 		virtual ~Window();
35 
36 		virtual bool QuitRequested();
37 		virtual void FrameResized(float width, float height);
38 };
39 
40 
Window()41 Window::Window()
42 	: BWindow(BRect(100, 100, 101, 101), "Test", /*B_TITLED_WINDOW*/ B_DOCUMENT_WINDOW
43 	/*B_BORDERED_WINDOW*/, B_NOT_ZOOMABLE /*| B_NOT_RESIZABLE*/)
44 {
45 	Show();
46 
47 	snooze(500000);	// .5 secs
48 
49 	Bounds().PrintToStream();
50 	ResizeTo(55, 55);
51 	Bounds().PrintToStream();
52 
53 	snooze(500000);	// .5 secs
54 
55 	SetSizeLimits(5, 500, 5, 500);
56 	ResizeTo(5, 5);
57 	Bounds().PrintToStream();
58 
59 	snooze(500000);	// .5 secs
60 
61 	SetSizeLimits(80, 500, 80, 500);
62 	Bounds().PrintToStream();
63 }
64 
65 
~Window()66 Window::~Window()
67 {
68 }
69 
70 
71 void
FrameResized(float width,float height)72 Window::FrameResized(float width, float height)
73 {
74 	CurrentMessage()->PrintToStream();
75 }
76 
77 
78 bool
QuitRequested()79 Window::QuitRequested()
80 {
81 	be_app->PostMessage(B_QUIT_REQUESTED);
82 	return true;
83 }
84 
85 
86 //	#pragma mark -
87 
88 
89 class Application : public BApplication {
90 	public:
91 		Application();
92 
93 		virtual void ReadyToRun(void);
94 };
95 
96 
Application()97 Application::Application()
98 	: BApplication("application/x-vnd.haiku.resizelimits-test")
99 {
100 	Window *window = new Window();
101 	window->Show();
102 }
103 
104 
105 void
ReadyToRun(void)106 Application::ReadyToRun(void)
107 {
108 }
109 
110 
111 int
main(int argc,char ** argv)112 main(int argc, char **argv)
113 {
114 	Application app;
115 	app.Run();
116 
117 	return 0;
118 }
119