438 lines
18 KiB
C++
438 lines
18 KiB
C++
// winviewoptsdlg.cpp
|
|
//
|
|
// Copyright (C) 2001, Chris Laurel <claurel@shatters.net>
|
|
//
|
|
// View Options dialog for Windows.
|
|
//
|
|
// This program is free software; you can redistribute it and/or
|
|
// modify it under the terms of the GNU General Public License
|
|
// as published by the Free Software Foundation; either version 2
|
|
// of the License, or (at your option) any later version.
|
|
|
|
#include <windows.h>
|
|
#include <commctrl.h>
|
|
#include "winviewoptsdlg.h"
|
|
#include "celengine\render.h"
|
|
|
|
#include "res/resource.h"
|
|
|
|
using namespace std;
|
|
|
|
static const int DistanceSliderRange = 10000;
|
|
static const float MinDistanceLimit = 1.0f;
|
|
static const float MaxDistanceLimit = 1.0e6f;
|
|
|
|
static BOOL APIENTRY ViewOptionsProc(HWND hDlg,
|
|
UINT message,
|
|
WPARAM wParam,
|
|
LPARAM lParam)
|
|
{
|
|
ViewOptionsDialog* Dlg = reinterpret_cast<ViewOptionsDialog*>(GetWindowLongPtr(hDlg, DWLP_USER));
|
|
|
|
switch (message)
|
|
{
|
|
case WM_INITDIALOG:
|
|
{
|
|
ViewOptionsDialog* Dlg = reinterpret_cast<ViewOptionsDialog*>(lParam);
|
|
if (Dlg == NULL)
|
|
return EndDialog(hDlg, 0);
|
|
SetWindowLongPtr(hDlg, DWLP_USER, lParam);
|
|
|
|
//Read labelMode, renderFlags and hud detail
|
|
Dlg->initialRenderFlags = Dlg->appCore->getRenderer()->getRenderFlags();
|
|
Dlg->initialLabelMode = Dlg->appCore->getRenderer()->getLabelMode();
|
|
Dlg->initialHudDetail = Dlg->appCore->getHudDetail();
|
|
|
|
//Set dialog controls to reflect current label and render modes
|
|
Dlg->SetControls(hDlg);
|
|
|
|
return(TRUE);
|
|
}
|
|
break;
|
|
|
|
case WM_COMMAND:
|
|
{
|
|
Renderer* renderer = Dlg->appCore->getRenderer();
|
|
uint64_t renderFlags = renderer->getRenderFlags();
|
|
uint32_t labelMode = renderer->getLabelMode();
|
|
uint32_t orbitMask = renderer->getOrbitMask();
|
|
|
|
switch (LOWORD(wParam))
|
|
{
|
|
case IDC_SHOWATMOSPHERES:
|
|
renderer->setRenderFlags(renderFlags ^ Renderer::ShowAtmospheres);
|
|
break;
|
|
case IDC_SHOWCELESTIALGRID:
|
|
renderer->setRenderFlags(renderFlags ^ Renderer::ShowCelestialSphere);
|
|
break;
|
|
case IDC_SHOWHORIZONGRID:
|
|
renderer->setRenderFlags(renderFlags ^ Renderer::ShowHorizonGrid);
|
|
break;
|
|
case IDC_SHOWGALACTICGRID:
|
|
renderer->setRenderFlags(renderFlags ^ Renderer::ShowGalacticGrid);
|
|
break;
|
|
case IDC_SHOWECLIPTICGRID:
|
|
renderer->setRenderFlags(renderFlags ^ Renderer::ShowEclipticGrid);
|
|
break;
|
|
case IDC_SHOWECLIPTIC:
|
|
renderer->setRenderFlags(renderFlags ^ Renderer::ShowEcliptic);
|
|
break;
|
|
case IDC_SHOWCLOUDS:
|
|
renderer->setRenderFlags(renderFlags ^ Renderer::ShowCloudMaps);
|
|
break;
|
|
case IDC_SHOWCLOUDSHADOWS:
|
|
renderer->setRenderFlags(renderFlags ^ Renderer::ShowCloudShadows);
|
|
break;
|
|
case IDC_SHOWCONSTELLATIONS:
|
|
renderer->setRenderFlags(renderFlags ^ Renderer::ShowDiagrams);
|
|
break;
|
|
case IDC_SHOWECLIPSESHADOWS:
|
|
renderer->setRenderFlags(renderFlags ^ Renderer::ShowEclipseShadows);
|
|
break;
|
|
case IDC_SHOWGALAXIES:
|
|
renderer->setRenderFlags(renderFlags ^ Renderer::ShowGalaxies);
|
|
break;
|
|
case IDC_SHOWGLOBULARS:
|
|
renderer->setRenderFlags(renderFlags ^ Renderer::ShowGlobulars);
|
|
break;
|
|
case IDC_SHOWNEBULAE:
|
|
renderer->setRenderFlags(renderFlags ^ Renderer::ShowNebulae);
|
|
break;
|
|
case IDC_SHOWOPENCLUSTERS:
|
|
renderer->setRenderFlags(renderFlags ^ Renderer::ShowOpenClusters);
|
|
break;
|
|
case IDC_SHOWNIGHTSIDELIGHTS:
|
|
renderer->setRenderFlags(renderFlags ^ Renderer::ShowNightMaps);
|
|
break;
|
|
case IDC_SHOWORBITS:
|
|
renderer->setRenderFlags(renderFlags ^ Renderer::ShowOrbits);
|
|
break;
|
|
case IDC_PLANETORBITS:
|
|
renderer->setOrbitMask(orbitMask ^ Body::Planet);
|
|
break;
|
|
case IDC_DWARFPLANETORBITS:
|
|
renderer->setOrbitMask(orbitMask ^ Body::DwarfPlanet);
|
|
break;
|
|
case IDC_STARORBITS:
|
|
renderer->setOrbitMask(orbitMask ^ Body::Stellar);
|
|
break;
|
|
case IDC_MOONORBITS:
|
|
renderer->setOrbitMask(orbitMask ^ Body::Moon);
|
|
break;
|
|
case IDC_MINORMOONORBITS:
|
|
renderer->setOrbitMask(orbitMask ^ Body::MinorMoon);
|
|
break;
|
|
case IDC_ASTEROIDORBITS:
|
|
renderer->setOrbitMask(orbitMask ^ Body::Asteroid);
|
|
break;
|
|
case IDC_COMETORBITS:
|
|
renderer->setOrbitMask(orbitMask ^ Body::Comet);
|
|
break;
|
|
case IDC_SPACECRAFTORBITS:
|
|
renderer->setOrbitMask(orbitMask ^ Body::Spacecraft);
|
|
break;
|
|
case IDC_SHOWPLANETS:
|
|
renderer->setRenderFlags(renderFlags ^ Renderer::ShowPlanets);
|
|
break;
|
|
case IDC_SHOWDWARFPLANETS:
|
|
renderer->setRenderFlags(renderFlags ^ Renderer::ShowDwarfPlanets);
|
|
break;
|
|
case IDC_SHOWMOONS:
|
|
renderer->setRenderFlags(renderFlags ^ Renderer::ShowMoons);
|
|
break;
|
|
case IDC_SHOWMINORMOONS:
|
|
renderer->setRenderFlags(renderFlags ^ Renderer::ShowMinorMoons);
|
|
break;
|
|
case IDC_SHOWASTEROIDS:
|
|
renderer->setRenderFlags(renderFlags ^ Renderer::ShowAsteroids);
|
|
break;
|
|
case IDC_SHOWCOMETS:
|
|
renderer->setRenderFlags(renderFlags ^ Renderer::ShowComets);
|
|
break;
|
|
case IDC_SHOWSPACECRAFTS:
|
|
renderer->setRenderFlags(renderFlags ^ Renderer::ShowSpacecrafts);
|
|
break;
|
|
case IDC_SHOWSTARS:
|
|
renderer->setRenderFlags(renderFlags ^ Renderer::ShowStars);
|
|
break;
|
|
case IDC_SHOWCONSTELLATIONBORDERS:
|
|
renderer->setRenderFlags(renderFlags ^ Renderer::ShowBoundaries);
|
|
break;
|
|
case IDC_SHOWRINGSHADOWS:
|
|
renderer->setRenderFlags(renderFlags ^ Renderer::ShowRingShadows);
|
|
break;
|
|
case IDC_SHOWCOMETTAILS:
|
|
renderer->setRenderFlags(renderFlags ^ Renderer::ShowCometTails);
|
|
break;
|
|
case IDC_SHOWMARKERS:
|
|
renderer->setRenderFlags(renderFlags ^ Renderer::ShowMarkers);
|
|
break;
|
|
case IDC_LABELCONSTELLATIONS:
|
|
renderer->setLabelMode(labelMode ^ Renderer::ConstellationLabels);
|
|
break;
|
|
case IDC_LABELCONSTELLATIONSLATIN:
|
|
renderer->setLabelMode(labelMode ^ Renderer::I18nConstellationLabels);
|
|
break;
|
|
case IDC_LABELGALAXIES:
|
|
renderer->setLabelMode(labelMode ^ Renderer::GalaxyLabels);
|
|
break;
|
|
case IDC_LABELGLOBULARS:
|
|
renderer->setLabelMode(labelMode ^ Renderer::GlobularLabels);
|
|
break;
|
|
case IDC_LABELNEBULAE:
|
|
renderer->setLabelMode(labelMode ^ Renderer::NebulaLabels);
|
|
break;
|
|
case IDC_LABELOPENCLUSTERS:
|
|
renderer->setLabelMode(labelMode ^ Renderer::OpenClusterLabels);
|
|
break;
|
|
case IDC_LABELPLANETS:
|
|
renderer->setLabelMode(labelMode ^ Renderer::PlanetLabels);
|
|
break;
|
|
case IDC_LABELDWARFPLANETS:
|
|
renderer->setLabelMode(labelMode ^ Renderer::DwarfPlanetLabels);
|
|
break;
|
|
case IDC_LABELMOONS:
|
|
renderer->setLabelMode(labelMode ^ Renderer::MoonLabels);
|
|
break;
|
|
case IDC_LABELMINORMOONS:
|
|
renderer->setLabelMode(labelMode ^ Renderer::MinorMoonLabels);
|
|
break;
|
|
case IDC_LABELSTARS:
|
|
renderer->setLabelMode(labelMode ^ Renderer::StarLabels);
|
|
break;
|
|
case IDC_LABELASTEROIDS:
|
|
renderer->setLabelMode(labelMode ^ Renderer::AsteroidLabels);
|
|
break;
|
|
case IDC_LABELCOMETS:
|
|
renderer->setLabelMode(labelMode ^ Renderer::CometLabels);
|
|
break;
|
|
case IDC_LABELSPACECRAFT:
|
|
renderer->setLabelMode(labelMode ^ Renderer::SpacecraftLabels);
|
|
break;
|
|
case IDC_INFOTEXT0:
|
|
Dlg->appCore->setHudDetail(0);
|
|
break;
|
|
case IDC_INFOTEXT1:
|
|
Dlg->appCore->setHudDetail(1);
|
|
break;
|
|
case IDC_INFOTEXT2:
|
|
Dlg->appCore->setHudDetail(2);
|
|
break;
|
|
case IDOK:
|
|
if (Dlg != NULL && Dlg->parent != NULL)
|
|
{
|
|
SendMessage(Dlg->parent, WM_COMMAND, IDCLOSE,
|
|
reinterpret_cast<LPARAM>(Dlg));
|
|
}
|
|
EndDialog(hDlg, 0);
|
|
return TRUE;
|
|
case IDCANCEL:
|
|
if (Dlg != NULL && Dlg->parent != NULL)
|
|
{
|
|
// Reset render flags, label mode, and hud detail to
|
|
// initial values
|
|
Dlg->RestoreSettings(hDlg);
|
|
SendMessage(Dlg->parent, WM_COMMAND, IDCLOSE,
|
|
reinterpret_cast<LPARAM>(Dlg));
|
|
}
|
|
EndDialog(hDlg, 0);
|
|
return TRUE;
|
|
}
|
|
break;
|
|
}
|
|
|
|
case WM_DESTROY:
|
|
if (Dlg != NULL && Dlg->parent != NULL)
|
|
{
|
|
SendMessage(Dlg->parent, WM_COMMAND, IDCLOSE,
|
|
reinterpret_cast<LPARAM>(Dlg));
|
|
}
|
|
return TRUE;
|
|
|
|
case WM_HSCROLL:
|
|
{
|
|
WORD sbValue = LOWORD(wParam);
|
|
switch (sbValue)
|
|
{
|
|
case SB_THUMBTRACK:
|
|
// case SB_ENDSCROLL:
|
|
{
|
|
char val[16];
|
|
HWND hwnd = GetDlgItem(hDlg, IDC_EDIT_FILTER_DISTANCE);
|
|
float logDistanceLimit = (float) HIWORD(wParam) /
|
|
(float) DistanceSliderRange;
|
|
float distanceLimit = (float) pow(MaxDistanceLimit,
|
|
logDistanceLimit);
|
|
sprintf(val, "%d", (int) distanceLimit);
|
|
SetWindowText(hwnd, val);
|
|
Dlg->appCore->getRenderer()->setDistanceLimit(distanceLimit);
|
|
break;
|
|
}
|
|
|
|
default:
|
|
cout << "Slider msg: " << sbValue << '\n';
|
|
break;
|
|
#if 0
|
|
case SB_THUMBPOSITION:
|
|
{
|
|
browser->nStars = (int)HIWORD(wParam);
|
|
RefreshItems(hDlg, browser);
|
|
break;
|
|
}
|
|
#endif
|
|
}
|
|
}
|
|
}
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
|
|
ViewOptionsDialog::ViewOptionsDialog(HINSTANCE appInstance,
|
|
HWND _parent,
|
|
CelestiaCore* _appCore) :
|
|
Watcher<CelestiaCore>(*_appCore),
|
|
appCore(_appCore),
|
|
parent(_parent)
|
|
{
|
|
hwnd = CreateDialogParam(appInstance,
|
|
MAKEINTRESOURCE(IDD_VIEWOPTIONS),
|
|
parent,
|
|
(DLGPROC)ViewOptionsProc,
|
|
reinterpret_cast<LONG_PTR>(this));
|
|
}
|
|
|
|
|
|
static void dlgCheck(HWND hDlg, WORD item, uint32_t flags, uint32_t f)
|
|
{
|
|
SendDlgItemMessage(hDlg, item, BM_SETCHECK,
|
|
((flags & f) != 0) ? BST_CHECKED : BST_UNCHECKED, 0);
|
|
}
|
|
|
|
|
|
void ViewOptionsDialog::SetControls(HWND hDlg)
|
|
{
|
|
uint64_t renderFlags = appCore->getRenderer()->getRenderFlags();
|
|
int labelMode = appCore->getRenderer()->getLabelMode();
|
|
int hudDetail = appCore->getHudDetail();
|
|
int orbitMask = appCore->getRenderer()->getOrbitMask();
|
|
|
|
//Set checkboxes and radiobuttons
|
|
SendDlgItemMessage(hDlg, IDC_SHOWATMOSPHERES, BM_SETCHECK,
|
|
(renderFlags & Renderer::ShowAtmospheres)? BST_CHECKED:BST_UNCHECKED, 0);
|
|
SendDlgItemMessage(hDlg, IDC_SHOWCELESTIALGRID, BM_SETCHECK,
|
|
(renderFlags & Renderer::ShowCelestialSphere)? BST_CHECKED:BST_UNCHECKED, 0);
|
|
SendDlgItemMessage(hDlg, IDC_SHOWHORIZONGRID, BM_SETCHECK,
|
|
(renderFlags & Renderer::ShowHorizonGrid)? BST_CHECKED:BST_UNCHECKED, 0);
|
|
SendDlgItemMessage(hDlg, IDC_SHOWGALACTICGRID, BM_SETCHECK,
|
|
(renderFlags & Renderer::ShowGalacticGrid)? BST_CHECKED:BST_UNCHECKED, 0);
|
|
SendDlgItemMessage(hDlg, IDC_SHOWECLIPTICGRID, BM_SETCHECK,
|
|
(renderFlags & Renderer::ShowEclipticGrid)? BST_CHECKED:BST_UNCHECKED, 0);
|
|
SendDlgItemMessage(hDlg, IDC_SHOWECLIPTIC, BM_SETCHECK,
|
|
(renderFlags & Renderer::ShowEcliptic)? BST_CHECKED:BST_UNCHECKED, 0);
|
|
SendDlgItemMessage(hDlg, IDC_SHOWCLOUDS, BM_SETCHECK,
|
|
(renderFlags & Renderer::ShowCloudMaps)? BST_CHECKED:BST_UNCHECKED, 0);
|
|
SendDlgItemMessage(hDlg, IDC_SHOWCLOUDSHADOWS, BM_SETCHECK,
|
|
(renderFlags & Renderer::ShowCloudShadows)? BST_CHECKED:BST_UNCHECKED, 0);
|
|
SendDlgItemMessage(hDlg, IDC_SHOWCONSTELLATIONS, BM_SETCHECK,
|
|
(renderFlags & Renderer::ShowDiagrams)? BST_CHECKED:BST_UNCHECKED, 0);
|
|
SendDlgItemMessage(hDlg, IDC_SHOWECLIPSESHADOWS, BM_SETCHECK,
|
|
(renderFlags & Renderer::ShowEclipseShadows)? BST_CHECKED:BST_UNCHECKED, 0);
|
|
SendDlgItemMessage(hDlg, IDC_SHOWGALAXIES, BM_SETCHECK,
|
|
(renderFlags & Renderer::ShowGalaxies)? BST_CHECKED:BST_UNCHECKED, 0);
|
|
SendDlgItemMessage(hDlg, IDC_SHOWGLOBULARS, BM_SETCHECK,
|
|
(renderFlags & Renderer::ShowGlobulars)? BST_CHECKED:BST_UNCHECKED, 0);
|
|
SendDlgItemMessage(hDlg, IDC_SHOWNEBULAE, BM_SETCHECK,
|
|
(renderFlags & Renderer::ShowNebulae)? BST_CHECKED:BST_UNCHECKED, 0);
|
|
SendDlgItemMessage(hDlg, IDC_SHOWOPENCLUSTERS, BM_SETCHECK,
|
|
(renderFlags & Renderer::ShowOpenClusters)? BST_CHECKED:BST_UNCHECKED, 0);
|
|
SendDlgItemMessage(hDlg, IDC_SHOWNIGHTSIDELIGHTS, BM_SETCHECK,
|
|
(renderFlags & Renderer::ShowNightMaps)? BST_CHECKED:BST_UNCHECKED, 0);
|
|
SendDlgItemMessage(hDlg, IDC_SHOWORBITS, BM_SETCHECK,
|
|
(renderFlags & Renderer::ShowOrbits) != 0 ? BST_CHECKED : BST_UNCHECKED, 0);
|
|
dlgCheck(hDlg, IDC_PLANETORBITS, orbitMask, Body::Planet);
|
|
dlgCheck(hDlg, IDC_DWARFPLANETORBITS,orbitMask, Body::DwarfPlanet);
|
|
dlgCheck(hDlg, IDC_MOONORBITS, orbitMask, Body::Moon);
|
|
dlgCheck(hDlg, IDC_MINORMOONORBITS, orbitMask, Body::MinorMoon);
|
|
dlgCheck(hDlg, IDC_ASTEROIDORBITS, orbitMask, Body::Asteroid);
|
|
dlgCheck(hDlg, IDC_COMETORBITS, orbitMask, Body::Comet);
|
|
dlgCheck(hDlg, IDC_SPACECRAFTORBITS, orbitMask, Body::Spacecraft);
|
|
dlgCheck(hDlg, IDC_STARORBITS, orbitMask, Body::Stellar);
|
|
SendDlgItemMessage(hDlg, IDC_SHOWPLANETS, BM_SETCHECK,
|
|
(renderFlags & Renderer::ShowPlanets) != 0 ? BST_CHECKED : BST_UNCHECKED, 0);
|
|
SendDlgItemMessage(hDlg, IDC_SHOWDWARFPLANETS, BM_SETCHECK,
|
|
((renderFlags ^ Renderer::ShowDwarfPlanets) != 0) ? BST_CHECKED : BST_UNCHECKED, 0);
|
|
SendDlgItemMessage(hDlg, IDC_SHOWMOONS, BM_SETCHECK,
|
|
((renderFlags ^ Renderer::ShowMoons) != 0) ? BST_CHECKED : BST_UNCHECKED, 0);
|
|
SendDlgItemMessage(hDlg, IDC_SHOWMINORMOONS, BM_SETCHECK,
|
|
((renderFlags ^ Renderer::ShowMinorMoons) != 0) ? BST_CHECKED : BST_UNCHECKED, 0);
|
|
SendDlgItemMessage(hDlg, IDC_SHOWASTEROIDS, BM_SETCHECK,
|
|
((renderFlags ^ Renderer::ShowAsteroids) != 0) ? BST_CHECKED : BST_UNCHECKED, 0);
|
|
SendDlgItemMessage(hDlg, IDC_SHOWCOMETS, BM_SETCHECK,
|
|
((renderFlags ^ Renderer::ShowComets) != 0) ? BST_CHECKED : BST_UNCHECKED, 0);
|
|
SendDlgItemMessage(hDlg, IDC_SHOWSPACECRAFTS, BM_SETCHECK,
|
|
((renderFlags ^ Renderer::ShowSpacecrafts) != 0) ? BST_CHECKED : BST_UNCHECKED, 0);
|
|
SendDlgItemMessage(hDlg, IDC_SHOWSTARS, BM_SETCHECK,
|
|
(renderFlags & Renderer::ShowStars)? BST_CHECKED:BST_UNCHECKED, 0);
|
|
SendDlgItemMessage(hDlg, IDC_SHOWCONSTELLATIONBORDERS, BM_SETCHECK,
|
|
(renderFlags & Renderer::ShowBoundaries)? BST_CHECKED:BST_UNCHECKED, 0);
|
|
SendDlgItemMessage(hDlg, IDC_SHOWRINGSHADOWS, BM_SETCHECK,
|
|
(renderFlags & Renderer::ShowRingShadows)? BST_CHECKED:BST_UNCHECKED, 0);
|
|
SendDlgItemMessage(hDlg, IDC_SHOWCOMETTAILS, BM_SETCHECK,
|
|
(renderFlags & Renderer::ShowCometTails)? BST_CHECKED:BST_UNCHECKED, 0);
|
|
SendDlgItemMessage(hDlg, IDC_SHOWMARKERS, BM_SETCHECK,
|
|
(renderFlags & Renderer::ShowMarkers)? BST_CHECKED:BST_UNCHECKED, 0);
|
|
|
|
dlgCheck(hDlg, IDC_LABELCONSTELLATIONS, labelMode, Renderer::ConstellationLabels);
|
|
SendDlgItemMessage(hDlg, IDC_LABELCONSTELLATIONSLATIN, BM_SETCHECK,
|
|
((labelMode & Renderer::I18nConstellationLabels) == 0) ? BST_CHECKED : BST_UNCHECKED, 0);
|
|
dlgCheck(hDlg, IDC_LABELGALAXIES, labelMode, Renderer::GalaxyLabels);
|
|
dlgCheck(hDlg, IDC_LABELGLOBULARS, labelMode, Renderer::GlobularLabels);
|
|
dlgCheck(hDlg, IDC_LABELNEBULAE, labelMode, Renderer::NebulaLabels);
|
|
dlgCheck(hDlg, IDC_LABELOPENCLUSTERS, labelMode, Renderer::OpenClusterLabels);
|
|
dlgCheck(hDlg, IDC_LABELSTARS, labelMode, Renderer::StarLabels);
|
|
dlgCheck(hDlg, IDC_LABELPLANETS, labelMode, Renderer::PlanetLabels);
|
|
dlgCheck(hDlg, IDC_LABELDWARFPLANETS, labelMode, Renderer::DwarfPlanetLabels);
|
|
dlgCheck(hDlg, IDC_LABELMOONS, labelMode, Renderer::MoonLabels);
|
|
dlgCheck(hDlg, IDC_LABELMINORMOONS, labelMode, Renderer::MinorMoonLabels);
|
|
dlgCheck(hDlg, IDC_LABELASTEROIDS, labelMode, Renderer::AsteroidLabels);
|
|
dlgCheck(hDlg, IDC_LABELCOMETS, labelMode, Renderer::CometLabels);
|
|
dlgCheck(hDlg, IDC_LABELSPACECRAFT, labelMode, Renderer::SpacecraftLabels);
|
|
|
|
CheckRadioButton(hDlg, IDC_INFOTEXT0, IDC_INFOTEXT2, IDC_INFOTEXT0 + hudDetail);
|
|
|
|
// Set up distance slider
|
|
SendDlgItemMessage(hDlg,
|
|
IDC_SLIDER_FILTER_DISTANCE,
|
|
TBM_SETRANGE,
|
|
(WPARAM)TRUE,
|
|
(LPARAM) MAKELONG(0, DistanceSliderRange));
|
|
float distanceLimit = appCore->getRenderer()->getDistanceLimit();
|
|
float logDistanceLimit = (float) (log(distanceLimit) /
|
|
log(MaxDistanceLimit));
|
|
SendDlgItemMessage(hDlg,
|
|
IDC_SLIDER_FILTER_DISTANCE,
|
|
TBM_SETPOS,
|
|
(WPARAM) TRUE,
|
|
(LPARAM) (logDistanceLimit * DistanceSliderRange));
|
|
|
|
char val[16];
|
|
HWND hwnd = GetDlgItem(hDlg, IDC_EDIT_FILTER_DISTANCE);
|
|
sprintf(val, "%d", (int) distanceLimit);
|
|
SetWindowText(hwnd, val);
|
|
}
|
|
|
|
|
|
void ViewOptionsDialog::RestoreSettings(HWND hDlg)
|
|
{
|
|
appCore->getRenderer()->setRenderFlags(initialRenderFlags);
|
|
appCore->getRenderer()->setLabelMode(initialLabelMode);
|
|
appCore->setHudDetail(initialHudDetail);
|
|
}
|
|
|
|
void ViewOptionsDialog::notifyChange(CelestiaCore*, int)
|
|
{
|
|
if (parent != NULL)
|
|
SetControls(hwnd);
|
|
}
|