New view options dialog items for comet tails, ring shadows, constellation boundaries, and distance filter stars.

ver1_5_1
Chris Laurel 2002-09-09 03:53:46 +00:00
parent 8d6a798b09
commit 1a51cb944a
3 changed files with 171 additions and 24 deletions

View File

@ -52,6 +52,7 @@ BEGIN
MENUITEM SEPARATOR
MENUITEM "Solar System &Browser...", ID_NAVIGATION_SSBROWSER
MENUITEM "Star B&rowser...", ID_NAVIGATION_STARBROWSER
MENUITEM "&Eclipse Finder", ID_NAVIGATION_ECLIPSEFINDER
END
POPUP "&Time"
BEGIN
@ -142,7 +143,7 @@ CAPTION "About Celestia"
FONT 8, "MS Sans Serif"
BEGIN
DEFPUSHBUTTON "OK",IDOK,131,76,50,14
CTEXT "Celestia 1.2.4",IDC_STATIC,6,7,297,9
CTEXT "Celestia 1.2.5",IDC_STATIC,6,7,297,9
CTEXT "Copyright (C) 2001, Chris Laurel",IDC_STATIC,6,16,297,9
CTEXT "Visit http://www.shatters.net/celestia for more info.",
IDC_STATIC,6,53,297,9
@ -323,7 +324,7 @@ BEGIN
PUSHBUTTON "Cancel",IDCANCEL,87,44,50,14
END
IDD_VIEWOPTIONS DIALOG DISCARDABLE 0, 0, 174, 234
IDD_VIEWOPTIONS DIALOG DISCARDABLE 0, 0, 174, 282
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "View Options"
FONT 8, "MS Sans Serif"
@ -340,6 +341,8 @@ BEGIN
BS_AUTOCHECKBOX | WS_TABSTOP,15,70,70,10
CONTROL "Galaxies",IDC_SHOWGALAXIES,"Button",BS_AUTOCHECKBOX |
WS_TABSTOP,15,83,43,10
CONTROL "Ring Shadows",IDC_SHOWRINGSHADOWS,"Button",
BS_AUTOCHECKBOX | WS_TABSTOP,15,96,53,10
CONTROL "Night Side Lights",IDC_SHOWNIGHTSIDELIGHTS,"Button",
BS_AUTOCHECKBOX | WS_TABSTOP,93,18,69,10
CONTROL "Orbits",IDC_SHOWORBITS,"Button",BS_AUTOCHECKBOX |
@ -350,31 +353,40 @@ BEGIN
WS_TABSTOP,93,57,32,10
CONTROL "Stars as Points",IDC_SHOWSTARSASPOINTS,"Button",
BS_AUTOCHECKBOX | WS_TABSTOP,93,70,63,10
CONTROL "Comet Tails",IDC_SHOWCOMETTAILS,"Button",
BS_AUTOCHECKBOX | WS_TABSTOP,93,83,63,10
CONTROL "Constellation Borders",IDC_SHOWCONSTELLATIONBORDERS,"Button",
BS_AUTOCHECKBOX | WS_TABSTOP,93,96,80,10
CONTROL "Asteroids",IDC_LABELASTEROIDS,"Button",BS_AUTOCHECKBOX |
WS_TABSTOP,15,116,45,10
WS_TABSTOP,15,129,45,10
CONTROL "Constellations",IDC_LABELCONSTELLATIONS,"Button",
BS_AUTOCHECKBOX | WS_TABSTOP,15,129,59,10
BS_AUTOCHECKBOX | WS_TABSTOP,15,142,59,10
CONTROL "Galaxies",IDC_LABELGALAXIES,"Button",BS_AUTOCHECKBOX |
WS_TABSTOP,15,142,43,10
WS_TABSTOP,15,155,43,10
CONTROL "Moons",IDC_LABELMOONS,"Button",BS_AUTOCHECKBOX |
WS_TABSTOP,15,155,37,10
WS_TABSTOP,15,168,37,10
CONTROL "Planets",IDC_LABELPLANETS,"Button",BS_AUTOCHECKBOX |
WS_TABSTOP,93,116,39,10
WS_TABSTOP,93,129,39,10
CONTROL "Spacecraft",IDC_LABELSPACECRAFT,"Button",
BS_AUTOCHECKBOX | WS_TABSTOP,93,129,51,10
BS_AUTOCHECKBOX | WS_TABSTOP,93,142,51,10
CONTROL "Stars",IDC_LABELSTARS,"Button",BS_AUTOCHECKBOX |
WS_TABSTOP,93,142,32,10
CONTROL "None",IDC_INFOTEXT0,"Button",BS_AUTORADIOBUTTON,15,188,
WS_TABSTOP,93,155,32,10
CONTROL "None",IDC_INFOTEXT0,"Button",BS_AUTORADIOBUTTON,15,201,
33,10
CONTROL "Terse",IDC_INFOTEXT1,"Button",BS_AUTORADIOBUTTON,66,188,
CONTROL "Terse",IDC_INFOTEXT1,"Button",BS_AUTORADIOBUTTON,66,201,
34,10
CONTROL "Verbose",IDC_INFOTEXT2,"Button",BS_AUTORADIOBUTTON,115,
188,42,10
DEFPUSHBUTTON "OK",IDOK,35,212,50,14
PUSHBUTTON "Cancel",IDCANCEL,89,212,50,14
GROUPBOX "Show",IDC_STATIC,6,5,162,94
GROUPBOX "Label",IDC_STATIC,6,103,162,68
GROUPBOX "Information Text",IDC_STATIC,6,175,162,30
201,42,10
LTEXT "Distance",IDC_STATIC,15,237,30,8
CONTROL "Slider1",IDC_SLIDER_FILTER_DISTANCE,"msctls_trackbar32",
TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,50,233,60,14
EDITTEXT IDC_EDIT_FILTER_DISTANCE,118,235,40,12,ES_AUTOHSCROLL
DEFPUSHBUTTON "OK",IDOK,35,260,50,14
PUSHBUTTON "Cancel",IDCANCEL,89,260,50,14p_
GROUPBOX "Show",IDC_STATIC,6,5,162,107
GROUPBOX "Label",IDC_STATIC,6,116,162,68
GROUPBOX "Information Text",IDC_STATIC,6,188,162,30
GROUPBOX "Filter Stars",IDC_STATIC,6,223,162,30
END
IDD_ADDLOCATION_FOLDER DIALOG DISCARDABLE 0, 0, 148, 61
@ -416,6 +428,44 @@ BEGIN
END
IDD_ECLIPSEFINDER DIALOGEX 0, 0, 388, 300
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Eclipse Finder"
FONT 8, "MS Sans Serif"
BEGIN
DEFPUSHBUTTON "Compute",IDCOMPUTE,330,258,50,14
PUSHBUTTON "Close",IDCLOSE,330,279,50,14
CONTROL "List2",IDC_ECLIPSES_LIST,"SysListView32",LVS_REPORT |
LVS_SINGLESEL | WS_BORDER | WS_TABSTOP,17,17,232,181,
WS_EX_CLIENTEDGE
CONTROL "Earth",IDC_EARTH,"Button",BS_AUTORADIOBUTTON,267,87,39,
10
CONTROL "Saturn",IDC_SATURN,"Button",BS_AUTORADIOBUTTON,267,117,
39,10
CONTROL "Jupiter",IDC_JUPITER,"Button",BS_AUTORADIOBUTTON,267,
102,39,10
CONTROL "Uranus",IDC_URANUS,"Button",BS_AUTORADIOBUTTON,267,132,
39,10
CONTROL "Neptune",IDC_NEPTUNE,"Button",BS_AUTORADIOBUTTON,267,
147,39,10
CONTROL "Pluto",IDC_PLUTO,"Button",BS_AUTORADIOBUTTON,267,162,39,
10
LTEXT "Find :",IDC_STATIC,267,15,18,8
LTEXT "From",IDC_STATIC,267,177,68,8
LTEXT "To",IDC_STATIC,267,211,68,8
CONTROL "DateTimePicker3",IDC_DATETO,"SysDateTimePick32",
DTS_RIGHTALIGN | WS_TABSTOP,267,222,78,15
CONTROL "DateTimePicker3",IDC_DATEFROM,"SysDateTimePick32",
DTS_RIGHTALIGN | WS_TABSTOP,267,191,78,15
DEFPUSHBUTTON "Set Date and Go to Planet",IDSETDATEANDGO,136,202,88,14
CONTROL "Solar eclipses",IDC_SOLAR,"Button",BS_AUTORADIOBUTTON,
267,33,59,10
CONTROL "Moon eclipses",IDC_MOON,"Button",BS_AUTORADIOBUTTON,267,
50,61,10
LTEXT "on :",IDC_STATIC,267,68,13,8
END
/////////////////////////////////////////////////////////////////////////////
//
// DESIGNINFO

