|
|
|
#ifndef MWGUI_SETTINGS_H
|
|
|
|
#define MWGUI_SETTINGS_H
|
|
|
|
|
|
|
|
#include "window_base.hpp"
|
|
|
|
|
|
|
|
namespace MWGui
|
|
|
|
{
|
|
|
|
class WindowManager;
|
|
|
|
}
|
|
|
|
|
|
|
|
namespace MWGui
|
|
|
|
{
|
|
|
|
class SettingsWindow : public WindowBase
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
SettingsWindow(MWBase::WindowManager& parWindowManager);
|
|
|
|
|
|
|
|
virtual void open();
|
|
|
|
|
|
|
|
void updateControlsBox();
|
|
|
|
|
|
|
|
private:
|
|
|
|
static int const sFovMin = 30;
|
|
|
|
static int const sFovMax = 140;
|
|
|
|
static int const sViewDistMin = 2000;
|
|
|
|
static int const sViewDistMax = 5600;
|
|
|
|
|
|
|
|
protected:
|
|
|
|
MyGUI::Button* mOkButton;
|
|
|
|
|
|
|
|
MyGUI::ScrollBar* mMenuTransparencySlider;
|
|
|
|
MyGUI::ScrollBar* mToolTipDelaySlider;
|
|
|
|
|
|
|
|
// graphics
|
|
|
|
MyGUI::ListBox* mResolutionList;
|
|
|
|
MyGUI::Button* mFullscreenButton;
|
|
|
|
MyGUI::Button* mVSyncButton;
|
|
|
|
MyGUI::Button* mFPSButton;
|
|
|
|
MyGUI::ScrollBar* mViewDistanceSlider;
|
|
|
|
MyGUI::ScrollBar* mFOVSlider;
|
|
|
|
MyGUI::ScrollBar* mAnisotropySlider;
|
|
|
|
MyGUI::Button* mTextureFilteringButton;
|
|
|
|
MyGUI::TextBox* mAnisotropyLabel;
|
|
|
|
MyGUI::Widget* mAnisotropyBox;
|
|
|
|
MyGUI::Button* mWaterShaderButton;
|
|
|
|
MyGUI::Button* mReflectObjectsButton;
|
|
|
|
MyGUI::Button* mReflectActorsButton;
|
|
|
|
MyGUI::Button* mReflectTerrainButton;
|
|
|
|
MyGUI::Button* mShadersButton;
|
|
|
|
MyGUI::Button* mUnderwaterButton;
|
|
|
|
|
|
|
|
MyGUI::Button* mShadowsEnabledButton;
|
|
|
|
MyGUI::Button* mShadowsLargeDistance;
|
|
|
|
MyGUI::Button* mShadowsTextureSize;
|
|
|
|
MyGUI::Button* mActorShadows;
|
|
|
|
MyGUI::Button* mStaticsShadows;
|
|
|
|
MyGUI::Button* mMiscShadows;
|
|
|
|
MyGUI::Button* mShadowsDebug;
|
|
|
|
|
|
|
|
// audio
|
|
|
|
MyGUI::ScrollBar* mMasterVolumeSlider;
|
|
|
|
MyGUI::ScrollBar* mVoiceVolumeSlider;
|
|
|
|
MyGUI::ScrollBar* mEffectsVolumeSlider;
|
|
|
|
MyGUI::ScrollBar* mFootstepsVolumeSlider;
|
|
|
|
MyGUI::ScrollBar* mMusicVolumeSlider;
|
|
|
|
|
|
|
|
// controls
|
|
|
|
MyGUI::ScrollView* mControlsBox;
|
|
|
|
|
|
|
|
void onOkButtonClicked(MyGUI::Widget* _sender);
|
|
|
|
void onFpsToggled(MyGUI::Widget* _sender);
|
|
|
|
void onTextureFilteringToggled(MyGUI::Widget* _sender);
|
|
|
|
void onSliderChangePosition(MyGUI::ScrollBar* scroller, size_t pos);
|
|
|
|
void onButtonToggled(MyGUI::Widget* _sender);
|
|
|
|
void onResolutionSelected(MyGUI::ListBox* _sender, size_t index);
|
|
|
|
void onResolutionAccept();
|
|
|
|
void onResolutionCancel();
|
|
|
|
|
|
|
|
void onShadersToggled(MyGUI::Widget* _sender);
|
|
|
|
void onShadowTextureSize(MyGUI::Widget* _sender);
|
|
|
|
|
|
|
|
void onRebindAction(MyGUI::Widget* _sender);
|
|
|
|
|
|
|
|
void apply();
|
|
|
|
};
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|