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
|
#pragma once
namespace df
{
class Message
{
public:
enum Type
{
Unknown,
TileReadStarted,
TileReadEnded,
FinishReading,
FinishTileRead,
FlushTile,
FlushOverlays,
MapShapeReaded,
OverlayMapShapeReaded,
UpdateReadManager,
InvalidateRect,
InvalidateReadManagerRect,
UpdateUserMarkGroup,
ClearUserMarkGroup,
ChangeUserMarkGroupVisibility,
UpdateUserMarks,
SetCreatedUserMarks,
InvalidateUserMarks,
FlushUserMarks,
GuiLayerRecached,
GuiRecache,
GuiLayerLayout,
MapShapesRecache,
MapShapes,
ChangeMyPostitionMode,
CompassInfo,
GpsInfo,
SelectObject,
AddSubroute,
RemoveSubroute,
CacheRouteArrows,
FlushRoute,
FlushRouteArrows,
FollowRoute,
DeactivateRouteFollowing,
SetSubrouteVisibility,
AddRoutePreviewSegment,
RemoveRoutePreviewSegment,
UpdateMapStyle,
SwitchMapStyle,
Invalidate,
Allow3dMode,
Allow3dBuildings,
EnablePerspective,
FlushCirclesPack,
CacheCirclesPack,
UpdateGpsTrackPoints,
ClearGpsTrackPoints,
ShowChoosePositionMark,
SetKineticScrollEnabled,
BlockTapEvents,
SetTimeInBackground,
SetAddNewPlaceMode,
SetDisplacementMode,
AllowAutoZoom,
RequestSymbolsSize,
RecoverGLResources,
SetVisibleViewport,
EnableTraffic,
FlushTrafficGeometry,
RegenerateTraffic,
UpdateTraffic,
FlushTrafficData,
ClearTrafficData,
SetSimplifiedTrafficColors,
DrapeApiAddLines,
DrapeApiRemove,
DrapeApiFlush,
SetCustomFeatures,
RemoveCustomFeatures,
UpdateCustomFeatures,
SetPostprocessStaticTextures,
SetPosteffectEnabled,
RunFirstLaunchAnimation,
UpdateMetalines,
};
virtual ~Message() {}
virtual Type GetType() const { return Unknown; }
virtual bool IsGLContextDependent() const { return false; }
};
enum class MessagePriority
{
// This is standard priority. It must be used for majority of messages.
// This priority guarantees order of messages processing.
Normal,
// This priority is used for system messages where order of processing
// could be neglected, so it does not guarantee order of messages processing.
// Also it must be used for messages which stop threads.
High,
// It can be used for the only system message (UpdateReadManagerMessage) and
// must not be used anywhere else.
UberHighSingleton,
// This priority allows to process messages after any other messages in queue.
Low
};
} // namespace df
|