136 lines
4.8 KiB
C++
136 lines
4.8 KiB
C++
// Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
|
|
// Copyright (C) 2010 Winch Gate Property Limited
|
|
//
|
|
// This program is free software: you can redistribute it and/or modify
|
|
// it under the terms of the GNU Affero General Public License as
|
|
// published by the Free Software Foundation, either version 3 of the
|
|
// License, or (at your option) any later version.
|
|
//
|
|
// This program is distributed in the hope that it will be useful,
|
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
// GNU Affero General Public License for more details.
|
|
//
|
|
// You should have received a copy of the GNU Affero General Public License
|
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
// display_details_dlg.cpp : implementation file
|
|
//
|
|
|
|
#include "stdafx.h"
|
|
#include "base_dialog.h"
|
|
#include "client_config.h"
|
|
#include "database.h"
|
|
#include "cfg_file.h"
|
|
#include "display_details_dlg.h"
|
|
|
|
// ***************************************************************************
|
|
// CDisplayDetailsDlg dialog
|
|
// ***************************************************************************
|
|
|
|
CDisplayDetailsDlg::CDisplayDetailsDlg(CWnd* pParent /*=NULL*/)
|
|
: CBaseDialog(CDisplayDetailsDlg::IDD, pParent)
|
|
{
|
|
//{{AFX_DATA_INIT(CDisplayDetailsDlg)
|
|
CharacterQualityInt = 0;
|
|
FXQualityInt = 0;
|
|
LandscapeQualityInt = 0;
|
|
TextureQualityInt = 0;
|
|
//}}AFX_DATA_INIT
|
|
|
|
MaxTextureQuality= 1;
|
|
}
|
|
|
|
// ***************************************************************************
|
|
|
|
void CDisplayDetailsDlg::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CDialog::DoDataExchange(pDX);
|
|
//{{AFX_DATA_MAP(CDisplayDetailsDlg)
|
|
DDX_Control(pDX, IDC_LANDSCAPE_QUALITY, LandscapeQuality);
|
|
DDX_Control(pDX, IDC_FX_QUALITY, FXQuality);
|
|
DDX_Control(pDX, IDC_CHARACTER_QUALITY, CharacterQuality);
|
|
DDX_Control(pDX, IDC_TEXTURE_QUALITY, TextureQuality);
|
|
DDX_Control(pDX, IDC_CHARACTER_QUALITY_VALUE, CharacterQualityValue);
|
|
DDX_Control(pDX, IDC_FX_QUALITY_VALUE, FXQualityValue);
|
|
DDX_Control(pDX, IDC_LANDSCAPE_QUALITY_VALUE, LandscapeQualityValue);
|
|
DDX_Control(pDX, IDC_TEXTURE_QUALITY_VALUE, TextureQualityValue);
|
|
DDX_Slider(pDX, IDC_CHARACTER_QUALITY, CharacterQualityInt);
|
|
DDX_Slider(pDX, IDC_FX_QUALITY, FXQualityInt);
|
|
DDX_Slider(pDX, IDC_LANDSCAPE_QUALITY, LandscapeQualityInt);
|
|
DDX_Slider(pDX, IDC_TEXTURE_QUALITY, TextureQualityInt);
|
|
//}}AFX_DATA_MAP
|
|
}
|
|
|
|
// ***************************************************************************
|
|
|
|
BEGIN_MESSAGE_MAP(CDisplayDetailsDlg, CDialog)
|
|
//{{AFX_MSG_MAP(CDisplayDetailsDlg)
|
|
ON_WM_HSCROLL()
|
|
//}}AFX_MSG_MAP
|
|
END_MESSAGE_MAP()
|
|
|
|
// ***************************************************************************
|
|
// CDisplayDetailsDlg message handlers
|
|
// ***************************************************************************
|
|
|
|
void InitQuality (CSliderCtrl &slider)
|
|
{
|
|
slider.SetRange (0, QUALITY_STEP-1);
|
|
}
|
|
|
|
// ***************************************************************************
|
|
|
|
BOOL CDisplayDetailsDlg::OnInitDialog()
|
|
{
|
|
CDialog::OnInitDialog();
|
|
|
|
InitQuality (LandscapeQuality);
|
|
InitQuality (CharacterQuality);
|
|
InitQuality (FXQuality);
|
|
TextureQuality.SetRange(0, MaxTextureQuality);
|
|
|
|
return TRUE; // return TRUE unless you set the focus to a control
|
|
// EXCEPTION: OCX Property Pages should return FALSE
|
|
}
|
|
|
|
// ***************************************************************************
|
|
|
|
void UpdateQuality (int quality, HWND hwnd)
|
|
{
|
|
static const char *qualityString[QUALITY_STEP] = { "uiConfigPoor", "uiConfigMedium", "uiConfigNormal", "uiConfigSuper"};
|
|
setWindowText(hwnd, (WCHAR*)NLMISC::CI18N::get (qualityString[quality]).c_str());
|
|
}
|
|
|
|
// ***************************************************************************
|
|
|
|
void CDisplayDetailsDlg::updateState ()
|
|
{
|
|
UpdateQuality (LandscapeQualityInt, LandscapeQualityValue);
|
|
UpdateQuality (FXQualityInt, FXQualityValue);
|
|
UpdateQuality (CharacterQualityInt, CharacterQualityValue);
|
|
|
|
// If control has bad range, reset
|
|
int rMin, rMax;
|
|
TextureQuality.GetRange(rMin, rMax);
|
|
if(rMin!=0 || rMax!=MaxTextureQuality)
|
|
TextureQuality.SetRange(0, MaxTextureQuality);
|
|
|
|
// update texture quality text
|
|
static const char *textureString[QUALITY_TEXTURE_STEP] = { "uiConfigTexturePoor", "uiConfigTextureNormal", "uiConfigTextureSuper"};
|
|
setWindowText(TextureQualityValue, (WCHAR*)NLMISC::CI18N::get (textureString[TextureQualityInt]).c_str());
|
|
}
|
|
|
|
// ***************************************************************************
|
|
|
|
void CDisplayDetailsDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
|
|
{
|
|
// TODO: Add your message handler code here and/or call default
|
|
UpdateData ();
|
|
updateState ();
|
|
UpdateData (FALSE);
|
|
InvalidateConfig ();
|
|
|
|
CDialog::OnHScroll(nSBCode, nPos, pScrollBar);
|
|
}
|
|
|