xref: /haiku/src/tests/apps/terminal_replicant/main.cpp (revision 922e7ba1f3228e6f28db69b0ded8f86eb32dea17)
1 #include <Application.h>
2 #include <Archivable.h>
3 #include <Box.h>
4 #include <Dragger.h>
5 #include <Message.h>
6 #include <Path.h>
7 #include <ScrollView.h>
8 #include <Shelf.h>
9 #include <Window.h>
10 
11 #include <stdio.h>
12 
13 #include "TermConst.h"
14 	// for the Terminal's signature
15 
16 class App : public BApplication {
17 public:
18 	App();
19 };
20 
21 
22 class Window : public BWindow {
23 public:
24 	Window();
25 	void AttachTermView();
26 private:
27 	BShelf *fShelf;
28 };
29 
30 
31 int main()
32 {
33 	App app;
34 	app.Run();
35 	return 0;
36 }
37 
38 
39 // App
40 App::App()
41 	:BApplication("application/x-vnd-terminal-replicant")
42 {
43 	Window *window = new Window();
44 	window->Show();
45 }
46 
47 
48 // Window
49 Window::Window()
50 	:BWindow(BRect(100, 100, 400, 360), "RepliTerminal",
51 			B_TITLED_WINDOW, B_ASYNCHRONOUS_CONTROLS|B_QUIT_ON_WINDOW_CLOSE)
52 {
53 	AttachTermView();
54 }
55 
56 
57 void
58 Window::AttachTermView()
59 {
60 	// BMessage containing the class name and the app_signature
61 	// for Terminal and TermView
62 	BMessage message;
63 	message.AddString("class", "TermView");
64 	message.AddString("add_on", TERM_SIGNATURE);
65 	message.AddBool("use_rect", true);
66 
67 	BRect viewFrame = Bounds();
68 	viewFrame.right -= 15;
69 	message.AddRect("_frame", viewFrame);
70 
71 	BView *termView = dynamic_cast<BView *>(instantiate_object(&message));
72 	if (termView == NULL)
73 		return;
74 
75 	termView->SetResizingMode(B_FOLLOW_ALL);
76 
77 	BScrollView *scrollView = new BScrollView("scrollview", termView,
78 		B_FOLLOW_ALL, B_WILL_DRAW, false, true);
79 
80 	AddChild(scrollView);
81 }
82