--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/cadMousePro-gui/CMakeLists.txt Thu Aug 29 20:23:37 2019 +0200
@@ -0,0 +1,3 @@
+project (cadMousePro-gui)
+cmake_minimum_required(VERSION 2.8)
+add_subdirectory (src)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/cadMousePro-gui/nbproject/configurations.xml Thu Aug 29 20:23:37 2019 +0200
@@ -0,0 +1,191 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+Copyright (c) 2014, 2016 Oracle and/or its affiliates. All rights reserved.
+
+Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+Other names may be trademarks of their respective owners.
+
+The contents of this file are subject to the terms of either the GNU
+General Public License Version 2 only ("GPL") or the Common
+Development and Distribution License("CDDL") (collectively, the
+"License"). You may not use this file except in compliance with the
+License. You can obtain a copy of the License at
+http://www.netbeans.org/cddl-gplv2.html
+or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
+specific language governing permissions and limitations under the
+License. When distributing the software, include this License Header
+Notice in each file and include the License file at
+nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
+particular file as subject to the "Classpath" exception as provided
+by Oracle in the GPL Version 2 section of the License file that
+accompanied this code. If applicable, add the following below the
+License Header, with the fields enclosed by brackets [] replaced by
+your own identifying information:
+"Portions Copyrighted [year] [name of copyright owner]"
+
+If you wish your version of this file to be governed by only the CDDL
+or only the GPL Version 2, indicate your decision by adding
+"[Contributor] elects to include this software in this distribution
+under the [CDDL or GPL Version 2] license." If you do not indicate a
+single choice of license, a recipient has the option to distribute
+your version of this file under either the CDDL, the GPL Version 2 or
+to extend the choice of license to its licensees as provided above.
+However, if you add GPL Version 2 code and therefore, elected the GPL
+Version 2 license, then the option applies only if the new code is
+made subject to such option by the copyright holder.
+
+Contributor(s):
+-->
+<configurationDescriptor version="100">
+ <logicalFolder name="root" displayName="root" projectFiles="true" kind="ROOT">
+ <df root="." name="0">
+ <df name="src">
+ <in>cadMouseProGUI.cpp</in>
+ </df>
+ </df>
+ <logicalFolder name="cadMousePro-gui_autogen"
+ displayName="cadMousePro-gui_autogen"
+ projectFiles="true"
+ root="build/Debug/src/cadMousePro-gui_autogen">
+ <logicalFolder name="S5VNLJ26FI" displayName="S5VNLJ26FI" projectFiles="true">
+ <itemPath>build/Debug/src/cadMousePro-gui_autogen/S5VNLJ26FI/moc_Proxy.cpp</itemPath>
+ </logicalFolder>
+ <itemPath>build/Debug/src/cadMousePro-gui_autogen/mocs_compilation.cpp</itemPath>
+ </logicalFolder>
+ <logicalFolder name="Modules"
+ displayName="Modules"
+ projectFiles="true"
+ root="/usr/share/cmake-3.10/Modules">
+ <itemPath>/usr/share/cmake-3.10/Modules/CMakeCXXCompilerABI.cpp</itemPath>
+ <itemPath>/usr/share/cmake-3.10/Modules/CMakeCompilerABI.h</itemPath>
+ </logicalFolder>
+ <logicalFolder name="ExternalFiles"
+ displayName="Important Files"
+ projectFiles="false"
+ kind="IMPORTANT_FILES_FOLDER">
+ <itemPath>CMakeLists.txt</itemPath>
+ <itemPath>build/Debug/Makefile</itemPath>
+ <itemPath>build/Release/Makefile</itemPath>
+ </logicalFolder>
+ </logicalFolder>
+ <sourceFolderFilter>^(nbproject|build)$</sourceFolderFilter>
+ <sourceRootList>
+ <Elem>.</Elem>
+ </sourceRootList>
+ <projectmakefile>build/Debug/Makefile</projectmakefile>
+ <confs>
+ <conf name="Debug" type="0">
+ <toolsSet>
+ <compilerSet>default</compilerSet>
+ <dependencyChecking>false</dependencyChecking>
+ <rebuildPropChanged>false</rebuildPropChanged>
+ </toolsSet>
+ <flagsDictionary>
+ <element flagsID="0" commonFlags="-fsanitize=address -fPIC -std=gnu++11"/>
+ </flagsDictionary>
+ <codeAssistance>
+ </codeAssistance>
+ <makefileType>
+ <makeTool>
+ <buildCommandWorkingDir>build/Debug</buildCommandWorkingDir>
+ <buildCommand>${MAKE} -f Makefile</buildCommand>
+ <cleanCommand>${MAKE} -f Makefile clean</cleanCommand>
+ <executablePath>build/Debug/src/cadMousePro-gui</executablePath>
+ <ccTool>
+ <incDir>
+ <pElem>build/Debug/src</pElem>
+ <pElem>src</pElem>
+ <pElem>build/Debug/src/cadMousePro-gui_autogen/include</pElem>
+ <pElem>/usr/include/x86_64-linux-gnu/qt5</pElem>
+ <pElem>/usr/include/x86_64-linux-gnu/qt5/QtDBus</pElem>
+ <pElem>/usr/include/x86_64-linux-gnu/qt5/QtCore</pElem>
+ <pElem>/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++</pElem>
+ </incDir>
+ <preprocessorList>
+ <Elem>QT_CORE_LIB</Elem>
+ <Elem>QT_DBUS_LIB</Elem>
+ </preprocessorList>
+ </ccTool>
+ </makeTool>
+ <preBuild>
+ <preBuildCommandWorkingDir>build/Debug</preBuildCommandWorkingDir>
+ <preBuildCommand>${CMAKE} -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_COMPILER=${IDE_CC} -DCMAKE_CXX_COMPILER=${IDE_CXX} -DCMAKE_EXPORT_COMPILE_COMMANDS=ON ../..</preBuildCommand>
+ <preBuildFirst>true</preBuildFirst>
+ </preBuild>
+ </makefileType>
+ <item path="/usr/share/cmake-3.10/Modules/CMakeCXXCompilerABI.cpp"
+ ex="false"
+ tool="1"
+ flavor2="11">
+ </item>
+ <item path="build/Debug/src/cadMousePro-gui_autogen/S5VNLJ26FI/moc_Proxy.cpp"
+ ex="true"
+ tool="3"
+ flavor2="0">
+ </item>
+ <item path="build/Debug/src/cadMousePro-gui_autogen/mocs_compilation.cpp"
+ ex="false"
+ tool="1"
+ flavor2="8">
+ <ccTool flags="0">
+ </ccTool>
+ </item>
+ <item path="build/Debug/src/generated-sources/Proxy.cpp"
+ ex="false"
+ tool="1"
+ flavor2="8">
+ <ccTool flags="0">
+ <incDir>
+ <pElem>build/Debug/src</pElem>
+ <pElem>src</pElem>
+ <pElem>build/Debug/src/cadMousePro-gui_autogen/include</pElem>
+ <pElem>/usr/include/x86_64-linux-gnu/qt5</pElem>
+ <pElem>/usr/include/x86_64-linux-gnu/qt5/QtDBus</pElem>
+ <pElem>/usr/include/x86_64-linux-gnu/qt5/QtCore</pElem>
+ <pElem>/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++</pElem>
+ </incDir>
+ <preprocessorList>
+ <Elem>QT_CORE_LIB</Elem>
+ <Elem>QT_DBUS_LIB</Elem>
+ </preprocessorList>
+ </ccTool>
+ </item>
+ <item path="src/cadMouseProGUI.cpp" ex="false" tool="1" flavor2="8">
+ <ccTool flags="0">
+ </ccTool>
+ </item>
+ </conf>
+ <conf name="Release" type="0">
+ <toolsSet>
+ <compilerSet>default</compilerSet>
+ <dependencyChecking>false</dependencyChecking>
+ <rebuildPropChanged>false</rebuildPropChanged>
+ </toolsSet>
+ <codeAssistance>
+ </codeAssistance>
+ <makefileType>
+ <makeTool>
+ <buildCommandWorkingDir>build/Release</buildCommandWorkingDir>
+ <buildCommand>${MAKE} -f Makefile</buildCommand>
+ <cleanCommand>${MAKE} -f Makefile clean</cleanCommand>
+ <executablePath>build/Release/src/cadMousePro-gui</executablePath>
+ <ccTool>
+ <incDir>
+ <pElem>src</pElem>
+ </incDir>
+ <preprocessorList>
+ <Elem>NDEBUG</Elem>
+ </preprocessorList>
+ </ccTool>
+ </makeTool>
+ <preBuild>
+ <preBuildCommandWorkingDir>build/Release</preBuildCommandWorkingDir>
+ <preBuildCommand>${CMAKE} -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=${IDE_CC} -DCMAKE_CXX_COMPILER=${IDE_CXX} -DCMAKE_EXPORT_COMPILE_COMMANDS=ON ../..</preBuildCommand>
+ <preBuildFirst>true</preBuildFirst>
+ </preBuild>
+ </makefileType>
+ </conf>
+ </confs>
+</configurationDescriptor>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/cadMousePro-gui/nbproject/project.xml Thu Aug 29 20:23:37 2019 +0200
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+Copyright (c) 2014, 2016 Oracle and/or its affiliates. All rights reserved.
+
+Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+Other names may be trademarks of their respective owners.
+
+The contents of this file are subject to the terms of either the GNU
+General Public License Version 2 only ("GPL") or the Common
+Development and Distribution License("CDDL") (collectively, the
+"License"). You may not use this file except in compliance with the
+License. You can obtain a copy of the License at
+http://www.netbeans.org/cddl-gplv2.html
+or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
+specific language governing permissions and limitations under the
+License. When distributing the software, include this License Header
+Notice in each file and include the License file at
+nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
+particular file as subject to the "Classpath" exception as provided
+by Oracle in the GPL Version 2 section of the License file that
+accompanied this code. If applicable, add the following below the
+License Header, with the fields enclosed by brackets [] replaced by
+your own identifying information:
+"Portions Copyrighted [year] [name of copyright owner]"
+
+If you wish your version of this file to be governed by only the CDDL
+or only the GPL Version 2, indicate your decision by adding
+"[Contributor] elects to include this software in this distribution
+under the [CDDL or GPL Version 2] license." If you do not indicate a
+single choice of license, a recipient has the option to distribute
+your version of this file under either the CDDL, the GPL Version 2 or
+to extend the choice of license to its licensees as provided above.
+However, if you add GPL Version 2 code and therefore, elected the GPL
+Version 2 license, then the option applies only if the new code is
+made subject to such option by the copyright holder.
+
+Contributor(s):
+-->
+<project xmlns="http://www.netbeans.org/ns/project/1">
+ <type>org.netbeans.modules.cnd.makeproject</type>
+ <configuration>
+ <data xmlns="http://www.netbeans.org/ns/make-project/1">
+ <name>cadMousePro-gui</name>
+ <c-extensions/>
+ <cpp-extensions>cpp</cpp-extensions>
+ <header-extensions>h</header-extensions>
+ <sourceEncoding>UTF-8</sourceEncoding>
+ <sourceRootList>
+ <sourceRootElem>.</sourceRootElem>
+ </sourceRootList>
+ <make-dep-projects/>
+ <sourceRootList>
+ <sourceRootElem>.</sourceRootElem>
+ </sourceRootList>
+ <confList>
+ <confElem>
+ <name>Debug</name>
+ <type>0</type>
+ </confElem>
+ <confElem>
+ <name>Release</name>
+ <type>0</type>
+ </confElem>
+ </confList>
+ <formatting>
+ <project-formatting-style>false</project-formatting-style>
+ </formatting>
+ </data>
+ </configuration>
+</project>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/cadMousePro-gui/src/CMakeLists.txt Thu Aug 29 20:23:37 2019 +0200
@@ -0,0 +1,36 @@
+set(EXECUTABLE_FILE "cadMousePro-gui")
+
+# Qt libraries:
+set(CMAKE_INCLUDE_CURRENT_DIR ON) # Find includes in corresponding build directories
+set(CMAKE_AUTOMOC ON) # Instruct CMake to run moc automatically when needed
+set(CMAKE_AUTOUIC ON) # Create code from a list of Qt designer ui files
+find_package(Qt5 CONFIG REQUIRED Core DBus)
+
+# Add ASan AddressSanitizer
+set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -fno-omit-frame-pointer -fsanitize=address")
+set(CMAKE_LINKER_FLAGS_DEBUG "${CMAKE_LINKER_FLAGS_DEBUG} -fno-omit-frame-pointer -fsanitize=address")
+
+# Generate C++ interface classes from D-Bus XML:
+file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/generated-sources/)
+set(DBUS_XML ${CMAKE_CURRENT_SOURCE_DIR}/../../d-bus/info.globalcode.mouse.cadMousePro.xml)
+set(GENERATED_SOURCES ${CMAKE_CURRENT_BINARY_DIR}/generated-sources/)
+add_custom_command(
+ DEPENDS ${DBUS_XML}
+ OUTPUT ${GENERATED_SOURCES}/Proxy.h
+ OUTPUT ${GENERATED_SOURCES}/Proxy.cpp
+ COMMAND qdbusxml2cpp -p Proxy.h:Proxy.cpp ${DBUS_XML}
+ WORKING_DIRECTORY ${GENERATED_SOURCES}
+)
+cmake_policy(SET CMP0071 NEW) # Let AUTOMOC and AUTOUIC process GENERATED files.
+
+# Executable output:
+add_executable(
+ ${EXECUTABLE_FILE}
+ ${CMAKE_CURRENT_BINARY_DIR}/generated-sources/Proxy.h
+ ${CMAKE_CURRENT_BINARY_DIR}/generated-sources/Proxy.cpp
+ cadMouseProGUI.cpp
+)
+
+# Link libraries:
+target_link_libraries(${EXECUTABLE_FILE} Qt5::DBus)
+set_property(TARGET ${EXECUTABLE_FILE} PROPERTY INSTALL_RPATH_USE_LINK_PATH TRUE)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/cadMousePro-gui/src/cadMouseProGUI.cpp Thu Aug 29 20:23:37 2019 +0200
@@ -0,0 +1,43 @@
+/**
+ * cadMousePro
+ * Copyright © 2019 František Kučera (Frantovo.cz, GlobalCode.info)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include <iostream>
+
+#include <QCoreApplication>
+#include <QtDBus/QDBusConnection>
+
+#include "generated-sources/Proxy.h"
+
+int main(int argc, char** argv) {
+
+ std::wcout << L"cadMousePro GUI" << std::endl;
+
+
+ QCoreApplication qtApplication(argc, argv);
+
+ QDBusConnection connection = QDBusConnection::systemBus();
+
+ InfoGlobalcodeMouseCadMouseProInterface* proxy = new InfoGlobalcodeMouseCadMouseProInterface("info.globalcode.mouse.cadMousePro", "/info/globalcode/mouse/cadMousePro", connection, &qtApplication);
+
+ std::wcout << (proxy->isValid() ? L"connected" : L"disconnected") << std::endl;
+ std::wcout << (proxy->devicePresent() ? L"mouse found" : L"mouse not found") << std::endl;
+ std::wcout << L"mouse name: " << proxy->deviceName().toStdWString() << std::endl;
+ std::wcout << connection.lastError().message().toStdWString() << std::endl;
+
+ return qtApplication.exec();
+
+}