OpenMW
apps/openmw/mwgui/settingswindow.hpp
Go to the documentation of this file.
00001 #ifndef MWGUI_SETTINGS_H
00002 #define MWGUI_SETTINGS_H
00003 
00004 #include "windowbase.hpp"
00005 
00006 namespace MWGui
00007 {
00008     class WindowManager;
00009 }
00010 
00011 namespace MWGui
00012 {
00013     class SettingsWindow : public WindowBase
00014     {
00015         public:
00016             SettingsWindow();
00017 
00018             virtual void open();
00019 
00020             void updateControlsBox();
00021 
00022         private:
00023             static int const sFovMin = 30;
00024             static int const sFovMax = 140;
00025             static int const sViewDistMin = 2000;
00026             static int const sViewDistMax = 5600;
00027 
00028         protected:
00029             MyGUI::Button* mOkButton;
00030 
00031             MyGUI::ScrollBar* mMenuTransparencySlider;
00032             MyGUI::ScrollBar* mToolTipDelaySlider;
00033             MyGUI::Button* mSubtitlesButton;
00034             MyGUI::Button* mCrosshairButton;
00035             MyGUI::Button* mBestAttackButton;
00036             MyGUI::Button* mGrabCursorButton;
00037 
00038             // graphics
00039             MyGUI::ListBox* mResolutionList;
00040             MyGUI::Button* mFullscreenButton;
00041             MyGUI::Button* mVSyncButton;
00042             MyGUI::Button* mFPSButton;
00043             MyGUI::ScrollBar* mViewDistanceSlider;
00044             MyGUI::ScrollBar* mFOVSlider;
00045             MyGUI::ScrollBar* mAnisotropySlider;
00046             MyGUI::ComboBox* mTextureFilteringButton;
00047             MyGUI::TextBox* mAnisotropyLabel;
00048             MyGUI::Widget* mAnisotropyBox;
00049             MyGUI::Button* mWaterShaderButton;
00050             MyGUI::Button* mReflectObjectsButton;
00051             MyGUI::Button* mReflectActorsButton;
00052             MyGUI::Button* mReflectTerrainButton;
00053             MyGUI::Button* mShadersButton;
00054             MyGUI::Button* mShaderModeButton;
00055             MyGUI::Button* mRefractionButton;
00056 
00057             MyGUI::Button* mShadowsEnabledButton;
00058             MyGUI::Button* mShadowsLargeDistance;
00059             MyGUI::ComboBox* mShadowsTextureSize;
00060             MyGUI::Button* mActorShadows;
00061             MyGUI::Button* mStaticsShadows;
00062             MyGUI::Button* mMiscShadows;
00063             MyGUI::Button* mTerrainShadows;
00064 
00065             // audio
00066             MyGUI::ScrollBar* mMasterVolumeSlider;
00067             MyGUI::ScrollBar* mVoiceVolumeSlider;
00068             MyGUI::ScrollBar* mEffectsVolumeSlider;
00069             MyGUI::ScrollBar* mFootstepsVolumeSlider;
00070             MyGUI::ScrollBar* mMusicVolumeSlider;
00071 
00072             // controls
00073             MyGUI::ScrollView* mControlsBox;
00074             MyGUI::Button* mResetControlsButton;
00075             MyGUI::Button* mInvertYButton;
00076             MyGUI::ScrollBar* mCameraSensitivitySlider;
00077 
00078             void onOkButtonClicked(MyGUI::Widget* _sender);
00079             void onFpsToggled(MyGUI::Widget* _sender);
00080             void onTextureFilteringChanged(MyGUI::ComboBox* _sender, size_t pos);
00081             void onSliderChangePosition(MyGUI::ScrollBar* scroller, size_t pos);
00082             void onButtonToggled(MyGUI::Widget* _sender);
00083             void onResolutionSelected(MyGUI::ListBox* _sender, size_t index);
00084             void onResolutionAccept();
00085             void onResolutionCancel();
00086 
00087             void onShadersToggled(MyGUI::Widget* _sender);
00088             void onShaderModeToggled(MyGUI::Widget* _sender);
00089             void onShadowTextureSizeChanged(MyGUI::ComboBox* _sender, size_t pos);
00090 
00091             void onRebindAction(MyGUI::Widget* _sender);
00092             void onInputTabMouseWheel(MyGUI::Widget* _sender, int _rel);
00093             void onResetDefaultBindings(MyGUI::Widget* _sender);
00094             void onResetDefaultBindingsAccept ();
00095 
00096             void apply();
00097     };
00098 }
00099 
00100 #endif