summaryrefslogtreecommitdiff
path: root/test/src/mbgl/test/stub_layer_observer.hpp
blob: 07797ce9215ad23bf050fad3b2f06e8cbf47d967 (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
#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 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&, const char *)> layerLayoutPropertyChanged;
};