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