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 <Catalog.h> 15 #include <ControlLook.h> 16 #include <GL/gl.h> 17 #include <GL/glu.h> 18 #include <GL/glut.h> 19 #include <GridLayoutBuilder.h> 20 #include <LayoutBuilder.h> 21 #include <Locale.h> 22 #include <Message.h> 23 #include <String.h> 24 #include <StringView.h> 25 26 27 #undef B_TRANSLATE_CONTEXT 28 #define B_TRANSLATE_CONTEXT "InfoView" 29 30 31 const BAlignment kLabelAlignment(B_ALIGN_LEFT, B_ALIGN_VERTICAL_UNSET); 32 const BAlignment kValueAlignment(B_ALIGN_RIGHT, B_ALIGN_VERTICAL_UNSET); 33 34 35 // <bold>Render name</bold> 36 // Vendor Name GL Version 37 // GLU version GLUT API version 38 // 39 // example: 40 // Software rasterizer for X86/MMX/SSE2 41 // Mesa Project 2.1 Mesa 8.1-devel (git-2402c0) 42 // GLU 1.3 GLUT API 5 43 44 InfoView::InfoView() 45 : 46 BGroupView(B_TRANSLATE("Information"), B_HORIZONTAL) 47 { 48 BStringView* rendererView = new BStringView(NULL, 49 (const char*)glGetString(GL_RENDERER)); 50 rendererView->SetExplicitAlignment(kLabelAlignment); 51 rendererView->SetFont(be_bold_font); 52 53 BStringView* vendorNameView = new BStringView(NULL, 54 (const char*)glGetString(GL_VENDOR)); 55 vendorNameView->SetExplicitAlignment(kLabelAlignment); 56 57 BStringView* glVersionView = new BStringView(NULL, 58 (const char*)glGetString(GL_VERSION)); 59 glVersionView->SetExplicitAlignment(kLabelAlignment); 60 61 BString gluString("GLU "); 62 gluString << (const char*)gluGetString(GLU_VERSION); 63 BStringView* gluVersionView = new BStringView(NULL, gluString.String()); 64 gluVersionView->SetExplicitAlignment(kLabelAlignment); 65 66 BString glutAPIString("GLUT API "); 67 glutAPIString << (int32)GLUT_API_VERSION; 68 BStringView* glutVersionView = new BStringView(NULL, 69 glutAPIString.String()); 70 glutVersionView->SetExplicitAlignment(kLabelAlignment); 71 72 BLayoutBuilder::Group<>(this) 73 .AddGroup(B_VERTICAL, 0) 74 .Add(rendererView) 75 .Add(BGridLayoutBuilder(0, 0) 76 .Add(vendorNameView, 0, 0) 77 .Add(glVersionView, 1, 0) 78 .Add(gluVersionView, 0, 1) 79 .Add(glutVersionView, 1, 1) 80 ) 81 .End(); 82 } 83 84 85 InfoView::~InfoView() 86 { 87 } 88