- Timestamp:
- May 2, 2006, 10:49:55 PM (19 years ago)
- Location:
- branches/qt_gui/src/lib/gui/qt_gui
- Files:
-
- 1 edited
- 2 copied
Legend:
- Unmodified
- Added
- Removed
-
branches/qt_gui/src/lib/gui/qt_gui/Makefile.am
r7470 r7481 13 13 14 14 libORXqtgui_a_SOURCES = \ 15 qt_gui.cc 15 qt_gui.cc \ 16 \ 17 gui_video.cc 16 18 17 19 noinst_HEADERS= \ 18 qt_gui.h 20 qt_gui.h \ 21 \ 22 gui_video.h 19 23 20 24 EXTRA_DIST = -
branches/qt_gui/src/lib/gui/qt_gui/gui_video.cc
r7478 r7481 26 26 27 27 #include "gui_video.h" 28 #include "sdlincl.h" 29 #include "debug.h" 28 30 29 #include "gui_gtk.h" 30 #include "sdlincl.h" 31 #include <stdlib.h> 31 namespace OrxGui 32 { 33 /** 34 * Creates the Video-Option-Frame 35 */ 36 GuiVideo::GuiVideo() 37 { 38 /* Frame* videoFrame; //!< The Frame that holds the video options. 32 39 33 /** 34 * Creates the Video-Option-Frame 35 */ 36 GuiVideo::GuiVideo() 37 { 38 Frame* videoFrame; //!< The Frame that holds the video options. 40 videoFrame = new Frame("Video-Options:"); 41 videoFrame->setGroupName("video"); 42 { 43 Box* videoBox; //!< The Box that holds the video options. 39 44 40 videoFrame = new Frame("Video-Options:"); 41 videoFrame->setGroupName("video"); 42 { 43 Box* videoBox; //!< The Box that holds the video options. 45 videoBox = new Box('v'); 46 { 47 CheckButton* fullscreen; //!< CheckButton for fullscreen-mode 48 Menu* resolution; //!< Menu for the resolution 49 CheckButton* wireframe; //!< CheckButton for wireframe Mode. 44 50 45 videoBox = new Box('v'); 46 { 47 CheckButton* fullscreen; //!< CheckButton for fullscreen-mode 48 Menu* resolution; //!< Menu for the resolution 49 CheckButton* wireframe; //!< CheckButton for wireframe Mode. 51 fullscreen = new CheckButton(CONFIG_NAME_FULLSCREEN); 52 fullscreen->setFlagName("windowed", "q", 1); 53 fullscreen->setDescription("Starts orxonox in windowed mode"); 54 fullscreen->saveability(); 55 videoBox->fill(fullscreen); 56 resolution = new Menu(CONFIG_NAME_RESOLUTION); 57 getResolutions(resolution); 58 resolution->saveability(); 59 resolution->setFlagName("resolution", "r", 0); 60 resolution->setDescription("Sets the resolution of orxonox"); 61 videoBox->fill(resolution); 62 wireframe = new CheckButton(CONFIG_NAME_WIREFRAME); 63 wireframe->setFlagName("wireframe", "w", 0); 64 wireframe->setDescription("Starts orxonox in wireframe mode"); 65 wireframe->saveability(); 66 videoBox->fill(wireframe); 50 67 51 fullscreen = new CheckButton(CONFIG_NAME_FULLSCREEN); 52 fullscreen->setFlagName("windowed", "q", 1); 53 fullscreen->setDescription("Starts orxonox in windowed mode"); 54 fullscreen->saveability(); 55 videoBox->fill(fullscreen); 56 resolution = new Menu(CONFIG_NAME_RESOLUTION); 57 getResolutions(resolution); 58 resolution->saveability(); 59 resolution->setFlagName("resolution", "r", 0); 60 resolution->setDescription("Sets the resolution of orxonox"); 61 videoBox->fill(resolution); 62 wireframe = new CheckButton(CONFIG_NAME_WIREFRAME); 63 wireframe->setFlagName("wireframe", "w", 0); 64 wireframe->setDescription("Starts orxonox in wireframe mode"); 65 wireframe->saveability(); 66 videoBox->fill(wireframe); 67 68 videoBox->fill(advancedWindowCreate()); 68 videoBox->fill(advancedWindowCreate()); 69 } 70 videoFrame->fill(videoBox); 69 71 } 70 videoFrame->fill(videoBox); 71 } 72 setMainWidget(videoFrame); 73 } 74 75 /** 76 * Destructs the Video-stuff 77 */ 78 GuiVideo::~GuiVideo() 79 { 80 // nothing to do here. 81 } 82 83 /** 84 * Creates a window, and all it contains for the Source-update. 85 */ 86 Widget* GuiVideo::advancedWindowCreate() 87 { 88 // advanced-Performance-Options 89 Window* advancedWindow; //!< A Window to display advanced options. 90 Button* advancedButton; //!< A Button to open the Advanced Video Performance Window. 91 // the button, that opens this Window. 92 advancedButton = new Button("advanced"); 93 94 // the Window itself 95 advancedWindow = new Window("Advanced Video Options"); 96 advancedWindow->setGroupName(CONFIG_SECTION_VIDEO_ADVANCED); 97 { 98 Box* advancedBox; //!< A Box to pack the options into. 99 100 advancedBox = new Box('v'); 101 { 102 CheckButton* shadows; //!< CheckButton for shadows 103 CheckButton* fog; //!< CheckButton for fog. 104 CheckButton* reflections; //!< CheckButton for reflections 105 CheckButton* textures; //!< CheckButton for textures 106 Menu* textureDetail; //!< Menu for the Texture-Detail. 107 Label* modelDetailLabel; //!< Label for model-detail. 108 Menu* modelDetail; //!< model-detail. 109 CheckButton* particles; //!< If the Particles should be enabled 110 Label* antiAliasingLabel; //!< Label for the anti-aliasing mode. 111 Menu* antiAliasing; //!< Menu for the Antialiasing-mode. 112 Label* filterMethodLabel; //!< Label for filtering-Method. 113 Menu* filterMethod; //!< Menu for filtering Method. 114 Button* closeButton; //!< A Button to close the Advanced-settingsWindow. 115 116 // Advanced Performance Options 117 shadows = new CheckButton(CONFIG_NAME_SHADOWS); 118 shadows->saveability(); 119 advancedBox->fill(shadows); 120 121 fog = new CheckButton(CONFIG_NAME_FOG); 122 fog->saveability(); 123 advancedBox->fill(fog); 124 125 reflections = new CheckButton(CONFIG_NAME_REFLECTIONS); 126 reflections->saveability(); 127 advancedBox->fill(reflections); 128 129 textures = new CheckButton(CONFIG_NAME_TEXTURES); 130 textures->setDefaultValue(1); 131 textures->saveability(); 132 advancedBox->fill(textures); 133 134 textureDetail = new Menu(CONFIG_NAME_TEXTURE_DETAIL, "low", "medium", "high", "lastItem"); 135 textureDetail->setDefaultValue(1); 136 textureDetail->saveability(); 137 advancedBox->fill(textureDetail); 138 139 modelDetailLabel = new Label(CONFIG_NAME_MODEL_DETAIL); 140 advancedBox->fill(modelDetailLabel); 141 modelDetail = new Menu(CONFIG_NAME_MODEL_DETAIL, "low", "high", "lastItem"); 142 modelDetail->setDefaultValue(1); 143 modelDetail->saveability(); 144 advancedBox->fill(modelDetail); 145 146 particles = new CheckButton(CONFIG_NAME_PARTICLES_ENABLED); 147 particles->saveability(); 148 particles->setDefaultValue(1); 149 advancedBox->fill(particles); 150 151 antiAliasingLabel = new Label("Anti-Aliasing-depth:"); 152 advancedBox->fill(antiAliasingLabel); 153 antiAliasing = new Menu(CONFIG_NAME_ANTI_ALIASING, "0", "1", "2", "4", "8", "lastItem"); 154 antiAliasing->setDefaultValue(2); 155 antiAliasing->saveability(); 156 advancedBox->fill(antiAliasing); 157 158 filterMethodLabel = new Label("Filtering Method:"); 159 advancedBox->fill(filterMethodLabel); 160 filterMethod = new Menu(CONFIG_NAME_FILTER_METHOD, "none", "linear", "bilinear", "trilinear", "anisortopic", "lastItem"); 161 filterMethod->setDefaultValue(1); 162 filterMethod->saveability(); 163 advancedBox->fill(filterMethod); 164 165 166 167 closeButton = new Button("close"); 168 #ifdef HAVE_GTK2 169 closeButton->connectSignal("button_press_event", advancedWindow, Window::windowClose); 170 #endif /* HAVE_GTK2 */ 171 172 advancedBox->fill(closeButton); 173 } 174 advancedWindow->fill(advancedBox); 175 } 176 #ifdef HAVE_GTK2 177 advancedButton->connectSignal("button_press_event", advancedWindow, Window::windowOpen); 178 advancedWindow->connectSignal("destroy", advancedWindow, Window::windowClose); 179 advancedWindow->connectSignal("delete_event", advancedWindow, Window::windowClose); 180 #endif /* HAVE_GTK2 */ 181 Window::addWindow(advancedWindow); 182 183 return advancedButton; 184 } 185 186 /** 187 * sets all resolutions to the menu 188 * @param menu the Menu to set The resolutions to. 189 */ 190 void GuiVideo::getResolutions(Menu* menu) 191 { 192 SDL_Init(SDL_INIT_VIDEO); 193 SDL_Rect **modes; 194 int i; 195 int x = 0,y =0; // check for difference 196 char tmpChar[100]; 197 198 /* Get available fullscreen/hardware modes */ 199 modes=SDL_ListModes(NULL, SDL_FULLSCREEN|SDL_HWSURFACE); 200 201 /* Check is there are any modes available */ 202 if(modes == (SDL_Rect **)0){ 203 PRINTF(2)("No video-modes available!\n"); 204 exit(-1); 72 setMainWidget(videoFrame);*/ 205 73 } 206 74 207 /* Check if our resolution is restricted */ 208 if(modes == (SDL_Rect **)-1){ 209 PRINTF(2)("All resolutions available.\n"); 75 /** 76 * Destructs the Video-stuff 77 */ 78 GuiVideo::~GuiVideo() 79 { 80 // nothing to do here. 210 81 } 211 else{ 212 /* Print valid modes */ 213 PRINT(5)("Available Modes\n"); 214 for(i = 0; modes[i] ;++i) 82 83 /** 84 * sets all resolutions to the menu 85 * @param menu the Menu to set The resolutions to. 86 */ 87 void GuiVideo::getResolutions(std::vector<std::string>& resolutionList) 88 { 89 SDL_Init(SDL_INIT_VIDEO); 90 SDL_Rect **modes; 91 int i; 92 int x = 0,y =0; // check for difference 93 char tmpChar[100]; 94 95 /* Get available fullscreen/hardware modes */ 96 modes=SDL_ListModes(NULL, SDL_FULLSCREEN|SDL_HWSURFACE); 97 98 /* Check is there are any modes available */ 99 if(modes == (SDL_Rect **)0) 100 { 101 PRINTF(2)("No video-modes available!\n"); 102 exit(-1); 103 } 104 105 /* Check if our resolution is restricted */ 106 if(modes == (SDL_Rect **)-1) 107 { 108 PRINTF(2)("All resolutions available.\n"); 109 } 110 else 111 { 112 /* Print valid modes */ 113 PRINT(5)("Available Modes\n"); 114 for(i = 0; modes[i] ;++i) 215 115 { 216 116 if (x != modes[i]->w || y != modes[i]->h) 217 218 219 220 menu->addItem(tmpChar);221 222 117 { 118 PRINTF(5)(" %d x %d\n", modes[i]->w, modes[i]->h); 119 sprintf(tmpChar, "%dx%d", modes[i]->w, modes[i]->h); 120 resolutionList.push_back(std::string(tmpChar)); 121 x = modes[i]->w; y = modes[i]->h; 122 } 223 123 } 124 } 125 SDL_QuitSubSystem(SDL_INIT_VIDEO); 126 SDL_Quit(); 224 127 } 225 SDL_QuitSubSystem(SDL_INIT_VIDEO); 226 SDL_Quit(); 128 227 129 } -
branches/qt_gui/src/lib/gui/qt_gui/gui_video.h
r7478 r7481 6 6 #define _GUI_VIDEO_H 7 7 8 #include "gui.h"9 8 #include "gui_element.h" 9 #include <vector> 10 #include <string> 10 11 11 // FORWARD DECLARATIONS 12 class Widget; 13 class Menu; 12 namespace OrxGui 13 { 14 //! Class that creates the Video-Options. 15 class GuiVideo : public GuiElement 16 { 17 public: 18 GuiVideo(); 19 virtual ~GuiVideo(); 14 20 15 //! Class that creates the Video-Options. 16 class GuiVideo : public GuiElement 17 { 18 private: 19 // Button* advancedWindowGetButton(); 21 private: 22 void getResolutions(std::vector<std::string>& resolutionList); 23 }; 24 } 20 25 21 public:22 GuiVideo();23 virtual ~GuiVideo();24 25 private:26 void getResolutions(Menu* menu);27 Widget* advancedWindowCreate();28 };29 26 #endif /* _GUI_VIDEO_H */
Note: See TracChangeset
for help on using the changeset viewer.