1/*
2 * Copyright 2009-2012 Haiku Inc. All rights reserved.
3 * Distributed under the terms of the MIT License.
4 *
5 * Authors:
6 *		Alex Wilson <yourpalal2@gmail.com>
7 *		Artur Wyszynski <harakash@gmail.com>
8 */
9
10
11#include "OpenGLView.h"
12
13#include <stdio.h>
14
15#include <Catalog.h>
16#include <GLView.h>
17#include <LayoutBuilder.h>
18#include <Locale.h>
19#include <MenuField.h>
20#include <PopUpMenu.h>
21#include <Size.h>
22#include <SpaceLayoutItem.h>
23#include <TabView.h>
24
25#include "CapabilitiesView.h"
26#include "ExtensionsView.h"
27#include "InfoView.h"
28#include "GearsView.h"
29
30
31#undef B_TRANSLATION_CONTEXT
32#define B_TRANSLATION_CONTEXT "OpenGLView"
33
34
35OpenGLView::OpenGLView()
36	:
37	BGroupView("OpenGLView", B_VERTICAL)
38{
39
40	BGLView* glView = new BGLView(BRect(0, 0, 1, 1), "gl info", B_FOLLOW_NONE, 0,
41		BGL_RGB | BGL_DOUBLE);
42	glView->Hide();
43	AddChild(glView);
44
45	glView->LockGL();
46
47	float tabViewWidth = this->StringWidth("M") * 42;
48	float tabViewHeight = this->StringWidth("M") * 16;
49
50	BTabView *tabView = new BTabView("tab view", B_WIDTH_FROM_LABEL);
51	tabView->SetExplicitMinSize(BSize(tabViewWidth, tabViewHeight));
52	tabView->AddTab(new CapabilitiesView());
53	tabView->AddTab(new ExtensionsView());
54
55	GroupLayout()->SetSpacing(0);
56	BLayoutBuilder::Group<>(this)
57		.AddGroup(B_HORIZONTAL, 0)
58			.Add(new GearsView())
59			.AddGroup(B_VERTICAL, B_USE_DEFAULT_SPACING)
60				.SetInsets(0, B_USE_DEFAULT_SPACING,
61					B_USE_DEFAULT_SPACING, B_USE_DEFAULT_SPACING)
62				.Add(new InfoView())
63				.Add(tabView)
64				.End()
65			.AddGlue()
66			.End();
67
68	glView->UnlockGL();
69}
70
71OpenGLView::~OpenGLView()
72{
73}
74