blob: 27d803d7052209e4bbb90d27ade5bf6a1b1a94d4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
|
/* Starshatter: The Open Source Project
Copyright (c) 2021-2024, Starshatter: The Open Source Project Contributors
Copyright (c) 2011-2012, Starshatter OpenSource Distribution Contributors
Copyright (c) 1997-2006, Destroyer Studios LLC.
AUTHOR: John DiCamillo
OVERVIEW
========
Navigation Active Window class
*/
#ifndef NavDlg_h
#define NavDlg_h
#include "Types.h"
#include "FormWindow.h"
#include "Bitmap.h"
#include "Button.h"
#include "Font.h"
class BaseScreen;
class MapView;
class StarSystem;
class Ship;
class SimRegion;
class Orbital;
class OrbitalRegion;
class Mission;
// +--------------------------------------------------------------------+
class NavDlg : public FormWindow
{
public:
NavDlg(Screen* s, FormDef& def, BaseScreen* mgr);
virtual ~NavDlg();
virtual void RegisterControls();
// Operations:
virtual void OnView(AWEvent* event);
virtual void OnFilter(AWEvent* event);
virtual void OnSelect(AWEvent* event);
virtual void OnCommit(AWEvent* event);
virtual void OnCancel(AWEvent* event);
virtual void OnEngage(AWEvent* event);
virtual void OnMapDown(AWEvent* event);
virtual void OnMapMove(AWEvent* event);
virtual void OnMapClick(AWEvent* event);
virtual void OnClose(AWEvent* event);
virtual void ExecFrame();
StarSystem* GetSystem() const { return star_system; }
void SetSystem(StarSystem* s);
Mission* GetMission() const { return mission; }
void SetMission(Mission* m);
Ship* GetShip() const { return ship; }
void SetShip(Ship* s);
bool GetEditorMode() const { return editor; }
void SetEditorMode(bool b);
void UseViewMode(int mode);
void UseFilter(int index);
void SelectObject(int index);
void UpdateSelection();
void UpdateLists();
void CoordinateSelection();
void SelectStar(Orbital* star);
void SelectPlanet(Orbital* planet);
void SelectRegion(OrbitalRegion* rgn);
enum NAV_EDIT_MODE { NAV_EDIT_NONE = 0,
NAV_EDIT_ADD = 1,
NAV_EDIT_DEL = 2,
NAV_EDIT_MOVE = 3 };
void SetNavEditMode(int mode);
int GetNavEditMode();
protected:
Button* view_btn[3];
Button* filter_btn[6];
Button* commit_btn;
Button* zoom_in_btn;
Button* zoom_out_btn;
Button* close_btn;
MapView* star_map;
ActiveWindow* map_win;
ActiveWindow* loc_labels;
ActiveWindow* dst_labels;
ActiveWindow* loc_data;
ActiveWindow* dst_data;
ListBox* seln_list;
ListBox* info_list;
BaseScreen* manager;
int seln_mode;
int nav_edit_mode;
StarSystem* star_system;
List<Orbital> stars;
List<Orbital> planets;
List<OrbitalRegion> regions;
List<Ship> contacts;
Ship* ship;
Mission* mission;
bool editor;
};
#endif // NavDlg_h
|