From 66852d5392fff015acab5081eea9a3284ec2fbd2 Mon Sep 17 00:00:00 2001 From: cc9cii Date: Wed, 24 Sep 2014 22:41:49 +1000 Subject: [PATCH] Code cleanup and revert incorrect settings. --- apps/opencs/editor.cpp | 13 +- apps/opencs/model/settings/usersettings.cpp | 122 +----- apps/opencs/view/doc/view.cpp | 11 - apps/opencs/view/doc/viewmanager.cpp | 7 - apps/opencs/view/doc/viewmanager.hpp | 2 - apps/opencs/view/settings/dialog.cpp | 73 +--- apps/opencs/view/settings/dialog.hpp | 6 - apps/opencs/view/settings/frame.cpp | 5 +- files/ui/settingstab.ui | 404 ++++++++------------ 9 files changed, 183 insertions(+), 460 deletions(-) diff --git a/apps/opencs/editor.cpp b/apps/opencs/editor.cpp index bdc61a5fe..960e54e88 100644 --- a/apps/opencs/editor.cpp +++ b/apps/opencs/editor.cpp @@ -314,7 +314,14 @@ std::auto_ptr CS::Editor::setupGraphics() factory->loadAllFiles(); - std::string fog("true"); // default if setting does not exist + bool shaders = true; // default if setting does not exist + if(mUserSettings.hasSettingDefinitions("Objects/shaders")) + shaders = mUserSettings.settingValue("Objects/shaders").toStdString() == "true" ? true : false; + else + mUserSettings.setDefinitions("Objects/shaders", (QStringList() << QString(shaders ? "true" : "false"))); + sh::Factory::getInstance ().setShadersEnabled (shaders); + + std::string fog("true"); if(mUserSettings.hasSettingDefinitions("Shader/fog")) fog = mUserSettings.settingValue("Shader/fog").toStdString(); else @@ -323,7 +330,7 @@ std::auto_ptr CS::Editor::setupGraphics() std::string shadows("false"); if(mUserSettings.hasSettingDefinitions("Shader/shadows")) - shadows = mUserSettings.settingValue("Shader/shadows").toStdString(); + shadows = shaders? mUserSettings.settingValue("Shader/shadows").toStdString() : "false"; else mUserSettings.setDefinitions("Shader/shadows", (QStringList() << QString(shadows.c_str()))); sh::Factory::getInstance().setGlobalSetting ("shadows", shadows); @@ -347,7 +354,7 @@ std::auto_ptr CS::Editor::setupGraphics() sh::Factory::getInstance ().setGlobalSetting ("viewproj_fix", "false"); sh::Factory::getInstance ().setGlobalSetting ("num_lights", - mUserSettings.settingValue("shader/num_lights").toStdString()); + mUserSettings.settingValue("Objects/num_lights").toStdString()); /// \todo add more configurable shiny settings diff --git a/apps/opencs/model/settings/usersettings.cpp b/apps/opencs/model/settings/usersettings.cpp index 42fd897b2..44473c03d 100644 --- a/apps/opencs/model/settings/usersettings.cpp +++ b/apps/opencs/model/settings/usersettings.cpp @@ -55,7 +55,7 @@ void UserSettings::buildSettingModelDefaults() { QString page; - page = "Shader"; + page = "Objects"; { QString section = "Group1"; @@ -66,96 +66,17 @@ void UserSettings::buildSettingModelDefaults() numLights->setMinimum (0); numLights->setMaximum (100); // FIXME: not sure what the max value should be numLights->setWidgetWidth (10); - numLights->setSpecialValueText ("Nothing!"); // text to display when value is 0 numLights->setViewLocation(1, 2); - Setting *nlText = createSetting (Type_Undefined, page, "nlText"); - nlText->setSpecialValueText("Num Lights"); // hack to place text labels - nlText->setEditorSetting(false); - nlText->setSerializable (false); - nlText->setColumnSpan (1); - nlText->setWidgetWidth (10); - nlText->setViewLocation(1, 1); - - - Setting *simpleWater = createSetting (Type_CheckBox, page, "simple_water"); - simpleWater->setDeclaredValues(QStringList() << "true" << "false"); - simpleWater->setDefaultValue("false"); - simpleWater->setEditorSetting(true); - simpleWater->setSpecialValueText("Enable Simple Water"); - simpleWater->setWidgetWidth(25); - simpleWater->setColumnSpan (3); - simpleWater->setStyleSheet ("QGroupBox { border: 0px; }"); - simpleWater->setViewLocation(1, 5); - - Setting *waterEnabled = createSetting (Type_DoubleSpinBox, page, "waterEnabled"); - waterEnabled->setDefaultValue(0.00); - waterEnabled->setEditorSetting(true); - waterEnabled->setColumnSpan (1); - waterEnabled->setMinimum (0); - waterEnabled->setMaximum (100.00); // FIXME: not sure what the max value should be - waterEnabled->setWidgetWidth (10); - waterEnabled->setViewLocation(2, 6); - Setting *weText = createSetting (Type_Undefined, page, "weText"); - weText->setSpecialValueText("Water Enabled"); - weText->setEditorSetting(false); - weText->setSerializable (false); - weText->setColumnSpan (1); - weText->setWidgetWidth (10); - weText->setViewLocation(2, 5); - - Setting *waterLevel = createSetting (Type_DoubleSpinBox, page, "waterLevel"); - waterLevel->setDefaultValue(0.00); - waterLevel->setEditorSetting(true); - waterLevel->setColumnSpan (1); - waterLevel->setMinimum (0); - waterLevel->setMaximum (100.00); // FIXME: not sure what the max value should be - waterLevel->setWidgetWidth (10); - waterLevel->setViewLocation(3, 6); - Setting *wlText = createSetting (Type_Undefined, page, "wlText"); - wlText->setSpecialValueText("Water Level"); - wlText->setEditorSetting(false); - wlText->setSerializable (false); - wlText->setColumnSpan (1); - wlText->setWidgetWidth (10); - wlText->setViewLocation(3, 5); - - Setting *waterTimer = createSetting (Type_DoubleSpinBox, page, "waterTimer"); - waterTimer->setDefaultValue(0.00); - waterTimer->setEditorSetting(true); - waterTimer->setColumnSpan (1); - waterTimer->setMinimum (0); - waterTimer->setMaximum (100.00); // FIXME: not sure what the max value should be - waterTimer->setWidgetWidth (10); - waterTimer->setViewLocation(4, 6); - Setting *wtText = createSetting (Type_Undefined, page, "wtText"); - wtText->setSpecialValueText("Water Timer"); - wtText->setEditorSetting(false); - wtText->setSerializable (false); - wtText->setColumnSpan (1); - wtText->setWidgetWidth (10); - wtText->setViewLocation(4, 5); - - - Setting *spaceText = createSetting (Type_Undefined, page, "spaceText"); - spaceText->setSpecialValueText(" "); - spaceText->setEditorSetting(false); - spaceText->setSerializable (false); - spaceText->setColumnSpan (1); - spaceText->setWidgetWidth (5); - spaceText->setViewLocation(3, 4); - Setting *spaceText2 = createSetting (Type_Undefined, page, "spaceText2"); - spaceText2->setSpecialValueText(" "); - spaceText2->setEditorSetting(false); - spaceText2->setSerializable (false); - spaceText2->setColumnSpan (1); - spaceText2->setWidgetWidth (5); - spaceText2->setViewLocation(3, 7); -#if 0 -sh::Factory::getInstance ().setSharedParameter ("windDir_windSpeed", sh::makeProperty(new sh::Vector3(0.5, -0.8, 0.2))); -sh::Factory::getInstance ().setSharedParameter ("waterSunFade_sunHeight", sh::makeProperty(new sh::Vector2(1, 0.6))); -sh::Factory::getInstance ().setSharedParameter ("vpRow2Fix", sh::makeProperty (new sh::Vector4(0,0,0,0))); -#endif + Setting *shaders = createSetting (Type_CheckBox, page, "shaders"); + shaders->setDeclaredValues(QStringList() << "true" << "false"); + shaders->setDefaultValue("true"); + shaders->setEditorSetting(true); + shaders->setSpecialValueText("Enable Shaders"); + shaders->setWidgetWidth(25); + shaders->setColumnSpan (3); + shaders->setStyleSheet ("QGroupBox { border: 0px; }"); + shaders->setViewLocation(2, 1); } page = "Scene"; @@ -171,13 +92,6 @@ sh::Factory::getInstance ().setSharedParameter ("vpRow2Fix", sh::makePropertysetMaximum (100); // FIXME: not sure what the max value should be fastFactor->setWidgetWidth (10); fastFactor->setViewLocation(1, 2); - Setting *ffText = createSetting (Type_Undefined, page, "ffText"); - ffText->setSpecialValueText("Fast Factor"); // hack to place text labels - ffText->setEditorSetting(false); - ffText->setSerializable (false); - ffText->setColumnSpan (1); - ffText->setWidgetWidth (10); - ffText->setViewLocation(1, 1); Setting *farClipDist = createSetting (Type_SpinBox, page, "far clip distance"); farClipDist->setDefaultValue(300000); @@ -187,13 +101,6 @@ sh::Factory::getInstance ().setSharedParameter ("vpRow2Fix", sh::makePropertysetMaximum (1000000); // FIXME: not sure what the max value should be farClipDist->setWidgetWidth (10); farClipDist->setViewLocation(2, 2); - Setting *fcText = createSetting (Type_Undefined, page, "fcText"); - fcText->setSpecialValueText("Far Clip Distance"); - fcText->setEditorSetting(false); - fcText->setSerializable (false); - fcText->setColumnSpan (1); - fcText->setWidgetWidth (10); - fcText->setViewLocation(2, 1); Setting *timerStart = createSetting (Type_SpinBox, page, "timer start"); timerStart->setDefaultValue(20); @@ -203,13 +110,6 @@ sh::Factory::getInstance ().setSharedParameter ("vpRow2Fix", sh::makePropertysetMaximum (100); // FIXME: not sure what the max value should be timerStart->setWidgetWidth (10); timerStart->setViewLocation(3, 2); - Setting *tsText = createSetting (Type_Undefined, page, "tsText"); - tsText->setSpecialValueText("Timer Start"); - tsText->setEditorSetting(false); - tsText->setSerializable (false); - tsText->setColumnSpan (1); - tsText->setWidgetWidth (10); - tsText->setViewLocation(3, 1); } #if 0 @@ -251,6 +151,7 @@ sh::Factory::getInstance ().setSharedParameter ("vpRow2Fix", sh::makePropertysetEditorSetting (true); ritd->setEditorSetting (true); } -#endif page = "Proxy Selection Test"; { diff --git a/apps/opencs/view/doc/view.cpp b/apps/opencs/view/doc/view.cpp index baa3a3608..3a62aeafb 100644 --- a/apps/opencs/view/doc/view.cpp +++ b/apps/opencs/view/doc/view.cpp @@ -376,9 +376,6 @@ CSVDoc::View::View (ViewManager& viewManager, CSMDoc::Document *document, int to hide(); resize (width.toInt() - (frameGeometry().width() - geometry().width()), height.toInt() - (frameGeometry().height() - geometry().height())); - // start at the centre of the screen - QPoint screenCenter = QApplication::desktop()->screenGeometry().center(); - move(screenCenter - QPoint(frameGeometry().width()/2, frameGeometry().height()/2)); mSubViewWindow.setDockOptions (QMainWindow::AllowNestedDocks); @@ -517,14 +514,6 @@ void CSVDoc::View::addSubView (const CSMWorld::UniversalId& id, const std::strin view->setMinimumWidth(minWidth); view->setStatusBar (mShowStatusBar->isChecked()); -// NOTE: only required if show status bar setting should be applied to existing -// window -#if 0 - std::string showStatusBar = - CSMSettings::UserSettings::instance().settingValue("Display/show statusbar").toStdString(); - - view->setStatusBar (showStatusBar == "true"); -#endif mSubViewWindow.addDockWidget (Qt::TopDockWidgetArea, view); diff --git a/apps/opencs/view/doc/viewmanager.cpp b/apps/opencs/view/doc/viewmanager.cpp index 39cd7eeda..2b46eecd2 100644 --- a/apps/opencs/view/doc/viewmanager.cpp +++ b/apps/opencs/view/doc/viewmanager.cpp @@ -401,13 +401,6 @@ bool CSVDoc::ViewManager::removeDocument (CSVDoc::View *view) return true; } -void CSVDoc::ViewManager::toggleStatusBar(bool checked) -{ - // NOTE: below only required if status bar change is to be applied to existing - //for (std::vector::const_iterator iter (mViews.begin()); iter!=mViews.end(); ++iter) - //(*iter)->toggleStatusBar(checked); -} - void CSVDoc::ViewManager::exitApplication (CSVDoc::View *view) { if(!removeDocument(view)) // close the current document first diff --git a/apps/opencs/view/doc/viewmanager.hpp b/apps/opencs/view/doc/viewmanager.hpp index d703b430a..cdd5ac768 100644 --- a/apps/opencs/view/doc/viewmanager.hpp +++ b/apps/opencs/view/doc/viewmanager.hpp @@ -81,8 +81,6 @@ namespace CSVDoc void exitApplication (CSVDoc::View *view); - void toggleStatusBar(bool checked); - private slots: void documentStateChanged (int state, CSMDoc::Document *document); diff --git a/apps/opencs/view/settings/dialog.cpp b/apps/opencs/view/settings/dialog.cpp index f2d38bab9..7648813bf 100644 --- a/apps/opencs/view/settings/dialog.cpp +++ b/apps/opencs/view/settings/dialog.cpp @@ -87,27 +87,12 @@ QStringList getAvailableResolutions() Ogre::ConfigOptionMap::iterator it = renderOpt.begin(); for(;it != renderOpt.end(); ++it) { - if(it->first == "Rendering Device" ) - { - if(it->second.possibleValues.empty()) - { - return result; // FIXME: add error message - } - // Store Available Rendering Devices - Ogre::StringVector::iterator iter = it->second.possibleValues.begin(); - for(;iter != it->second.possibleValues.end(); ++iter) - { - std::cout << "rd: " << *iter << std::endl; // FIXME: debug - } - } if(it->first == "Video Mode" ) { if(it->second.possibleValues.empty()) { return result; // FIXME: add error message } - // FIXME: how to default to the current value? - std::cout << "vm current: " << it->second.currentValue << std::endl; // FIXME: debug // Store Available Resolutions Ogre::StringVector::iterator iter = it->second.possibleValues.begin(); for(; iter != it->second.possibleValues.end(); ++iter) @@ -138,7 +123,7 @@ QStringList getAvailableResolutions() CSVSettings::Dialog::Dialog(QTabWidget *parent) - : /*mStackedWidget (0),*/ mDebugMode (false), SettingWindow (parent) + : mDebugMode (false), SettingWindow (parent) { setObjectName(QString::fromUtf8 ("User Settings")); @@ -151,12 +136,8 @@ CSVSettings::Dialog::Dialog(QTabWidget *parent) connect(cbOverride, SIGNAL(toggled(bool)), this, SLOT(slotOverrideToggled(bool))); connect(cmbRenderSys, SIGNAL(currentIndexChanged(const QString&)), this, SLOT(slotRendererChanged(const QString&))); - // to update the checkbox on the view menu - connect(cbStatusBar, SIGNAL(toggled(bool)), this, SIGNAL (toggleStatusBar(bool))); displayGroup_Window->installEventFilter(this); - - setupDialog(); } bool CSVSettings::Dialog::eventFilter(QObject *target, QEvent *event) @@ -185,19 +166,6 @@ void CSVSettings::Dialog::slotRendererChanged(const QString &renderer) cmbShaderLang->clear(); cmbShaderLang->addItems(model()->getShaderLanguageByRenderer(renderer)); - - if(model()->settingValue("Video/use settings.cfg") == "true") - { - labRenderSys->setEnabled(false); - cmbRenderSys->setEnabled(false); - labAntiAlias->setEnabled(false); - cmbAntiAlias->setEnabled(false); - //cbVsync->setEnabled(false); - labShaderLang->setEnabled(false); - cmbShaderLang->setEnabled(false); - } - else - cbOverride->setChecked(false); } void CSVSettings::Dialog::slotOverrideToggled(bool checked) @@ -208,7 +176,6 @@ void CSVSettings::Dialog::slotOverrideToggled(bool checked) cmbRenderSys->setEnabled(false); labAntiAlias->setEnabled(false); cmbAntiAlias->setEnabled(false); - //cbVsync->setEnabled(false); labShaderLang->setEnabled(false); cmbShaderLang->setEnabled(false); } @@ -218,16 +185,11 @@ void CSVSettings::Dialog::slotOverrideToggled(bool checked) cmbRenderSys->setEnabled(true); labAntiAlias->setEnabled(true); cmbAntiAlias->setEnabled(true); - //cbVsync->setEnabled(true); labShaderLang->setEnabled(true); cmbShaderLang->setEnabled(true); } } -void CSVSettings::Dialog::setupDialog() -{ -} - void CSVSettings::Dialog::buildPages() { int index = -1; @@ -238,7 +200,6 @@ void CSVSettings::Dialog::buildPages() // Ogre renderer cmbRenderSys->clear(); cmbRenderSys->addItems(model()->getOgreRenderers()); - //slotRendererChanged(Ogre::Root::getSingleton().getRenderSystem()->getName().c_str()); // antialiasing QString antialiasing = model()->settingValue("Video/antialiasing"); @@ -246,11 +207,6 @@ void CSVSettings::Dialog::buildPages() if(index != -1) cmbAntiAlias->setCurrentIndex(index); - // vsync - //cbVsync->setChecked(model()->settingValue("Video/vsync") == "true"); - cbVsync->setChecked(false); // disable vsync option for now - cbVsync->setEnabled(false); // disable vsync option for now - // shader lang QString shaderlang = model()->settingValue("General/shader mode"); index = cmbShaderLang->findData(shaderlang, Qt::DisplayRole); @@ -288,17 +244,6 @@ void CSVSettings::Dialog::buildPages() // status bar cbStatusBar->setChecked(model()->settingValue("Display/show statusbar") == "true"); - // display format - QString recStat = model()->settingValue("Display Format/Record Status Display"); - index = cmbRecStatus->findData(recStat, Qt::DisplayRole); - if(index != -1) - cmbRecStatus->setCurrentIndex(index); - - QString refIdType = model()->settingValue("Display Format/Referenceable ID Type Display"); - index = cmbRefIdType->findData(refIdType, Qt::DisplayRole); - if(index != -1) - cmbRefIdType->setCurrentIndex(index); - // subview if(model()->hasSettingDefinitions("SubView/minimum width")) sbMinSubViewWidth->setValue(model()->settingValue("SubView/minimum width").toInt()); @@ -341,20 +286,9 @@ void CSVSettings::Dialog::closeEvent (QCloseEvent *event) model()->setDefinitions("Video/render system", QStringList(cmbRenderSys->currentText())); - // vsync - if(cbVsync->isChecked()) - model()->setDefinitions("Video/vsync", QStringList("true")); - else - model()->setDefinitions("Video/vsync", QStringList("false")); - // antialiasing model()->setDefinitions("Video/antialiasing", QStringList(cmbAntiAlias->currentText())); -#if 0 - QRegExp reAA("^\\D*(\\d+)\\D*"); - if(reAA.indexIn(cmbAntiAlias->currentText()) > -1) - model()->setDefinitions("Video/antialiasing", QStringList(reAA.cap(1))); -#endif // shader lang (no group means "General" group) model()->setDefinitions("shader mode", @@ -384,11 +318,6 @@ void CSVSettings::Dialog::closeEvent (QCloseEvent *event) else model()->setDefinitions("Display/show statusbar", QStringList("false")); - // display format - model()->setDefinitions("Display Format/Record Status Display", - QStringList(cmbRecStatus->currentText())); - model()->setDefinitions("Display Format/Referenceable ID Type Display", - QStringList(cmbRefIdType->currentText())); // subview model()->setDefinitions("SubView/minimum width", QStringList(QString::number(sbMinSubViewWidth->value()))); diff --git a/apps/opencs/view/settings/dialog.hpp b/apps/opencs/view/settings/dialog.hpp index e2e93d8a1..cfe48b618 100644 --- a/apps/opencs/view/settings/dialog.hpp +++ b/apps/opencs/view/settings/dialog.hpp @@ -31,8 +31,6 @@ namespace CSVSettings { /// Settings are written on close void closeEvent (QCloseEvent *event); - void setupDialog(); - bool eventFilter(QObject *target, QEvent *event); private: @@ -47,10 +45,6 @@ namespace CSVSettings { void slotOverrideToggled(bool checked); void slotRendererChanged(const QString &renderer); - - signals: - - void toggleStatusBar(bool checked); // FIXME: maybe not needed }; } #endif // CSVSETTINGS_DIALOG_H diff --git a/apps/opencs/view/settings/frame.cpp b/apps/opencs/view/settings/frame.cpp index c39eba890..a3df2a993 100644 --- a/apps/opencs/view/settings/frame.cpp +++ b/apps/opencs/view/settings/frame.cpp @@ -3,7 +3,7 @@ #include const QString CSVSettings::Frame::sInvisibleBoxStyle = - QString::fromUtf8("Frame { border:2px; padding 2px; margin: 2px;}"); + QString::fromUtf8("Frame { border:2px; padding: 2px; margin: 2px;}"); CSVSettings::Frame::Frame (bool isVisible, const QString &title, QWidget *parent) @@ -16,8 +16,7 @@ CSVSettings::Frame::Frame (bool isVisible, const QString &title, if (!isVisible) { // must be Page, not a View - //setStyleSheet (sInvisibleBoxStyle); - setStyleSheet("QGroupBox { border:0px; }"); + setStyleSheet (sInvisibleBoxStyle); mLayout->setContentsMargins(10, 15, 10, 15); } diff --git a/files/ui/settingstab.ui b/files/ui/settingstab.ui index e44a51f5a..0a94348d1 100644 --- a/files/ui/settingstab.ui +++ b/files/ui/settingstab.ui @@ -20,161 +20,51 @@ Display Settings - + 10 - 10 + 200 371 - 81 + 79 - Display Format + Subviews - + - 10 - 20 - 351 - 48 + 240 + 21 + 102 + 17 - - - - - Record Status: - - - - - - - - Text Only - - - - - Icon Only - - - - - Icon and Text - - - - - - - - Referenceable ID Type: - - - - - - - - Text Only - - - - - Icon Only - - - - - Icon and Text - - - - - + + Show Status Bar + + + + + + 240 + 49 + 101 + 17 + + + + Reuse Subviews + - - - - - 9 - 160 - 371 - 101 - - - - Subviews - - - - - - 21 - 180 - 351 - 71 - - - - - - - Max Number of Subviews: - - - - - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - 1 - - - - - - - Min Subview Width: - - - - - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - 50 - - - 20000 - - - 5 - - - - - - - Reuse Subviews - - - - 10 - 100 - 201 + 140 + 211 51 @@ -189,7 +79,7 @@ 10 20 - 181 + 191 22 @@ -205,7 +95,7 @@ 0 0 - 181 + 191 22 @@ -242,7 +132,7 @@ 0 0 - 181 + 191 22 @@ -250,153 +140,177 @@ - + - 240 - 120 - 102 + 21 + 29 + 231 17 - Show Status Bar + Use Render System Settings from OpenMW + + + true - displayGroup_Subviews - layoutWidget_Subviews - displayGroup_Window - displayGroup_DisplayFormat - cbStatusBar - - - - Video Settings - - + + + + 10 + 10 + 371 + 125 + + + + Render System + + + + + 172 + 42 + 181 + 20 + + + + false + + + + + + 12 + 94 + 54 + 16 + + + + Antialiasing + + + + + + 12 + 68 + 84 + 16 + + + + Shader Language + + + + + + 12 + 42 + 104 + 16 + + + + Rendering Subsystem + + + + + + 172 + 68 + 181 + 20 + + + + + + + 172 + 94 + 181 + 20 + + + + + 20 - 26 - 351 - 129 + 220 + 191 + 48 - - - - - Use Render System Settings from OpenMW - - - true - - - - - + + + - Rendering Subsystem + Max Number of Subviews: - - - - false + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - Antialiasing + + 1 - - + + - Vertical Sync + Min Subview Width: - - - - Shader Language + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - - - - - - 16777215 - 2 - + + 50 - - color: rgb(215, 215, 215); + + 20000 - - Qt::Horizontal + + 5 - - - - 10 - 8 - 371 - 156 - - - - Render System - - - - - - 9 - 169 - 371 - 101 - - - - title - - displayGroup_Render - layoutWidget_Render - groupBox + displayGroup_Subviews + displayGroup_Window + cbOverride + layoutWidget_2 - cmbRecStatus - cmbRefIdType + cbOverride + cmbRenderSys + cmbShaderLang + cmbAntiAlias sbWidth sbHeight - cbStatusBar sbMaxSubViews sbMinSubViewWidth + cbStatusBar cbReuseSubView - cbOverride - cmbRenderSys - cbVsync - cmbAntiAlias - cmbShaderLang cmbStdWinSize