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
16class App : public BApplication {
17public:
18	App();
19};
20
21
22class Window : public BWindow {
23public:
24	Window();
25	void AttachTermView();
26private:
27	BShelf *fShelf;
28};
29
30
31int main()
32{
33	App app;
34	app.Run();
35	return 0;
36}
37
38
39// App
40App::App()
41	:BApplication("application/x-vnd-terminal-replicant")
42{
43	Window *window = new Window();
44	window->Show();
45}
46
47
48// Window
49Window::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
57void
58Window::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