Deskflow 1.22.0.197
Keyboard and mouse sharing utility
Loading...
Searching...
No Matches
X11LayoutsParser.h
Go to the documentation of this file.
1/*
2 * Deskflow -- mouse and keyboard sharing utility
3 * SPDX-FileCopyrightText: (C) 2012 - 2016 Symless Ltd.
4 * SPDX-FileCopyrightText: (C) 2002 Chris Schoeneman
5 * SPDX-License-Identifier: GPL-2.0-only WITH LicenseRef-OpenSSL-Exception
6 */
7
8#if WINAPI_XWINDOWS
9#pragma once
10
11#include <string>
12#include <vector>
13
14class QDomNode;
15
16class X11LayoutsParser
17{
18public:
19 static std::vector<std::string> getX11LanguageList(const std::string &pathToEvdevFile);
20 static std::string convertLayotToISO(
21 const std::string &pathToEvdevFile, const std::string &layoutLangCode, bool needToReloadFiles = false
22 );
23
24private:
25 struct Lang
26 {
27 std::string name = "";
28 std::vector<std::string> layoutBaseISO639_2;
29 std::vector<Lang> variants;
30 };
31
32 static bool readXMLConfigItemElem(const QDomNode &node, std::vector<Lang> &langList);
33
34 static std::vector<Lang> getAllLanguageData(const std::string &pathToEvdevFile);
35
36 static void appendVectorUniq(const std::vector<std::string> &source, std::vector<std::string> &dst);
37
38 static void convertLayoutToISO639_2(
39 const std::string &pathToEvdevFile, bool needToReloadEvdev, const std::vector<std::string> &layoutNames,
40 const std::vector<std::string> &layoutVariantNames, std::vector<std::string> &iso639_2Codes
41 );
42
43 static std::vector<std::string> convertISO639_2ToISO639_1(const std::vector<std::string> &iso639_2Codes);
44};
45
46#endif // WINAPI_XWINDOWS
static const struct sockaddr FAR * name
Definition ArchNetworkWinsock.cpp:27