Mir
keymap.h
Go to the documentation of this file.
1 /*
2  * Copyright © 2016 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_KEYMAP_H
18 #define MIRAL_KEYMAP_H
19 
20 #include <memory>
21 #include <string>
22 
23 namespace mir { class Server; }
24 
25 namespace miral
26 {
27 /// Load a keymap
28 class Keymap
29 {
30 public:
31 
32  /// Apply keymap from the config.
33  Keymap();
34 
35  /// Specify a keymap.
36  /// Format is:
37  /// \verbatim <language>[+<variant>[+<options>]] \endverbatim
38  /// Options is a comma separated list.
39  /// e.g. "uk" or "us+dvorak"
40  explicit Keymap(std::string const& keymap);
41  ~Keymap();
42  Keymap(Keymap const& that);
43  auto operator=(Keymap const& rhs) -> Keymap&;
44 
45  void operator()(mir::Server& server) const;
46 
47  /// Specify a new keymap.
48  void set_keymap(std::string const& keymap);
49 
50 private:
51  struct Self;
52  std::shared_ptr<Self> self;
53 };
54 }
55 
56 #endif //MIRAL_KEYMAP_H

Copyright © 2012-2022 Canonical Ltd.
Generated on Fri Aug 26 13:27:37 UTC 2022
This documentation is licensed under the GPL version 2 or 3.