Mir
append_event_filter.h
Go to the documentation of this file.
1 /*
2  * Copyright © 2016-2020 Canonical Ltd.
3  *
4  * This program is free software: you can redistribute it and/or modify it
5  * under the terms of the GNU General Public License version 2 or 3 as
6  * published by the Free Software Foundation.
7  *
8  * This program is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  * GNU General Public License for more details.
12  *
13  * You should have received a copy of the GNU General Public License
14  * along with this program. If not, see <http://www.gnu.org/licenses/>.
15  */
16 
17 #ifndef MIRAL_APPEND_EVENT_FILTER_H
18 #define MIRAL_APPEND_EVENT_FILTER_H
19 
20 #include <functional>
21 #include <memory>
22 
23 typedef struct MirEvent MirEvent;
24 
25 namespace mir { class Server; }
26 
27 namespace miral
28 {
30 {
31 public:
32  /// Append an event filter (after any existing filters, including the window manager).
33  /// The supplied filter should return true if and only if it handles the event as filters
34  /// later in the list will not be called.
35  /// \remark the filter return type changed to bool in MirAL 3.6
36  explicit AppendEventFilter(std::function<bool(MirEvent const* event)> const& filter);
37 
38  void operator()(mir::Server& server);
39 
40 private:
41  class Filter;
42  std::shared_ptr<Filter> const filter;
43 };
44 }
45 
46 #endif //MIRAL_APPEND_EVENT_FILTER_H

Copyright © 2012-2022 Canonical Ltd.
Generated on Thu Sep 8 12:37:23 UTC 2022
This documentation is licensed under the GPL version 2 or 3.