summaryrefslogtreecommitdiff
path: root/test/src/mbgl/test/stub_layer_observer.hpp
blob: 9acd4b077a5aceb0b9ed6fc3feb62659d544632f (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
#pragma once

#include <mbgl/style/layer_observer.hpp>

using namespace mbgl;
using namespace mbgl::style;

/**
 * An implementation of style::LayerObserver that forwards all methods to dynamically-settable lambas.
 */
class StubLayerObserver : public style::LayerObserver {
public:
    void onLayerFilterChanged(Layer& layer) override {
        if (layerFilterChanged) layerFilterChanged(layer);
    }

    void onLayerVisibilityChanged(Layer& layer) override {
        if (layerVisibilityChanged) layerVisibilityChanged(layer);
    }

    void onLayerPaintPropertyChanged(Layer& layer) override {
        if (layerPaintPropertyChanged) layerPaintPropertyChanged(layer);
    }

    void onLayerDataDrivenPaintPropertyChanged(Layer& layer) override {
        if (layerDataDrivenPaintPropertyChanged) layerDataDrivenPaintPropertyChanged(layer);
    }

    void onLayerLayoutPropertyChanged(Layer& layer, const char * property) override {
        if (layerLayoutPropertyChanged) layerLayoutPropertyChanged(layer, property);
    }

    std::function<void (Layer&)> layerFilterChanged;
    std::function<void (Layer&)> layerVisibilityChanged;
    std::function<void (Layer&)> layerPaintPropertyChanged;
    std::function<void (Layer&)> layerDataDrivenPaintPropertyChanged;
    std::function<void (Layer&, const char *)> layerLayoutPropertyChanged;
};