1259701Sdim/*
2259701Sdim * Copyright 2009-2010 Haiku Inc. All rights reserved.
3259701Sdim * Distributed under the terms of the MIT License.
4259701Sdim *
5259701Sdim * Authors:
6259701Sdim *		John Scipione <jscipione@gmail.com>
7259701Sdim *		Alex Wilson <yourpalal2@gmail.com>
8259701Sdim *		Artur Wyszynski <harakash@gmail.com>
9259701Sdim */
10259701Sdim
11259701Sdim
12259701Sdim#include "InfoView.h"
13259701Sdim
14259701Sdim#include <Box.h>
15259701Sdim#include <Catalog.h>
16259701Sdim#include <ControlLook.h>
17259701Sdim#include <GL/gl.h>
18259701Sdim#include <GL/glu.h>
19259701Sdim#include <GL/glut.h>
20259701Sdim#include <GridLayoutBuilder.h>
21259701Sdim#include <LayoutBuilder.h>
22259701Sdim#include <Locale.h>
23259701Sdim#include <Message.h>
24259701Sdim#include <String.h>
25259701Sdim#include <StringView.h>
26259701Sdim
27259701Sdim
28259701Sdim#undef B_TRANSLATION_CONTEXT
29259701Sdim#define B_TRANSLATION_CONTEXT "InfoView"
30259701Sdim
31259701Sdim
32259701Sdimconst BAlignment kLabelAlignment(B_ALIGN_LEFT, B_ALIGN_VERTICAL_UNSET);
33259701Sdimconst BAlignment kValueAlignment(B_ALIGN_RIGHT, B_ALIGN_VERTICAL_UNSET);
34259701Sdim
35259701Sdim
36259701SdimInfoView::InfoView()
37259701Sdim	:
38259701Sdim	BGroupView(B_TRANSLATE("Information"), B_HORIZONTAL)
39259701Sdim{
40	const char* glRenderer = (const char*)glGetString(GL_RENDERER);
41	if (glRenderer == NULL)
42		glRenderer = B_TRANSLATE("Unknown or missing OpenGL renderer.");
43	BStringView* rendererView = new BStringView(NULL, glRenderer);
44	rendererView->SetExplicitAlignment(kLabelAlignment);
45	rendererView->SetFont(be_bold_font);
46
47	const char* glVendor = (const char*)glGetString(GL_VENDOR);
48	if (glVendor == NULL)
49		glVendor = B_TRANSLATE("Unknown vendor");
50	BStringView* vendorNameView = new BStringView(NULL, glVendor);
51	vendorNameView->SetExplicitAlignment(kLabelAlignment);
52
53	const char* glVersion = (const char*)glGetString(GL_VERSION);
54	if (glVersion == NULL)
55		glVersion = B_TRANSLATE("Unknown version");
56	BStringView* glVersionView = new BStringView(NULL, glVersion);
57	glVersionView->SetExplicitAlignment(kLabelAlignment);
58
59	BString apiString("GLU ");
60	apiString << (const char*)gluGetString(GLU_VERSION);
61	apiString << ", GLUT ";
62	apiString << (int32)GLUT_API_VERSION;
63	BStringView* apiVersionView = new BStringView(NULL, apiString.String());
64	apiVersionView->SetExplicitAlignment(kLabelAlignment);
65
66	BLayoutBuilder::Group<>(this)
67		.AddGroup(B_VERTICAL, 0)
68			.Add(rendererView)
69			.Add(vendorNameView)
70			.Add(glVersionView)
71			.Add(apiVersionView)
72			.End();
73}
74
75
76InfoView::~InfoView()
77{
78}
79