1/* 2 * Copyright 2009-2010 Haiku Inc. All rights reserved. 3 * Distributed under the terms of the MIT License. 4 * 5 * Authors: 6 * John Scipione <jscipione@gmail.com> 7 * Alex Wilson <yourpalal2@gmail.com> 8 * Artur Wyszynski <harakash@gmail.com> 9 */ 10 11 12#include "InfoView.h" 13 14#include <Box.h> 15#include <Catalog.h> 16#include <ControlLook.h> 17#include <GL/gl.h> 18#include <GL/glu.h> 19#include <GL/glut.h> 20#include <GridLayoutBuilder.h> 21#include <LayoutBuilder.h> 22#include <Locale.h> 23#include <Message.h> 24#include <String.h> 25#include <StringView.h> 26 27 28#undef B_TRANSLATION_CONTEXT 29#define B_TRANSLATION_CONTEXT "InfoView" 30 31 32const BAlignment kLabelAlignment(B_ALIGN_LEFT, B_ALIGN_VERTICAL_UNSET); 33const BAlignment kValueAlignment(B_ALIGN_RIGHT, B_ALIGN_VERTICAL_UNSET); 34 35 36InfoView::InfoView() 37 : 38 BGroupView(B_TRANSLATE("Information"), B_HORIZONTAL) 39{ 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