View File

@ -27,10 +27,14 @@
#define IDD_ADDLOCATION_FOLDER 128
#define IDD_ORGANIZE_LOCATIONS 129
#define IDD_RENAME_LOCATION 130
#define IDB_FOLDERCLOSED 132
#define IDB_FOLDEROPENED 134
#define IDB_LOCATION 136
#define IDB_CAMERA 137
#define IDD_COMPUTEECLIPSES 136
#define IDD_ECLIPSEFINDER 136
#define IDB_FOLDERCLOSED 532
#define IDB_FOLDEROPENED 534
#define IDB_LOCATION 536
#define IDB_CAMERA 537
#define IDC_FINDOBJECT_EDIT 1001
#define IDC_LICENSE_TEXT 1004
#define IDC_GLINFO_TEXT 1005
@ -92,6 +96,28 @@
#define IDC_SHOWSTARSASPOINTS 1063
#define IDC_LABELASTEROIDS 1064
#define IDC_LABELSPACECRAFT 1065
// Eclipse finder controls
#define IDC_ECLIPSES_LIST 1071
#define IDC_EARTH 1072
#define IDC_SATURN 1073
#define IDC_JUPITER 1074
#define IDC_URANUS 1075
#define IDC_NEPTUNE 1076
#define IDC_PLUTO 1077
#define IDCOMPUTE 1078
#define IDC_DATEFROM 1079
#define IDC_DATETO 1080
#define IDSETDATEANDGO 1081
#define IDC_SOLAR 1082
#define IDC_MOON 1083
#define IDC_EDIT_FILTER_DISTANCE 1084
#define IDC_SLIDER_FILTER_DISTANCE 1085
#define IDC_SHOWCOMETTAILS 1086
#define IDC_SHOWCONSTELLATIONBORDERS 1087
#define IDC_SHOWRINGSHADOWS 1088
#define ID_SELECTSOL 40001
#define ID_GOTOSELECTION 40002
#define ID_FOLLOWSELECTION 40003
@ -110,7 +136,7 @@
#define ID_NAVIGATION_GOTO 40020
#define ID_NAVIGATION_FOLLOW 40021
#define ID_NAVIGATION_TOURGUIDE 40022
#define ID_NAVIGATION_BLAH 40023
#define ID_NAVIGATION_ECLIPSEFINDER 40023
#define ID_TIME_FASTER 40024
#define ID_TIME_SLOWER 40025
#define ID_TIME_FREEZE 40026
@ -149,7 +175,7 @@
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 138
#define _APS_NEXT_COMMAND_VALUE 40065
#define _APS_NEXT_CONTROL_VALUE 1066
#define _APS_NEXT_CONTROL_VALUE 1089
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif

