#include <windows.h>#include <commctrl.h>#include "winviewoptsdlg.h"#include "..\celengine\render.h"#include "res/resource.h"Include dependency graph for winviewoptsdlg.cpp:

Go to the source code of this file.
Functions | |
| static void | dlgCheck (HWND hDlg, WORD item, uint32 flags, uint32 f) |
| static BOOL APIENTRY | ViewOptionsProc (HWND hDlg, UINT message, UINT wParam, LONG lParam) |
Variables | |
| static const int | DistanceSliderRange = 10000 |
| static const float | MaxDistanceLimit = 1.0e6f |
| static const float | MinDistanceLimit = 1.0f |
|
||||||||||||||||||||
|
Definition at line 246 of file winviewoptsdlg.cpp. 00247 {
00248 SendDlgItemMessage(hDlg, item, BM_SETCHECK,
00249 ((flags & f) != 0) ? BST_CHECKED : BST_UNCHECKED, 0);
00250 }
|
|
||||||||||||||||||||
|
Definition at line 25 of file winviewoptsdlg.cpp. References ViewOptionsDialog::appCore, BOOL(), DistanceSliderRange, CelestiaCore::getHudDetail(), Renderer::getLabelMode(), Renderer::getOrbitMask(), CelestiaCore::getRenderer(), Renderer::getRenderFlags(), IDC_ASTEROIDORBITS, IDC_COMETORBITS, IDC_EDIT_FILTER_DISTANCE, IDC_INFOTEXT0, IDC_INFOTEXT1, IDC_INFOTEXT2, IDC_LABELASTEROIDS, IDC_LABELCOMETS, IDC_LABELCONSTELLATIONS, IDC_LABELGALAXIES, IDC_LABELMOONS, IDC_LABELNEBULAE, IDC_LABELOPENCLUSTERS, IDC_LABELPLANETS, IDC_LABELSPACECRAFT, IDC_LABELSTARS, IDC_MOONORBITS, IDC_PLANETORBITS, IDC_SHOWATMOSPHERES, IDC_SHOWCELESTIALGRID, IDC_SHOWCLOUDS, IDC_SHOWCOMETTAILS, IDC_SHOWCONSTELLATIONBORDERS, IDC_SHOWCONSTELLATIONS, IDC_SHOWECLIPSESHADOWS, IDC_SHOWGALAXIES, IDC_SHOWMARKERS, IDC_SHOWNEBULAE, IDC_SHOWNIGHTSIDELIGHTS, IDC_SHOWORBITS, IDC_SHOWPLANETS, IDC_SHOWRINGSHADOWS, IDC_SHOWSTARS, IDC_SPACECRAFTORBITS, ViewOptionsDialog::initialHudDetail, ViewOptionsDialog::initialLabelMode, ViewOptionsDialog::initialRenderFlags, MaxDistanceLimit, ViewOptionsDialog::parent, pow(), RefreshItems(), ViewOptionsDialog::RestoreSettings(), ViewOptionsDialog::SetControls(), Renderer::setDistanceLimit(), CelestiaCore::setHudDetail(), Renderer::setLabelMode(), Renderer::setOrbitMask(), and Renderer::setRenderFlags(). Referenced by ViewOptionsDialog::ViewOptionsDialog(). 00029 {
00030 ViewOptionsDialog* Dlg = reinterpret_cast<ViewOptionsDialog*>(GetWindowLong(hDlg, DWL_USER));
00031
00032 switch (message)
00033 {
00034 case WM_INITDIALOG:
00035 {
00036 ViewOptionsDialog* Dlg = reinterpret_cast<ViewOptionsDialog*>(lParam);
00037 if (Dlg == NULL)
00038 return EndDialog(hDlg, 0);
00039 SetWindowLong(hDlg, DWL_USER, lParam);
00040
00041 //Read labelMode, renderFlags and hud detail
00042 Dlg->initialRenderFlags = Dlg->appCore->getRenderer()->getRenderFlags();
00043 Dlg->initialLabelMode = Dlg->appCore->getRenderer()->getLabelMode();
00044 Dlg->initialHudDetail = Dlg->appCore->getHudDetail();
00045
00046 //Set dialog controls to reflect current label and render modes
00047 Dlg->SetControls(hDlg);
00048
00049 return(TRUE);
00050 }
00051 break;
00052
00053 case WM_COMMAND:
00054 {
00055 Renderer* renderer = Dlg->appCore->getRenderer();
00056 uint32 renderFlags = renderer->getRenderFlags();
00057 uint32 labelMode = renderer->getLabelMode();
00058 uint32 orbitMask = renderer->getOrbitMask();
00059
00060 switch (LOWORD(wParam))
00061 {
00062 case IDC_SHOWATMOSPHERES:
00063 renderer->setRenderFlags(renderFlags ^ Renderer::ShowAtmospheres);
00064 break;
00065 case IDC_SHOWCELESTIALGRID:
00066 renderer->setRenderFlags(renderFlags ^ Renderer::ShowCelestialSphere);
00067 break;
00068 case IDC_SHOWCLOUDS:
00069 renderer->setRenderFlags(renderFlags ^ Renderer::ShowCloudMaps);
00070 break;
00071 case IDC_SHOWCONSTELLATIONS:
00072 renderer->setRenderFlags(renderFlags ^ Renderer::ShowDiagrams);
00073 break;
00074 case IDC_SHOWECLIPSESHADOWS:
00075 renderer->setRenderFlags(renderFlags ^ Renderer::ShowEclipseShadows);
00076 break;
00077 case IDC_SHOWGALAXIES:
00078 renderer->setRenderFlags(renderFlags ^ Renderer::ShowGalaxies);
00079 break;
00080 case IDC_SHOWNEBULAE:
00081 renderer->setRenderFlags(renderFlags ^ Renderer::ShowNebulae);
00082 break;
00083 case IDC_SHOWNIGHTSIDELIGHTS:
00084 renderer->setRenderFlags(renderFlags ^ Renderer::ShowNightMaps);
00085 break;
00086 case IDC_SHOWORBITS:
00087 renderer->setRenderFlags(renderFlags ^ Renderer::ShowOrbits);
00088 break;
00089 case IDC_PLANETORBITS:
00090 renderer->setOrbitMask(orbitMask ^ Body::Planet);
00091 break;
00092 case IDC_MOONORBITS:
00093 renderer->setOrbitMask(orbitMask ^ Body::Moon);
00094 break;
00095 case IDC_ASTEROIDORBITS:
00096 renderer->setOrbitMask(orbitMask ^ Body::Asteroid);
00097 break;
00098 case IDC_COMETORBITS:
00099 renderer->setOrbitMask(orbitMask ^ Body::Comet);
00100 break;
00101 case IDC_SPACECRAFTORBITS:
00102 renderer->setOrbitMask(orbitMask ^ Body::Spacecraft);
00103 break;
00104 case IDC_SHOWPLANETS:
00105 renderer->setRenderFlags(renderFlags ^ Renderer::ShowPlanets);
00106 break;
00107 case IDC_SHOWSTARS:
00108 renderer->setRenderFlags(renderFlags ^ Renderer::ShowStars);
00109 break;
00110 case IDC_SHOWCONSTELLATIONBORDERS:
00111 renderer->setRenderFlags(renderFlags ^ Renderer::ShowBoundaries);
00112 break;
00113 case IDC_SHOWRINGSHADOWS:
00114 renderer->setRenderFlags(renderFlags ^ Renderer::ShowRingShadows);
00115 break;
00116 case IDC_SHOWCOMETTAILS:
00117 renderer->setRenderFlags(renderFlags ^ Renderer::ShowCometTails);
00118 break;
00119 case IDC_SHOWMARKERS:
00120 renderer->setRenderFlags(renderFlags ^ Renderer::ShowMarkers);
00121 break;
00122 case IDC_LABELCONSTELLATIONS:
00123 renderer->setLabelMode(labelMode ^ Renderer::ConstellationLabels);
00124 break;
00125 case IDC_LABELGALAXIES:
00126 renderer->setLabelMode(labelMode ^ Renderer::GalaxyLabels);
00127 break;
00128 case IDC_LABELNEBULAE:
00129 renderer->setLabelMode(labelMode ^ Renderer::NebulaLabels);
00130 break;
00131 case IDC_LABELOPENCLUSTERS:
00132 renderer->setLabelMode(labelMode ^ Renderer::OpenClusterLabels);
00133 break;
00134 case IDC_LABELPLANETS:
00135 renderer->setLabelMode(labelMode ^ Renderer::PlanetLabels);
00136 break;
00137 case IDC_LABELMOONS:
00138 renderer->setLabelMode(labelMode ^ Renderer::MoonLabels);
00139 break;
00140 case IDC_LABELSTARS:
00141 renderer->setLabelMode(labelMode ^ Renderer::StarLabels);
00142 break;
00143 case IDC_LABELASTEROIDS:
00144 renderer->setLabelMode(labelMode ^ Renderer::AsteroidLabels);
00145 break;
00146 case IDC_LABELCOMETS:
00147 renderer->setLabelMode(labelMode ^ Renderer::CometLabels);
00148 break;
00149 case IDC_LABELSPACECRAFT:
00150 renderer->setLabelMode(labelMode ^ Renderer::SpacecraftLabels);
00151 break;
00152 case IDC_INFOTEXT0:
00153 Dlg->appCore->setHudDetail(0);
00154 break;
00155 case IDC_INFOTEXT1:
00156 Dlg->appCore->setHudDetail(1);
00157 break;
00158 case IDC_INFOTEXT2:
00159 Dlg->appCore->setHudDetail(2);
00160 break;
00161 case IDOK:
00162 if (Dlg != NULL && Dlg->parent != NULL)
00163 {
00164 SendMessage(Dlg->parent, WM_COMMAND, IDCLOSE,
00165 reinterpret_cast<LPARAM>(Dlg));
00166 }
00167 EndDialog(hDlg, 0);
00168 return TRUE;
00169 case IDCANCEL:
00170 if (Dlg != NULL && Dlg->parent != NULL)
00171 {
00172 // Reset render flags, label mode, and hud detail to
00173 // initial values
00174 Dlg->RestoreSettings(hDlg);
00175 SendMessage(Dlg->parent, WM_COMMAND, IDCLOSE,
00176 reinterpret_cast<LPARAM>(Dlg));
00177 }
00178 EndDialog(hDlg, 0);
00179 return TRUE;
00180 }
00181 break;
00182 }
00183
00184 case WM_DESTROY:
00185 if (Dlg != NULL && Dlg->parent != NULL)
00186 {
00187 SendMessage(Dlg->parent, WM_COMMAND, IDCLOSE,
00188 reinterpret_cast<LPARAM>(Dlg));
00189 }
00190 return TRUE;
00191
00192 case WM_HSCROLL:
00193 {
00194 WORD sbValue = LOWORD(wParam);
00195 switch (sbValue)
00196 {
00197 case SB_THUMBTRACK:
00198 // case SB_ENDSCROLL:
00199 {
00200 char val[16];
00201 HWND hwnd = GetDlgItem(hDlg, IDC_EDIT_FILTER_DISTANCE);
00202 float logDistanceLimit = (float) HIWORD(wParam) /
00203 (float) DistanceSliderRange;
00204 float distanceLimit = (float) pow(MaxDistanceLimit,
00205 logDistanceLimit);
00206 sprintf(val, "%d", (int) distanceLimit);
00207 SetWindowText(hwnd, val);
00208 Dlg->appCore->getRenderer()->setDistanceLimit(distanceLimit);
00209 break;
00210 }
00211
00212 default:
00213 cout << "Slider msg: " << sbValue << '\n';
00214 break;
00215 #if 0
00216 case SB_THUMBPOSITION:
00217 {
00218 browser->nStars = (int)HIWORD(wParam);
00219 RefreshItems(hDlg, browser);
00220 break;
00221 }
00222 #endif
00223 }
00224 }
00225 }
00226
00227 return FALSE;
00228 }
|
|
|
Definition at line 21 of file winviewoptsdlg.cpp. Referenced by ViewOptionsDialog::SetControls(), and ViewOptionsProc(). |
|
|
Definition at line 23 of file winviewoptsdlg.cpp. Referenced by ViewOptionsDialog::SetControls(), and ViewOptionsProc(). |
|
|
Definition at line 22 of file winviewoptsdlg.cpp. |
1.4.1