1//
2// Copyright 2008 Simon Edwards <simon@simonzone.com>
3//
4// This library is free software; you can redistribute it and/or
5// modify it under the terms of the GNU Lesser General Public
6// License as published by the Free Software Foundation; either
7// version 2.1 of the License, or (at your option) any later version.
8//
9// This library is distributed in the hope that it will be useful,
10// but WITHOUT ANY WARRANTY; without even the implied warranty of
11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12// Lesser General Public License for more details.
13//
14// You should have received a copy of the GNU Lesser General Public
15// License along with this library.  If not, see <http://www.gnu.org/licenses/>.
16//
17
18%ModuleHeaderCode
19#include <MarbleGlobal.h>
20%End
21
22
23namespace Marble
24{
25
26enum TessellationFlag
27{
28    NoTessellation,
29    Tessellate,
30    RespectLatitudeCircle,
31    FollowGround,
32    RotationIndicatesFill,
33    SkipLatLonNormalization
34};
35
36typedef QFlags<Marble::TessellationFlag> TessellationFlags;
37
38
39enum Projection
40{
41    Spherical,
42    Equirectangular,
43    Mercator
44};
45
46
47
48
49enum Dimension
50{
51    Latitude,
52    Longitude
53};
54
55typedef QFlags<Marble::Dimension> Dimensions;
56
57
58enum AngleUnit
59{
60    DMSDegree,
61    DecimalDegree,
62    UTM,
63    MGRS
64};
65
66
67enum ViewContext
68{
69    Still,
70    Animation
71};
72
73
74enum MapQuality
75{
76    OutlineQuality,
77    LowQuality,
78    NormalQuality,
79    HighQuality,
80    PrintQuality
81};
82
83
84enum LabelPositionFlag
85{
86    NoLabel,
87    LineStart,
88    LineCenter,
89    LineEnd,
90    IgnoreXMargin,
91    IgnoreYMargin
92};
93
94typedef QFlags<Marble::LabelPositionFlag> LabelPositionFlags;
95
96
97enum LabelLocalization
98{
99    CustomAndNative,
100    Custom,
101    Native
102};
103
104
105enum DragLocation
106{
107    KeepAxisVertically,
108    FollowMousePointer
109};
110
111
112enum OnStartup
113{
114    ShowHomeLocation,
115    LastLocationVisited
116};
117
118
119enum AltitudeMode
120{
121    ClampToGround,
122    RelativeToGround,
123    Absolute
124};
125
126
127enum Pole
128{
129    AnyPole,
130    NorthPole,
131    SouthPole
132};
133
134
135class MarbleGlobal
136{
137%TypeHeaderCode
138#include <MarbleGlobal.h>
139%End
140
141public:
142    static Marble::MarbleGlobal*  getInstance ();
143
144private:
145                            MarbleGlobal ();
146public:
147    ~MarbleGlobal ();
148//ig    MarbleLocale*           locale () const;
149    enum Profile
150    {
151        Default,
152        SmallScreen,
153        HighResolution
154    };
155    typedef QFlags<Marble::MarbleGlobal::Profile> Profiles;
156    Marble::MarbleGlobal::Profiles  profiles () const;
157    void                    setProfiles (Marble::MarbleGlobal::Profiles profiles);
158    static Marble::MarbleGlobal::Profiles  detectProfiles ();
159};
160// MarbleGlobal
161
162enum ProxyType
163{
164    HttpProxy,
165    Socks5Proxy
166};
167enum DownloadUsage
168{
169    DownloadBulk,
170    DownloadBrowse
171};
172enum FlyToMode
173{
174    Automatic,
175    Instant,
176    Linear,
177    Jump
178};
179enum SearchMode
180{
181    GlobalSearch,
182    AreaSearch
183};
184};
185// Marble
186
187
188