View File

@ -10,6 +10,7 @@
// of the License, or (at your option) any later version.
#include <windows.h>
#include <commctrl.h>
#include "winviewoptsdlg.h"
#include "..\celengine\render.h"
@ -17,6 +18,10 @@
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,
UINT wParam,
@ -78,6 +83,12 @@ static BOOL APIENTRY ViewOptionsProc(HWND hDlg,
}
else if(LOWORD(wParam) == IDC_SHOWSTARSASPOINTS)
renderer->setRenderFlags(renderer->getRenderFlags() ^ renderer->ShowStarsAsPoints);
else if(LOWORD(wParam) == IDC_SHOWCONSTELLATIONBORDERS)
renderer->setRenderFlags(renderer->getRenderFlags() ^ renderer->ShowBoundaries);
else if(LOWORD(wParam) == IDC_SHOWRINGSHADOWS)
renderer->setRenderFlags(renderer->getRenderFlags() ^ renderer->ShowRingShadows);
else if(LOWORD(wParam) == IDC_SHOWCOMETTAILS)
renderer->setRenderFlags(renderer->getRenderFlags() ^ renderer->ShowCometTails);
else if(LOWORD(wParam) == IDC_LABELCONSTELLATIONS)
renderer->setLabelMode(renderer->getLabelMode() ^ renderer->ConstellationLabels);
else if(LOWORD(wParam) == IDC_LABELGALAXIES)
@ -98,7 +109,6 @@ static BOOL APIENTRY ViewOptionsProc(HWND hDlg,
Dlg->appCore->setHudDetail(1);
else if(LOWORD(wParam) == IDC_INFOTEXT2)
Dlg->appCore->setHudDetail(2);
else if (LOWORD(wParam) == IDOK)
{
if (Dlg != NULL && Dlg->parent != NULL)
@ -132,6 +142,40 @@ static BOOL APIENTRY ViewOptionsProc(HWND hDlg,
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;
@ -181,6 +225,12 @@ void ViewOptionsDialog::SetControls(HWND hDlg)
((renderFlags & appCore->getRenderer()->ShowStars) != 0)? BST_CHECKED:BST_UNCHECKED, 0);
SendDlgItemMessage(hDlg, IDC_SHOWSTARSASPOINTS, BM_SETCHECK,
((renderFlags & appCore->getRenderer()->ShowStarsAsPoints) != 0)? BST_CHECKED:BST_UNCHECKED, 0);
SendDlgItemMessage(hDlg, IDC_SHOWCONSTELLATIONBORDERS, BM_SETCHECK,
((renderFlags & appCore->getRenderer()->ShowBoundaries) != 0)? BST_CHECKED:BST_UNCHECKED, 0);
SendDlgItemMessage(hDlg, IDC_SHOWRINGSHADOWS, BM_SETCHECK,
((renderFlags & appCore->getRenderer()->ShowRingShadows) != 0)? BST_CHECKED:BST_UNCHECKED, 0);
SendDlgItemMessage(hDlg, IDC_SHOWCOMETTAILS, BM_SETCHECK,
((renderFlags & appCore->getRenderer()->ShowCometTails) != 0)? BST_CHECKED:BST_UNCHECKED, 0);
SendDlgItemMessage(hDlg, IDC_LABELCONSTELLATIONS, BM_SETCHECK,
((labelMode & appCore->getRenderer()->ConstellationLabels) != 0)? BST_CHECKED:BST_UNCHECKED, 0);
@ -198,8 +248,29 @@ void ViewOptionsDialog::SetControls(HWND hDlg)
((labelMode & appCore->getRenderer()->SpacecraftLabels) != 0)? BST_CHECKED:BST_UNCHECKED, 0);
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);