Ticket #7531: GLTeapot.patch
File GLTeapot.patch, 9.9 KB (added by , 13 years ago) |
---|
-
src/apps/glteapot/TeapotWindow.cpp
4 4 */ 5 5 6 6 #include <stdio.h> 7 #include <new> 8 9 #include <Catalog.h> 7 10 #include <InterfaceKit.h> 11 #include <Point.h> 8 12 #include <Rect.h> 9 #include <Point.h>10 #include <new>11 13 12 14 #include "TeapotWindow.h" 13 15 16 #undef B_TRANSLATE_CONTEXT 17 #define B_TRANSLATE_CONTEXT "TeapotWindow" 18 14 19 TeapotWindow::TeapotWindow(BRect rect, const char* name, window_type wt, 15 20 ulong something) 16 21 : 17 22 BDirectWindow(rect, name, wt, something) 18 23 { 19 24 GLenum type = BGL_RGB | BGL_DEPTH | BGL_DOUBLE; 20 25 21 26 Lock(); 22 27 BRect bounds = Bounds(); 23 28 bounds.bottom = bounds.top + 14; … … 26 31 BMenu* menu; 27 32 BMessage msg(kMsgAddModel); 28 33 29 menuBar->AddItem(menu = new BMenu( "File"));34 menuBar->AddItem(menu = new BMenu(B_TRANSLATE("File"))); 30 35 AddChild(menuBar); 31 36 32 37 menuBar->ResizeToPreferred(); 33 38 34 39 bounds = Bounds(); 35 40 bounds.top = menuBar->Bounds().bottom + 1; 36 41 BView *subView = new BView(bounds, "subview", B_FOLLOW_ALL, 0); 37 42 AddChild(subView); 38 43 39 44 bounds = subView->Bounds(); 40 fObjectView = new(std::nothrow) ObjectView(bounds, "objectView", B_FOLLOW_ALL_SIDES, type); 41 subView->AddChild(fObjectView); 42 45 fObjectView = new(std::nothrow) ObjectView(bounds, "objectView", 46 B_FOLLOW_ALL_SIDES, type); 47 subView->AddChild(fObjectView); 48 43 49 BMenuItem* item; 44 50 msg.AddInt32("num", 256); 45 menu->AddItem(item = new BMenuItem("Add a teapot", new BMessage(msg), 'N')); 46 item->SetTarget(fObjectView); 51 menu->AddItem(item = new BMenuItem(B_TRANSLATE("Add a teapot"), 52 new BMessage(msg), 'N')); 53 item->SetTarget(fObjectView); 47 54 menu->AddSeparatorItem(); 48 menu->AddItem(item = new BMenuItem("Quit", new BMessage(B_QUIT_REQUESTED), 'Q')); 55 menu->AddItem(item = new BMenuItem(B_TRANSLATE("Quit"), 56 new BMessage(B_QUIT_REQUESTED), 'Q')); 49 57 item->SetTarget(be_app); 50 58 msg.RemoveName("num"); 51 menuBar->AddItem(menu = new BMenu("Options")); 52 menu->AddItem(item = new BMenuItem("Perspective", new BMessage(kMsgPerspective))); 59 menuBar->AddItem(menu = new BMenu(B_TRANSLATE("Options"))); 60 menu->AddItem(item = new BMenuItem(B_TRANSLATE("Perspective"), 61 new BMessage(kMsgPerspective))); 53 62 item->SetTarget(fObjectView); 54 63 item->SetMarked(false); 55 menu->AddItem(item = new BMenuItem("FPS display", new BMessage(kMsgFPS))); 64 menu->AddItem(item = new BMenuItem(B_TRANSLATE("FPS display"), 65 new BMessage(kMsgFPS))); 56 66 item->SetTarget(fObjectView); 57 67 item->SetMarked(true); 58 menu->AddItem(item = new BMenuItem("Filled polygons", new BMessage(kMsgFilled))); 68 menu->AddItem(item = new BMenuItem(B_TRANSLATE("Filled polygons"), 69 new BMessage(kMsgFilled))); 59 70 item->SetTarget(fObjectView); 60 71 item->SetMarked(true); 61 menu->AddItem(item = new BMenuItem("Lighting", new BMessage(kMsgLighting))); 72 menu->AddItem(item = new BMenuItem(B_TRANSLATE("Lighting"), 73 new BMessage(kMsgLighting))); 62 74 item->SetTarget(fObjectView); 63 75 item->SetMarked(true); 64 menu->AddItem(item = new BMenuItem("Backface culling", new BMessage(kMsgCulling))); 76 menu->AddItem(item = new BMenuItem(B_TRANSLATE("Backface culling"), 77 new BMessage(kMsgCulling))); 65 78 item->SetTarget(fObjectView); 66 79 item->SetMarked(true); 67 menu->AddItem(item = new BMenuItem("Z-buffered", new BMessage(kMsgZBuffer))); 80 menu->AddItem(item = new BMenuItem(B_TRANSLATE("Z-buffered"), 81 new BMessage(kMsgZBuffer))); 68 82 item->SetTarget(fObjectView); 69 83 item->SetMarked(true); 70 menu->AddItem(item = new BMenuItem("Gouraud shading", new BMessage(kMsgGouraud))); 84 menu->AddItem(item = new BMenuItem(B_TRANSLATE("Gouraud shading"), 85 new BMessage(kMsgGouraud))); 71 86 item->SetTarget(fObjectView); 72 87 item->SetMarked(true); 73 88 // menu->AddItem(item = new BMenuItem("Texture mapped", new BMessage(kMsgTextured))); 74 89 // item->SetTarget(fObjectView); 75 menu->AddItem(item = new BMenuItem("Fog", new BMessage(kMsgFog))); 90 menu->AddItem(item = new BMenuItem(B_TRANSLATE("Fog"), 91 new BMessage(kMsgFog))); 76 92 item->SetTarget(fObjectView); 77 93 78 94 BMenu *subMenu; 79 menuBar->AddItem(menu = new BMenu( "Lights"));95 menuBar->AddItem(menu = new BMenu(B_TRANSLATE("Lights"))); 80 96 msg.what = kMsgLights; 81 97 82 98 msg.AddInt32("num", 1); 83 menu->AddItem(item = new BMenuItem(subMenu = new BMenu("Upper center"), NULL)); 99 menu->AddItem(item = new BMenuItem(subMenu = 100 new BMenu(B_TRANSLATE("Upper center")), NULL)); 84 101 item->SetTarget(fObjectView); 85 102 msg.AddInt32("color", lightNone); 86 subMenu->AddItem(item = new BMenuItem("Off", new BMessage(msg))); 103 subMenu->AddItem(item = new BMenuItem(B_TRANSLATE("Off"), 104 new BMessage(msg))); 87 105 item->SetTarget(fObjectView); 88 106 subMenu->AddSeparatorItem(); 89 107 msg.ReplaceInt32("color", lightWhite); 90 subMenu->AddItem(item = new BMenuItem("White", new BMessage(msg))); 108 subMenu->AddItem(item = new BMenuItem(B_TRANSLATE("White"), 109 new BMessage(msg))); 91 110 item->SetTarget(fObjectView); 92 111 item->SetMarked(true); 93 112 msg.ReplaceInt32("color", lightYellow); 94 subMenu->AddItem(item = new BMenuItem("Yellow", new BMessage(msg))); 113 subMenu->AddItem(item = new BMenuItem(B_TRANSLATE("Yellow"), 114 new BMessage(msg))); 95 115 item->SetTarget(fObjectView); 96 116 msg.ReplaceInt32("color", lightBlue); 97 subMenu->AddItem(item = new BMenuItem("Blue", new BMessage(msg))); 117 subMenu->AddItem(item = new BMenuItem(B_TRANSLATE("Blue"), 118 new BMessage(msg))); 98 119 item->SetTarget(fObjectView); 99 120 msg.ReplaceInt32("color", lightRed); 100 subMenu->AddItem(item = new BMenuItem("Red", new BMessage(msg))); 121 subMenu->AddItem(item = new BMenuItem(B_TRANSLATE("Red"), 122 new BMessage(msg))); 101 123 item->SetTarget(fObjectView); 102 124 msg.ReplaceInt32("color", lightGreen); 103 subMenu->AddItem(item = new BMenuItem("Green", new BMessage(msg))); 125 subMenu->AddItem(item = new BMenuItem(B_TRANSLATE("Green"), 126 new BMessage(msg))); 104 127 item->SetTarget(fObjectView); 105 128 106 129 msg.RemoveName("color"); 107 130 108 131 msg.ReplaceInt32("num", 2); 109 menu->AddItem(item = new BMenuItem(subMenu = new BMenu("Lower left"), NULL)); 132 menu->AddItem(item = new BMenuItem(subMenu = 133 new BMenu(B_TRANSLATE("Lower left")), NULL)); 110 134 item->SetTarget(fObjectView); 111 135 msg.AddInt32("color", lightNone); 112 subMenu->AddItem(item = new BMenuItem("Off", new BMessage(msg))); 136 subMenu->AddItem(item = new BMenuItem(B_TRANSLATE("Off"), 137 new BMessage(msg))); 113 138 item->SetTarget(fObjectView); 114 139 subMenu->AddSeparatorItem(); 115 140 msg.ReplaceInt32("color", lightWhite); 116 subMenu->AddItem(item = new BMenuItem("White", new BMessage(msg))); 141 subMenu->AddItem(item = new BMenuItem(B_TRANSLATE("White"), 142 new BMessage(msg))); 117 143 item->SetTarget(fObjectView); 118 144 msg.ReplaceInt32("color", lightYellow); 119 subMenu->AddItem(item = new BMenuItem("Yellow", new BMessage(msg))); 145 subMenu->AddItem(item = new BMenuItem(B_TRANSLATE("Yellow"), 146 new BMessage(msg))); 120 147 item->SetTarget(fObjectView); 121 148 msg.ReplaceInt32("color", lightBlue); 122 subMenu->AddItem(item = new BMenuItem("Blue", new BMessage(msg))); 149 subMenu->AddItem(item = new BMenuItem(B_TRANSLATE("Blue"), 150 new BMessage(msg))); 123 151 item->SetTarget(fObjectView); 124 152 item->SetMarked(true); 125 153 msg.ReplaceInt32("color", lightRed); 126 subMenu->AddItem(item = new BMenuItem("Red", new BMessage(msg))); 154 subMenu->AddItem(item = new BMenuItem(B_TRANSLATE("Red"), 155 new BMessage(msg))); 127 156 item->SetTarget(fObjectView); 128 157 msg.ReplaceInt32("color", lightGreen); 129 subMenu->AddItem(item = new BMenuItem("Green", new BMessage(msg))); 158 subMenu->AddItem(item = new BMenuItem(B_TRANSLATE("Green"), 159 new BMessage(msg))); 130 160 item->SetTarget(fObjectView); 131 161 132 162 msg.RemoveName("color"); 133 163 134 164 msg.ReplaceInt32("num", 3); 135 menu->AddItem(item = new BMenuItem(subMenu = new BMenu("Right"), NULL)); 165 menu->AddItem(item = new BMenuItem(subMenu = 166 new BMenu(B_TRANSLATE("Right")), NULL)); 136 167 item->SetTarget(fObjectView); 137 168 msg.AddInt32("color", lightNone); 138 subMenu->AddItem(item = new BMenuItem("Off", new BMessage(msg))); 169 subMenu->AddItem(item = new BMenuItem(B_TRANSLATE("Off"), 170 new BMessage(msg))); 139 171 item->SetTarget(fObjectView); 140 172 item->SetMarked(true); 141 173 subMenu->AddSeparatorItem(); 142 174 msg.ReplaceInt32("color", lightWhite); 143 subMenu->AddItem(item = new BMenuItem("White", new BMessage(msg))); 175 subMenu->AddItem(item = new BMenuItem(B_TRANSLATE("White"), 176 new BMessage(msg))); 144 177 item->SetTarget(fObjectView); 145 178 msg.ReplaceInt32("color", lightYellow); 146 subMenu->AddItem(item = new BMenuItem("Yellow", new BMessage(msg))); 179 subMenu->AddItem(item = new BMenuItem(B_TRANSLATE("Yellow"), 180 new BMessage(msg))); 147 181 item->SetTarget(fObjectView); 148 182 msg.ReplaceInt32("color", lightBlue); 149 subMenu->AddItem(item = new BMenuItem("Blue", new BMessage(msg))); 183 subMenu->AddItem(item = new BMenuItem(B_TRANSLATE("Blue"), 184 new BMessage(msg))); 150 185 item->SetTarget(fObjectView); 151 186 msg.ReplaceInt32("color", lightRed); 152 subMenu->AddItem(item = new BMenuItem("Red", new BMessage(msg))); 187 subMenu->AddItem(item = new BMenuItem(B_TRANSLATE("Red"), 188 new BMessage(msg))); 153 189 item->SetTarget(fObjectView); 154 190 msg.ReplaceInt32("color", lightGreen); 155 subMenu->AddItem(item = new BMenuItem("Green", new BMessage(msg))); 191 subMenu->AddItem(item = new BMenuItem(B_TRANSLATE("Green"), 192 new BMessage(msg))); 156 193 item->SetTarget(fObjectView); 157 194 158 195 float f = menuBar->Bounds().IntegerHeight() + 1; … … 167 204 { 168 205 if (fObjectView != NULL) 169 206 fObjectView->EnableDirectMode(false); 170 207 171 208 be_app->PostMessage(B_QUIT_REQUESTED); 172 209 return true; 173 210 } … … 177 214 TeapotWindow::DirectConnected(direct_buffer_info* info) 178 215 { 179 216 if (fObjectView != NULL) { 180 fObjectView->DirectConnected(info); 217 fObjectView->DirectConnected(info); 181 218 fObjectView->EnableDirectMode(true); 182 219 } 183 220 } … … 190 227 switch (msg->what) { 191 228 default: 192 229 BDirectWindow::MessageReceived(msg); 193 } 230 } 194 231 } -
src/apps/glteapot/Jamfile
17 17 x-vnd.Haiku-GLTeapot 18 18 : 19 19 TeapotApp.cpp 20 TeapotWindow.cpp 20 21 ;